Original author(s) | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
---|---|
Developer(s) | Yugabyte, Inc. |
Initial release | 2016 |
Stable release | 2.20 (Stable) 2.19 (Development) / January 25, 2024 October 25, 2023 |
Repository | |
Written in | C++ |
Operating system | Linux RedHat 7.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 |
Company type | Private |
---|---|
Industry | Software |
Founded | 2016 |
Founder | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
Headquarters | Sunnyvale, California, USA |
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 |
YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte. [1]
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] during a period of significant growth in workloads such as Facebook Messenger and Facebook's Operational Data Store. [4]
The founders came together in February 2016 to build YugabyteDB, [5] believing that the trends they experienced at Facebook – microservices, containerization, high availability, geographic distribution, APIs, and open-source – were relevant to all businesses, especially as they move from on-premise to cloud-native operations. [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 Managed, 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]
Series | Date Announced | Amount | Investors |
---|---|---|---|
A | 10 Feb 2016 | $8M | Lightspeed Venture Partners, Jeff Rothschild [12] [13] |
A | 12 Jun 2018 | $16M | Lightspeed Venture Partners, Dell Technology Capital [14] [15] |
B | 09 Jun 2020 | $30M | Wipro Ventures, Lightspeed Venture Partners. Dell Technology Capital. 8VC [16] [17] |
B | 03 Mar 2021 | $48M | Wipro Ventures. Lightspeed Venture Partners. Greenspring Associates, Dell Technology Capital, 8VC [18] [19] |
C | 28 Oct 2021 | $188M | Wells Fargo Strategic Capital, Sapphire Ventures, Meritech Capital Partners, Lightspeed Venture Partners, Dell Technology Capital, 8VC [20] [21] [22] |
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] In CAP 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 storage engine consists of a customized RocksDB [30] [31] combined with sharding and load balancing algorithms for the data. In addition, the Raft consensus algorithm controls the replication of data between the nodes. [30] [31] There is also a Distributed transaction manager [30] [31] and Multiversion concurrency control (MVCC) [30] [31] to support distributed transactions. [31]
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:
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 migration of Oracle 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.
{{
cite book}}
: |website=
ignored (
help)