martinsumner/kv_index_tictactree
76.3
Strong · 2 October 2026
6.8k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is an Erlang library implementing Active Anti-Entropy (AAE) for Riak KV, designed to detect and repair data drift between nodes. It utilizes non-cryptographic Merkle trees to efficiently compare and synchronize key-value stores through asynchronous exchanges and consistency repair subsystems. The codebase includes core modules for managing repair lifecycles, tree caching, and parallel key store operations, supported by comprehensive end-to-end and property-based testing.
Features
Add AAE header file with logging macros and defaults
A new include file \aae.hrl\ has been added, defining non-configurable defaults such as \TREE\_SIZE\ and \MAGIC\, along with tag definitions like \HEAD\_TAG\ and \RIAK\_TAG\. It introduces helper macros for logging, specifically \STD\_LOG\ and \STD\_LOG\_INT\, which integrate with \leveled\_log\ and \logger\ to handle log level checks and message formatting, including conditional type definitions for OTP versions prior to 26.
include · high confidence
Initial release of KV Tictac Tree AAE library
This change introduces the KV Tictac Tree library, an Active Anti-Entropy (AAE) implementation for Erlang-based key-value stores. The project provides a new \rebar.config\ build file and comprehensive documentation (\README.md\) outlining the library's purpose: using non-cryptographic Merkle trees (TicTac trees) to efficiently compare and synchronize data stores. The library supports segment filtering, cached tree views, and asynchronous exchanges, targeting integration with Riak KV versions 2.9, 3.0, and 3.1, with OTP support ranging from R16 up to OTP 27.
(repo-wide) · high confidence
Introduce AAE consistency repair subsystem
Adds a new set of Erlang modules (aae\_controller, aae\_exchange, aae\_keystore, aae\_runner, aae\_treecache, aae\_util) that implement an Anti-Entropy (AAE) repair system for Riak KV. The controller manages the lifecycle of repair exchanges, coordinating with a key store (supporting both parallel and native modes) and a tree cache to compare and reconcile data differences between nodes. The exchange module handles the logic for full and partial tree comparisons, root/branch/clock checks, and repair triggers, while the runner manages asynchronous fetch operations. This provides the core infrastructure for detecting and fixing data drift within the cluster.
src · high confidence
Test coverage
Added property-based tests for AAE controller lifecycle; Added test for user-defined timeout on wait\_on\_sync; Initial end-to-end test suite for AAE controller and mock vnodes.
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 62 → 76 (+14.4)
- 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 44 → 73 (+29.5)
- Readiness 56 → 66 (+9.2)
- Security 100 → 100 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
Resolved (3)
- Coverage not measured — no coverage collector is wired up
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
martinsumner/kv_index_tictactree 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 686a3b9cfa3c4a73bd9ccd4d49c0ea0ed86fee93 — 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.