IPinfo, un proveedor de datos de direcciones IP, ha desarrollado un método para reducir el tamaño de los archivos MMDB, los cuales se utilizan ampliamente para búsquedas rápidas de metadatos de IP, como información de geolocalización y ASN. El formato MMDB consta de dos componentes principales: un árbol de búsqueda, que es un trie binario sobre los bits de una dirección IP, y una sección de datos donde residen los registros reales. Si bien la sección de datos ya admite el uso compartido de registros, el árbol de búsqueda normalmente no lo hace. Los escritores estándar suelen emitir un nodo nuevo para cada posición en el árbol, lo que provoca un aumento significativo del tamaño cuando múltiples prefijos de IP se resuelven en el mismo registro de datos.

Esta imagen ilustra los componentes principales del formato MMDB mencionados en el primer párrafo.
Para solucionar esto, IPinfo implementó una técnica conocida como hash-consing. Este método consiste en recorrer el árbol existente desde las hojas hacia arriba y utilizar una tabla hash para identificar nodos estructuralmente idénticos. Si un par de nodos hijos ya ha sido procesado, la herramienta reutiliza el nodo canónico existente en lugar de crear un duplicado. Esto transforma el árbol de búsqueda en un grafo acíclico dirigido (DAG), donde múltiples padres pueden apuntar a un único subárbol compartido. Debido a que el formato MMDB ya admite este tipo de uso compartido, la optimización no requiere ningún cambio en el formato del archivo ni en las librerías de lectura; los archivos resultantes siguen siendo totalmente compatibles con las herramientas existentes.

Esta visualización explica el mecanismo de hash-consing y la estructura DAG resultante descrita en el segundo párrafo.
En las pruebas de producción, esta optimización resultó en una reducción del 31% en el tamaño total del catálogo de 89 bases de datos de IPinfo, con algunas bases de datos específicas viendo reducciones de hasta el 80%. Dado que los archivos MMDB se mapean en memoria, estos ahorros se traducen directamente en una menor huella de memoria y menos fallos de página durante las búsquedas. Si bien el ahorro principal proviene del árbol de búsqueda, la sección de datos permanece intacta. IPinfo ha lanzado la optimización como código abierto bajo el nombre `mmdbshrink`, permitiendo a otros desarrolladores reducir el tamaño de sus propios archivos MMDB manteniendo resultados de búsqueda y rendimiento idénticos.
Una consideración técnica restante involucra el campo `record_size` dentro del encabezado MMDB. A medida que el número de nodos en el árbol de búsqueda disminuye significativamente debido al hash-consing, puede haber una oportunidad para reducir el número de bits asignados para los tamaños de los registros, lo que potencialmente generaría un ahorro de espacio adicional del 12-25%. Sin embargo, tal cambio requeriría una modificación en la estructura de metadatos internos del archivo, mientras que la herramienta actual `mmdbshrink` logra sus resultados sin cambiar ni un solo byte del formato de datos subyacente.