我看到了对mongodb的各种引用,它们是ycsb基准测试nosql数据库服务器可伸缩性/弹性的客户机。
https://github.com/brianfrankcooper/YCSB
但是,很明显,基准测试将需要某种分片设置,因为这些测试设计为在6到10台服务器上运行,以显示伸缩性和弹性。
我在网上找不到MongoDB配置的任何参考。我找不到任何发布结果的人同时也发布了他们的配置。
这件事真的成功了吗?与最初的ycsb客户(如cassandra、hbase等)相比,结果如何?
我特别困惑,因为在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英特尔至强CPU,8 GB内存,6
磁盘RAID-10阵列和千兆位
以太网)运行每个系统。我们也
在47服务器群集上运行pnuts以
成功证明YCSB可以
用于对大型系统进行基准测试。
PNUTS需要另外两台机器
作为配置服务器和
路由器和HBase需要
另一台叫做“主机”的机器
“服务器。”这些服务器很轻
已加载,我们在此报告结果
主要取决于
六台存储服务器。YCSB
客户端在单独的8核上运行
机器。客户端运行时最多
500个线程,取决于所需的
提供吞吐量。我们观察到
测试客户端计算机不是
瓶颈;特别是CPU
因为大部分时间都在浪费
等待数据库系统
回应。
有没有人知道这个基准的分片配置在哪里,有没有真正的结果可以通过分片配置来支持竞争,或者详细解释为什么不需要分片。
谢谢,
-罗伯特
最佳答案
我们没有将mongodb作为我们最初的ycsb研究的一部分。mongo客户端稍后由另一个开发人员提供,但我还没有针对mongo运行完整的基准测试,所以我不知道客户端是否真的做了它需要做的一切。如果没有,请继续提交一个补丁,我会尽量包括它!
此外,“每个客户机线程一个db实例”注释表示jvm中db客户机类的一个实例,不一定是一个mongodb服务器。
关于mongodb - YCSB - 为什么我永远无法在互联网上的任何地方找到分片配置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5930061/