YugabyteDB
An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion, which will decide whether or not to retain it. |
Original author(s) | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
---|---|
Developer(s) | Yugabyte, Inc. |
Initial release | 2016 |
Stable release | 2.8 (Stable) 2.11 (Development) / November 18, 2021 November 23, 2021 |
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
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] The team scaled the data platform for massive real-time workloads such as Facebook Messenger and Facebook's Operational Data Store from millions to billions of users in just a few years.[3]
The founders came together in February 2016 to build YugabyteDB,[4] 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.[5]
YugabyteDB was initially available in two editions: community and enterprise. In July 2019, Yugabyte open sourced previously commercial features and launched YugabyteDB as 100% 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.[6]
Yugabyte launched Yugabyte Cloud,[7] a fully managed database-as-a-service offering of YugabyteDB, in September 2021.[8] Yugabyte Cloud combines the power of distributed SQL with the ease of use of a cloud database management system.
Funding
Only 6 years after the company inception Yugabyte closed a $188 Million Series C finding round to became a Unicorn start-up with a valuation of $1.3Bn[9]
Series | Date Announced | Amount | Investors |
---|---|---|---|
A | 10 Feb 2016 | $8M | Lightspeed Venture Partners, Jeff Rothschild[10][11] |
A | 12 Jun 2018 | $16M | Lightspeed Venture Partners, Dell Technology Capital[12][13] |
B | 09 Jun 2020 | $30M | Wipro Ventures, Lightspeed Venture Partners. Dell Technology Capital. 8VC [14][15] |
B | 03 Mar 2021 | $48M | Wipro Ventures. Lightspeed Venture Partners. Greenspring Associates, Dell Technology Capital, 8VC[16][17] |
C | 28 Oct 2021 | $188M | Wells Fargo Strategic Capital, Sapphire Ventures, Meritech Capital Partners, Lightspeed Venture Partners, Dell Technology Capital, 8VC[18][19][20] |
Features
YugabyteDB has the following key features:
- Horizontally scaling from 3 nodes upward
- Deploy a database instance across multiple failure zones (rack, availability zone, cloud region) in order to survive an outage at the failure zone level
- Enterprise-grade security for Data at rest, Data in motion, Field-level encryption, Authentication, and Authorisation as well as appropriate audit logging
- Code compatibility with PostgreSQL by reusing PostgreSQL's query layer to achieve a high degree of compatibility with existing PostgreSQL applications including triggers, functions, stored procedures, strong secondary indexes, and distributed ACID transactions.
- Geo-placement of data - the ability to limit data to a given location or set of locations
- Asynchronous replication between database instances
- Cloud Agnostic - running on-premise, in Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) to avoid vendor lock-in on a single cloud provider
- Support for Hybrid (on-premise and in the cloud) or Multi-cloud (across multiple cloud vendors) deployments
- Rolling release allowing the database to be upgraded without taking it down
Use Cases
Yugabyte, in common with other transactional distributed SQL databases, is best suited to supporting:
- System of Record i.e. the main transactional systems of an organization, these would typically include applications such as shopping carts, IoT event stores, bank transactions, etc.
- System of Reference or Master Data Management systems used to store items such as product catalogs and other reference data.
System of Analysis (such as a Data warehouse) use cases are NOT good use cases for any distributed SQL database[21] Analytical queries generally collect a large amount of data in a single query and doing this in a distributed SQL database is prone to significant latency due to the distributed nature of the data store.
As a result, early adoption of distributed SQL databases such as YugabyteDB has been in Retail, Telcos, FinTech and IoT vertical segments which are characterized by having high-volume, transactional data that needs to be highly available as they are mission-critical to the organization.
Architecture
YugabyteDB is a distributed SQL database that is strongly transactionally consistent across failure zones (i.e. ACID compliance][22] as demonstrated by Jepsen testing.[23] In CAP Theorem terms YugabyteDB is a Consistent/Partition Tolerant (CP) database.
YugabyteDB has two layers, a storage engine known as DocDB and the Yugabyte Query Layer.
DocDB
The storage engine consists of a customized RocksDB combined with sharding and load balancing algorithms for the data. In addition, the Raft consensus algorithm controls the replication of data between the nodes. There is also a Distributed transaction manager and Multiversion concurrency control (MVCC) to support distributed transactions.
The engine also exploits a Hybrid Logical Clock[24] that combines coarsely-synchronized physical clocks with Lamport clocks to track causal relationships.
The DocDB layer is not directly accessible by users.
YugabyteDB Query Layer
Yugabyte has a pluggable query layer that abstracts the query layer from the storage layer below. There are currently two APIs that can access the database:
YSQL is a PostgreSQL code-compatible API based around v11.2. YSQL is accessed via standard PostgreSQL drivers using native protocols. It exploits the native PostgreSQL code for the query layer 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
- PostgreSQL extensions that operate in the query layer
- Native JSONB support
YCQL is a Cassandra-like API based around v3.10 and re-written in C++. YCQL is accessed via standard Cassandra drivers 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.
- JSON data types supported natively
- Tables can have secondary indexes
Currently, data written to either API is not accessible via the other API.
The security model for accessing the system is inherited from the API, so access controls for YSQL look like PostgreSQL, and YCQL looks like Cassandra access controls.
Additional Functionality
In addition to the core database functionality, there are some additional features of note
Cluster to Cluster Replication
YugabyteDB has the ability to replicate between database instances. 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.
Cluster to cluster replication is relatively uncommon in distributed SQL solutions however YugabyteDB includes this capability in the core database distribution.
Smart Driver
YugabyteDB can generally be accessed with either the native PostgreSQL driver or the native Cassandra driver due to its compatibility with those APIs.
However, Yugabyte also provides a distributed JDBC driver for YSQL that enhances YugabyteDB by eliminating the need for external load balancers. It features
- Cluster-awareness, eliminating the need for an external load balancer. The driver package uses an initial contact point for the YugabyteDB cluster as a means of discovering all the nodes and, if required, refreshing the list of live endpoints with every new connection attempt.
- Topology-awareness, which is essential for geographically distributed applications, where the driver uses nodes that are part of a set of geo-locations specified by topology keys.
This eliminates the need for external load balancers to manage connectivity to a distributed system[25]
Management Console
Yugabyte also has a management console that is available under a source available, a free-trial-only license from the Polyform Project.[26] This standalone package is provided to customers that have a support subscription with the company. The management console provides pre-built automation and monitoring for YugabyteDB features. The management console provides a user interface for human interaction and an API[27] that allows the automation of common tasks into Continuous integration (CI)/Continuous delivery (CD) pipelines. The functionality can be broken down into three categories:
- Day 1 Operations - for example, the provisioning of nodes for the cluster, installation of databases, initial key instantiation, etc.
- Day 2 Operations - for example, database instance upgrades, backup and recovery including Point-in-time recovery, key rotation, etc.
- Monitoring - for example, node and instance health, query performance, etc.
See also
- 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
- ^ "YugabyteDB System Properties". DB-Engines. Retrieved 30 December 2021.
- ^ "Karthik Ranganathan". Dataversity. Retrieved 30 December 2021.
- ^ "YugaByte Raises $8M in Series A Funding". FINSMES. Retrieved 30 December 2021.
- ^ "Yugabyte CTO outlines a PostgreSQL path to distributed cloud". VentureBeat. Retrieved 31 December 2021.
- ^ "Yugabyte expands its fully managed enterprise cloud service with $188M". VentureBeat. Retrieved 30 December 2021.
- ^ "Yugabyte Named a 2020 Gartner Cool Vendor in Data Management". BusinessWire. 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. Retrieved 30 December 2021.
- ^ "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.
- ^ "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. 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. Retrieved 12 January 2022.
- ^ "Yugabyte raises $48M for open source SQL database alternative". VentureBeat. 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. Retrieved 12 January 2022.
- ^ "Distributed Database Systems: The Case for NewSQL". HAL-LIRMM Archive. Retrieved 4 January 2022.
{{cite web}}
: CS1 maint: url-status (link) - ^ "ACID Transactions". Devopedia. Retrieved 12 January 2022.
- ^ "YugaByte DB 1.3.1". Jepsen.io. Retrieved 30 December 2021.
- ^ "Hybrid Clock". Martin Fowler. Retrieved 30 December 2021.
- ^ "YugabyteDB 2.9 eliminates the need for external load balancers". Help Net Security. Retrieved 12 January 2022.
- ^ "Free Trial Licence". Polyform Project. Retrieved 31 December 2021.
- ^ "API Documentation". Yugabyte. Retrieved 31 December 2021.