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-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 keys a transaction records so the library can check it at commit, the
keys it writes at SNAPSHOT and above, plus the keys and ranges it reads at SERIALIZABLE. A
concurrent commit to a footprinted key 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, placed relative to the largest level by the
DIVIDING_LEVEL_OFFSET table option, where a merge writes its output partitioned to the largest level’s file boundaries, so later merges
can take one group of overlapping files at a time.
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. It
applies from SNAPSHOT isolation upward, and SERIALIZABLE keeps it while adding read-set tracking
for full serializable isolation.
Foreign key - a referential constraint TideSQL enforces in the engine, checked on every write
and persisted in the reserved __tidesdb_fk_catalog column family. The supported referential
actions are CASCADE, SET NULL, RESTRICT, and NO ACTION, and SET DEFAULT is checked the
same way as RESTRICT. See Foreign Keys.
Klog and vlog - the key log of an SSTable and the database’s shared value log. Values smaller
than the database’s tidesdb_value_separation_threshold are stored inline in the klog, and values
at or above it go to the vlog with a reference in the klog. A table created with
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, at any level, written automatically for
secondary-index entries and opt-in for the primary CF through tidesdb_single_delete_primary.
Cancelling at any level needs TidesDB 10.1.1 or later, since earlier releases turned a single-delete
into a plain tombstone at its first merge.
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.
Uniqueness sentinel - the key naming a table, a UNIQUE secondary index, and a value that
every write of that value also stores in the reserved __tidesdb_uniq column family, so two
concurrent writers of the same value collide on one key at commit. See
Data Model.
Write-intent map - the process-wide record of each uncommitted write’s key that lets a Galera applier find and brute-force abort a local transaction it conflicts with, the lock-free analogue of a row lock. See Replication and High Availability.