在使用Gatling对Couchbase服务器进行性能评估期间,我们面临数据丢失问题。
我创建了一个包含2个节点(Mac机)的集群,并使用1个存储桶和1个副本进行了初始化。
加特林测试场景: 50000k 400sec(来自两台计算机的相同请求),它将总共插入100,000条记录。
加特林已成功执行该方案并从每台计算机插入50000k条记录。
这两个响应均显示成功创建数据,而失败次数为零。
但是当我使用查询服务从Couchbase服务器Web控制台检查总记录时,它给出的记录少于100,000。
我们已经对测试进行了多次迭代,但是我们看到副本1或更多副本存在相同的数据丢失问题。
注意:如果我创建未配置副本的存储桶,则跨节点的记录总数和数据分配似乎运行良好。
对于解决此问题的任何建议深表感谢。
我的加特林Scala班:
所以我们要使用8080端口上公开的数据服务。
答案 0 :(得分:1)
提出了一些澄清的问题,但请注意,默认情况下,Couchbase中的查询最终在所有更新方面都是一致的。您可以通过扫描一致性来控制它,其详细信息为in the docs。如果通过SDK运行查询,则通常是查询的简单参数。
我的猜测是这不是数据丢失,而是索引更新仍在发生。
我不知道任何细节,但是在您的情况下,您是否对查询使用HTTP?您可以通过KV服务获得最佳性能,该服务可以通过其中一个SDK直接访问。