Glossary
Glossary
This glossary covers terms as TideSQL uses them. For the library’s own vocabulary, SSTable internals, compaction, recovery, see the TidesDB library glossary.
Column family - an independent ordered keyspace inside TidesDB, its own LSM B+tree. A TideSQL table is one column family for its rows plus one more per secondary index.
Comparable key - the memcmp-comparable byte encoding TideSQL uses for keys, so byte order equals logical order. Integers are big-endian with the sign bit flipped, strings use the collation sort key.
Conflict footprint - the set of reads and writes a transaction records so the library can run its first-committer-wins check at commit. A concurrent write to a footprinted row makes the losing transaction fail its commit.
Covering read - a query whose columns are all carried by the index key, so the engine materializes the row from the index bytes without a point-get into the data CF.
Data CF - the column family that holds a table’s row data, as opposed to the secondary-index CFs.
Dividing level - the LSM level the library uses as its primary compaction target, computed from
MIN_LEVELS, LEVEL_SIZE_RATIO, and DIVIDING_LEVEL_OFFSET.
First-committer-wins - the write-write conflict rule, where the first transaction to commit a
change to a row succeeds and a second transaction that changed the same row fails at commit. These
are the library’s level names: it applies at SNAPSHOT and at SERIALIZABLE, which keeps it while
adding read-set tracking. SQL REPEATABLE READ maps onto the library’s SNAPSHOT, so the default
level does detect write-write conflicts; the library’s own REPEATABLE_READ is a different level
that validates reads instead and is reachable only as a per-table option. See
Transactions and Isolation.
Foreign key - a referential constraint TideSQL enforces in the engine, checked on every write
and persisted in a reserved catalog column family, with CASCADE, SET NULL, and RESTRICT
referential actions. See Foreign Keys.
Klog and vlog - the key log and the value log. Each SSTable has its own klog; the vlog is a
single segmented structure shared by the whole database, which is why the threshold that feeds it is
a server variable and not a table option. Values smaller than value_separation_threshold are
stored inline in the klog, larger ones go to the vlog with a pointer left in the klog. A table set
KEEP_VALUES_INLINE keeps every value in the klog whatever its size.
Memtable - the in-memory skip list that absorbs writes before they flush to an SSTable. It is
shared across the database in TidesDB 10, so its sizing and WAL durability are set by the
tidesdb_memtable_* system variables rather than per table.
Optimistic MVCC - the concurrency model, where readers and writers never block each other and a write-write conflict is detected at commit rather than prevented by a lock.
Prepared transaction - a transaction durably logged under an XID by the first phase of two-phase commit, awaiting a commit or rollback that can arrive from another connection or after a restart through XA recovery.
Read amplification - the number of SSTables a worst-case point lookup may probe, reported by the library and used by the cost model.
Single-delete - a delete primitive that lets compaction cancel a put and its matching tombstone together the first time they meet, used automatically for secondary-index entries and opt-in for the primary CF.
Tombstone - the marker a delete writes to hide an older value until compaction reclaims it. A high tombstone density slows range scans, which the tombstone-density trigger acts on.