TidesDB 1.0 Launches with ACID Transaction Support

Published the first stable release of the TidesDB project, which develops a library for storing data in key/value format. The project can be used as a standalone running engine or for embedding into applications. Key features include support for ACID transactions and optimization for efficient data storage on Flash drives and in RAM. The code is written in C and is distributed under the MPL 2.0 license. The bindings are prepared for the languages C++, Go, Java, Python, Rust, Lua and JavaScript.

For data storage, the structure LSM-tree (a log-structured tree with merging) is used, providing high performance not only when reading, but also when performing operations of writing and changing data. Read operations do not block writing and reading data, and write operations only block the family of columns in which the write is performed. To further speed up reading, indexes and caching based on bloom filters are supported.

There is full support for ACID transactions, allowing you to atomically make changes that span families of columns, and, if necessary, atomically roll back operations. Data can be stored in compressed form with the choice of compression algorithm in relation to the column family. It is possible to set locks at the level of individual column families and storage packaging in parallel mode without blocking the execution of database operations.

Main features:

  • Support for Column Families – isolated sets of data in key/value format. Each column family uses its own memtable, SSTable and WAL log.
  • ACID transactions covering multiple operations with column families.
  • Optimization for parallel data access.
  • Support for bidirectional iterators, allowing you to iterate key/value pairs forward or backward relative to the selected position in the store, using the initially specified sorting method.
  • Support for adding your own key comparison functions. Availability of built-in functions for comparing memcmp, string and numeric.
  • Maintaining a log of operations (WAL, Write-Ahead Log
/Reports, release notes, official announcements.