Последовательность чтения-записи-записи в Cassandra

Последовательность чтения-записи-записи - большое улучшение по сравнению с так называемой согласованностью в конечном итоге: если я изменю свой профиль picture Меня не волнует, увидят ли другие изменения через минуту, но это выглядит странно, если после перезагрузки страницы я все еще вижу старую.

Можно ли этого добиться в Cassandra без необходимости выполнять полную проверку чтения на более одного узла?

Использование ConsistencyLevel.QUORUM допустимо при чтении неуказанных данных, и фактически читается n> 1 узлов. Однако, когда клиент читает с того же узла, что и записывает (и фактически использует то же соединение), это может быть расточительным - некоторые базы данных в этом случае всегда будут гарантировать, что ранее записанные (мои) данные возвращаются, а не какой-нибудь постарше. Использование ConsistencyLevel.ONE не гарантирует это и предполагает, что это приводит к условиям гонки. Некоторые тесты показали это: http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/per-connection-quot-read-after-my-write-quot-consistency-td6018377. html

Моя гипотетическая установка для этого сценария: 2 узла, фактор репликации 2, уровень чтения 1, уровень записи 1. Это приводит к конечной согласованности, но я хочу согласованность чтения ваших собственных записей на читает.

Использование 3 узлов, RF = 3, RL = кворум и WL = кворум, на мой взгляд, приводит к бесполезным запросам чтения, если мне достаточно согласованности только «моих» данных.

// поисковая оптимизация: также известна как: согласованность сеанса, согласованность чтения после моей записи

9
задан tillda 28 July 2011 в 23:00
поделиться