Repository navigation
Khepri 0.17.3
At this point, Khepri should be considered Beta. The API will likely evolve and future releases will likely introduce breaking changes.
What's new in Khepri 0.17.3
Faster queries
When khepri_machine computes the list of default options, it verifies which machine version is currently effective, regardless of what it supports locally, because the overall cluster might use an older machine code.
This machine version check uses Ra counters, but they remain expensive to read. This is specially visible when querying a Khepri store. A significant part of the time it takes to process a query is spent in reading the Ra counters.
This version caches the effective machine version when the Khepri machine is started and when the machine version is upgraded using a persistent_term. This is way more efficient and improves the performance of queries. This improves the life of the machine itself, but the impact is less visible.
See #349.
Other changes
- Handle
{error, normal}return value from Ra inkhepri_machine:process_sync_command/3(#350). - Ignore
keep_whilecondition at time a tree node is created when thekeep_whiletargets a child node (#351). - Address several warnings from Dialyzer (#345, #346).
Download
Khepri is available from Hex.pm: https://hex.pm/packages/khepri/0.17.3
Upgrade
Using Rebar:
-
Update your
rebar.config:%% In rebar.config {deps, [{khepri, "0.17.3"}]}.
-
Run
rebar3 upgrade khepri.
Using Erlang.mk:
-
Update your
Makefile:%% In your Makefile dep_khepri = hex 0.17.3 -
Remove the
deps/khepridirectory. The new version will be fetched the next time you build your project.