Se encuentra disponible el motor de almacenamiento integrado TidesDB 1.0, que soporta transacciones ACID.

Se ha publicado la primera versión estable del proyecto TidesDB, que desarrolla una biblioteca para el almacenamiento de datos en formato clave/valor. El proyecto puede utilizarse como un motor que se ejecuta de forma independiente o para ser integrado en aplicaciones. Entre sus características clave se destacan el soporte para transacciones ACID y la optimización para un almacenamiento eficiente de datos en unidades Flash y en la memoria RAM. El código está escrito en C y se distribuye bajo la licencia MPL 2.0. Se han preparado envoltorios para los lenguajes C++, Go, Java, Python, Rust, Lua y JavaScript.

Para el almacenamiento de datos se utiliza la estructura LSM-tree (árbol de registro estructurado con fusión), que proporciona alto rendimiento no solo al leer, sino también al realizar operaciones de escritura y modificación de datos. Las operaciones de lectura no bloquean la escritura y lectura de datos, mientras que las operaciones de escritura solo bloquean el conjunto de columnas en el que se está realizando la escritura. Para acelerar aún más la lectura, se admiten índices y caché basados en filtros bloom (que permiten verificar la pertenencia a un conjunto, tolerando la falsa identificación de un elemento ausente, pero excluyendo la omisión de un elemento existente).

Hay soporte completo para transacciones ACID, que permiten realizar cambios atómicos que abarcan conjuntos de columnas y, cuando sea necesario, revertir operaciones de forma atómica. Los datos pueden almacenarse en formato comprimido con la elección del algoritmo de compresión vinculado al conjunto de columnas. Se pueden establecer bloqueos a nivel de conjuntos de columnas individuales y empaquetar el almacenamiento en modo paralelo sin bloquear la ejecución de operaciones con la base de datos.

Principales características:

  • Soporte para conjuntos de columnas (Column Families), conjuntos de datos aislados en formato clave/valor. Para cada conjunto de columnas se utilizan sus propios memtable, SSTable y WAL-log.
  • Transacciones ACID que abarcan múltiples operaciones con conjuntos de columnas.
  • Optimización para el acceso paralelo a los datos.
  • Soporte para iteradores bidireccionales, que permiten recorrer pares clave/valor hacia adelante o hacia atrás desde una posición seleccionada en el almacenamiento, utilizando un método de ordenación previamente establecido.
  • Soporte para la adición de funciones personalizadas de comparación de claves. Disponibilidad de funciones de comparación integradas como memcmp, string y numeric.
  • Registro de operaciones (WAL, Write-Ahead Log) y recuperación automática de memtable (almacenamiento en memoria) desde este registro al iniciar.
  • Uso de filtros Bloom para minimizar accesos al almacenamiento mediante la verificación de la existencia de una clave antes de leer de SSTable (almacenamiento permanente).
  • Soporte para los algoritmos Snappy, LZ4 y ZSTD para comprimir registros en el almacenamiento SSTable y el registro WAL.
  • Capacidad para definir el tiempo de vida de los registros (TTL) y excluir automáticamente los registros caducados.
  • Tres modos de sincronización de datos en RAM con almacenamiento permanente: NONE (el más rápido), BACKGROUND (balanceado), FULL (el más confiable).
  • Posibilidad de configurar el tamaño del memtable, métodos de compresión, filtros Bloom, modo de sincronización y parámetros de empaquetado para cada familia de columnas.
  • API C simple que devuelve 0 si la operación se ejecuta con éxito y -1 en caso de error.
  • Uso de SBHA (Sorted Binary Hash Array) para la búsqueda rápida de datos en SSTable, lo que permite determinar los desplazamientos de bloques con claves sin un escaneo completo.
  • Formato binario portátil y compacto para la representación de la base de datos, que admite versionado.
  • Mecanismos integrados de control de integridad, detección de daños en los datos y recuperación.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster