NoSQLを超えるSQLデータベース「VoltDB」。Cassandraとベンチマーク対決!

2010年5月31日

「多くのOLTPデータベースは30年前の設計を基にしており、今日の“Webスケールな”データベースの負荷を想定していない。これら伝統的なデータベースは、処理時間の90%以上がログ、ロック、ラッチ、バッファ制御といったオーバーヘッドに費やされ、しかもそれらによって限られた性能やスケーラビリティしか実現できていない」

VoltDB: Fast, Scalable SQL RDBMS with ACID

Ingresの開発者でありInformixのCTOなどデータベースベンダの要職を歴任したデータベース研究者の大御所、マイケル・ストーンブレイカー氏が開発したVoltDBはプレスリリースでこのように既存のリレーショナルデータベースの欠点を示した上で、インメモリデータベースをベースにこれらのオーバーヘッドを除去し、ACIDによるデータ一貫性を維持しつつ大きな性能向上とスケーラビリティを実現したと説明されています。

SourceForge.jpの記事「「NoSQL」を上回る性能を目指す次世代型高速SQLデータベース「VoltDB」登場」でも話題になったVoltDBは果たしてどのようなデータベースなのでしょうか。調べてみました。

ACIDを実現しつつ桁違いの高性能

Webサイトによると、VolDBは次のような特徴を備えています。

  • 既存のデータベースと比べて桁違いの高性能
  • リニアなスケーラビリティ
  • DBMSのインターフェイスとしてSQLを利用
  • ACIDなトランザクションによる一貫性と整合性の実現
  • 24時間365日の高い可用性

既存のリレーショナルデータベースはスケーラビリティに乏しく、大規模なWebサイトのバックエンドでは「NoSQL」と呼ばれるデータベースがスケーラビリティや速度の面で有利だと考えられていました。

VoltDBの動作環境はギガビットイーサネットで接続されたPCサーバによるクラスタ構成で、対応OSはCentOS(UbuntuとMacOSに対応した開発中のバージョンもあり)。Sun JDK 6の上で動作し、クラスタを構成するサーバの時間を厳密に同期するためにNTPを利用、ソフトウェアのビルドツールとしてAntを用います(ストアドプロシージャをJavaクラスにするためか)。

しかしVoltDBはリレーショナルデータベースであるにもかかわらず、NoSQL以上の性能を実現すると宣言しています。今回はVoltDBとCassnadraのベンチマークをみてみましょう。

ベンチマークでCassandraを圧倒

NoSQLデータベースとVoltDBのベンチマークによる性能比較は、VoltDBのブログ「Key-Value Benchmarking」で説明されています。執筆したのはVoltDBエンジニアリングチームのJohn Hugg氏。比較対象はTwitterやDiggが採用を検討中とされるCassandraです。

Hugg氏は、大規模データ処理のために開発された両者についてスケーラビリティ、冗長性、障害復帰などについて調査するのが目的だとして、HDDに書き込むタイプのNoSQLデータベースであるCassandraと、インメモリデータベースであるVoltDBの比較は「リンゴとオレンジを比較するようなものだというのは分かっている」と書いています。

ベンチマークのハードウェア構成は、2ソケットのXeon5500、48GBメモリ、1万5000回転のSASディスクのPCサーバを、シングルノードと3ノードクラスタの構成の2パターンで行っています。

1つ目のテストは、50バイトのキーと12キロバイトの値のペアを50万組ロードしておき、任意の2キーに対して2分の1の確率で値を読み出す、もしくは2分の1の確率で値を書き換える、という処理を行いました。CassandraとVoltDBでの5分間の処理量を比較。

Cluster Configuration VoltDB Cassandra Throughput Increase
1 Node 17,000 7940 2.2X
3 Nodes w/o Replication 19,800 17,400 1.1X
3 Nodes w/ Replication 12,600 4450 2.8X

結果はVoltDBがCassandraを1.1倍から2倍と上回っています。

このほかさらにスキーマを複雑にしたテストなど全部で3種類のベンチマークを実行し、VoltDBはCassandraに対して4.6倍から最大で16倍の性能を示す結果となりました。全体にVoltDBはCassandraを圧倒したといっていいでしょう。

この高性能をたたき出すVoltDBの仕組みがどのようになっているのかは、いま資料を読んでいるところですので、その内容については次回「NoSQLを上回る性能のVoltDB、そのアーキテクチャとは」の記事で。

関連記事

あわせて読みたい

NoSQL RDB データベース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本