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 | 2.2.0
/ July 15, 2020[1] |
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. [13] Cross-cluster replication is available asynchronously [14] as are read replicas.[15]
See also
- NewSQL
- Spanner - Original distributed database by Google
- Distributed database
- Postgresql
References
- https://docs.yugabyte.com/latest/releases/whats-new/
- https://blog.yugabyte.com/postgresql-compatibility-in-yugabyte-db-2-0/
- https://www.infoworld.com/article/3284357/yugabyte-review-planet-scale-cassandra-and-redis.html
- https://docs.yugabyte.com/latest/architecture/docdb-replication/replication/
- https://blog.yugabyte.com/how-does-the-raft-consensus-based-replication-protocol-work-in-yugabyte-db/
- https://blog.yugabyte.com/achieving-sub-ms-latencies-on-large-data-sets-in-public-clouds/
- https://blog.yugabyte.com/scaling-yugabyte-db-to-millions-of-reads-and-writes/
- https://docs.yugabyte.com/latest/architecture/transactions/isolation-levels/
- 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.
- https://docs.yugabyte.com/latest/architecture/layered-architecture/
- https://thenewstack.io/yugabyte-new-database-solve-sql-vs-nosql-dilemma/
- https://dbdb.io/db/yugabyte-db
- https://docs.yugabyte.com/latest/architecture/docdb-replication/replication/#fault-tolerance
- https://docs.yugabyte.com/latest/architecture/docdb-replication/async-replication/
- https://docs.yugabyte.com/latest/architecture/docdb-replication/read-replicas/