Summary
Row stores are designed for transaction processing, where a query touches a few whole rows. Analytical queries are different: they scan many rows but read only a few columns. C-Store asks what a database looks like when it is designed for read-mostly analytics from the start.
C-Store stores each column separately, sorted and heavily compressed, and groups columns into projections that can have different sort orders. A small, write-optimised store accepts updates, and a tuple mover moves them in batches into the read-optimised column store. Operators work directly on compressed data where possible.
The design became the basis for Vertica and influenced most modern analytical engines, including those used in cloud data warehouses. Columnar layout, compression and late materialisation are now standard techniques for analytics.
