Здравствуйте, Cyberax, Вы писали:
C>Базу документов делим на shard'ы, привязывая определённые серверы к определённым shard'ам. Каждый shard внутри хранит монотонно увеличивающийся счётчик изменений. Соответственно, при операции записи возвращается контекст, который укажет на ожидаемые счётчики для затронутых shard'ов. При чтении эти значения будут использоваться для того, чтобы подтвердить, что реплика полностью обновилась до нужного уровня.
Ага, так и в одной статейке какого-то из директоров было. Я это назвал "глобальный номер версии" (потому что если у каждого шарда счетчик будет совсем независимый, то до какого-то шарда могло дойти только одно из двух изменений, а до другого — только другое, и получится что у каждого версия увеличилась на 1 — но реально данные на них разные; так что думаю номер должен быть все же каким-то образом сквозным, по кр мере на первый взгляд).
Но вот в том и фишка что БД должна такую нумерацию (в том числе при общении с клиентами) поддерживать сама.
Slicer
Специалист — это варвар, невежество которого не всесторонне :)