YugabyteDB
YugabyteDB is a free and open-source, distributed, relational, NewSQL database management system designed to handle large amounts of data spanning across multiple availability zones and geographic regions while providing single-digit latency, high availability, and no single point of failure.
Original author(s) | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
---|---|
Developer(s) | Yugabyte, Inc. |
Initial release | April 2016 |
Stable release | |
Repository | YugabyteDB Repository |
Written in | C++ |
Operating system | Cross-platform |
Available in | English |
Type | NewSQL Database, data store |
License | Apache License 2.0 |
Website | www |
NewSQL databases like YugabyteDB take some of the backend features of NoSQL databases and marry them with the front-end features of mature relational databases. The result allows similar scalability to NoSQL but with some of the more robust features of relational databases. Yugabyte reuses the front end of Postgresql and inherits most of its feature set.[2] Additionally Yugabyte maintains a degree of compatibility with Apache Cassandra which allows applications written for Cassandra's APIs to use Yugabyte with a short migration path. [3]
Main features
- Distributed
- Data is stored on multiple servers and can be read from multiple servers.
- Supports replication and multi-availability zone and geographic zone replication
- Yugabyte replicates data based on the raft protocol [4] which allows fault tolerance across racks or data centers [5]
- Scalability
- Designed to have read and write throughput, both increase linearly as new machines are added, with the aim of no downtime or interruption to applications.
- Fault-tolerant
- Data is automatically replicated to multiple nodes for fault-tolerance. Replication across multiple data centers is supported. Failed nodes can be replaced with no downtime.
- ACID transaction support
- Supports Snapshot Isolation, Serializable-read and Serializable writes as well as single-row isolation [8]
- Query language
- Yugabyte is compatible with both Cassandra Query Language with YCQL and PostgreSQL Query Language with YSQL. YCQL is an alternative to Structured Query Language (SQL), whereas YSQL is a SQL implementation.
Data Network and Storage Model
YugabyteDB's network topology includes master nodes that coordinate schema changes and other actions, store metadata, and manage load balancing. Tablet servers that handle storage, replication, and querying. [9]
The underlying storage model is provided by DocDB[10] which is a document-base system derived from RocksDB.[11] DocDB is a log-structured merge tree key to object store.[12]
Data in YugabyteDB is replicated via a raft consensus protocol. Each master tablet server forms part of the raft consensus group. Data is replicated synchronously by default. [4] Cross-cluster replication is available asynchronously [13] as are read replicas.[14]
See also
- NewSQL
- Spanner - Original distributed database by Google
- Distributed database
- Postgresql
References
- "v2.2.3.0 (Released September 30, 2020)". github.com.
- "PostgreSQL Compatibility in YugabyteDB 2.0". September 17, 2019.
- Heller, Martin (July 2, 2018). "YugaByte review: Planet-scale Cassandra and Redis". InfoWorld.
- Yugabyte, Team. "Replication in DocDB | YugabyteDB Docs". docs.yugabyte.com.
- "How Does the Raft Consensus-Based Replication Protocol Work in YugabyteDB?". August 8, 2018.
- "Achieving Sub-ms Latencies on Large Datasets in Public Clouds". January 26, 2018.
- "Scaling YugaByte DB to Millions of Reads and Writes". January 12, 2018.
- Yugabyte, Team. "Transaction isolation levels | YugabyteDB Docs". docs.yugabyte.com.
- https://blog.yugabyte.com/yugabyte-db-architecture-diverse-workloads-with-operational-simplicity/#:~:text=YugabyteDB%20Architecture%3A%20Diverse%20Workloads%20with%20Operational%20Simplicity,-Mikhail%20Bautin&text=YugabyteDB%20is%20a%20transactional%2C%20high,interfaces%20into%20an%20unified%20solution.
- Yugabyte, Team. "Layered architecture for queries and storage | YugabyteDB Docs". docs.yugabyte.com.
- "YugaByte: A New Database to Solve the SQL vs. NoSQL Dilemma". November 6, 2017.
- "Database of Databases — YugaByte DB". Database of Databases.
- Yugabyte, Team. "xCluster replication | YugabyteDB Docs". docs.yugabyte.com.
- Yugabyte, Team. "Read replicas | YugabyteDB Docs". docs.yugabyte.com.