The Distributed SQL Blog

Thoughts on distributed databases, open source and cloud native

Spanning the Globe without Google Spanner

Open Source Geo-Distributed Relational Database on Multi-Cluster Kubernetes

Google Spanner, conceived in 2007 for internal use in Google AdWords, has been rightly considered a marvel of modern software engineering. This is because it is the world’s first horizontally-scalable relational database that can be stretched not only across multiple nodes in a single data center but also across multiple geo-distributed data centers,

Read More

YugabyteDB Engineering Update – April 13, 2020

We are excited to announce that YugabyteDB 2.1.3 is GA! You can read the official release notes here. This release shipped with over 60 new enhancements and fixes.

The Yugabyte team has been working from home in order to do our part with social distancing and to help with containment efforts. We have also transitioned to online meetings with our customers,

Read More

Scaling Relational Spring Microservices Without Load Balancers

This article was originally posted on JAXenter.com.

Modern cloud native applications demand relational databases to be highly available while being able to scale to millions of requests (RPS) and thousands of transactions per second (TPS) on demand. This is becoming essential to meet the seamless experience demanded by business applications and their users. High availability and scalability in NoSQL databases like Apache Cassandra and MongoDB are well understood,

Read More

Scaling a Hasura GraphQL Backend with Distributed SQL

GraphQL is taking the modern development world by storm having been adopted by companies like Facebook, GitHub and Intuit because it solves many of the common problems developers encounter when working with REST APIs. For example, it solves issues like overfetching (getting more data than your response needs) and underfetching (having to make multiple fetches to get all the data you need),

Read More

Automating YugabyteDB Deployments with Google Cloud Deployment Manager

This is the second post in the Getting Started with YugabyteDB on Public Cloud series. In our first post, we covered Automating YugabyteDB Deployments with AWS CloudFormation templates. In this post we will show you how to achieve the same with Cloud Deployment Manager templates when using Google Cloud.

For redundancy across multiple fault domains inside a single region,

Read More

Basic CRUD Operations Using Hasura GraphQL with Distributed SQL on GKE

Editor’s note: This post was updated July 20, 2020 with new Helm and YugabyteDB versions

GraphQL is an MIT-licensed project originally developed at Facebook in 2012 and open-sourced a few years later. Two popular GraphQL projects, Hasura and Apollo, have reported download numbers of 29 and 33 million, respectively. Why? Think of GraphQL as a query language for APIs and a runtime for fulfilling those queries with your existing data.

Read More

An Introduction to Distributed SQL: Glossary of Terms

In 2017 we introduced YugabyteDB, an open source, high performance, cloud native database for mission-critical applications. As a team, we have worked first hand on a number of databases such as Apache HBase, Apache Cassandra (from even before it was open sourced), Oracle, and RocksDB. We were the team that built and ran Facebook’s NoSQL platform that powered a number of user-facing,

Read More

Document Data Modeling in YugabyteDB with the JSON Data Types

YugabyteDB has two JSON data types, json and jsonb, to let you store documents in a column in a YSQL table and to do content-based queries with index support. YSQL is PostgreSQL compatible and it therefore supports every one of the rich set of about thirty five JSON-specific operators and functions that users of PostgreSQL’s JSON functionality might already know,

Read More

Getting Started with pgbench and Distributed SQL on GKE

pgbench is a simple program for running benchmark tests on PostgreSQL. It runs the same sequence of SQL commands over and over, possibly in multiple concurrent database sessions, and then calculates the average transaction rate (transactions per second). By default, pgbench tests a scenario that is loosely based on TPC-B, involving five SELECT, UPDATE, and INSERT commands per transaction.

Read More