новости сообщество форум вики

unsplit — решение проблем в распределенной mnesia

07/02/2010 11:41

Ulf Wiger создал утилиту unsplit для того, чтобы приводить таблицы mnesia в непротивроечивое состояние после того, как произошел network split.

Для восстановления непротиворечивости данных unsplit использует «грязные» (dirty) записи и чтение, закрывая к восстанавливаемым таблицам доступ на чтение и запись. Утилита использует некоторые недокументированные возможности mnesia (в частности, mnesia_monitor:connect_nodes([OtherNode]) для подсоединения к удаленным нодам).

На данный момент при выборе наилучшего кандидата на сохранение используется простое сравнение времени последнего изменения записи. Но для каждой таблицы можно определить свою собственную функцию сравнения, которая может использовать все, что угодно — векторные часы, Lamport clocks и т.п.

Несмотря на то, что это приложение всего лишь прототип, Ulf Wiger уже предлагает попытаться его «поломать» для того, чтобы найти пограничные случаи.

 

так же

Ссылки

twitter