2016-04-14 57 views
0

我正在期待集成测试我的Couchbase实现,并且我遇到了Couchbase的最终一致性问题。在生产环境中,我的数据完全没问题,但是在测试时间,我想插入一些数据,然后通过我的各种服务验证我是否收到数据。如果数据陈旧,这是行不通的,因为我的测试期望无法解释这一点。强制couchbase在集成测试时更新视图索引

我可以通过在Couchbase客户端中将staleState设置为false来解决此问题,但这意味着我所有的测试都将触发重建索引并增加其运行时间。

有没有办法强制Couchbase触发一次性重建设计文档的索引?本质上,我想上传我的所有测试数据,触发重建,然后执行我的测试用例。

此外,如果有更好的与Couchbase进行集成测试的模式,我很乐意听到它。

感谢,

M.

回答

0

当陈旧=假的,如果有需要进入指数实际上更多的数据集Couchbase只会重建视图索引。您的第一个stale = false可能需要一些时间,但只要您没有在集群中放入更多数据,即使设置了stale = false,其余的调用也应该很快。

对于所有后续调用,由于索引检查的原因,会有一个小的(毫秒或更小的)延迟,以确保它是最新的。如果你不想要这个,你可以运行stale = true查询,并且只要你没有插入更多的数据就可以得到正确的结果。

最后要注意的是,视图索引构建是增量式的,因此它们从不重建整个索引。