| atomic_cell |
static |
Structure of an atomic cell: timestamp, live/dead, tombstone, deletion time, value |
Generating accessors for fields |
| atomic_cell instance |
runtime |
Which variant of an atomic_cell is engaged for a particular value? |
Storage compression |
| underlying type |
schema |
Comparators, arithmetic, fixed vs. variable size |
Accessors, comparators, arithmetic, whether an "empty bit" is needed |
| collection vs. atomic |
schema |
whether to use atomic_cell or something else |
Accessors |
| static rows, clustering keys |
schema |
Whether they exist or not |
run-time or llvm-time optional<> |
| number of columns in row |
schema |
How many columns were defined in the schema |
pre-determination of storage formats |
| number of cells in row |
runtime |
How many cells are actually present |
selection of sparse vs. dense storage format |
| partition key, clustering key types |
schema |
What types make up a partition key or clustering key |
Generation of comparators, hashers |
| value |
runtime |
Actual value in cell |
Whether we can use the small-string optimization or not, indirection |
| collection |
schema |
Types of cells in collection, type of collection |
Generation of accessors |
| cell count in collection |
runtime |
Actual cell count in a mutation |
Whether to use linear or treelike storage |