Последовательная и причинная согласованность

Для базы данных о продажах уникальных предметов, если мы используем последовательную согласованность, мы можем гарантировать, что, например, этот уникальный предмет никогда не будет дважды продан разным людям. Гарантирует ли нам это причинная последовательность?

Если есть какие-то продажи, которые начались/закончились в одно и то же время, нарушает ли система работу?

Поскольку предметы уникальны, мы можем продать только один предмет каждого предмета.

благодарю вас


person emraldinho    schedule 08.11.2014    source источник


Ответы (1)


Причинно-следственная согласованность гарантирует, что если два события причинно связаны, все согласятся с порядком их возникновения. Это допускает разногласия по поводу порядка событий, которые не связаны причинно (или «одновременно»).

Две попытки купить товар, предпринятые разными узлами в системе, вероятно, не будут связаны причинно-следственной связью — покупатель Б почти наверняка не попытается купить товар, потому что он видел, что покупатель А уже купил. В причинно-непротиворечивой системе это означает, что два события происходят одновременно, и разные узлы в системе могут расходиться во мнениях относительно их относительного порядка: А может полагать, что его попытка покупки была первой и успешной, а В может верить в то же самое.

Вы можете сделать две попытки покупки причинно-следственными связями с некоторой дополнительной случайностью. Вместо того, чтобы предлагать покупателям покупать товар напрямую, попросите их написать запись, указывающую на их желание приобрести этот товар. Назначьте один узел «владельцем» элемента. Всякий раз, когда он видит запись о желании купить, он считывает текущее состояние предмета и, если он доступен, продает его данному покупателю. Покупатели наблюдают за товаром, чтобы узнать, был ли он продан им или кому-то еще.

Это устанавливает порядок между двумя событиями: либо владелец первым видит запись А и продает ее ей, либо сначала видит запись Б и продает ее ему. Эти два события не связаны причинно-следственной связью, поэтому другие узлы могут видеть записи в обратном порядке, но это нормально — их мнение не учитывается, учитывается только мнение владельца. Второе чтение владельца (которое должно видеть, что предмет уже продан) причинно связано с его более ранней записью, помечающей предмет как проданный, поскольку они выполняются на одном узле, поэтому мы гарантируем, что будет продан только предмет. однажды.

person David Murray    schedule 07.07.2015