AlloyDB

AlloyDB is a proprietary fork of PostgreSQL created by Google Cloud.

Checkpoints

Non-Blocking

In AlloyDB, WAL records are written to the storage layer synchronously. Then, the log processing service in the storage layer is responsible for replaying the logs continuously. AlloyDB supports checkpoints but there is no need for flushing the changes in the database layer to the storage layer.

Data Model

Object-Relational

AlloyDB uses PostgreSQL, which is an object-relational database.

Foreign Keys

Supported

AlloyDB supports foreign keys the same as PostgreSQL

Indexes

Hash Table Bw-Tree Inverted Index (Full Text) Block Range Index (BRIN)

The concurrency control AlloyDB uses is the same as in PostgreSQL and PostgreSQL supports B-tree, Hash, GIST, SP-GIST, GIN and BRIN index types.

Isolation Levels

Read Uncommitted Read Committed Serializable Repeatable Read

Isolation level in AlloyDB can be set through database flag "default_transaction_isolation", where it can be set to either “read uncommitted”, “read committed”, “repeatable read”, or “serializable”.

Joins

Nested Loop Join Hash Join Sort-Merge Join Index Nested Loop Join

AlloyDB builds on PostgreSQL where PostgreSQL supports the following three join strategies: nested loop join and it is possible to utilize the values from the row of the left relation as keys for scanning the right relation's index given that the right relation can be processed with index scan, merge join and hash join.

Query Compilation

Not Supported

Query Interface

SQL Stored Procedures

Storage Architecture

Disk-oriented

Storage Model

N-ary Storage Model (Row/Record)

AlloyDB stores the data in the storage layer following the same format as PostgreSQL. However, a columnar engine is used where the data that gets loaded into memory can take on either the row-based format or the columnar format based on the workload, which is decided using machine learning models.

Storage Organization

Heaps

Stored Procedures

Supported

AlloyDB supports stored procedures. SQL, PL/pgSQL, and C are supported by default. In addition, extensions to PL/proxy and PL/v8 can be added to support additional procedural languages.

System Architecture

Shared-Everything

AlloyDB disaggregates its database layer and its storage layer. As a result, each component of the database system becomes more elastic to scale. AlloyDB refers to the main unit of resource as a cluster, which consists of one primary instance and multiple read pool instances. The primary instance handles read/write requests while the read pool instances only have read access. The storage layer is shared between all cluster resources.

AlloyDB Logo
Website

https://cloud.google.com/alloydb

Tech Docs

https://cloud.google.com/alloydb/docs/

Developer

Google

Country of Origin

US

Start Year

2022

Project Type

Commercial

Derived From

PostgreSQL

Compatible With

PostgreSQL

Operating Systems

Hosted

Licenses

Proprietary