Кворум это минимальное количество голосов , что распределенная транзакция должна получить для того , чтобы иметь возможность выполнить операцию в распределенной системе . Кворум основанная Реализована технология для обеспечения устойчивой работы в распределенной системе.
Голосование на основе кворума может использоваться как метод управления репликами [1], а также как метод фиксации для обеспечения атомарности транзакции при наличии разделения сети . [1]
В системе распределенной базы данных транзакция может выполнять свои операции на нескольких сайтах. Поскольку атомарность требует, чтобы каждая распределенная транзакция была атомарной, транзакция должна иметь одинаковую судьбу ( фиксация или прерывание ) на всех сайтах. В случае разделения сети сайты разделены, и разделы могут быть не в состоянии взаимодействовать друг с другом. Здесь на помощь приходит техника, основанная на кворуме. Фундаментальная идея заключается в том, что транзакция выполняется, если большинство сайтов голосует за ее выполнение.
Каждому сайту в системе присваивается голос V i . Предположим, что общее количество голосов в системе равно V, а кворумы отмены и фиксации - V a и V c соответственно. Тогда при реализации протокола фиксации необходимо соблюдать следующие правила:
Первое правило гарантирует, что транзакция не может быть зафиксирована и прервана одновременно. Следующие два правила указывают голоса, которые должна получить транзакция, прежде чем она сможет завершиться тем или иным образом.
В реплицированных базах данных у объекта данных есть копии, присутствующие на нескольких сайтах. Чтобы гарантировать сериализуемость , нельзя разрешать двум транзакциям одновременно читать или записывать элемент данных. В случае реплицированных баз данных можно использовать протокол управления репликами на основе кворума, чтобы гарантировать, что никакие две копии элемента данных не будут прочитаны или записаны двумя транзакциями одновременно.
Голосование на основе кворума за контроль над репликой принадлежит [Gifford, 1979]. [3] Каждой копии реплицированного элемента данных назначается голос. Затем каждая операция должна получить кворум чтения (V r ) или кворум записи (V w ) для чтения или записи элемента данных соответственно. Если у данного элемента данных всего V голосов, кворумы должны подчиняться следующим правилам:
Первое правило гарантирует, что элемент данных не будет считываться и записываться двумя транзакциями одновременно. Кроме того, это гарантирует, что кворум чтения содержит по крайней мере один сайт с самой новой версией элемента данных. Второе правило гарантирует, что две операции записи из двух транзакций не могут выполняться одновременно для одного и того же элемента данных. Эти два правила гарантируют, что сохраняется возможность сериализации в одну копию.