我看到各种参考 MongoDB 作为 YCSB 基准测试的客户端,以测试 NoSQL 数据库服务器的可伸缩性/弹性。
https://github.com/brianfrankcooper/YCSB
但是,很明显,基准测试需要某种分片设置,因为测试旨在在 6 到 10 台服务器机器上运行,以显示可扩展性和弹性。
我在 Internet 上找不到任何关于 MongoDB 配置的参考资料。我找不到任何发布结果的人也发布了他们的配置。
这件事真的成功了吗?与 Cassandra、HBase 等原始 YCSB 客户端相比,结果如何?
我特别困惑,因为在 MongoDB 客户端的代码中,它读取......“每个客户端线程有一个数据库实例”......见片段。
public class MongoDbClient extends DB {
private static final Logger logger = LoggerFactory.getLogger(MongoDbClient.class);
private Mongo mongo;
private WriteConcern writeConcern;
private String database;
/**
* Initialize any state for this DB. Called once per DB instance; there is
* one DB instance per client thread.
*/
public void init() throws DBException {
// initialize MongoDb driver
Properties props = getProperties();
......
然而,在 Brian Cooper YCSB 结果论文中,它指出他们将工作负载运行到多达 500 个线程。
6.1 实验装置
对于大多数实验,我们使用六台服务器级机器(双 64 位四核 2.5 GHz Intel Xeon CPU、8 GB RAM、6 个磁盘 RAID-10 阵列和千兆以太网)来运行每个系统。我们还在 47 个服务器集群上运行 PNUTS,以成功证明 YCSB 可用于对更大的系统进行基准测试。PNUTS 需要两台额外的机器作为配置服务器和路由器,而 HBase 需要一台额外的机器,称为“主服务器”。这些服务器负载很轻,我们在此报告的结果主要取决于六台存储服务器的容量。YCSB 客户端在单独的 8 核机器上运行。客户端运行多达 500 个线程,具体取决于所需提供的吞吐量。我们在测试中观察到客户端机器不是瓶颈;尤其是,
有谁知道这个基准的分片配置在哪里,是否有任何真实的结果可以通过分片配置或详细解释为什么不需要分片来支持。
谢谢,-罗伯特