Skip to content

Releases: rabbitmq/khepri_mnesia_migration

khepri_mnesia_migration 0.7.1

18 Nov 09:41
v0.7.1
ab6755c
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.7.1"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.7.1
  2. 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

12 Sep 20:42
v0.7.0
515a401
Compare
Choose a tag to compare

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

Known issue

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.7.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.7.0
  2. 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

05 Sep 09:27
v0.6.0
fc5cd44
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.6.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.6.0
  2. 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

13 May 16:29
v0.5.0
a91c8c3
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.5.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.5.0
  2. 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

12 Feb 12:51
v0.4.0
95c27d0
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.4.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.4.0
  2. 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

30 Jan 13:34
v0.3.0
9ac5d7b
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.3.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.3.0
  2. 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

27 Oct 14:02
v0.2.1
56d7d12
Compare
Choose a tag to compare

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 sure is_migration_finished/2 will return false immediately after a rollback.
  • Correctly handle a no_exists abort reason returned by the Mnesia function in mnesia_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's copy_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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.2.1"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.2.1
  2. 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

24 Oct 12:42
v0.2.0
bca1adb
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.2.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.2.0
  2. 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

01 Sep 08:57
v0.1.1
ec89180
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.1.1"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.1.1
  2. 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

30 Aug 17:28
v0.1.0
d9d6b59
Compare
Choose a tag to compare

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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri_mnesia_migration, "0.1.0"}]}.
  2. Run rebar3 upgrade khepri_mnesia_migration.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri_mnesia_migration = hex 0.1.0
  2. 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.