2016-06-09 48 views
2

在Riak KV中使用标志时,标志需要上下文。在Elixir客户端中,上下文由Flag.new("my context")设置,否则在尝试禁用标志时会抛出:context_requiredRiak KV中标志的上下文有什么关系

现在,标志只能存在于一个地图,并在地图中的每个元素都必须有一个关键,所以多个标志可以在一个地图和仍然键来区分。

什么是如果不区分它们的上下文的目的是什么?

回答

3

在地图标志的“加胜”或“真正的胜利”语义。这种语义是使用从Observed-Remove CRDT集中借用的一种称为“Observed Remove”的因果关系技术实现的。在许多方面,标志只是一组单个null元素,它可以在集合中(标志为真)或不在集合中(标志为假)

标志底部值为False。当地图中没有关键标志时,该标志是错误的。这就是为什么你不能添加带有False值的标志键。添加密钥与将标志设置为True相同。

添加一个标记会导致该键获得一个点或因果标记。如果该标志被同时添加两次,它将有两个这样的因果标签。当标志设置为False时,上下文或因果标签被移除,必须传递给Riak,这确保当tag1和tag2被移除时,某些并发设置为True(带tag3)不会被设置为false。这是如何增加胜利! Observed-Remove部分由上下文促成:上下文说明您已经观察到了哪些因果标签,因此可以删除哪些因素标签。

相关问题