The YugaByte Database Blog

Thoughts on open source, cloud native and distributed databases

Implementing Distributed Transactions the Google Way: Percolator vs. Spanner

Our post 6 Signs You Might be Misunderstanding ACID Transactions in Distributed Databases describes the key challenges involved in building high performance distributed transactions. Multiple open source ACID-compliant distributed databases have started building such transactions by taking inspiration from research papers published by Google. In this post, we dive deeper into Percolator and Spanner, the two Google systems behind those papers,

Read More

6 Signs You Might be Misunderstanding ACID Transactions in Distributed Databases

As described in A Primer on ACID Transactions, first generation NoSQL databases dropped ACID guarantees with the rationale that such guarantees are needed only by old school enterprises running monolithic, relational applications in a single private datacenter. And the premise was that modern distributed apps should instead focus on linear database scalability along with low latency, mostly-accurate,

Read More

YugaByte Database Community & Engineering Update — July 20, 2018

Welcome to the inaugural edition of the YugaByte DB Community and Engineering update series! Let’s dive in and take a look at what has happened over the last few weeks.

Community News

There has been a lot of activity in terms of meetups and events. In June, YugaByte was at DockerCon. We also did a hands-on lab about building geo-distributed cloud apps at a Datariders meetup and a talk at Samsung about building modern apps at cloud scale.

Read More

A Primer on ACID Transactions: The Basics Every Cloud App Developer Must Know

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 Amazon DynamoDB and Apache Cassandra initially focused on “big data” use cases that did not require such guarantees and hence avoided implementing them altogether. However, ACID transactions are making a strong comeback in the last 2 years with the launch of next-generation distributed databases that have built-in support for them.

Read More

How DynamoDB’s Pricing Works, Gets Expensive Quickly and the Best Alternatives

DynamoDB is AWS’s NoSQL alternative to Cassandra, primarily marketed to mid-sized and large enterprises. The uses cases best suited for DynamoDB include those that require a flexible data model, reliable performance, and the automatic scaling of throughput capacity. DynamoDB’s landing page points out that mobile, web, gaming, ad tech, and IoT are all good application types for DynamoDB.

Read More

11 Things You Wish You Knew Before Starting with DynamoDB

DynamoDB is a fully managed NoSQL database offered by Amazon Web Services. While it works great for smaller scale applications, the limitations it poses in the context of larger scale applications are not well understood. This post aims to help developers and operations engineers understand the precise strengths and weaknesses of DynamoDB, especially when it powers a complex large-scale application.

Read More

DynamoDB vs MongoDB vs Cassandra for Fast Growing Geo-Distributed Apps

Amazon DynamoDB is a popular NoSQL database choice for mid-to-large enterprises. In this post, we look beyond Amazon’s marketing claims to explore how well DynamoDB satisfies the core technical requirements of fast growing geo-distributed apps with low latency reads, a common use case found in today’s enterprises. We examine the development, operational and financial consequences of working around the limitations of DynamoDB when attempting to “force-fit” for this use case.

Read More

Polyglot Persistence vs. Multi-API/Multi-Model: Which One For Multi-Cloud?

Modern app architectures rely on data with different models and access patterns. Polyglot persistence, first introduced in 2011, states that each such data model should be powered by an independent database that is purpose-built for that model. The original intent was to look beyond relational/SQL databases to the emerging world of NoSQL.


Polyglot Persistence in Action at an E-Commerce App (Source: Martin Fowler)

The Messy Reality of Polyglot Persistence

Polyglot persistence is not free of costs — it leads to increased complexity across the board.

Read More

A Busy Developer’s Guide to Database Storage Engines — The Basics

When evaluating operational databases, developers building distributed cloud apps tend to focus on data modeling flexibility, consistency guarantees, linear scalability, fault tolerance, low latency, high throughput and easy manageability as high priority concerns. However, it is essential to have a good understanding of the underlying storage engine to reason about how the database actually delivers on these core promises.

Read More

A Busy Developer’s Guide to Database Storage Engines — Advanced Topics

In the first post of this series, we learnt about the B-Tree vs LSM approach to index management in operational databases. While the indexing algorithm plays a fundamental role in determining the type of storage engine needed, advanced considerations highlighted below are equally important to take into account.

Consistency, Transactions & Concurrency Control

Monolithic databases,

Read More