首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内容N1QL查询Couchbase GOCB sdk

内容N1QL查询Couchbase GOCB sdk
EN

Stack Overflow用户
提问于 2016-10-02 16:54:29
回答 1查看 108关注 0票数 1

我目前正在为我的Go Actor库实现EventSourcing。我现在遇到的问题是,当执行元重新启动并需要重放事件日志中的所有状态时,查询可能会返回不一致的数据。我知道我可以使用MutationToken解决这个问题

但是,如果我这样做,我将被迫按顺序写入所有事件,即最后一个事件。

这样,最后一个事件的突变令牌就足以获得特定参与者的所有一致数据。

然而,这是非常慢的,按顺序写入大约10000个事件,在我的设置中需要大约5秒。

如果我使用go例程编写这10000个异步数据,我可以在不到一秒的时间内写入所有数据。但是,然后写入是不确定的顺序,我可以知道我可以信任哪个突变令牌。例如,由于进行例程调度AFAIK,事件999可以在事件843之前写入。

我在这里有什么选择?

EN

回答 1

Stack Overflow用户

发布于 2016-10-04 09:47:28

从技术上讲,MutationToken和异步操作并不是相互排斥的。这也许可以在不更改客户端的情况下完成(我不确定),但这里的关键是获取所有MutationToken响应,然后使用所有这些响应发出每个vbucket最高编号的查询。

这里的关键是,给定一个MutationToken,您可以向其添加其他can。我没有直接看到这样做的方法,但因为在内部它只是一个地图,它应该是相对简单的,我相信我们(Couchbase)会做出贡献来做到这一点。在最低层,它只是在发出查询时提供给查询的vbucket序列的映射。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39815387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档