Original author(s) | Kannan Muthukkaruppan, Karthik Ranganathan, Mikhail Bautin |
---|---|
Developer(s) | Yugabyte, Inc. |
Initial release | 2016 |
Stable release | 2.20 (Stable) 2.19 (Development) / January 25, 2024 October 25, 2023 |
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]
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] for workloads such as Facebook Messenger and Facebook's Operational Data Store. [4]
The founders came together in February 2016 to build YugabyteDB. [5] [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 Aeon, a fully managed database-as-a-service offering of YugabyteDB, in September 2021. [9]
YugabyteDB was named in the 2023 Gartner Magic Quadrant™ for Cloud Database Management Systems. [10]
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 [11]
Series | Date Announced | Amount | Investors |
---|---|---|---|
A | 10 Feb 2016 | $8M | Lightspeed Venture Partners, Jeff Rothschild [12] [13] |
A | 12 Jun 2018 | $16M | Lightspeed Venture Partners, Dell Technology Capital [14] [15] |
B | 09 Jun 2020 | $30M | Wipro Ventures, Lightspeed Venture Partners. Dell Technology Capital. 8VC [16] [17] |
B | 03 Mar 2021 | $48M | Wipro Ventures. Lightspeed Venture Partners. Greenspring Associates, Dell Technology Capital, 8VC [18] [19] |
C | 28 Oct 2021 | $188M | Wells Fargo Strategic Capital, Sapphire Ventures, Meritech Capital Partners, Lightspeed Venture Partners, Dell Technology Capital, 8VC [20] [21] [22] |
YugabyteDB is a distributed SQL database that aims to be strongly transactionally consistent across failure zones (i.e. ACID compliance]. [23] [24] Jepsen testing, the de facto industry standard for verifying correctness, has never fully passed, mainly due to race conditions during schema changes. [25] In CAP Theorem terms YugabyteDB is a Consistent/Partition Tolerant (CP) database. [26] [27] [28]
YugabyteDB has two layers, [29] a storage engine known as DocDB and the Yugabyte Query Layer. [30]
The storage engine consists of a customized RocksDB [30] [31] combined with sharding and load balancing algorithms for the data. In addition, the Raft consensus algorithm controls the replication of data between the nodes. [30] [31] There is also a Distributed transaction manager [30] [31] and Multiversion concurrency control (MVCC) [30] [31] to support distributed transactions. [31]
The engine also exploits a Hybrid Logical Clock [32] [30] that combines coarsely-synchronized physical clocks with Lamport clocks to track causal relationships. [33]
The DocDB layer is not directly accessible by users. [30]
Yugabyte has a pluggable query layer that abstracts the query layer from the storage layer below. [34] There are currently two APIs that can access the database: [31]
YSQL [35] is a PostgreSQL code-compatible API [36] [37] based around v11.2. YSQL is accessed via standard PostgreSQL drivers using native protocols. [38] It exploits the native PostgreSQL code for the query layer [39] and replaces the storage engine with calls to the pluggable query layer. This re-use means that Yugabyte supports many features, including:
YCQL [40] is a Cassandra-like API based around v3.10 and re-written in C++. YCQL is accessed via standard Cassandra drivers [41] using the native protocol port of 9042. In addition to the 'vanilla' Cassandra components, YCQL is augmented with the following features:
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. [45]
The security model for accessing the system is inherited from the API, so access controls for YSQL look like PostgreSQL, [46] and YCQL looks like Cassandra access controls. [47]
In addition to its core functionality of distributing a single database, YugabyteDB has the ability to replicate between database instances. [48] [49] 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.
Yugabyte also provides YugabyteDB Voyager, tooling to facilitate the migration of Oracle and other similar databases to YugabyteDB. [50] [51] This tool supports the migration of schemas, procedural code and data from the source platform to YugabyteDB.
PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems, including Linux, FreeBSD, OpenBSD, macOS, and Windows, and handles a range of workloads from single machines to data warehouses or web services with many concurrent users.
Ingres Database is a proprietary SQL relational database management system intended to support large commercial and government applications.
The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.
In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.
Multi-master replication is a method of database replication which allows data to be stored by a group of computers, and updated by any member of the group. All members are responsive to client data queries. The multi-master replication system is responsible for propagating the data modifications made by each member to the rest of the group and resolving any conflicts that might arise between concurrent changes made by different members.
In computing, a materialized view is a database object that contains the results of a query. For example, it may be a local copy of data located remotely, or may be a subset of the rows and/or columns of a table or join result, or may be a summary using an aggregate function.
A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.
EnterpriseDB (EDB), a privately held company based in Massachusetts, provides software and services based on the open-source database PostgreSQL, and is one of the largest contributors to Postgres. EDB develops and integrates performance, security, and manageability enhancements into Postgres to support enterprise-class workloads. EDB has also developed database compatibility for Oracle to facilitate the migration of workloads from Oracle to EDB Postgres and to support the operation of many Oracle workloads on EDB Postgres.
Navicat is a series of graphical database management and development software produced by CyberTech Ltd. for MySQL, MariaDB, Redis, MongoDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple database connections for local and remote databases. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners.
Apache Cassandra is a free and open-source, distributed, wide-column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassandra offers support for clusters spanning multiple data centers, with asynchronous masterless replication allowing low latency operations for all clients. Cassandra was designed to implement a combination of Amazon's Dynamo distributed storage and replication techniques combined with Google's Bigtable data and storage engine model.
Amazon Relational Database Service is a distributed relational database service by Amazon Web Services (AWS). It is a web service running "in the cloud" designed to simplify the setup, operation, and scaling of a relational database for use in applications. Administration processes like patching the database software, backing up databases and enabling point-in-time recovery are managed automatically. Scaling storage and compute resources can be performed by a single API call to the AWS control plane on-demand. AWS does not offer an SSH connection to the underlying virtual machine as part of the managed service.
A cloud database is a database that typically runs on a cloud computing platform and access to the database is provided as-a-service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model.
Apache Drill is an open-source software framework that supports data-intensive distributed applications for interactive analysis of large-scale datasets. Built chiefly by contributions from developers from MapR, Drill is inspired by Google's Dremel system. Drill is an Apache top-level project. Tom Shiran is the founder of the Apache Drill Project. It was designated an Apache Software Foundation top-level project in December 2016.
DataStax, Inc. is a real-time data for AI company based in Santa Clara, California. Its product Astra DB is a cloud database-as-a-service based on Apache Cassandra. DataStax also offers DataStax Enterprise (DSE), an on-premises database built on Apache Cassandra, and Astra Streaming, a messaging and event streaming cloud service based on Apache Pulsar. As of June 2022, the company has roughly 800 customers distributed in over 50 countries.
CockroachDB is a source-available distributed SQL database management system developed by Cockroach Labs. The relational functionality is built on top of a distributed, transactional, consistent key-value store that can survive a variety of different underlying infrastructure failures, and is wire-compatible with PostgreSQL which means users can take advantage of a wide range of drivers and tools from the extensive PostgreSQL ecosystem. A CockroachDB cluster consists of a number of nodes that can be spread across failure domains such as data centres or public cloud regions. A cluster can be scaled both horizontally and vertically. It can provide high levels of resilience and availability and can be run in a variety of environments such as bare metal, VMs, containers and Kubernetes, both in private data centers and in the cloud. CockroachDB gets its name from cockroaches, as they are known for being disaster-resistant.
DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. This is a desktop application written in Java and based on Eclipse platform.
Postgres-XL is a distributed relational database management system (RDBMS) software based on PostgreSQL. It aims to provide feature parity with PostgreSQL while distributing the workload over a cluster. The name "Postgres-XL" stands for "eXtensible Lattice".
Amazon DocumentDB is a managed proprietary NoSQL database service that supports document data structures, with some compatibility with MongoDB version 3.6 and version 4.0. As a document database, Amazon DocumentDB can store, query, and index JSON data. It is available on Amazon Web Services. As of March 2023, AWS introduced some compliance with MongoDB 5.0 but lacks time series collection support.
A distributed SQL database is a single relational database which replicates data across multiple servers. Distributed SQL databases are strongly consistent and most support consistency across racks, data centers, and wide area networks including cloud availability zones and cloud geographic zones. Distributed SQL databases typically use the Paxos or Raft algorithms to achieve consensus across multiple nodes.
YDB is a distributed SQL database management system (DBMS) developed by Yandex, available as open-source technology.
{{cite book}}
: |website=
ignored (help)