The YugaByte Database Blog

Thoughts on open source, cloud native and distributed databases

YugaByte Database Engineering Update – Nov 27, 2018

Lots has happened since our last engineering update about 3 months ago. Below are some of the highlights.

PostgreSQL API Updates & PostgresConf Silicon Valley Wrap-Up

We have made a lot of progress on YSQL, the PostgreSQL compatible distributed SQL API for YugaByte DB! You can also read about YSQL architecture which covers how distributed SQL is implemented in YugaByte DB.

Read More

Data Modeling Basics – PostgreSQL vs. Cassandra vs. MongoDB

Application developers usually spend considerable time evaluating multiple operational databases to find that one database that’s best fit for their workload needs. These needs include simplified data modeling, transactional guarantees, read/write performance, horizontal scaling and fault tolerance. Traditionally, this selection starts out with the SQL vs. NoSQL database categories because each category presents a clear set of trade-offs. High performance in terms of low latency and high throughput is usually treated as a non-compromisable requirement and hence is expected in any database chosen.

Read More

Distributed Backups in Multi-Region YugaByte DB Clusters

Our post Getting Started with Distributed Backups in YugaByte DB details the core architecture powering distributed backups in YugaByte DB. It also highlights a few backup/restore operations in a single region, multi-AZ cluster. In this post, we perform distributed backups in a multi-region YugaByte DB cluster and verify that we achieve performance characteristics similar to those observed in a single region cluster.

Read More

Getting Started with Distributed Backups in YugaByte DB

YugaByte DB is a distributed database with a Google Spanner-inspired strongly consistent replication architecture that is purpose-built for high availability and high performance. This architecture allows administrators to place replicas in independent fault domains, which can be either availability zones or racks in a single region or different regions altogether. These types of multi-AZ or multi-region deployments have the immediate advantage of guaranteeing organizations a higher order of resilience in the event of a zone or region failure.

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

YugaByte DB 1.1 New Feature: Public IPs to Simplify Multi or Hybrid Cloud Database Deployments

Welcome to another post in our ongoing series that highlights new features from the latest 1.1 release announced last week. Today we are going to look at the importance of public IP addresses and hostnames in simplifying multi-cloud and hybrid cloud deployments.

In modern cloud deployments, servers often have a combination of private IP addresses (used in the private LAN and often the IP address of the network interface on the server),

Read More

YugaByte DB 1.1 New Feature: Document Data Modeling with the JSON Data Type

Welcome to another post in our ongoing series that highlights new features from the latest 1.1 release announced last week. Today we are going to look at document data modeling using the native JSON data type available in YugaByte DB’s Cassandra compatible YCQL API. Note that this data type is specific to YugaByte DB and is not part of the standard Cassandra Query Language (CQL).

Read More

YugaByte DB 1.1 New Feature: Speeding Up Queries with Secondary Indexes

Welcome to another post from our ongoing series where we highlight a new feature from the latest 1.1 release! Today we are going to look at secondary indexes.

Defining Secondary Indexes

A database index is a data structure that improves the speed of data retrieval operations on a database table. Typically, databases are very efficient at looking up data by the primary key.

Read More