YugabyteDB
Transactional distributed SQL database
From Wikipedia, the free encyclopedia
YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.[1]
2.23 (Preview) / December 9, 2024
September 13, 2024
| YugabyteDB | |
|---|---|
| Original authors | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
| Developers | Yugabyte, Inc. |
| Initial release | 2016 |
| Stable release | 2024.2 (Stable) 2.23 (Preview) / December 9, 2024 September 13, 2024 |
| Written in | C++ |
| Operating system | Alma Linux 8.x and derivatives, MacOS |
| Platform | Bare Metal, Virtual Machine, Docker, Kubernetes and various container management platforms |
| Available in | English |
| Type | RDBMS |
| License | Apache 2.0 |
| Website | www |
| Repository | |
| Company type | Private |
|---|---|
| Industry | Database |
| Founded | 2016 |
| Founder | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
| Headquarters | Sunnyvale, California, US |
Key people | Kannan Muthukkaruppan (co-founder & president, product development) Karthik Ranganathan (co-founder & CTO) Mikhail Bautin (co-founder & software architect) Bill Cook (CEO) |
| Services | Commercial database management systems |
| Website | yugabyte |
History
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.[7]
Funding
In October 2021, five 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[8]
| Series | Date Announced | Amount | Investors |
|---|---|---|---|
| A | 10 Feb 2016 | $8M | Lightspeed Venture Partners, Jeff Rothschild[9][10] |
| A | 12 Jun 2018 | $16M | Lightspeed Venture Partners, Dell Technology Capital[11][12] |
| B | 09 Jun 2020 | $30M | Wipro Ventures, Lightspeed Venture Partners. Dell Technology Capital. 8VC [13][14] |
| B | 03 Mar 2021 | $48M | Wipro Ventures. Lightspeed Venture Partners. Greenspring Associates, Dell Technology Capital, 8VC[15][16] |
| C | 28 Oct 2021 | $188M | Wells Fargo Strategic Capital, Sapphire Ventures, Meritech Capital Partners, Lightspeed Venture Partners, Dell Technology Capital, 8VC[17][18][19] |
Architecture
YugabyteDB is a distributed SQL database that aims to be strongly transactionally consistent across failure zones (i.e. ACID compliance).[20][21] In CAP Theorem terms YugabyteDB is a Consistent/Partition Tolerant (CP) database.[22][23][24] YugabyteDB has two layers,[25] a storage engine known as DocDB and the Yugabyte Query Layer.[26]

DocDB
The storage engine consists of a customized RocksDB[26][27] combined with sharding and load balancing algorithms for the data. In addition, the Raft consensus algorithm controls the replication of data between the nodes.[26][27] There is also a Distributed transaction manager[26][27] and Multiversion concurrency control (MVCC)[26][27] to support distributed transactions.[27]
The engine also exploits a Hybrid Logical Clock[28][26] that combines coarsely-synchronized physical clocks with Lamport clocks to track causal relationships.[29]
The DocDB layer is not directly accessible by users.[26]
YugabyteDB Query Layer
Yugabyte has a pluggable query layer that abstracts the query layer from the storage layer below.[30] There are currently two APIs that can access the database:[27]
YSQL[31] is a PostgreSQL code-compatible API[32][33] based around v11.2. YSQL is accessed via standard PostgreSQL drivers using native protocols.[34] It exploits the native PostgreSQL code for the query layer[35] 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[33]
- PostgreSQL extensions that operate in the query layer[33]
- Native JSONB support[33]
YCQL[36] is a Cassandra-like API based around v3.10 and re-written in C++. YCQL is accessed via standard Cassandra drivers[37] 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.[38]
- JSON data types supported natively[39]
- Tables can have secondary indexes[40]
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.[41]
The security model for accessing the system is inherited from the API, so access controls for YSQL look like PostgreSQL,[42] and YCQL looks like Cassandra access controls.[43]
Cluster-to-cluster replication
In addition to its core functionality of distributing a single database, YugabyteDB has the ability to replicate between database instances.[44][45] 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.