Yugabyte was founded by ex-Facebook engineers Kannan Muthukkaruppan, Karthik Ranganathan, and Mikhail Bautin. At Facebook, they were part of the team that built and operated Cassandra and HBase[2][3] for workloads such as Facebook Messenger and Facebook's Operational Data Store.[4]
The founders came together in February 2016 to build YugabyteDB.[5][6]
YugabyteDB was initially available in two editions: community and enterprise. In July 2019, Yugabyte open sourced previously commercial features and launched YugabyteDB as open-source under the Apache 2.0 license.
The rapid evolution of the product led to being named as a 2020 Gartner Cool Vendor in Data Management.[7]
Yugabyte launched Yugabyte Cloud,[8] now renamed YugabyteDB Aeon, a fully managed database-as-a-service offering of YugabyteDB, in September 2021.[9]
YugabyteDB was named in the 2023 Gartner Magic Quadrant™ for Cloud Database Management Systems. [10]
Six years after the company's inception, Yugabyte closed a $188 Million Series C funding round to become a Unicorn start-up with a valuation of $1.3Bn[11]
YugabyteDB is a distributed SQL database that aims to be strongly transactionally consistent across failure zones (i.e. ACID compliance].[23][24] Jepsen testing, the de facto industry standard for verifying correctness, has never fully passed, mainly due to race conditions during schema changes.[25]InCAP Theorem terms YugabyteDB is a Consistent/Partition Tolerant (CP) database.[26][27][28]
YugabyteDB has two layers,[29] a storage engine known as DocDB and the Yugabyte Query Layer.[30]
The engine also exploits a Hybrid Logical Clock[32][30] that combines coarsely-synchronized physical clocks with Lamport clocks to track causal relationships.[33]
The DocDB layer is not directly accessible by users.[30]
Yugabyte has a pluggable query layer that abstracts the query layer from the storage layer below.[34] There are currently two APIs that can access the database:[31]
YSQL[35] is a PostgreSQL code-compatible API[36][37] based around v11.2. YSQL is accessed via standard PostgreSQL drivers using native protocols.[38] It exploits the native PostgreSQL code for the query layer[39] and replaces the storage engine with calls to the pluggable query layer. This re-use means that Yugabyte supports many features, including:
YCQL[40] is a Cassandra-like API based around v3.10 and re-written in C++. YCQL is accessed via standard Cassandra drivers[41] 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.[42]
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.[45]
The security model for accessing the system is inherited from the API, so access controls for YSQL look like PostgreSQL,[46] and YCQL looks like Cassandra access controls.[47]
In addition to its core functionality of distributing a single database, YugabyteDB has the ability to replicate between database instances.[48][49] The replication can be one-way or bi-directional and is asynchronous.
One-way replication is used either to create a read-only copy for workload off-loading or in a read-write mode to create an active-passive standby.
Bi-directional replication is generally used in read-write configurations and is used for active-active configurations, geo-distributed applications, etc.
Yugabyte also provides YugabyteDB Voyager, tooling to facilitate the migrationofOracle and other similar databases to YugabyteDB.[50][51] This tool supports the migration of schemas, procedural code and data from the source platform to YugabyteDB.