GridDBとInfluxDBのTimeSeriesベンチマーク比較

はじめに

フィックスターズは、時系列(Timeseries) データベースであるGridDBInfluxDB を、CentOS 6.9 imageを使ったAmazon AWSインスタンス上で比較しました。
TimeSeriesデータベースをテストするために、YCSBベンチマークツールのフォークである YCSB-TS フレームワークを使用し、データセットは主にインメモリに収まるデータセット(100Mレコード)と、ディスクI/Oを実行する必要があるデータセット(400Mレコード)の2つを使用して行いました。

ベンチマークの結果


ベンチマークの結果、GridDBのインメモリ指向アーキテクチャーは、InfluxDBの性能を大きく上回りました。 結果は、GridDBがよりTimeSeriesデータ向きのデータベースであるということを示しています。GridDBは、メモリ内外のいずれの操作においても優れたパフォーマンスを提供しました。 結果は以下の通りです。
データベースのサイズが100Mから400Mレコードに増加したとき、GridDBはInfluxDBよりはるかにスケーラブルであることが証明されました。 GridDBは、このレコード数の増加にも関わらず相対的なLOADスループットを維持することができました。 データベースのサイズが大きくなるにつれ、GridDBのLOADスループットはInfluxDBよりも 6倍以上向上しました。 InfluxDBの読み出しスループットが 81%を超えて減少した際、GridDBのスループットの低下は約74%でした。 スキャン性能を比較すると、InfluxDBのスループットが 75%以上低下した際、GridDBのスループットの低下は 60%でした。

注目すべき点として、GridDBでは、クエリ(読み出しとスキャンのクエリ)操作において高いスループットと低いレイテンシを提供するように管理しながらも、InfluxDBよりも使用するCPUリソースが少ないことも挙げられます。

読み出しパフォーマンス

YCSB-TSでのテストの読み出し段階では、特定の TIMESTAMP キーを使用して行を検索する読み出しクエリが実行されました。 これらのタイムスタンプキーは YCSB-TS によって生成されます。

YCSB-TS Read Performances

 

100Mレコードデータセットを使用した読み出し操作を比較すると、GridDBは、InfluxDBよりも8倍以上のスループットを達成しました。 400Mのレコードデータセットの場合、GridDBはInfluxDBのスループットは最大で10倍にもなりました。

また、GridDBの読み出し操作の待ち時間がInfluxDBの約10-11%であることも特筆すべき点です。

スキャンのパフォーマンス

スキャンのワークロードは、一般的なScanクエリまたは集計クエリ(AVERAGE、SUM、COUNTなど)を実行します。 すべてのスキャン操作では、 YCSB-TS によって生成されたランダムなtime-rangeが使用されます。

 

YCSB-TSを使って、テスト中にすべてのスキャン操作(SCAN、COUNT、AVERAGE、SUM)のスループットを測定しました。 100Mレコードのデータセットで、GridDBのスループットはInfluxDBの約5倍でした。 400Mレコードのデータセットでは、GridDBのスループットはInfluxDBの 4倍となりました。

集約操作ではない一般的なSCAN操作の場合、GridDBのレイテンシはInfluxDBの 13%-26%しかありませんでした。 集約操作の場合、GridDBのレイテンシはInfluxDBの15%〜26%程度でした。

テストの手順

テストのやり方としては、単一のC4.2xLarge AWSインスタンス上で、YCSB-TSとテストするデータベースの両方を実行しました。GridDBとInfluxDBの両方に100Mもしくは400Mの50バイトレコードのデータベースをロードしてベンチマークを行いました。 ロードフェーズが完了すると、YCSB-TSは一連の読み出しまたはスキャン操作を実行します。 データは 128 threadsを使い 8つのコンテナに配信されます。

参照

  • ベンチマークテストの結果、方法論、構成などについては、 full whitepaperに詳しく記載されています。
  • ベンチマークテストにはGridDB Community Edition を使用しました。InfluxDB databaseはInfluxDB version 1.3.6 Open-Source Edition を使用しました。
  • InfluxDBGoで記述されInfluxDataによって開発された製品です。
  • YCSB-TS は、モジュラーフレームワークである YCSB (Yahoo Cloud Serving Benchmark)のフォークで、NoSQL TimeSeries databases (TSDB’s)のパフォーマンスをテストするために開発されました。
  • GridDBをYCSB-TSに接続するコネクタは、GridDBの Java APIを使用して開発されました。
  • フィックスターズは以前GridDBとCassandraをベンチマーク比較しました。その結果はSummary や、 Full Report でご覧になれます。

One Comment

Leave a Reply

Your email address will not be published.