YiDB

YiDB is a high performance metadata-driven persistence and query service for configuration data
with supporting of REST API and client lib (Java, Python).
YiDB is a generic system that be used for cloud configuration,
as well other software needs for configuration.
Moreover, YiDB supports multiple data repositories for desired data isolation.

High performance    High Availability    Scalablity    Open Source    NoSQL    Monitor

View on GitHub Download (13 MB)

Fork me on GitHub

Manage tens of millions objects and relationships in it!



Metadata Model

The metadata model is based on object-oriented paradigm that can support graph/tree data model.

The metadata can contain two types of field: attribute field define payload of entity and relationship field define relationship between entity.

The metadata is extensible by inheritance: child metadata can inherit fields from parent metadata.


Persistence Service

The persistence service provides CRUD API for the runtime entity of metadata.

The entity can be flat-structure or embedded-structure that conformed to the metadata definition.

Besides the basic functionality, it also supports some advanced features: version based optimistic locking, audit tracing, reference integrity, security access control of data, branching and advanced data browser.


Query Service

The query service provides an imperative style query language that defines the traversal path of graph/tree data model.

The query language supports Boolean filter, attribute selection and implicit join that will extract a tree result from graph data set. For example, ApplicationService[@name = "comp-iq"].groups[@name = "columns"].groups[@name = "col1"].serviceInstances will return service instances under column 1 of comp-iq application

The query language also provides SQL like utilities such as sort, limit, skip, hint, explain and etc.


System Management