Tags: lucaong/cubdb
Tags
Version v2.0.0-rc.1 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
Version v1.0.0-rc.10 Changes: - [fix] Fix CubDB.cubdb_file?/1 regexp, making it stricter
Version v1.0.0-rc.9 Changes: - [fix] fix process (and file descriptor) leak upon compaction
Version v1.0.0-rc.8 Changes: - Remove default GenServer timeouts
Version v1.0.0-rc.7 Changes: - `put_and_delete_multi` and `put_multi` have no caller timeout, consistently with the other functions.
PreviousNext