The data tree in a table is a B+ tree variant which orders the partitions into a sorted branching structure.
The branching factor determines the maximum number of children an index node
in the data tree can have. Internal (non-root) index nodes with branching
factor b
will have between ceil(b/2)
and b
children.
An empty data tree is represented by a nil link from the table root. A data tree with fewer records than the partition limit is represented directly by a single partition node.
The data tree in a table is a B+ tree variant which orders the partitions into a sorted branching structure. The branching factor determines the maximum number of children an index node in the data tree can have. Internal (non-root) index nodes with branching factor `b` will have between `ceil(b/2)` and `b` children. An empty data tree is represented by a nil link from the table root. A data tree with fewer records than the partition limit is represented directly by a single partition node.
(build-tree store params children)
Build an index tree from a sequence of child nodes, using the given parameters. Returns the final, persisted root node data.
Build an index tree from a sequence of child nodes, using the given parameters. Returns the final, persisted root node data.
The default number of children to limit each index node to.
The default number of children to limit each index node to.
(find-partition-range store node min-k max-k)
Find partitions which cover the range min-k
to max-k
.
Find partitions which cover the range `min-k` to `max-k`.
(read-all store node fields)
Read a lazy sequence of key/map tuples which contain the requested field data for every record in the subtree. This function works on both index nodes and partitions.
Read a lazy sequence of key/map tuples which contain the requested field data for every record in the subtree. This function works on both index nodes and partitions.
(read-batch store node fields record-keys)
Read a lazy sequence of key/map tuples which contain the requested field data for the records whose keys are in the given collection. This function works on both index nodes and partitions.
Read a lazy sequence of key/map tuples which contain the requested field data for the records whose keys are in the given collection. This function works on both index nodes and partitions.
(read-range store node fields min-k max-k)
Read a lazy sequence of key/map tuples which contain the field data for the records whose keys lie in the given range, inclusive. A nil boundary includes all records in that range direction.
Read a lazy sequence of key/map tuples which contain the field data for the records whose keys lie in the given range, inclusive. A nil boundary includes all records in that range direction.
(update-tree store params root changes)
Apply a set of changes to the index tree rooted in the given node. The
changes should be a sequence of record ids to either data maps or patch
tombstones. Parameters may include :merkle-db.partition/limit
and
:merkle-db.data/families
. Returns an updated persisted root node if any
records remain in the tree.
Apply a set of changes to the index tree rooted in the given node. The changes should be a sequence of record ids to either data maps or patch tombstones. Parameters may include `:merkle-db.partition/limit` and `:merkle-db.data/families`. Returns an updated persisted root node if any records remain in the tree.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close