(auto-commit! kvs entries)Non-tx auto-commit of a folded write-set (no snapshot -> no conflict check).
Adapts commit! to igeldb.write/run-mutation!'s contract: nil on success, a
retriable ex-info on a memtable switch.
Non-tx auto-commit of a folded write-set (no snapshot -> no conflict check). Adapts `commit!` to `igeldb.write/run-mutation!`'s contract: nil on success, a retriable ex-info on a memtable switch.
(commit! kvs snapshot-seq entries)Serialize commits under the store's commit lock, holding it over {conflict-check -> seq assign -> enqueue one WAL record}. fsync + memtable apply stay in the group-commit worker. Assigning the seq and enqueuing in the same locked region makes enqueue order == seq order, so the worker's FIFO gives WAL order == seq order.
entries are folded [user_key data] pairs (one per user_key). snapshot-seq is
the tx's pinned snapshot, or nil for a non-tx auto-commit op. Returns:
:committed durably fsynced and applied
:conflict (tx only) a write-set key was committed after the snapshot
:switched the memtable switched mid-enqueue; the caller may retry
Throws {:retriable false} if the worker failed the commit.
Serialize commits under the store's commit lock, holding it over
{conflict-check -> seq assign -> enqueue one WAL record}. fsync + memtable apply
stay in the group-commit worker. Assigning the seq and enqueuing in the same
locked region makes enqueue order == seq order, so the worker's FIFO gives WAL
order == seq order.
`entries` are folded [user_key data] pairs (one per user_key). `snapshot-seq` is
the tx's pinned snapshot, or nil for a non-tx auto-commit op. Returns:
:committed durably fsynced and applied
:conflict (tx only) a write-set key was committed after the snapshot
:switched the memtable switched mid-enqueue; the caller may retry
Throws {:retriable false} if the worker failed the commit.(tx-commit-attempt! kvs snapshot-seq entries)One commit-handler attempt for a tx: :committed / :conflict, or a retriable
throw on a memtable switch so igeldb.write/run-mutation! retries the enqueue.
One commit-handler attempt for a tx: :committed / :conflict, or a retriable throw on a memtable switch so `igeldb.write/run-mutation!` retries the enqueue.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |