2

NoSQL データベース サーバーのスケーラビリティ/弾力性をテストする YCSB ベンチマークのクライアントとしての MongoDB へのあらゆる種類の参照を目にします。

https://github.com/brianfrankcooper/YCSB

ただし、テストはスケーリングと弾力性を示すために 6 ~ 10 台のサーバー マシンで実行するように設計されているため、ベンチマークにはある種のシャーディング セットアップが必要であることは明らかです。

その構成がMongoDBでどのように見えるかについて、インターネット上で参照を見つけることができません。結果を公開し、構成がどのように見えるかを公開した人を見つけることができません。

これは本当に成功したのでしょうか?Cassandra、HBase などの元の YCSB クライアントと比較した結果はどうですか。

MongoDB クライアントのコードでは、「クライアント スレッドごとに 1 つの DB インスタンスがあります」と表示されているため、特に混乱しています。スニペットを参照してください。

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 実験のセットアップ

ほとんどの実験では、6 台のサーバー クラスのマシン (デュアル 64 ビット クアッド コア 2.5 GHz Intel Xeon CPU、8 GB の RAM、6 ディスクの RAID-10 アレイ、およびギガビット イーサネット) を使用して各システムを実行しました。また、47 台のサーバー クラスターで PNUTS を実行し、YCSB を使用して大規模なシステムのベンチマークを実行できることを実証しました。PNUTS には、構成サーバーとルーターとして機能する 2 つの追加のマシンが必要でした。HBase には、「マスター サーバー」と呼ばれる追加のマシンが必要でした。これらのサーバーの負荷は軽く、ここで報告する結果は主に 6 台のストレージ サーバーの容量に依存します。YCSB クライアントは、別の 8 コア マシンで実行されました。クライアントは、希望する提供スループットに応じて、最大 500 のスレッドで実行されました。テストでは、クライアント マシンがボトルネックではないことがわかりました。特に、

このベンチマークのシャーディング構成がある場所を知っている人はいますか?シャード構成またはシャードが必要ない理由の詳細な説明によってバックアップできる競合に対する実際の結果はありますか?

ありがとう - ロバート

4

1 に答える 1

3

最初のYCSB調査の一部としてMongoDBを含めませんでした。Mongoクライアントは後で別の開発者によって提供されましたが、Mongoに対して完全なベンチマークを実行していないため、クライアントが本当に必要なすべてを実行しているかどうかはわかりません。そうでない場合は、先に進んでパッチを送信してください。パッチを含めようと思います。

また、「クライアントスレッドごとに1つのDBインスタンス」というコメントは、JVM内のDBクライアントクラスの1つのインスタンスを意味し、必ずしも1つのMongoDBサーバーである必要はありません。

于 2011-05-26T16:08:06.997 に答える