Обеспечивает ли Aerospike режим CP без конфликтных возможностей?

В настоящее время я оцениваю Aerospike для моего проекта. Мне требуется простое хранилище ключей / значений с высокой степенью согласованности (ни при каких обстоятельствах не должно возникать конфликтов версий значений) и максимальной долговечностью (потеря данных чрезвычайно вредна) для размера данных, который не помещается в ОЗУ. Aerospike, кажется, является одним из наиболее подходящих вариантов. Единственное, что меня беспокоит - действительно ли поддерживается сильная последовательность.

Согласно официальному документу Aerospike https://www.aerospike.com/docs/architecture/assets/AerospikeACIDSupport.pdf Режим CP не поддерживается:

Чтобы использовать Aerospike в большем количестве доменов, мы планируем добавить конфигурацию для работы кластера в режиме CP в дополнение к режиму AP, который поддерживается сейчас.

В то же время Aeospike предоставляет различные гарантии согласованности http://www.aerospike.com/docs/architecture/consistency.html но не ясно, если, например, write.commit_level = all сделает несоответствия невозможными, поскольку речь идет скорее о долговечности, чем о консистенция.

Так есть ли способ использовать кластер Aerospike без конфликтов значений при любых обстоятельствах (таких как сбои реплик, разбиение кластера, задержки в сети и т. Д.) В одном развертывании DC/ региона? Как должна выглядеть конфигурация в этом случае?

2 ответа

Решение

Режим CP - это то, над чем мы сейчас активно работаем. Что вы имеете в виду, когда говорите "сильная последовательность"? Прямо сейчас у нас есть политика разрешения конфликтов, такая, что в раздвоении мозга можно использовать либо генерацию записи, либо TTL (время жизни), чтобы решить, какая запись "выиграет" конфликт.

Последняя версия Aerospike (версия 4.x +) имеет режим CP - его называют режимом сильной согласованности - оцененный Jepsen. (См. http://jepsen.io/)

Другие вопросы по тегам