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.


YugabyteDB
Original author(s)Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin
Developer(s)Yugabyte, Inc.
Initial releaseApril 2016 (2016-04)
Stable release
2.2.30[1] / 2020-09-30[±]
RepositoryYugabyteDB Repository
Written inC++
Operating systemCross-platform
Available inEnglish
TypeNewSQL Database, data store
LicenseApache License 2.0
Websitewww.yugabyte.com/yugabytedb/

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]
Low latency
Reports sub-millisecond latency[6] for reads and 3.1ms for writes[7]
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

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.