Любые рекомендации для в конечном итоге согласованной базы данных AP (теорема CAP).В основном добавлять только и архивировать (удалять) данные, безусловно, без обновлений - PullRequest
0 голосов
/ 17 мая 2019

Мне нужно выбрать базу данных, которая в конечном итоге соответствует.Приложение не будет выполнять обновление данных, только добавлять и архивировать (удалять) старые данные.Требуется драйвер для .Net Core.В идеале, если он поддерживает IQueryable

What is an ideal db for my use case:

 - free database
 - can be run in Docker
 - can work with just 2 replica nodes(don't need any quorum)
 - if connection between 2 replica nodes lost, 
 need both nodes to be working for append & read
 (I'm ok if latest data not available for some time and can be
   synchronized later).
 - For archive/delete would be nice if the operation would fail if 2 replicas 
 don't have the connection
 - 2 Replicas may sit in different Data Center or different regions.
 - can be sharded/scaled horizontally if it would require in the future
 - may accept some data loss, but would like to minimize that
 - Need indexes for quick search
 - Automatic conflict resolution for the same entry added into both replica sets.

Что такое идеальное автоматическое разрешение конфликтов для одной и той же записи, добавляемой в оба набора реплик?

Давайте рассмотрим сценарий: приложение пытается вызвать сервер API в одном регионе.Сервер API отправляет запрос на добавление данных, данные добавляются в базу данных.Давайте представим, что ответ, что данные были успешно добавлены, теряется где-то при передаче от Db к серверу Web API к приложению, затем приложение пытается отправить данные на сервер API в другом регионе, чтобы добавить данные в другую реплику.Я хотел бы, чтобы данные были добавлены без проблем, если они не были синхронизированы и не хотят проблем во время синхронизации, поскольку одна и та же запись уже есть в обеих репликах.Если данные уже синхронизированы, и запись уже находится во 2-й реплике, я хотел бы получить ответ из БД формы, в которой запись данных уже добавлена.

В данный момент я рассматриваю Cassandra, но так как мой опыт ограничен только двумя базами данных MSSQL, MongoDB и имеют некоторое знакомство с Elastic (стек ELK), то было бы довольно сложно найти ту, которая лучшедля моих требований.

...