Чтение / запись парадигм и CAP

Я пытаюсь понять, есть ли взаимосвязь между компонентами C onsistency и Aailability теоремы CA P и масштабом чтения и записи.

То есть, если я знаю, что у меня большие данные, и для моей системы важнее обрабатывать тяжелые записи (потому что, может быть, я в порядке с медленной автономной аналитикой и отчетностью), то что для меня важнее: согласованность или доступность?

И, наоборот, если я знаю, что мне нужно настроить систему для интенсивного чтения (может быть, это хранилище данных, из которого нужно запускать онлайн-аналитику в реальном времени), что для меня важнее: согласованность или доступность?

Мое предположение:

  • Тяжелые системы записи => Доступность; так как сбитый узел, который не может быть записан, является SPoF
  • Тяжелые системы чтения => Согласованность; поскольку система явно используется для отчетности / аналитики, которые должны быть точными независимо от того, с какого узла они были получены

С другой стороны, я вижу, что вы приводите аналогичные аргументы для совершенно противоположного: системы с тяжелой записью должны быть согласованными, в противном случае они могут не справиться с репликацией / трансляцией изменений на другие узлы, а системы с интенсивным чтением должны быть доступны, иначе запросы к узлам могут потерпеть поражение.

Это наводит меня на мысль, что, возможно, между парадигмой чтения / записи и CAP нет никакой связи. Я думаю, я просто разочарован, потому что каждая статья, которую я читаю на NoSQL + CAP, говорит о том, что в конце концов вам просто нужно выбрать технологию, которая " подходит для вашего приложения ", но это похоже на то, как много ручного отказа!

Поэтому было бы неплохо, если бы существовал конкретный лакмус для выбора хранилищ данных AP и CP, если я знаю, что я склонен к чтению или записи... есть идеи?

0 ответов

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