【问题标题】:How to set up MongoDB Sharded Cluster to Benchmark it against Cassandra?如何设置 MongoDB Sharded Cluster 以针对 Cassandra 进行基准测试?
【发布时间】:2016-09-02 08:23:59
【问题描述】:

我有一个 Cassandra 集群,环中有 5 个 C* 节点。所有数据都在 1 个节点上复制。数据跨节点分区。

我使用 MongoDB 手册来设置 Sharded Cluster,但我觉得如果我需要更多节点用于 configsvr 和 App Server(s),这不是将其与 Cassandra 集群进行基准测试的理想设置。

  • 如何设置具有 5 个节点的 MongoDB 分片集群来“模仿”我的 Cassandra 集群配置?
  • ConfigSvr、应用服务器能否与 ShardSvr 运行在同一节点上?如何为进程指定不同的配置?
  • 我需要多少副本集?我认为一个副本集包含完全相同的数据,因此将所有节点添加到一个副本集中是行不通的。有没有比引入包含两个节点的 5 个副本集更简单的方法?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    这是我想出的:

    1. 如何设置具有 5 个节点的 MongoDB 分片集群来“模仿”我的 Cassandra 集群配置?

    为此,可以使用没有复制的分片集群。这也是Datastax used MongoDB 使用 YCSB 基准对 Cassandra 和其他数据库进行基准测试的方式:

    No configuration files were used for MongoDB; instead the services were started with the parameters in the command line.  For the first instance that has a configuration database:
    bin/mongod --fork --logpath /var/log/mongodb/mongocfg.log --logappend --dbpath /mnt/mongodb/mongocfg –configsvr
    
    Each service was then started:
    bin/mongod --fork --logpath /var/log/mongodb/mongodb.log --logappend --dbpath /mnt/mongodb/mongodb --shardsvr --storageEngine wiredTiger
    bin/mongos –-fork --logpath /var/log/mongodb/mongos.log --logappend --configdb $MONGO_MASTER
    

    请注意,之所以提出这个问题,是因为我们想要对 Cassandra 和 MongoDB 进行基准测试。这不适合生产环境。

    1. ConfigSvr、应用服务器能否与 ShardSvr 运行在同一节点上?如何为进程指定不同的配置?

    是的,他们可以。您可以为进程使用不同的配置文件,也可以在命令行上运行它们。 MongoDB 文档中概述了如何执行此操作。

    1. 我需要多少副本集?我认为一个副本集包含完全相同的数据,因此将所有节点添加到一个副本集中是行不通的。有没有比引入包含两个节点的 5 个副本集更简单的方法?

    在针对您的用例对数据库进行基准测试时,在基准测试期间完全不使用复制也可能是合适的。这也是 Datastax 所做的,请参阅答案 1 中的链接。

    如果你想要复制,你也可以建立一个 3 节点副本集和一个 2 节点副本集,当你有 5 个节点时,再增加一个arbiter

    对于 6 个节点,您可以使用三个 2 节点副本集,每个副本集都有一个仲裁器。这将最模拟 Cassandra 的复制因子 1。

    【讨论】:

      猜你喜欢
      • 2017-12-30
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2012-02-02
      • 1970-01-01
      相关资源
      最近更新 更多