You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Changes from `v1.1.0`:
- [breaking] The functions `CubDB.get_and_update/3`,
`CubDB.get_and_update_multi/3`, and `CubDB.select/2` now return directly
`result`, instead of a `{:ok, result}` tuple.
- [breaking] `CubDB.get_and_update_multi/4` does not take an option argument
anymore, making it `CubDB.get_and_update_multi/3`. The only available option
used to be `:timeout`, which is not supported anymore.
- [breaking] Remove the `:timeout` option on `CubDB.select/2`. This is part of
a refactoring and improvement that moves read operations from an internally
spawned `Task` to the client process. This makes the `:timeout` option
unnecessary: by stopping the process calling `CubDB`, any running read
operation by that process is stopped.
- [breaking] `CubDB.select/2` now returns a lazy stream that can be used with
functions in `Enum` and `Stream`. This makes the `:pipe` and `:reduce`
options unnecessary, so those options were removed.
- Add `CubDB.snapshot/2`, `CubDB.with_snapshot/1` and
`CubDB.release_snapshot/1` to get zero cost read-only snapshots of the
database. The functions in `CubDB.Snapshot` allow to read from a snapshot.
- Add `CubDB.transaction/2` to perform multiple write (and read) operations in
a single atomic transaction. The functions in `CubDB.Tx` allow to read and
write inside a transaction.
- Add `CubDB.back_up/2` to produce a database backup. The backup process does
not block readers or writers, and is isolated from concurrent writes.
- Add `CubDB.halt_compaction/1` to stop any running compaction operation
- Add `CubDB.compacting?/1` to check if a compaction is currently running
- Move read and write operations to the caller process as opposed to the
`CubDB` server process.
- Improve concurrency of read operations while writing
0 commit comments