YugabyteDB is a distributed SQL database that aims to be strongly transactionally consistent across failure zones (i.e.
ACID compliance). In
CAP Theorem terms YugabyteDB is a Consistent/Partition Tolerant (CP) database. YugabyteDB has two layers, a storage engine known as DocDB and the Yugabyte Query Layer.
DocDB The storage engine consists of a customized
RocksDB The engine also exploits a Hybrid Logical Clock The DocDB layer is not directly accessible by users. There are currently two APIs that can access the database: is a PostgreSQL code-compatible API based around v11.2. YSQL is accessed via standard PostgreSQL drivers using native protocols. It exploits the native PostgreSQL code for the query layer and replaces the storage engine with calls to the pluggable query layer. This re-use means that Yugabyte supports many features, including: • Triggers & Stored Procedures is a Cassandra-like API based around v3.10 and re-written in C++. YCQL is accessed via standard Cassandra drivers using the native protocol port of 9042. In addition to the 'vanilla' Cassandra components, YCQL is augmented with the following features: • Transactional consistency - unlike Cassandra, Yugabyte YCQL is transactional. •
JSON data types supported natively • Tables can have secondary indexes Currently, data written to either API is not accessible via the other API, however YSQL can access YCQL using the PostgreSQL foreign data wrapper feature. The security model for accessing the system is inherited from the API, so access controls for YSQL look like PostgreSQL, and YCQL looks like Cassandra access controls. == Cluster-to-cluster replication ==