@boss_lexa

Какую базу данных посоветуете для высокой согласованности между узлами CP в рамках CAP теоремы?

Для ecommerce проекта нужна БД, дублирующая данные на несколько серверов и чтобы они были согласованные, в рамках CAP теоремы выходит CP (может страдать доступность).

Хочется чтобы при сбое одного из серверов, БД смогла работать и не нужно было руками проверять согласованность.

cockroachdb подходит, но пугает что проект молодой.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 3
@protven
Почитайте тут.
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
чтобы они были согласованные

при сбое одного из серверов, БД смогла работать и не нужно было руками проверять согласованность.

У пользователя 100 рублей на счету. У вас упала сеть между серверами баз.
Пользователь хочет потратить 100 рублей.
Что дальше?
- запрещаем тратить пока не починим - вот это CP система. Мы в readonly, но все данные корректны, к какой базе бы не обратились. Синхронная репликация в основном
- разрешаем потратить только на одной базе, вторая - readonly и соответственно может показывать отстающие данные. Но работает. Это любая СУБД умеющая master-slave репликацию. Реплика догонит состояние мастера непротиворечиво и самостоятельно когда почините сеть
- разрешаем запись на обоих серверах. Пользователь нажал "купить" дважды, запросы случайно попали на разные сервера. Сеть починили - как соединять данные? Две покупки и -100 на счету? Какая-то одна покупка? Как это решать автоматически, да ещё на уровне СУБД, а не бизнес-логики?
Ответ написан
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Cassandra?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы