2019年5月16日木曜日

毎秒1400万回のライト(write)を行うNoSQLデータベースFoundationDB、ACIDの条件も満たす。& NoSQLを超えるSQLデータベース「VoltDB」。Cassandraとベンチマーク対決!

勉強の為に転載しました。
https://jp.techcrunch.com/2014/12/15/20141213foundationdb-and-the-new-nosql/

データベースはテクノロジ産業の背骨だ。地味で目立たない存在だが、とても重要で、壊れたり改ざんされたりすると、たいへんなことになる。だから、データベースに関わる者は用心深い。これまで長年、企業目的で安心して使えるのはビッグスリー(Oracle、IBMのDB2、そしてたぶんSQL Server)だけ、とされていた。その後MySQLやPostgreSQLなどのオープンソース製品が、十分使えると認められた。そして最近の5年間で、データベースの界隈はおもしろくなってきた。
まず、歴史を回顧しよう。世紀のかわり目ごろにかけて、フォーマルに構造化・正規化され、SQLのさまざまな変種によってクェリされる関係データベースは、開発を助けるよりもむしろ妨害する、と見なす人びとがますます多くなった。その後の10年間で、さまざまな新しいデータベースが咲き乱れ、とりわけ、Webサイズの大きなデータ保存能力を必要とするGoogleは、BigTableMegastore、Spannerなどの分散データベース・ソリューションを次々と作り出した。
さらにその間Apacheは、CassandraHBase、そしてCouchDBを作り、ClustrixはMySQLをリプレースするプラグアンドプレイでスケーラブルなソリューション(NewSQL)を生み出し、Redisは多くのRails(などの)アプリケーションが必ず使う成分になった。そしてとりわけMongoDBは、批判の声も大きい中で、スタートアップたちのあいだでたいへんな人気者になった。とくに批判されたのは、ライトロック(write lock)をかけるためにデータベース全体にまたがる複数のライトの並行処理ができないことだったが、ありがたいことにその制約は近くかなり解消されるらしい。なお、ぼく自身はデベロッパとしてMongoDBを扱ったことがあるが、MongoDBのファンではない。
しかしこれらの、いわゆる“NoSQLデータベース”と呼ばれるデータベースの新しい波は、興味をそそることは確かだけれど、本当に真剣に取り上げているのは、一部の最先端のスタートアップや、ほんのひとにぎりの夢想家だけだ。データベースはきわめてミッションクリティカルな計算機資源だから、その安定性と安全性にすこしでも懸念があってはならない。データベースがデータとトランザクションの完全性を保証せず、いわゆるACIDなトランザクション“をサポートしないのなら、そのようなデータベースには、企業などで毎日実用システムを扱っているデータベース技術者は関心を持たない:

You may not need ACID guarantees but if a storage engine can't provide AD it's basically not a storage engine worthy of your time or data.





Yet we keep benchmarking storage engines that shit themselves and corrupt their own data with ones who don't. Why even benchmark brokenness.




[ツイート訳: ACIDの保証は要らなくても、AとDを提供できないストレージエンジンは、最初から検討に値しないわね。]
[ツイート訳: ベンチマークしているときに糞して自分のデータを壊すストレージエンジンもあるわ。なんでベンチマークで壊れるのよ。]
MongoDBはACIDに対応していない。Cassandraもだ。Riakも、Redisも、等々々々。NoSQLデータベースは本質的にACID準拠でありえない、という説もあった。でもそれ嘘だ。GoogleのMegastoreは基本的にACIDであり、同社のSpannerはさらに良い。しかしMegastoreはGoogleの上でしか使えないから、あの独特のクセのあるApp Engineプラットホームで自分の全アプリケーションを構築する気でもないかぎり、採用は難しいだろう。
というわけで、2年前のTechCrunch Disruptのブースで”NoSQL, YesACID”(NoSQLだけどACID対応)というスローガンを掲げたFoundationDBという企業を見つけたときは、とても気になった。同社はACID完全対応1のキー-ヴァリュー(key-value)データベースを作って、その上に標準SQLのレイヤ(層)をかぶせる、という離れ業をやっていた。その同社が今週初め(米国時間12/10)に、FoundationDB 3.0のリリースを発表した。それはなんと、前のバージョンの25倍速いそうで、それは同社の協同ファウンダでCOOのNick Lavezzoの言葉では、データベースエンジンの“心臓と肺の移植手術を行った”からだそうだ。この新しいエンジンにより、毎秒1440万回のライト(write)が可能になった。
それは技術的にもすごいもので、同社のブログ記事によると、単純に毎秒1400万のライトではなく、“パブリッククラウドにある完全に順序化され完全なトランザクションをサポートしているデータベースで、100%マルチキーのクロスノードトランザクション(複数のノードにまたがるトランザクション)を行う場合の、毎秒1400万回のライトだ。別の言い方をすると、FoundationDBは利用料金1ペニーあたり、データベースのライトを360万回行う”、という。
企業のデータベースを何らかの形で担当している技術者は、この話を聞いて、関心を持たずにはいられないだろう。しかもこの速さなら、来たるべき物のインターネット(Internet of Things, IoT)の時代のレスポンス要請を無難にこなすだろう。その時代には、インターネットに接続された何十億ものデバイスが、大量のデータを24時間365日休みなく捉え続けるのだ。
しかもこれは、多くの競合他社たちの改良努力を刺激する。またそれによって非常に多くのユーザ企業が、OracleやDB2を使っている青銅器時代からそろそろ卒業すべきか、と思い始める。そして、ゆっくりと、すこしずつ、そして大胆に、新しい時代へと移行していく。その新しい時代には、デベロッパはシンプルなキー-ヴァリューのセマンティクスで楽(らく)ができ、ITは高速化された古典的なSQLでクェリでき、完全にACID化された分散トランザクションを同時一斉に行える。長期的には企業も人間も、今より良い生き方ができるはずだ。それまでの過渡期には、データベースの能力拡大、限界の克服に挑み続ける多くの無名のデータベース技術者たちの、努力の積み重ねがある。われわれには見えないところで彼らは日々、世界と社会に大きな貢献を提供している。

1ACIDの中のC、すなわち”consistency”(一貫性、整合性、無矛盾性) の説明がここにはない。たしかに無矛盾性は、それに比べると中世のピンの頭の上に乗れる天使の数に関する議論すらノックノック・ジョークの一種と思えてしまうぐらいの難解な話題だ。でも技術用語としてのそれは、結果的にそうであるという無矛盾性ではなくて、システムの動的構造が最初から明示的に、矛盾を許容しない、生成しない、という意味だ。
[原文へ]
(翻訳:iwatani(a.k.a. hiwa))
ーーーーーーーーーーーーーーーーーー
ーーーーーーーーーーーーーーーーーー

勉強の為に転載しました。

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 ConfigurationVoltDBCassandraThroughput Increase
1 Node17,00079402.2X
3 Nodes w/o Replication19,80017,4001.1X
3 Nodes w/ Replication12,60044502.8X
結果はVoltDBがCassandraを1.1倍から2倍と上回っています。
このほかさらにスキーマを複雑にしたテストなど全部で3種類のベンチマークを実行し、VoltDBはCassandraに対して4.6倍から最大で16倍の性能を示す結果となりました。全体にVoltDBはCassandraを圧倒したといっていいでしょう。
この高性能をたたき出すVoltDBの仕組みがどのようになっているのかは、いま資料を読んでいるところですので、その内容については次回「NoSQLを上回る性能のVoltDB、そのアーキテクチャとは」の記事で。

関連記事

follow us in feedly


ハイパフォーマー
https://www.high-performer.jp/

Daijob.com
https://www.daijob.com/
https://www.daijob.com/en/

skype自動翻訳
検索結果はこちら
コメント:Skypeで音声認識しながら自動翻訳するのでしたら、
ヘッドセットや卓上マイクを使用された方が音声認識の精度は向上致します。

英語でプログラミングレッスン
検索結果はこちら

0 コメント:

コメントを投稿