mongodb - YCSB - 为什么我在互联网上的任何地方都找不到分片配置

标签 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 Experimental Setup

For most experiments, we used six server-class machines (dual 64-bit quad core 2.5 GHz Intel Xeon CPUs, 8 GB of RAM, 6 disk RAID-10 array and gigabit ethernet) to run each system. We also ran PNUTS on a 47 server cluster to successfully demonstrate that YCSB can be used to benchmark larger systems. PNUTS required two additional machines to serve as a configuration server and router, and HBase required an additional machine called the “master server.” These servers were lightly loaded, and the results we report here depend primarily on the capacity of the six storage servers. The YCSB Client ran on a separate 8 core machine. The Client was run with up to 500 threads, depending on the desired offered throughput. We observed in our tests that the client machine was not a bottleneck; in particular, the CPU was almost idle as most time was spent waiting for the database system to respond.

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

谢谢, -罗伯特

最佳答案

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

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

关于mongodb - YCSB - 为什么我在互联网上的任何地方都找不到分片配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5930061/

相关文章:

mysql - 使用结构化标准和自由文本关键字/短语的组合进行搜索 - NOSQL vs Lucene/Sphinx

javascript - 用 Mongoose 存储时间的数据类型

Grails MongoDB 插件 : Embedded Collections vs References

Mongodb 不分片

sql - 对于一台机器上的结构化数据,NoSQL是否比RDBMS有任何真正的优势?

redis - 如何在 Ubuntu 上为 redis 集群运行 YCSB

mysql - YCSB 与 mysql 主键的重复条目

使用自动故障转移时 PHP MongoDB 错误

postgresql - PostgreSQL 的扩展性与 MongoDB 相比如何?

java - Maven 构建错误