leo-project/leo_redundant_manager
65.0
Adequate · 17 September 2026
8.1k
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is a redundancy management and cluster coordination library for the LeoFS distributed storage system. It handles consistent hash ring distribution, tracks node membership and lifecycle, and manages multi-datacenter replication through persistent Mnesia-backed tables. The component includes synchronization mechanisms to maintain cluster consistency across remote sites and provides benchmarking capabilities for performance validation.
Features
Add benchmark driver and config for Leo Redundant Manager
A new Basho Bench driver (basho\_bench\_driver\_leo\_redundant\_manager) and its corresponding configuration file (leo\_redundant\_manager\_test.config) have been added to the priv directory. This enables users to run performance benchmarks against the Leo Redundant Manager component, specifically testing GET operations across a multi-node cluster setup.
priv · high confidence
Initial implementation of multi-datacenter cluster management tables and synchronization
The system now includes a new set of Mnesia-backed tables and behaviors to manage multi-datacenter replication (MDCR). This adds persistent storage and retrieval for cluster configuration, cluster information, cluster members, cluster managers, and cluster status, along with a dedicated synchronization server to keep these records consistent across remote clusters.
src · high confidence
Initial release of leo\_redundant\_manager with Erlang/OTP 19-28 support
This entry introduces the leo\_redundant\_manager library, which provides redundancy management and cluster coordination for the LeoFS distributed storage system. The library manages consistent hash rings (RING) for data distribution, tracks cluster node membership and lifecycle, and supports multi-datacenter replication. The project is initialized with a rebar.config that requires Erlang/OTP versions 19 through 28, pulls in leo\_mq v2.1.0, leo\_rpc v0.11.0, and meck v1.1.0 as dependencies, and includes a Travis CI configuration for testing across OTP 19.3, 20.3, 21.3, and 22.2.
(repo-wide) · high confidence
Initial release of the Leo Redundant Manager include definitions
This change introduces the \leo\_redundant\_manager.hrl\ header file, establishing the foundational data structures and constants for the redundant manager component. It defines the Erlang types and macros for consistency properties (N, W, R, D), node states (attached, detached, running, etc.), and the configuration of member and ring tables (current and previous versions) stored in ETS or Mnesia. It also sets default values for system parameters such as the number of vnodes, replica counts, and cluster identifiers, providing the shared interface required for cluster membership and data redundancy management.
include · high confidence
Test coverage
Added EUnit tests for cluster tables and membership management
Added comprehensive EUnit test suites for the Leo Redundant Manager's internal data structures and membership logic. The new tests cover CRUD operations and state transitions for cluster member tables (supporting both ETS and Mnesia backends), cluster info, cluster members, cluster managers, and cluster statistics. Additionally, tests were added for the cluster synchronization mechanism, local membership management, and the message queue client's handling of node-down events, along with a benchmark test for lookup performance.
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
Baseline
- First survey — no prior run to compare against. CAI 65.
Lenses
- Code Health 91
- Architecture 100
- Maturity 55
- Readiness 70
- Security 67
Changes since last survey
- 300 commits — 269 feature/other, 31 fixes
By area
- (root) — 92 commits
- (repo) — 69 commits
- src/leo_redundant_manager.app.src — 64 commits
- include/leo_redundant_manager.hrl — 15 commits
- src/leo_redundant_manager_worker.erl — 13 commits
- src/leo_redundant_manager_api.erl — 11 commits
- src/leo_membership_mq_client.erl — 8 commits
- src/leo_cluster_tbl_conf.erl — 5 commits
- src/leo_redundant_manager.erl — 5 commits
- src/leo_cluster_tbl_member.erl — 4 commits
- src/leo_mdcr_tbl_cluster_info.erl — 3 commits
- src/leo_mdcr_tbl_cluster_stat.erl — 2 commits
- src/leo_membership_cluster_local.erl — 2 commits
- test/leo_redundant_manager_worker_tests.erl — 2 commits
- src/leo_cluster_tbl_sync_behaviour.erl — 1 commit
- src/leo_mdcr_tbl_sync.erl — 1 commit
- src/leo_membership_cluster_remote.erl — 1 commit
- src/leo_redundant_manager_sup.erl — 1 commit
- test/leo_redundant_manager_api_tests.erl — 1 commit
Notable commits
- fix: Fix Copyright
- fix: Fix a minor issue
- fix: Fix a return value of handle_call/1
- fix: Fix a return value of handle_call/1#2
- fix: Fix building leo_redundant_manager
- fix: Fix code format and rename some vars to be more readable
- fix: Fix collect_redundancies_by_key
- fix: Fix dialyzer warns
- fix: Fix force-sync fun
- fix: Fix leo-project/leofs#439
- fix: Fix leo-project/leofs#468
- fix: Fix leo-project/leofs/issues/254
- fix: Fix leo-project/leofs/issues/299
- fix: Fix leo-project/leofs/issues/304
- fix: Fix leo-project/leofs/issues/315 and leo-project/leofs/issues/317
- fix: Fix leo-project/leofs/issues/329
- fix: Fix leo-project/leofs/issues/416
- fix: Fix leo-project/leofs/issues/468
- fix: Fix leo-project/leofs/issues/645
- fix: Fix leo_redundant_manager_api:get_redundancies_by_addr_id/3 after its review
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
leo-project/leo_redundant_manager 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 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b127eda2c6d9a1a318adc9d9163bd4dcc55bb7c8 — the exact code this score is about.
- Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.