Se ha publicado la versión 0.13.10 de la biblioteca libmdbx (MDBX) con la implementación de una base de datos embebida de alto rendimiento y de tipo clave-valor. El código de libmdbx se distribuye bajo la licencia Apache 2.0. Se admiten todos los sistemas operativos y arquitecturas actuales, así como el ruso Elbrus 2000. Para libmdbx se ofrece una API desarrollada para C++, así como enlaces compatibles para los lenguajes Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno y Scala. Entre los proyectos que utilizan libmdbx se encuentran Isar, Erigon y Reth, así como los desarrollos de las empresas StarkWare y Positive Technologies.
Históricamente, libmdbx es una profunda reescritura de la base de datos LMDB y supera a su predecesora en cuanto a fiabilidad, conjunto de características y rendimiento. En comparación con LMDB, en libmdbx se presta gran atención a la calidad del código, el funcionamiento estable de la API, las pruebas y las verificaciones automáticas. Se proporciona una herramienta de verificación de la integridad de la estructura de la base de datos con algunas capacidades de recuperación. Desde el punto de vista tecnológico, libmdbx ofrece ACID, una estricta serialización de cambios y lectura no bloqueante con escalado lineal en los núcleos de la CPU. También se admite la compactación automática, la gestión automática del tamaño de la base de datos y la estimación de volumen de las consultas por rangos.
En diciembre de 2025, el repositorio principal del proyecto fue trasladado de GitFlic a SourceCraft. La razón indicada fueron las quejas de usuarios que no hablaban ruso y errores en el editor de Markdown que no se habían solucionado durante más de tres años. También se informó sobre el cierre del espejo del proyecto en Github, pero más tarde el repositorio fue restaurado con la explicación de que esto se hizo a pedido de desarrolladores de China y Brasil, así como de la plataforma Tempo que utiliza libmdbx.
Los cambios principales desde la última noticia del 1 de agosto:
- Se ha restaurado el soporte para núcleos antiguos de Linux, a partir de la versión 3.16.
- Se ha asegurado el soporte para el sistema operativo móvil Harmony.
- El error «MDBX_WANNA_RECOVERY» al abrir la base de datos en modo solo lectura ahora se devuelve si el tamaño de la base de datos no es múltiplo del tamaño de la página del sistema, pero se ignora la no múltiplicidad del tamaño del bloque de asignación de memoria virtual.
- Se ha eliminado la posibilidad de recibir un inesperado «SIGBUS» debido a la asignación diferida/perezosa por parte del núcleo del sistema operativo de espacio en un sistema de archivos lleno después de la expansión del archivo de la base de datos.
- Se corrigió la verificación de afirmaciones en la ruta de escaneo de bitmaps de los descriptores DBI que causaba caídas raras en los ensambles de depuración de 32 bits.
- Se implementó en Android una maniobra que reduce la probabilidad del error del sistema «EAGAIN», que ocurre debido a la falta de recursos del sistema y a procesos transitorios al cerrar y abrir rápidamente la base de datos.
- Para Linux, se añadió una prevención para la aparición de errores en la implementación de fast_commit del sistema de archivos Ext4.
- Se corrigió un defecto en la autoajuste de parámetros al establecer geometría con un tamaño mínimo de página especificado, que causaba que el tamaño de página pudiera aumentar en máquinas con una gran cantidad de RAM.
- Se rediseñó la implementación de los buffers y se realizaron otras mejoras en la API de C++.
Cabe mencionar el anuncio de la presentación «libmdbx: Hoja de ruta, logros, objetivos y obstáculos» en el evento Ethereum Day, que se llevará a cabo el 23 de diciembre en Moscú.
Fuente: opennet.ru
