Мне нужно выбрать базу данных, которая в конечном итоге соответствует.Приложение не будет выполнять обновление данных, только добавлять и архивировать (удалять) старые данные.Требуется драйвер для .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), то было бы довольно сложно найти ту, которая лучшедля моих требований.