我看到各种对MongoDB的引用作为YCSB基准测试的客户端来测试NoSQL数据库服务器的可伸缩性/弹性。
https://github.com/brianfrankcooper/YCSB
然而,显然基准测试需要某种分片设置,因为测试设计为在6到10台服务器机器上运行以显示缩放和弹性。
我在互联网上找不到任何关于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线程,取决于所需 提供吞吐量。我们观察到了 测试客户端机器不是 瓶颈;特别是CPU 大多数时间花在了几乎空闲的地方 等待数据库系统 响应。
有没有人知道这个基准测试的分片配置在哪里,是否有任何针对竞争对手的真实结果,可以通过分片配置备份或详细解释为什么不需要分片。
谢谢, -Robert
答案 0 :(得分:2)
我们没有将MongoDB作为我们最初的YCSB研究的一部分。 Mongo客户端后来由另一位开发人员贡献,但我还没有针对Mongo运行完整的基准测试,所以我不知道客户端是否真的做了它需要的一切。如果没有,请继续提交补丁,我会尝试将其包含在内!
此外,“每个客户端线程一个数据库实例”注释表示JVM中DB客户端类的一个实例,不一定是一个MongoDB服务器。