CockroachDB is an open source, distributed SQL database with strongly-consistent ACID transactions, horizontal scalability, familiar SQL API and super amazing survivability. It empowers users to create scalable applications and store data globally without worrying about potential disasters.
CockroachDB replicates data multiple times and guarantees consistency between nodes. It guarantees the SQL isolation level "serializable" by combining the Raft consensus algorithm for writes and a custom time-based synchronization algorithms for reads.
Simplicity is a top priority in the design of CockroachDB. Its nodes are self-organized and symmetric, perfectly realizing a homogeneous deployment with minimal configuration and zero external dependencies.
Superior to traditional active-passive and active-active system, CockroachDB enables all replicas to handle traffic while ensuring the data consistency by using “consensus replication”. As long as a majority of replicas can talk to each other, the cluster is available.
As an open source programming language supporting libraries, interfaces, and tooling, Go is a right choice for CockroachDB, helping build an excellent performance and distributed system while ensuring high speed and stability.
With the implementation of Standard SQL and extensions, CockroachDB makes it possible to write familiar queries. Its support for PostgreSQL wire protocol significantly facilitates the application’s talk to Cockroach.
CockroachDB distributes transactions across clusters, which can span regions, datacenters, and cloud providers. Data can dynamically move wherever necessary without compromising down-time or additional latency.
Thanks to the strongly-consistent replication and powerfully automated repair ability, CockroachDB successfully survives the software and hardware failures in whatever a short or a long term, from a server restart to a datacenter outage.
CockroachDB automatically scales, rebalances, and repairs itself. When data flow in to a threshold, a range will be split into new ranges, which will be automatically rebalanced to nodes with more capacity if your cluster spans multiple nodes.