Skip to content

Commit c58c847

Browse files
committed
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
1 parent 8418576 commit c58c847

File tree

2 files changed

+20
-19
lines changed

2 files changed

+20
-19
lines changed

CHANGELOG.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ releases](https://github.com/lucaong/cubdb/releases).
66
Since `v1.0.0`, `CubDB` follows [semantic versioning](https://semver.org), and
77
reports changes here.
88

9-
## v2.0.0 (unreleased)
9+
## v2.0.0 (unreleased, currently in release candidate state)
1010

1111
Version `2.0.0` brings better concurrency, atomic transactions with arbitrary
1212
operations, zero cost read-only snapshots, database backup, and more, all with a
@@ -15,29 +15,30 @@ simpler and more scalable internal architecture.
1515
Refer to the [upgrade guide](https://hexdocs.pm/cubdb/upgrading.html) for how to
1616
upgrade from previous versions.
1717

18-
- [breaking] The functions `get_and_update/3`, `get_and_update_multi/3`, and
19-
`select/2` now return directly `result`, instead of a `{:ok, result}` tuple.
20-
- [breaking] `get_and_update_multi/4` does not take an option argument
21-
anymore, making it `get_and_update_multi/3`. The only available option used
22-
to be `:timeout`, which is not supported anymore.
23-
- [breaking] Remove the `:timeout` option on `select/2`. This is part of a
24-
refactoring and improvement that moves read operations from an internally
18+
- [breaking] The functions `CubDB.get_and_update/3`,
19+
`CubDB.get_and_update_multi/3`, and `CubDB.select/2` now return directly
20+
`result`, instead of a `{:ok, result}` tuple.
21+
- [breaking] `CubDB.get_and_update_multi/4` does not take an option argument
22+
anymore, making it `CubDB.get_and_update_multi/3`. The only available option
23+
used to be `:timeout`, which is not supported anymore.
24+
- [breaking] Remove the `:timeout` option on `CubDB.select/2`. This is part of
25+
a refactoring and improvement that moves read operations from an internally
2526
spawned `Task` to the client process. This makes the `:timeout` option
2627
unnecessary: by stopping the process calling `CubDB`, any running read
2728
operation by that process is stopped.
28-
- [breaking] `select/2` now returns a lazy stream that can be used with
29+
- [breaking] `CubDB.select/2` now returns a lazy stream that can be used with
2930
functions in `Enum` and `Stream`. This makes the `:pipe` and `:reduce`
3031
options unnecessary, so those options were removed.
31-
- Add `snapshot/2`, `with_snapshot/1` and `release_snapshot/1` to get zero
32-
cost read-only snapshots of the database. The functions in `CubDB.Snapshot`
33-
allow to read from a snapshot.
34-
- Add `transaction/2` to perform multiple write (and read) operations in a
35-
single atomic transaction. The functions in `CubDB.Tx` allow to read and
32+
- Add `CubDB.snapshot/2`, `CubDB.with_snapshot/1` and
33+
`CubDB.release_snapshot/1` to get zero cost read-only snapshots of the
34+
database. The functions in `CubDB.Snapshot` allow to read from a snapshot.
35+
- Add `CubDB.transaction/2` to perform multiple write (and read) operations in
36+
a single atomic transaction. The functions in `CubDB.Tx` allow to read and
3637
write inside a transaction.
37-
- Add `back_up/2` to produce a database backup. The backup process does not
38-
block readers or writers, and is isolated from concurrent writes.
39-
- Add `halt_compaction/1` to stop any running compaction operation
40-
- Add `compacting?/1` to check if a compaction is currently running
38+
- Add `CubDB.back_up/2` to produce a database backup. The backup process does
39+
not block readers or writers, and is isolated from concurrent writes.
40+
- Add `CubDB.halt_compaction/1` to stop any running compaction operation
41+
- Add `CubDB.compacting?/1` to check if a compaction is currently running
4142
- Move read and write operations to the caller process as opposed to the
4243
`CubDB` server process.
4344
- Improve concurrency of read operations while writing

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule CubDB.Mixfile do
22
use Mix.Project
33

44
@source_url "https://github.com/lucaong/cubdb"
5-
@version "1.1.0"
5+
@version "2.0.0-rc.1"
66

77
def project do
88
[

0 commit comments

Comments
 (0)