2

我看到各种参考 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 个线程,具体取决于所需提供的吞吐量。我们在测试中观察到客户端机器不是瓶颈;尤其是,

有谁知道这个基准的分片配置在哪里,是否有任何真实的结果可以通过分片配置或详细解释为什么不需要分片来支持。

谢谢,-罗伯特

4

1 回答 1

3

我们没有将 MongoDB 作为我们最初的 YCSB 研究的一部分。Mongo 客户端后来由另一位开发人员提供,但我还没有针对 Mongo 运行完整的基准测试,所以我不知道客户端是否真的做了它需要做的一切。如果没有,请继续提交补丁,我会尝试将其包含在内!

此外,“每个客户端线程一个数据库实例”注释表示 JVM 中的一个数据库客户端类实例,不一定是一个 MongoDB 服务器。

于 2011-05-26T16:08:06.997 回答