2015-05-23 1 views
1

Aerospike поддерживает ACID в кластерной среде с коэффициентом репликации более 1, где любая запись будет записана в Master и Replica, а затем только она будет отмечена как успех клиенту ,Aerospike: асинхронная репликация: успех на хозяине и отказ от реплики

Но мы можем изменить вышеупомянутое поведение по умолчанию, изменив write.commit_level из все к мастер.

В таком случае предположим, что запись/обновление успешно выполняется на главном узле, а клиент уведомлен, но запись не выполняется на узле Replica. Что произойдет?

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

Примечание узел реплики не вниз, не удалось из-за какой-либо причине, как остановки только записи пишет РСТ нарушается в реплике узле и т.д.

ответ

2

если вы выбираете write.commit_level=master, и если PROLE записи не удается, клиент не будет уведомлен об ошибке. Реплика останется несовместимой с мастером. Мастер-запись не будет откат. Реплика будет зафиксирована на следующей записи с успешной репликацией. то есть он будет перезаписан последней записью.

Кстати, важно отметить, что stop-writes имеет честь у мастера, а не у реплики. Из-за этого будет плохой идеей провалить реплику. До тех пор, пока у вас есть какая-то головная комната с точки зрения памяти (без сбоев malloc) и диска, шансов на запись реплики вряд ли удастся, когда сам узел не опустится.

+0

Спасибо Сунил за ваш ответ. Первая часть о несогласованности в Мастер и реплике в таком сценарии понятна. О второй части, стоп-записи, выполняемые только в Primary, вы столкнулись с этим в своей постановке или присутствовали в самой аэроскопической документации. Я не мог много узнать об этом. –