对于最终一致的AP数据库的任何建议(CAP定理)。主要仅附加和存档(删除)数据,绝对不更新

时间:2019-05-17 06:14:30

标签: database cassandra eventual-consistency

我需要选择一个最终保持一致的数据库。应用程序将不会执行数据更新,仅添加和存档(删除)旧数据。 .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堆栈)有一定的了解,因此要找到最适合我的要求的数据库将是非常困难的

0 个答案:

没有答案