Releases: rabbitmq/khepri_mnesia_migration
khepri_mnesia_migration 0.7.1
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.7.1
This release ships a single bugfix: it strengthens the conditions required to repair a cluster after a node lost all its data. This avoids "false positive" where a node is added back to a cluster after a genuine removal.
See #24.
Download
khepri_mnesia_migration
0.7.1 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.7.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.7.1"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.7.1
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.7.1 is available on Hex.pm.
khepri_mnesia_migration 0.7.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.7.0
Improved resilience for nodes who lost all data
If one or more nodes lose their disk, this is how to recover the cluster. This is based on some heuristic so not 100% guarantied. See #18.
Unfortunately, an issue was discovered during testing. Existing improvements were left in place but the testcases were disabled until a proper bug fix is committed in a future release. See #23.
Handle "delete" events from Mnesia checkpoint
Under load in RabbitMQ, we discovered that khepri_mnesia_migration could get the "delete" events from Mnesia checkpoint. This is now handled correctly.
See #21.
Manage concurrent calls to setup_projection()
Before the projection is configured, concurrent calls to handle_fallback()
would slow down the Erlang node and would spam the logs. This is now fixed.
See #19.
Other changes
- Improve logging during cleanup, to make it less scary (#20).
- Khepri was bumped from 0.15.0 to 0.16.0 (#22).
Download
khepri_mnesia_migration
0.7.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.7.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.7.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.7.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.7.0 is available on Hex.pm.
khepri_mnesia_migration 0.6.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.6.0
Improved logging
If khepri_mnesia_migration
could not setup the projection, it used to log a LOT and at the "warning" level on top of that. This was scary and spammy for no good reasons because the function works just fine even without the projection.
See #14.
Support for clustered nodes that lost their state
If a node loses its state, i.e. all Khepri and Mnesia data on disk, calling mnesia_to_khepri:sync_cluster_membership/1
wouldn’t repair the cluster before this patch.
At best, it would leave the nodes untouched, thus with all but one nodes that think the lost node is clustered, and the lost node that believes it is unclustered.
This scenario is now supported and the cluster will be correctly repaired.
See #16.
Other changes
- Use
khepri_cluster:is_store_running/1
instead of rolling our own poor copy (#15). - Khepri was bumped from 0.13.0 to 0.15.0 (#17).
Download
khepri_mnesia_migration
0.6.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.6.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.6.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.6.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.6.0 is available on Hex.pm.
khepri_mnesia_migration 0.5.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.5.0
- Khepri was bumped from 0.12.0 to 0.13.0 (#13).
- Handle the case where the projection was initialized concurrently during a Mnesia->Khepri table copy (#12).
Download
khepri_mnesia_migration
0.5.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.5.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.5.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.5.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.5.0 is available on Hex.pm.
khepri_mnesia_migration 0.4.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.4.0
Khepri was bumped from 0.11.0 to 0.12.0 (#11).
Download
khepri_mnesia_migration
0.4.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.4.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.4.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.4.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.4.0 is available on Hex.pm.
khepri_mnesia_migration 0.3.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.3.0
Khepri was bumped from 0.8.0 to 0.11.0 (#10).
Download
khepri_mnesia_migration
0.3.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.3.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.3.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.3.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.3.0 is available on Hex.pm.
khepri_mnesia_migration 0.2.1
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.2.1
This release contains mostly bug fixes and internal improvements, following
more extensive testing in RabbitMQ.
is_migration_finished/{1,2}
returns a meaningful return value even if the Khepri store is stopped (#4).rollback/2
waits for the Khepri projection to be updated before returning (#5). This makes sureis_migration_finished/2
will return false immediately after a rollback.- Correctly handle a
no_exists
abort reason returned by the Mnesia function inmnesia_to_khepri:handle_fallback/4
(#6). - Protect against infinite loop in
mnesia_to_khepri:handle_fallback/4
(#7). - Check record validity before running the
mnesia_to_khepri
callback module'scopy_to_khepri/3
function (#8).
Download
khepri_mnesia_migration
0.2.1 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.2.1
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.2.1"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.2.1
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.2.1 is available on Hex.pm.
khepri_mnesia_migration 0.2.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.2.0
- Always call the callback module from the same process (#2).
- Speed up
is_migration_finished/{1,2}
(#3).
Download
khepri_mnesia_migration
0.2.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.2.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.2.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.2.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.2.0 is available on Hex.pm.
khepri_mnesia_migration 0.1.1
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.1.1
This release drops Mnesia and Khepri as hard dependencies in the khepri_mnesia_migration.app
file (see #1).
Download
khepri_mnesia_migration
0.1.1 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.1.1
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.1.1"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.1.1
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.1.1 is available on Hex.pm.
khepri_mnesia_migration 0.1.0
At this point,
khepri_mnesia_migration
should be considered Alpha and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in khepri_mnesia_migration
0.1.0
This is the first release of khepri_mnesia_migration
!
khepri_mnesia_migration
is a library providing helpers to migrate data between the Mnesia and Khepri databases.
Currently, only the migration from Mnesia to Khepri is supported.
Download
khepri_mnesia_migration
0.1.0 is available from Hex.pm: https://hex.pm/packages/khepri_mnesia_migration/0.1.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri_mnesia_migration, "0.1.0"}]}.
-
Run
rebar3 upgrade khepri_mnesia_migration
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri_mnesia_migration = hex 0.1.0
-
Remove the
deps/khepri_mnesia_migration
directory. The new version will be fetched the next time you build your project.
Documentation
The documentation for khepri_mnesia_migration
0.1.0 is available on Hex.pm.