Tech Stacks
    Overview
    System Design Patterns
    CAP Theorem
    C10K and C10M
    Network Programming Models
    Infrastructure as Code
    Examples

Databases - Wide Column Stores

Updated: 2022-02-06

Store data in records with an ability to hold very large numbers of dynamic columns. Not all rows have all the columns, equivalent to schema-free.

Google's Bigtable was the first such database. Several open-source implementation were created, like Cassandra, HBase, Accumulo, etc.

Bigtable

  • 3 dimensions: row, column, timestamp (each intersection of a row and a column is a cell, each cell has multiple "versions" or "timestamps")
  • columns are grouped into column families
  • column families are grouped into locality groups.
  • A locality group is a reflection of the physical implementation on Bigtable
  • A table is broken into tablets; a tablet is a contiguous group of rows.

Bigtable tables are sparse; this means that not all (row, column) intersections have a cell. More specifically, the Bigtable is mapped onto SSTables with a key that consists of (row, column, timestamp). This sparse storage means that "missing" cells do not take up extra storage; storage is allocated only for those (row, column, timestamp) triplets that have values. There is no such thing, for example, as a row with no columns -- that row simply doesn't exist. In fact, a bigtable row can be thought of as a map of arbitrary (row, column, timestamp) values.

Keys and Index

A row key is an unsigned byte string up to 64KB long, and rows are sorted by unsigned byte string sorting, lowest to highest. Bigtable only supports one index (the row key) per table.

Cassandra

Unlike either monolithic or master-slave designs, Cassandra makes use of an entirely peer-to-peer architecture. All nodes in a Cassandra cluster can accept reads and writes, no matter where the data being written or requested actually belongs in the cluster.

  • Shard data automatically
  • Handle partial outages without data loss or downtime
  • Scales close to linearly

HBase

  • modeled after google’s bigtable
  • HBase features compression, in-memory operation, and Bloom filters on a per-column basis as outlined in the original Bigtable paper.
  • In the parlance of Eric Brewer’s CAP Theorem, HBase is a CP type system.
  • High write throughput
  • Horizontal scalability
  • Automatic Failover
  • Strong consistency within a data center

Accumulo

Based on based on the Bigtable technology from Google