The YugaByte Database Blog

Thoughts on open source, cloud native and distributed databases

YugaByte DB High Availability & Transactions for PostgreSQL & MongoDB Developers

In the first post of our series comparing YugaByte DB with PostgreSQL and MongoDB, we mapped the core concepts in YugaByte DB to the two popular databases. This post is a deeper dive into the high availability and transactions architecture of these databases.

High Availability

Almost all databases including YugaByte DB use replication to ensure that the database remains highly available under failures.

Read More

7 Issues to Consider When Evaluating FoundationDB

FoundationDB enjoys a unique spot in the transactional NoSQL space given its positioning as a basic key-value database that can be used to build new, more application-friendly databases. Given that many of the guarantees provided by its core engine (such as multi-shard ACID transactions and high fault tolerance) are similar to those provided by YugaByte DB, our users often ask us for a comparison.

Read More

Rise of Globally Distributed SQL Databases – Redefining Transactional Stores for Cloud Native Era

At last month’s KubeCon + CloudNativeCon in Seattle, the single biggest change from previous container-related conferences was the excitement among the end user companies around their adoption of Kubernetes and the associated cloud native infrastructure ecosystem. The CNCF End User Community page today lists 50+ enterprises and 21+ case studies including those from industry bellwethers such as Capital One,

Read More

Why are NoSQL Databases Becoming Transactional?

The NoSQL database revolution started with the publication of the Google BigTable and Amazon Dynamo papers in 2006 and 2007 respectively. These original designs focused on horizontal write scalability without compromising the performance observed in the single node databases dominant at that time. The compromises instead came either in the form of eventual consistency (i.e. inability to read the last update) or loss of multi-key access patterns (such as SQL integrity/foreign key constraints,

Read More

YugaByte Announces Kubernetes StatefulSets Support to Enable Scale-Out PostgreSQL Deployments

YugaByte is excited to be at KubeCon today to announce Kubernetes StatefulSets support for our distributed SQL API which complements the transactional NoSQL APIs already generally available. YSQL is YugaByte DB’s PostgreSQL-compatible Distributed SQL API (currently in Beta). This new feature, available in YugaByte DB 1.1.7, cloud-native applications and microservices can rely on SQL and NoSQL to take full advantage of Kubernetes StatefulSets to power horizontally scalable,

Read More

Are MongoDB’s ACID Transactions Ready for High Performance Applications?

Web app developers initially adopted MongoDB for its ability to model data as “schemaless” JSON documents. This was a welcome relief to many who were previously bitten by the rigid structure and schema constraints of relational databases. However, two critical concerns that have been a thorn on MongoDB’s side over the years are that of data durability and ACID transactions.

Read More

Apache Cassandra: The Truth Behind Tunable Consistency, Lightweight Transactions & Secondary Indexes

ACID transactions were a big deal when first introduced formally in the 1980s in monolithic SQL databases such as Oracle and IBM DB2. Popular distributed NoSQL databases of the past decade including Apache Cassandra initially focused on “big data” use cases that did not require such guarantees and hence avoided implementing them altogether. Our post, “A Primer on ACID Transactions: The Basics Every Cloud App Developer Must Know”

Read More

Google Spanner vs. Calvin: Is There a Clear Winner in the Battle for Global Consistency at Scale?

Prof. Daniel Abadi, lead inventor of the Calvin transaction management protocol and the PACELC theorem, wrote a thought-provoking post last month titled “NewSQL database systems are failing to guarantee consistency, and I blame Spanner”. The post takes a negative view of software-only Google Spanner derivative databases such as YugaByte DB and CockroachDB that use Spanner-like partitioned consensus for single shard transactions and a two phase commit (2PC) protocol for multi-shard (aka distributed) transactions.

Read More

Jepsen Testing on YugaByte DB

At YugaByte, our mission is to build a robust, reliable, distributed OLTP database. Needless to say, we take correctness and technical accuracy of our claims very seriously. Therefore, we absolutely love a testing framework like Jepsen which helps verify correctness and are fans of Kyle Kingsbury’s work!

Here is a summary of what we have done so far in regards to Jepsen:

  • We have performed our own DIY style Jepsen testing
  • The YugaByte DB Jepsen testing repository is open source
  • For the current suite of Jepsen tests for YugaByte DB that we have tested in a loop,

Read More

How Does the Raft Consensus-Based Replication Protocol Work in YugaByte DB?

As we saw in ”How Does Consensus-Based Replication Work in Distributed Databases?”, Raft has become the consensus replication algorithm of choice when it comes to building resilient, strongly consistent systems. YugaByte DB uses Raft for both leader election and data replication. Instead of having a single Raft group for the entire dataset in the cluster,

Read More