Transactions 里亚克的交易

Transactions 里亚克的交易,transactions,erlang,riak,Transactions,Erlang,Riak,我在一个产品中使用riak,遇到了以下关于设计的问题 假设客户端A和客户端B使用相同的电子邮件/登录id同时注册。如何在riak中处理它 在传统的数据库中,我们将使用事务处理它 作为riak的新手,谁能告诉我怎么处理 提前感谢。目前您的问题非常广泛,Riak使用版本时钟和其他同步方法处理一致性问题。您使用的是单节点还是分布式节点?无论如何,Riak提供的一致性是可配置的,当然,更多消费的调整将影响其他参数,还记得CAP吗?。 检查,可能会帮助您了解更多关于您的问题 更新: 除了我在评论中指出的,

我在一个产品中使用riak,遇到了以下关于设计的问题

假设客户端A和客户端B使用相同的电子邮件/登录id同时注册。如何在riak中处理它

在传统的数据库中,我们将使用事务处理它

作为riak的新手,谁能告诉我怎么处理


提前感谢。

目前您的问题非常广泛,Riak使用版本时钟和其他同步方法处理一致性问题。您使用的是单节点还是分布式节点?无论如何,Riak提供的一致性是可配置的,当然,更多消费的调整将影响其他参数,还记得CAP吗?。 检查,可能会帮助您了解更多关于您的问题

更新:
除了我在评论中指出的,因为您只处理一个节点,所以可以在erlang的标准消息队列gen_server?中对请求进行排队?。如果您想保证事务性行为,将服务扩展到多个节点将再次导致很多复杂问题。

目前您的问题相当广泛,Riak使用版本时钟和其他同步方法处理一致性问题。您使用的是单节点还是分布式节点?无论如何,Riak提供的一致性是可配置的,当然,更多消费的调整将影响其他参数,还记得CAP吗?。 检查,可能会帮助您了解更多关于您的问题

更新:
除了我在评论中指出的,因为您只处理一个节点,所以可以在erlang的标准消息队列gen_server?中对请求进行排队?。如果您想保证事务性行为,将服务扩展到多个节点将再次导致很多复杂问题。

通常,您无法以事务性方式在Riak中处理此问题,Riak 2.0可能能够通过Riak集成通过一致写入来处理此问题。仅仅提高一致性级别不足以获得您想要的一致性

因此,要么您的设计必须解决这个问题,要么您必须在以后发现两个用户同时创建了同一个登录时解决多个登录问题


我的方法是为这些东西提供一个序列化的编写器。用户创建并不常见。序列化编写器始终可以保证唯一性。

一般来说,您不能以事务方式在Riak中处理此问题。Riak 2.0可能能够通过Riak集成使用一致写入来处理此问题。仅仅提高一致性级别不足以获得您想要的一致性

因此,要么您的设计必须解决这个问题,要么您必须在以后发现两个用户同时创建了同一个登录时解决多个登录问题


我的方法是为这些东西提供一个序列化的编写器。用户创建并不常见。而且,一个连载作者总是可以保证唯一性。

谢谢。单节点。我读了你提到的那篇文章,仍然不知道如何解决我的问题。你能详细解释一下吗?我没有直接在Riak上工作,但在搜索文档后,发现如何在客户端解决这个问题。和分别检查并发写入和冲突解决。谢谢。单节点。我读了你提到的那篇文章,仍然不知道如何解决我的问题。你能详细解释一下吗?我没有直接在Riak上工作,但在搜索文档后,发现如何在客户端解决这个问题。和检查并发写入和冲突解决情况。可能值得一看riak Stanchion,它看起来像所描述的序列化程序的实现。可能值得一看riak Stanchion,它看起来像所描述的序列化程序的实现。