Start Now

YugabyteDB High Availability & Transactions for PostgreSQL & MongoDB Developers

In the first post of our series comparing YugabyteDB with PostgreSQL and MongoDB, we mapped the core concepts in YugabyteDB 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 YugabyteDB use replication to ensure that the database remains highly available under failures. The basic idea is to keep copies of data on independent failure domains so that loss of one domain does not lead to data loss or data unavailability from the application client standpoint.

Read more

Mapping YugabyteDB Concepts to PostgreSQL and MongoDB

If you are developing a new distributed application or are extending an existing one with a new set of microservices, chances are you are going to need to store data in a distributed SQL database. The plethora of niche databases that have emerged over the last decade make the task of selecting a database challenging. With many databases, each with its own nomenclature and nuances to choose from, learning a new database can be a daunting task.

Read more

Enhancing RocksDB for Speed & Scale

This blog post was co-authored by Mikhail Bautin and Kannan Muthukkaruppan

As described in our previous post “How We Built a High Performance Document Store on RocksDB?”, YugabyteDB’s distributed document store (DocDB) uses RocksDB as its per-node storage engine. We made multiple performance and data density related enhancements to RocksDB in the course of embedding it into DocDB’s document storage layer (figure below).

Read more

How We Built a High Performance Document Store on RocksDB?

This blog post was co-authored by Mikhail Bautin and Kannan Muthukkaruppan

RocksDB is a popular embeddable persistent key-value store. First open sourced by Facebook in 2012 as a fork of the Google LevelDB project, it has been adapted over the years to a wide range of workloads including database storage engines and application data caching.

In this post, we explain our rationale for selecting RocksDB as a foundational building block for YugabyteDB.

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 YugabyteDB, our users often ask us for a comparison. These users are essentially trying to understand whether they should build their app directly using one of the three YugabyteDB APIs or should they explore/build a new database layer on FoundationDB first.

Read more

YugabyteDB vs CockroachDB Performance Benchmarks for Internet-Scale Transactional Workloads

Enterprises building cloud native services are gravitating towards transactional NoSQL and globally distributed SQL databases as their next-generation transactional stores. There are at least two distinct usage patterns among these cloud native services – internet-scale transactional workloads and scale-out RDBMS workloads. They have a lot of common demands from the database they use, such as transactions/strong consistency, data modeling flexibility, ease of scaling out and fault tolerance. However, there are some notable differences between these workloads:

  • Internet-scale transactional workloads are optimized for scale and performance without any compromises to data correctness.

Read more

How to Migrate Data from Cassandra or MySQL to YugabyteDB?

If you work with databases, at some point you are going to need to get data in and out them using a format that can be consumed by a completely different system. YugabyteDB makes use of CSV files to make this as easy as possible. The CSV format is arguably the most universally portable way to get data migrations accomplished.

TL;DR – YugabyteDB makes use of Cassandra’s COPY FROM command and a forked version of Cassandra’s Bulk Loader to get data into the system.

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, Netflix, Nordstrom and Pinterest. There is a common adoption pattern among all these case studies —

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 YugabyteDB’s PostgreSQL-compatible Distributed SQL API (currently in Beta). This new feature, available in YugabyteDB 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, highly fault-tolerant data services,

Read more

Get started in any cloud, container or data center