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.
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
