2014-03-29 42 views
-3

您可以在这些问题上帮助我:RIAK数据库和ACID

1-是RIAK原子中的写入操作。 2-是写操作持久。 3-如何处理并发写入。 4,RIAK支持交易。

谢谢

+4

虽然这是过于宽泛,题外话了这么坦率地说,你不会如果你读了关于Riak的一件事,就问任何这些问题。我强烈建议[从这里开始](http://docs.basho.com/riak/latest/theory/why-riak/)。 –

回答

1
  1. 了Riak不支持ACID。但它使用CAP Theorem。换句话说,Riak确实使用了Atomicity的概念。
  2. 是的。写入操作持久。 DW(耐久写定额)是用于指定多少副本,以返回成功响应之前承诺耐贮运配置设置。
  3. 这是通过eventual consistency完成。基本上,您可以设置为成功写入/读取数据必须复制到/读取多少个节点。
  4. 了Riak不支持ACID transactions
+0

谢谢,不是对单个关键原子的写操作??。 有没有这种情况,例如,您有一个值:aaaaaa,并且某人将值更新为:bbbbbb。同时另一位用户阅读该值,发现:bbbaaa – user3341697

+0

欢迎您。但是,Brian Roach是对的。你需要做一些阅读。你所问的概念在最终的一致性中已经清楚地涵盖了。 – Mardwan

+0

写入操作是持久的,如果dw大于0,则默认为0。因此,服务器在写入磁盘之前会在内存中返回成功。有一个窄的窗户,其中一个崩溃将阻止写入磁盘和数据可能丢失 –

0

了Riak的最有趣的特性是如何处理并发写入,以相同的密钥。虽然Writes不是原子的,但Riak能够检测到这些冲突并保留所有冲突版本的值。当你下一次请求时,riak会让所有人都回来,让你决定如何去做。 (这意味着,你可以解决软件冲突,很像你可以解决你的IDE合并冲突)

+0

只是为了澄清:这个想法是从亚马逊的发电机([参考](http://dl.acm.org/citation.cfm采取?id = 1294281)和[PDF](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)),许多Riak的设计原则。 – Dinei