Software:YugabyteDB

From HandWiki
Short description: Transactional distributed SQL database
YugabyteDB
YugabyteLogo.png
Original author(s)Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin
Developer(s)Yugabyte, Inc.
Initial release2016; 8 years ago (2016)
Stable release
2.16 (Stable)
2.17 (Development) / December 15, 2022; 14 months ago (2022-12-15)
December 8, 2022; 14 months ago (2022-12-08)
Written inC++
Operating systemLinux RedHat 7.x and derivatives, MacOS
PlatformBare Metal, Virtual Machine, Docker, Kubernetes and various container management platforms
Available inEnglish
TypeRDBMS
LicenseApache 2.0
Yugabyte, Inc.
TypePrivate
IndustrySoftware
Founded2016; 8 years ago (2016)
FounderKannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin
HeadquartersSunnyvale, 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)
ServicesCommercial database management systems
Websiteyugabyte.com

YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.[1]

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] 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]

Funding

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[10]

Funding Rounds
Series Date Announced Amount Investors
A 10 Feb 2016 $8M Lightspeed Venture Partners, Jeff Rothschild[11][12]
A 12 Jun 2018 $16M Lightspeed Venture Partners, Dell Technology Capital[13][14]
B 09 Jun 2020 $30M Wipro Ventures, Lightspeed Venture Partners. Dell Technology Capital. 8VC [15][16]
B 03 Mar 2021 $48M Wipro Ventures. Lightspeed Venture Partners. Greenspring Associates, Dell Technology Capital, 8VC[17][18]
C 28 Oct 2021 $188M Wells Fargo Strategic Capital, Sapphire Ventures, Meritech Capital Partners, Lightspeed Venture Partners, Dell Technology Capital, 8VC[19][20][21]

Architecture

YugabyteDB is a distributed SQL database that aims to be strongly transactionally consistent across failure zones (i.e. ACID compliance].[22][23] Jepsen testing, the de facto industry standard for verifying correctness, has never fully passed, mainly due to race conditions during schema changes.[24] In CAP Theorem terms YugabyteDB is a Consistent/Partition Tolerant (CP) database.[25][26][27]

YugabyteDB has two layers,[28] a storage engine known as DocDB and the Yugabyte Query Layer.[29]

Architecture Block Diagram for YugabyteDB
YugabyteDB Architecture

DocDB

The storage engine consists of a customized RocksDB[29][30] combined with sharding and load balancing algorithms for the data. In addition, the Raft consensus algorithm controls the replication of data between the nodes.[29][30] There is also a Distributed transaction manager[29][30] and Multiversion concurrency control (MVCC)[29][30] to support distributed transactions.[30]

The engine also exploits a Hybrid Logical Clock[31][29] that combines coarsely-synchronized physical clocks with Lamport clocks to track causal relationships.[32]

The DocDB layer is not directly accessible by users.[29]

YugabyteDB Query Layer

Yugabyte has a pluggable query layer that abstracts the query layer from the storage layer below.[33] There are currently two APIs that can access the database:[30]

YSQL[34] is a PostgreSQL code-compatible API[35][36] based around v11.2. YSQL is accessed via standard PostgreSQL drivers using native protocols.[37] It exploits the native PostgreSQL code for the query layer[38] 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[36]
  • PostgreSQL extensions that operate in the query layer[36]
  • Native JSONB support[36]

YCQL[39] is a Cassandra-like API based around v3.10 and re-written in C++. YCQL is accessed via standard Cassandra drivers[40] 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.[41]
  • JSON data types supported natively[42]
  • Tables can have secondary indexes[43]

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.[44]

The security model for accessing the system is inherited from the API, so access controls for YSQL look like PostgreSQL,[45] and YCQL looks like Cassandra access controls.[46]

Cluster-to-cluster replication

In addition to its core functionality of distributing a single database, YugabyteDB has the ability to replicate between database instances.[47][48] 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

Yugabyte also provides YugabyteDB Voyager, tooling to facilitate the migration of Oracle and other similar databases to YugabyteDB.[49][50] This tool supports the migration of schemas, procedural code and data from the source platform to YugabyteDB.

See also

References

  1. "YugabyteDB System Properties". https://db-engines.com/en/system/YugabyteDB. 
  2. "Karthik Ranganathan". https://www.dataversity.net/contributors/karthik-ranganathan/. 
  3. Borthakur, Dhruba; Rash, Samuel; Schmidt, Rodrigo; Aiyer, Amitanand; Gray, Jonathan; Sarma, Joydeep Sen; Muthukkaruppan, Kannan; Spiegelberg, Nicolas et al. (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. https://dl.acm.org/doi/abs/10.1145/1989323.1989438. Retrieved 15 January 2022. 
  4. "YugaByte Raises $8M in Series A Funding". 2 November 2017. https://www.finsmes.com/2017/11/yugabyte-raises-8m-in-series-a-funding.html. 
  5. "Yugabyte CTO outlines a PostgreSQL path to distributed cloud". 26 July 2021. https://venturebeat.com/2021/07/26/yugabyte-cto-outlines-a-postgresql-path-to-distributed-cloud/. 
  6. "Yugabyte expands its fully managed enterprise cloud service with $188M". 28 October 2021. https://venturebeat.com/2021/10/28/yugabyte-expands-its-fully-managed-enterprise-cloud-service-with-188m/. 
  7. "Yugabyte Named a 2020 Gartner Cool Vendor in Data Management". 2 November 2020. https://www.businesswire.com/news/home/20201102005567/en/Yugabyte-Named-a-2020-Gartner-Cool-Vendor-in-Data-Management. 
  8. "Yugabyte Cloud: a Managed Distributed SQL Database". https://www.infoq.com/news/2021/10/yugabyte-cloud/. 
  9. "Yugabyte Delivers Effortless Distributed SQL With Cloud Database-as-a-Service". 21 September 2021. https://www.businesswire.com/news/home/20210921005390/en/Yugabyte-Delivers-Effortless-Distributed-SQL-With-Cloud-Database-as-a-Service. 
  10. "Another cloud native SQL database unicorn: Yugabyte raises $188M Series C funding at $1.3B valuation". https://www.zdnet.com/article/another-globally-distributed-cloud-native-sql-database-unicorn-yugabyte-raises-188m-series-c-funding-at-1-3b-valuation/. 
  11. "YugaByte Raises $8M in Series A Funding". 2 November 2017. http://www.finsmes.com/2017/11/yugabyte-raises-8m-in-series-a-funding.html. 
  12. "YugaByte Receives $8M Series A Round". http://www.vcnewsdaily.com/yugabyte/venture-capital-funding/rvcdzhbtxd. 
  13. "YugaByte raises $16 Million to combine SQL and NoSQL in a single database". https://technologies.org/yugabyte-raises-16-million-to-combine-sql-and-nosql-in-a-single-database/. 
  14. "YugaByte's new database software rakes in $16 million so developers can move to any cloud". 12 June 2018. https://techcrunch.com/2018/06/12/yugabytes-new-database-software-rakes-in-16-million-so-developers-can-move-to-any-cloud/. 
  15. "Another globally distributed cloud native SQL database on the rise: Yugabyte Raises $30 million in Series B Funding". https://zd.net/3dOJNIy. 
  16. "Yugabyte raises $30M for its cloud-native distributed SQL database". 9 June 2020. https://siliconangle.com/2020/06/09/yugabyte-raises-30m-cloud-native-distributed-sql-database/. 
  17. "Yugabyte raises $48M for open source SQL database alternative". 3 March 2021. https://venturebeat.com/2021/03/03/yugabyte-raises-48m-for-open-source-sql-database-alternative/. 
  18. "Yugabyte Raises $48 Million Funding Round to Accelerate Distributed SQL Enterprise Adoption and Fuel Global Expansion". https://finance.yahoo.com/news/yugabyte-raises-48-million-funding-140000688.html. 
  19. "Yugabyte's latest funding round values the distributed SQL system at $1.3bn". https://go.theregister.com/feed/www.theregister.com/2021/10/29/yugabyte_series_c/. 
  20. "Another cloud native SQL database unicorn: Yugabyte raises $188M Series C funding at $1.3B valuation". https://www.zdnet.com/article/another-globally-distributed-cloud-native-sql-database-unicorn-yugabyte-raises-188m-series-c-funding-at-1-3b-valuation/. 
  21. "High-performance database startup Yugabyte raises $188M in new funding round". 28 October 2021. https://siliconangle.com/2021/10/28/high-performance-database-startup-yugabyte-raises-188m-series-c-funding-round/. 
  22. "ACID Transactions". 18 August 2019. https://devopedia.org/acid-transactions. 
  23. "ICT Solutions for local flexibility markets". Proceedings of the IE 2020 International Conference. https://www.conferenceie.ase.ro/wp-content/uploads/2020/06/ProceedingsIE2020/ict_solutions_for_local_flexibility_markets.pdf. 
  24. "YugaByte DB 1.3.1". https://jepsen.io/analyses/yugabyte-db-1.3.1. 
  25. "YugaByteDB: A Distributed Cloud Native Database for a Highly Scalable Data Store". 14 September 2020. https://www.opensourceforu.com/2020/09/yugabytedb-a-distributed-cloud-native-database-for-a-highly-scalable-data-store/. 
  26. "Yugabyte Design Goals". https://docs.yugabyte.com/latest/architecture/design-goals/. 
  27. 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. doi:10.3390/ijgi9070437. Bibcode2020IJGI....9..437G. 
  28. "Yugabyte Layered Architecture". https://docs.yugabyte.com/latest/architecture/layered-architecture/. 
  29. 29.0 29.1 29.2 29.3 29.4 29.5 29.6 Hirsch, Orhan Henrik. "Scalability of NewSQL Databases in a Cloud Environment". NYNU Open. https://ntnuopen.ntnu.no/ntnu-xmlui/bitstream/handle/11250/2777732/no.ntnu%3ainspera%3a57320302%3a31535683.pdf?sequence=1&isAllowed=y. 
  30. 30.0 30.1 30.2 30.3 30.4 30.5 Budholia, Akash. "NewSQL Monitoring System". https://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=1996&context=etd_projects. 
  31. "Hybrid Clock". https://martinfowler.com/articles/patterns-of-distributed-systems/hybrid-clock.html. 
  32. "Distributed Transactions without Atomic Clocks". https://www.yugabyte.com/wp-content/uploads/2021/05/Distributed-Transactions-Without-Atomic-Clocks.pdf. 
  33. "Yugabyte DB 2.0 Ships Production-Ready Distributed SQL Database for Going Cloud Native". https://www.idevnews.com/stories/7298/Yugabyte-DB-20-Ships-Production-Ready-Distributed-SQL-Database-for-Going-Cloud-Native. 
  34. "Yugabyte Structured Query Language (YSQL)". https://docs.yugabyte.com/latest/api/ysql/. 
  35. "Yugabyte Meets Developer Demand for Comprehensive PostgreSQL Compatibility with YugabyteDB 2.11". 23 November 2021. https://www.businesswire.com/news/home/20211123005572/en/Yugabyte-Meets-Developer-Demand-for-Comprehensive-PostgreSQL-Compatibility-with-YugabyteDB-2.11. 
  36. 36.0 36.1 36.2 36.3 "PostgreSQL Compatibility in YugabyteDB 2.0". 17 September 2019. https://blog.yugabyte.com/postgresql-compatibility-in-yugabyte-db-2-0/. 
  37. "Client Drivers for YSQL". https://docs.yugabyte.com/latest/reference/drivers/ysql-client-drivers/. 
  38. "Why We Built YugabyteDB by Reusing the PostgreSQL Query Layer". 24 April 2020. https://blog.yugabyte.com/why-we-built-yugabytedb-by-reusing-the-postgresql-query-layer/. 
  39. "Yugabyte Cloud Query Language (YCQL)". https://docs.yugabyte.com/latest/api/ycql/. 
  40. "Client drivers for YCQL". https://docs.yugabyte.com/latest/reference/drivers/ycql-client-drivers/. 
  41. "ACID Transactions". https://docs.yugabyte.com/latest/develop/learn/acid-transactions-ycql/. 
  42. "YCQL JSONB Data Type". https://docs.yugabyte.com/latest/api/ycql/type_jsonb/. 
  43. "YCQL Secondary Indexes". https://docs.yugabyte.com/latest/develop/learn/data-modeling-ycql/#secondary-indexes. 
  44. "YugabyteDB: Postgres foreign data wrapper". 8 November 2021. https://gruchalski.com/posts/2021-11-08-yugabytedb-postgres-foreign-data-wrapper/. 
  45. "YSQL Access Control". https://docs.yugabyte.com/latest/secure/authorization/rbac-model/. 
  46. "YCWL access Controls". https://docs.yugabyte.com/latest/secure/authorization/rbac-model-ycql/. 
  47. "Yugabyte Expands Multi-Region Database Capabilities and Enterprise-Grade Security with YugabyteDB 2.5". 12 November 2020. https://www.businesswire.com/news/home/20201112005160/en/Yugabyte-Expands-Multi-Region-Database-Capabilities-and-Enterprise-Grade-Security-with-YugabyteDB-2.5. 
  48. "xCLuster Replication". https://docs.yugabyte.com/latest/architecture/docdb-replication/async-replication/. 
  49. "Yugabyte simplifies SQL database migration with YugabyteDB Voyager". 24 January 2023. https://siliconangle.com/2023/01/24/yugabyte-simplifies-sql-database-migration-yugabytedb-voyager/?utm_content=235627152&utm_medium=social&utm_source=linkedin&hss_channel=lcp-10643910. 
  50. "Yugabyte chomps into cloud migration". 2 February 2023. https://www.techzine.eu/blogs/data-management/101380/yugabyte-chomps-into-cloud-migration/. 

External links