YugabyteDB
![]() | |
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]
History
[edit]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]
Funding
[edit]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] |
Architecture
[edit]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]
![Architecture Block Diagram for YugabyteDB](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/YugabyteDBArchitecture.png/220px-YugabyteDBArchitecture.png)
DocDB
[edit]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]
YugabyteDB Query Layer
[edit]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:
- Triggers & Stored Procedures[37]
- PostgreSQL extensions that operate in the query layer[37]
- Native JSONB support[37]
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]
- JSON data types supported natively[43]
- Tables can have secondary indexes[44]
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]
Cluster-to-cluster replication
[edit]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.
Migration tooling
[edit]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.
See also
[edit]- Cloud database
- Distributed SQL
- Comparison of relational database management systems
- Comparison of object–relational database management systems
- Cloud native computing
- Database management system
- List of databases using MVCC
- List of relational database management systems
- CockroachDB
- TiDB
References
[edit]- ^ "YugabyteDB System Properties". DB-Engines. Retrieved 30 December 2021.
- ^ "Karthik Ranganathan". Dataversity. Retrieved 30 December 2021.
- ^ Borthakur, Dhruba; Rash, Samuel; Schmidt, Rodrigo; Aiyer, Amitanand; Gray, Jonathan; Sarma, Joydeep Sen; Muthukkaruppan, Kannan; Spiegelberg, Nicolas; Kuang, Hairong; Ranganathan, Karthik; Molkov, Dmytro; Menon, Aravind (2011). "Apache hadoop goes realtime at Facebook". Proceedings of the 2011 ACM SIGMOD International Conference on Management of data. p. 1071. doi:10.1145/1989323.1989438. ISBN 9781450306614. S2CID 207188340. Retrieved 15 January 2022.
{{cite book}}
:|website=
ignored (help) - ^ "YugaByte Raises $8M in Series A Funding". FINSMES. 2 November 2017. Retrieved 30 December 2021.
- ^ "Yugabyte CTO outlines a PostgreSQL path to distributed cloud". VentureBeat. 26 July 2021. Retrieved 31 December 2021.
- ^ "Yugabyte expands its fully managed enterprise cloud service with $188M". VentureBeat. 28 October 2021. Retrieved 30 December 2021.
- ^ "Yugabyte Named a 2020 Gartner Cool Vendor in Data Management". BusinessWire. 2 November 2020. Retrieved 30 December 2021.
- ^ "Yugabyte Cloud: a Managed Distributed SQL Database". InfoQ. Retrieved 31 December 2021.
- ^ "Yugabyte Delivers Effortless Distributed SQL With Cloud Database-as-a-Service". BusinessWire. 21 September 2021. Retrieved 30 December 2021.
- ^ "YugabyteDB Named in the 2023 Gartner® Magic Quadrant™ for Cloud Database Management Systems". 22 December 2023. Retrieved 22 December 2023.
- ^ "Another cloud native SQL database unicorn: Yugabyte raises $188M Series C funding at $1.3B valuation". ZDNet. Retrieved 12 January 2022.
- ^ "YugaByte Raises $8M in Series A Funding". Finsmes. 2 November 2017.
- ^ "YugaByte Receives $8M Series A Round". VC News Daily. Retrieved 12 January 2022.
- ^ "YugaByte raises $16 Million to combine SQL and NoSQL in a single database". Technologies.org. Retrieved 12 January 2022.
- ^ "YugaByte's new database software rakes in $16 million so developers can move to any cloud". TechCrunch. 12 June 2018. Retrieved 12 January 2022.
- ^ "Another globally distributed cloud native SQL database on the rise: Yugabyte Raises $30 million in Series B Funding". ZDNet. Retrieved 12 January 2022.
- ^ "Yugabyte raises $30M for its cloud-native distributed SQL database". SiliconAngle. 9 June 2020. Retrieved 12 January 2022.
- ^ "Yugabyte raises $48M for open source SQL database alternative". VentureBeat. 3 March 2021. Retrieved 12 January 2022.
- ^ "Yugabyte Raises $48 Million Funding Round to Accelerate Distributed SQL Enterprise Adoption and Fuel Global Expansion". YahoonFinance. Retrieved 12 January 2022.
- ^ "Yugabyte's latest funding round values the distributed SQL system at $1.3bn". The Register. Retrieved 12 January 2022.
- ^ "Another cloud native SQL database unicorn: Yugabyte raises $188M Series C funding at $1.3B valuation". ZDNet. Retrieved 12 January 2022.
- ^ "High-performance database startup Yugabyte raises $188M in new funding round". Silicon Angle. 28 October 2021. Retrieved 12 January 2022.
- ^ "ACID Transactions". Devopedia. 18 August 2019. Retrieved 12 January 2022.
- ^ "ICT Solutions for local flexibility markets" (PDF). Academia de Studii Economice din Bucuresti. Proceedings of the IE 2020 International Conference. Retrieved 15 January 2022.
- ^ "YugaByte DB 1.3.1". Jepsen.io. Retrieved 30 December 2021.
- ^ "YugaByteDB: A Distributed Cloud Native Database for a Highly Scalable Data Store". Open Source Foru. 14 September 2020. Retrieved 15 January 2022.
- ^ "Yugabyte Design Goals". Yugabyte.com. Retrieved 15 January 2022.
- ^ Galić, Zdravko; Vuzem, Mario (2020). "A Generic and Extensible Core and Prototype of Consistent, Distributed, and Resilient LIS". ISPRS International Journal of Geo-Information. 9 (7): 437. Bibcode:2020IJGI....9..437G. doi:10.3390/ijgi9070437.
- ^ "Yugabyte Layered Architecture". Yugabyte. Retrieved 15 January 2022.
- ^ a b c d e f g Hirsch, Orhan Henrik. "Scalability of NewSQL Databases in a Cloud Environment" (PDF). Norwegian University of Science and Technology. NYNU Open. Retrieved 15 January 2022.
- ^ a b c d e f Budholia, Akash. "NewSQL Monitoring System". San Jose State University Scholar Works. Retrieved 15 January 2022.
- ^ "Hybrid Clock". Martin Fowler. Retrieved 30 December 2021.
- ^ "Distributed Transactions without Atomic Clocks" (PDF). Yugabyte. Retrieved 15 January 2022.
- ^ "Yugabyte DB 2.0 Ships Production-Ready Distributed SQL Database for Going Cloud Native". Integration Developer News. Retrieved 15 January 2022.
- ^ "Yugabyte Structured Query Language (YSQL)". Yugabyte. Retrieved 15 January 2022.
- ^ "Yugabyte Meets Developer Demand for Comprehensive PostgreSQL Compatibility with YugabyteDB 2.11". BusinessWire. 23 November 2021. Retrieved 15 January 2022.
- ^ a b c d "PostgreSQL Compatibility in YugabyteDB 2.0". Yugabyte. 17 September 2019.
- ^ "Client Drivers for YSQL". Yugabyte.
- ^ "Why We Built YugabyteDB by Reusing the PostgreSQL Query Layer". Yugabyte. 24 April 2020. Retrieved 15 January 2022.
- ^ "Yugabyte Cloud Query Language (YCQL)". Yugabyte. Retrieved 15 January 2022.
- ^ "Client drivers for YCQL". Yugabyte.
- ^ "ACID Transactions". Yugabyte.
- ^ "YCQL JSONB Data Type". Yugabyte. Retrieved 15 January 2022.
- ^ "YCQL Secondary Indexes". Yugabyte. Retrieved 15 January 2022.
- ^ "YugabyteDB: Postgres foreign data wrapper". Gruchalski. 8 November 2021. Retrieved 15 January 2022.
- ^ "YSQL Access Control". Yugabyte. Retrieved 15 January 2022.
- ^ "YCWL access Controls". Yugabyte. Retrieved 15 January 2022.
- ^ "Yugabyte Expands Multi-Region Database Capabilities and Enterprise-Grade Security with YugabyteDB 2.5". Business Wire. 12 November 2020. Retrieved 15 January 2022.
- ^ "xCLuster Replication". Yugabyte. Retrieved 15 January 2022.
- ^ "Yugabyte simplifies SQL database migration with YugabyteDB Voyager". siliconANGLE. 24 January 2023. Retrieved 15 March 2023.
- ^ "Yugabyte chomps into cloud migration". Techzine. 2 February 2023. Retrieved 15 March 2023.