Hypermnesia: Auto reconciliation in Mnesia
Mnesia is an embedded database for Erlang/OTP applications that offers outstanding performance thanks to its tight integration with Erlang. However, its lack of conflict resolution after network partitions is a notable limitation that demands manual restart by developers to reconcile replicas. In this talk, I will discuss eventual consistency and CRDTs to achieve automatic conflict resolution within Mnesia. I will introduce Hypermnesia, an extension to Mnesia featuring a new access context async_ec that streamlines replica reconciliation after a partition. Hypermnesia is also designed with minimising overhead and out-of-box usage in mind. In the talk, I will present benchmarking results, and demonstrate practical examples of using Hypermnesia. This project is a collaboration between the University of Cambridge and Erlang Solutions.