-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Open
Labels
databaseBanyanDB - SkyWalking native databaseBanyanDB - SkyWalking native databasefeatureNew featureNew featurehelmHelm in skywalking-kubernetesHelm in skywalking-kubernetes
Milestone
Description
Search before asking
- I had searched in the issues and found no similar feature requirement.
Description
Description
Context & Motivation
Currently, BanyanDB relies on etcd for managing cluster metadata (schema, node registry, shard allocation). While etcd provides strong consistency, it introduces significant operational complexity, prevents efficient scaling on edge/standalone deployments, and forces the maintenance of heterogeneous storage engines.
This issue tracks the strategic initiative to replace the etcd-based registry with a Property-backed Metadata Service. This will unify the storage layer, allowing BanyanDB to manage its own control plane using its native Property data model and inverted index.
Architecture Changes
- Storage Layer: Replace the
etcd/clientv3dependency with aPropertyStorageAdapterthat maps metadata objects to Property documents (e.g., mappingGroup,Name,IDstructure). - Notification Mechanism: Transition from etcd "Watch" streams to a Periodic Scanning model. A background scanner will poll for changes based on
updated_attimestamps to refresh the local In-Memory Cache.
Task List
-
Core Storage
- Define reserved Property groups (e.g.,
_system,_schema). - Implement
PropertyRegstryin "metadata" pkg
- Define reserved Property groups (e.g.,
-
Notification & Caching
- Develop the Periodic Scanner to poll for metadata changes using
updated_atfilters,. - Build the In-Memory State Cache to serve read requests without disk I/O.
- Remove user side cache to reduce memory overhead(Optional, we might move it to an independent task)
- Develop the Periodic Scanner to poll for metadata changes using
Use case
No response
Related issues
No response
Are you willing to submit a pull request to implement this on your own?
- Yes I am willing to submit a pull request on my own!
Code of Conduct
- I agree to follow this project's Code of Conduct
Metadata
Metadata
Assignees
Labels
databaseBanyanDB - SkyWalking native databaseBanyanDB - SkyWalking native databasefeatureNew featureNew featurehelmHelm in skywalking-kubernetesHelm in skywalking-kubernetes