Согласованность чтения-собственных-записей-это большое улучшение по сравнению с так называемой конечной согласованностью: если я изменяю свою фотографию профиля, мне все равно, увидят ли другие изменения через минуту, но это выглядит странно, если после перезагрузки страницы Я все еще вижу старый.
Может ли это быть достигнуто в Кассандре без необходимости выполнять полную проверку на чтение более чем на одном узле?
Использование 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 = кворум, по моему мнению, приводит к расточительному запросу на чтение, если я согласен только на «моих» данных достаточно.
// seo: также известен как: согласованность сеанса, согласованность чтения после записи