liveBook · Manning

Wide-column store

As explained in ScyllaDB in Action

A wide-column database stores rows with flexible sets of columns and distributes data across nodes.

A wide-column store is a distributed NoSQL database whose tables contain rows with flexible sets of columns. Rows require primary-key values, while other columns may be absent. ScyllaDB and Cassandra use this model to emphasize scalability, fault tolerance, availability, and speed. section 1.1.3 section 8.1

Although they have similar names, columnar and wide-column databases differ significantly in their storage paradigms. ScyllaDB is a wide-column database.
sidebar figure

Distinguish wide-column storage from columnar storage: wide-column tables store rows together, while columnar databases co-locate values from the same column for aggregation. section 1.1.3

In a restaurant-review application, the model affects both schema design and writes:

  • Design tables around the queries and primary keys rather than expecting relational joins to provide the default access path. section 1.1.3
  • Allow different rows to contain different non-primary-key columns, making each row arbitrarily wide. section 8.1
  • Distribute rows across database nodes and favor availability, scalability, fault tolerance, and speed, while converging toward correctness through eventual consistency. section 8.1

Optional author columns

An authors table can define id as a timeuuid primary key alongside bio, image, and name. Inserting Alice with only id and name leaves bio and image absent rather than storing values on disk. A later UPDATE can add her bio using the primary key. SELECT displays an absent value as null, but explicitly inserting null has different storage behavior. section 6.1.1

How ScyllaDB in Action covers it

How deep it goes
Defines storage differences, distributed trade-offs, and optional-column writes, but stops short of a complete schema-design procedure.
Examples
Uses an authors table, partial INSERT, primary-key UPDATE, SELECT output, and a columnar-storage comparison.
What you can do after
Evaluate flexible-row storage and distinguish absent columns from explicitly stored null values.
How it connects
Connects wide-column stores to NoSQL databases, distributed databases, relational databases, columnar databases, and eventual consistency.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of ScyllaDB in Action. The section links point to the parts of the book it draws on.