我需要选择一个最终保持一致的数据库。应用程序将不会执行数据更新,仅添加和存档(删除)旧数据。 .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 Server到应用程序的传输过程中,某处丢失了成功添加数据的响应,然后该应用程序尝试将数据提交到另一个区域中的API服务器,以将数据添加到另一个副本中。我希望在不同步的情况下添加数据时不会出现问题,并且在同步期间也不想出现问题,因为两个副本中已经存在相同的条目。 如果数据已经同步并且条目已经在第二个副本中,那么我想获得一个响应表DB,该条目已经添加了数据。
目前我正在考虑使用Cassandra,但是由于我的经验仅限于2个数据库MSSQL,MongoDB,并且对Elastic(ELK堆栈)有一定的了解,因此要找到最适合我的要求的数据库将是非常困难的