This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these template messages)
|
Original author(s) | Spencer Kimball, Peter Mattis, Ben Darnell |
---|---|
Developer(s) | Cockroach Labs |
Initial release | 2017 |
Stable release | 24.1.0 / May 20, 2024 |
Repository | |
Written in | Go |
Available in | English |
Type | RDBMS |
License | Proprietary [1] |
Company type | Private |
---|---|
Industry | Software |
Founded | 2015 |
Founder | Spencer Kimball, Peter Mattis, Ben Darnell |
Headquarters | New York City |
Key people | Spencer Kimball (CEO) Peter Mattis (VP of Engineering) Ben Darnell (CTO) Nate Stewart (Chief Product Officer) Lindsay Grenawalt (Chief People Officer) |
Services | Commercial database management systems |
Website | cockroachlabs.com |
CockroachDB is a source-available distributed SQL database management system developed by Cockroach Labs. [2] [3] 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 [4] (by adding nodes) and vertically (by increasing the resources allocated to the existing nodes). 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. [5]
Cockroach Labs was founded in 2015 by ex-Google employees Spencer Kimball, Peter Mattis, and Ben Darnell. Kimball and Mattis had been key members of the Google File System team, [6] while Darnell was a key member of the Google Reader team. [7]
While at Google, all three had used Google-owned DBMS’s Bigtable and its successor, Spanner. [3] After leaving Google, they wanted to design and build something similar. [8] Spencer Kimball wrote the first iteration of the design in January 2014, and began the open-source project on GitHub in February 2014, allowing outside access and contributions. [9]
Development on GitHub attracted substantial contributions, which earned the project the Open Source Rookie of the Year award by Black Duck Software. [10]
The co-founders supported the project with conferences, networking, meet-ups, and fund-raising financial rounds.
In June 2019, Cockroach Labs announced that CockroachDB would change its license from the free software license Apache License 2.0 to its source-available license, known as the Business Source License (BuSL), which forbids “offer[ing] a commercial version of CockroachDB as a service without buying a license,” while remaining free of charge for community use. [11] [12]
CockroachDB stores copies of data in multiple locations to deliver quick access. [8] [13]
It is described as a scalable, consistently-replicated, transactional data store. [14] A single instance can scale from a single laptop to thousands of servers. [3]
CockroachDB is designed to run in the cloud and has a high fault tolerance. According to popular news outlets, it is described as “almost impossible” to take down. [15] [16] [13]
CockroachDB has a consistency model that is designed to match as closely as possible to the capabilities of Google Spanner, but without a dependence on specialized hardware for time synchronization. "No stale reads" is the simplest way to describe this consistency model which has deliberately made the trade-off of having non-linearizable transaction histories. [17] Transactions containing overlapping keys are guaranteed to have external consistency. And so, in practice, systems relying on CockroachDB are very unlikely to reproduce consistency issues because nodes with high variations in clock skew can be removed from clusters, applications can rely on external consistency provided by overlapping keys and writing to the same range, and writes propagate changes to followers' timestamp caches. [18]
MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.
Spencer Kimball is an American computer programmer, entrepreneur, and business executive. He is the CEO of Cockroach Labs, a company he co-founded in 2014. His work as a programmer includes creating GNU Image Manipulation Program (GIMP) while still in college, and assisting the source code development of CockroachDB, the namesake software of Cockroach Labs. In addition to Cockroach Labs, Kimball was involved in the founding of other tech startups including WeGo and Viewfinder.
Peter Mattis is an American computer programmer, entrepreneur, and business executive. He is the CTO and co-founder for Cockroach Labs, a company he co-founded in 2014. His work as a programmer includes launching GNU Image Manipulation Program (GIMP) while still in college, and assisting the source code development of CockroachDB, the namesake software of Cockroach Labs.
An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:
Redis is a source-available, in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Because it holds all data in memory and because of its design, Redis offers low-latency reads and writes, making it particularly suitable for use cases that require a cache. Redis is the most popular NoSQL database, and one of the most popular databases overall. Redis is used in companies like Twitter, Airbnb, Tinder, Yahoo, Adobe, Hulu, Amazon and OpenAI.
MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle Corporation in 2009.
Couchbase Server, originally known as Membase, is a source-available, distributed multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, Couchbase Server is designed to provide easy-to-scale key-value, or JSON document access, with low latency and high sustainability throughput. It is designed to be clustered from a single machine to very large-scale deployments spanning many machines.
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.
Basho Technologies was a distributed systems' company that developed a key-value NoSQL database technology, Riak, and an object storage system built upon the Riak platform, called Riak CS.
Spanner is a distributed SQL database management and storage service developed by Google. It provides features such as global transactions, strongly consistent reads, and automatic multi-site replication and failover. Spanner is used in Google F1, the database for its advertising business Google Ads, as well as Gmail and Google Photos.
Oracle NoSQL Database is a NoSQL-type distributed key-value database from Oracle Corporation. It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.
NewSQL is a class of relational database management systems that seek to provide the scalability of NoSQL systems for online transaction processing (OLTP) workloads while maintaining the ACID guarantees of a traditional database system.
Aerospike Database is a real-time, high performance NoSQL database. Designed for applications that cannot experience any downtime and require high read & write throughput. Aerospike is optimized to run on NVMe SSDs capable of efficiently storing large datasets. Aerospike can also be deployed as a fully in-memory cache database. Aerospike offers Key-Value, JSON Document, Graph data, and Vector Search models. Aerospike is open source distributed NoSQL database management system, marketed by the company also named Aerospike.
Redis Ltd. is an Israeli private computer software company headquartered in Mountain View, California. Redis is the sponsor of the source-available in-memory NoSQL database of the same name and the provider of Redis Enterprise software, cloud services, and tools for global companies. The company’s research and development center is based in Tel Aviv and it has additional offices in London, Austin, and Bengaluru.
Ben Darnell is an American computer programmer, entrepreneur, and business executive. He is the chief technology officer for Cockroach Labs, a company he co-founded in 2015. Prior to his work at Cockroach Labs, he worked for tech companies that include FriendFeed, Facebook, Brizzly, Dropbox, Viewfinder, and Square, Inc.
TiDB is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. Designed to be MySQL compatible, it is developed and supported primarily by PingCAP and licensed under Apache 2.0. It is also available as a paid product. TiDB drew its initial design inspiration from Google's Spanner and F1 papers.
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.
YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.