Skip to content
CAI
Software that uses CAICheck a score

aeternity/mnesia_rocksdb

55.9

Adequate · 2 October 2026

5.1k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Mnesia RocksDB backend plugin that replaces or augments the default Mnesia storage engine with a RocksDB-based implementation. It provides core database capabilities including table administration, query execution, and transaction management, while supporting features like index creation and data migration. The system ensures data integrity through serializing mutexes and comprehensive test coverage for various table types and operations.

Features

Add Mnesia RocksDB internal header definitions

A new header file, mnesia\_rocksdb.hrl, has been added to define internal constants for the Mnesia RocksDB backend. This includes byte-offset definitions for storing data and metadata (INFO\_START, INFO\_TAG, DATA\_START), limits for bag object counters (BAG\_CNT, MAX\_BAG), and a version identifier (VSN=2). These definitions support the underlying storage mechanism's data layout.

include · high confidence

Initial documentation for the Mnesia RocksDB backend plugin

This release adds comprehensive documentation for the \mnesia\_rocksdb\ backend plugin. The \doc/\ directory now includes a \README.md\ covering usage, prerequisites (Erlang/OTP 21.0+, RocksDB, sext), customization options, and caveats (such as the lack of table size tracking for \bag\ tables). It also provides generated EDoc documentation for all core modules (\mnesia\_rocksdb\, \mrdb\, \mnesia\_rocksdb\_admin\, etc.) and a \plugin-userguide.md\ illustrating how to register and use the backend plugin with Mnesia.

doc · high confidence

Behavioural changes

RocksDB backend refactored with new modules and dependency updates

The backend has been significantly restructured: the local sext encoding module has been removed in favor of the external sext library, which is now listed as a dependency in the application manifest. A new admin module (mnesia\_rocksdb\_admin) and a dedicated select module (mrdb\_select) have been added to handle table administration and query execution, while the core data access logic has been moved to a new mrdb module. Additionally, a serializing mutex (mrdb\_mutex) has been introduced to manage concurrent access, and internal naming conventions have been updated (e.g., ldb to rdb).

src · high confidence

Upgrade RocksDB backend and expand build tooling

The project switches its RocksDB dependency from the standard package to a patched EMQX fork (tag 1.8.0-emqx-10) and adds the sext, hut, and parse\_trans libraries. It raises the minimum Erlang/OTP requirement to 21.0, introduces dialyzer and xref checks, and adds new Makefile targets for running these static analysis tools alongside existing tests.

(repo-wide) · high confidence

Test coverage

Expanded test coverage for Mnesia RocksDB integration

Added new Common Test suites to validate core Mnesia RocksDB functionality: \mnesia\_rocksdb\_indexes\_SUITE\ covers index creation, deletion, and plugin management across RAM, disc, and RocksDB table types; \mnesia\_rocksdb\_migration\_SUITE\ verifies standalone-to-column-family migrations and encoding changes; and \mnesia\_rocksdb\_SUITE\ tests batch operations, transactions, and encoding defaults. Existing tests were updated to include proper semantics for ordered set operations (first, next, prev, last) and to improve test library logging and reset capabilities.

test · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 57 → 56 (-1.0)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 93 → 93 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 32 → 32 (+0.0)
  • Readiness 64 → 59 (-5.6)
  • Security 92 → 97 (+4.8)

Resolved (1)

  • Coverage not measured — no coverage collector is wired up

New (3)

  • Documentation: no contributor guidance (README.md)
  • Documentation: no project overview (README.md)
  • Outdated: sext

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

aeternity/mnesia_rocksdb was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit a6567a217f54c40a36b2e4729ba30f1db08713bc — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.