YCSB - 为什么我永远无法在互联网上的任何地方找到分片配置

时间:2011-05-08 20:15:15

标签: mongodb sharding ycsb nosql

我看到各种对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

1 个答案:

答案 0 :(得分:2)

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

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