非分散データベースを分散データベース化する「Dynomite」、Netflixがオープンソースで公開

2014年11月7日

RedisやMemcachedといったインメモリデータベースは非常に高速にレスポンスを返してくれるデータストアですが、それ単体ではスケーラビリティや可用性などに限界があります。

The Netflix Tech Blog: Introducing Dynomite - Making Non-Distributed Databases, Distributed

Netflixがオープンソースで公開した「Dynomite」(ダイナマイトとは綴りが違うのに注意)は、こうしたデータストアを分散データベース化し、高速なデータストアの特長を活かしつつ高いスケーラビリティや可用性を実現するためのソフトウェアです。

アプリケーション側でシャーディングのような面倒なデータ構造を設定することなく、RedisやMemcachedをノードとし、CassandraやAmazonクラウドのDynamoDBのような大規模分散データベースを構成できます。

DynomiteはAmazon DynamoDBにインスパイアされて作ったと説明されています。Dynomiteという名前の由来もそこにありそうです。Netflixのブログ「Introducing Dynomite - Making Non-Distributed Databases, Distributed」から引用します。

Dynomite is a sharding and replication layer. Dynomite can make existing non distributed datastores, such as Redis or Memcached, into a fully distributed & multi-datacenter replicating datastore.

Dynamiteはシャーディングとレプリケーションのレイヤだ。Dynomiteは既存の非分散データストア、例えばRedisやMemcachedなどを、マルチデータセンターでレプリケートされる完全な分散データストアにする。

Dynomiteノードによる分散データベース

Introducing Dynomite - Making Non-Distributed Databases, Distributed」の図などを基に、Dynomiteの仕組みを手短に紹介しましょう。

Dynomiteは複数のノードから構成されるラックの1単位で、データ全体を保持します。ラックは複数存在でき、お互いにレプリケーションを行うことで可用性とスケーラビリティを実現します。

fig

それぞれのラックは複数の「Dynomiteノード」で構成されており、これがプロキシ、トラフィックルータ、Gossipperの役割を果たします。Dynomiteノードとは、DynomiteプロセスとRedisやMemcachedなどのシングルデータストアが組になったものです。

クライアントからDynomiteノードへデータを書き込むときには、どのノードへ接続してもよく、あるノードにデータが書き込まれると、自動的に同じデータが同一ラックの別ノードと別のラックに書き込まれます。ただし同一ラック内の別ノードに書き込んだ時点でクライアントにOkが返され、ほかのラックへの書き込みは非同期となります。

fig

データの読み込みでも、クライアントはラック内のどのノードへ接続してもよく、読み込み要求を受け取ったそのノードにデータがなかった場合、自動的に同一ラック内の別のノードにその要求が転送されます。

Dynomiteのクライアントは、やはり同社が開発した「dyno」が用意されており、コネクションプーリング、トポロジーを考慮したロードバランス、ローカルのDynomiteラックが落ちたときの自動フェイルオーバーといった機能を備えています。

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : NoSQL

≪前の記事
Google、クラウドとオンプレミスを接続する「Google Cloud Interconnect」発表。専用線、キャリア接続、VPN接続に対応

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


新サイト「Publickey Topics」始めました!


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





アクセスランキング - 過去7日間

  1. [速報]Google Container Engine発表。Dockerコンテナを実行しKubernetesで管理するクラウドサービス
  2. [速報]Google App EngineのManaged VMもDocker対応。事実上どんな言語のランタイムも使えるPaaSに
  3. ネットワーク仮想化の「MidoNet」がオープンソースに。ミドクラが公開
  4. Google、クラウドとオンプレミスを接続する「Google Cloud Interconnect」発表。専用線、キャリア接続、VPN接続に対応
  5. 「jQuery 2.x→jQuery 3.0」「jQuery 1.x→jQuery Compat 3.0」に。jQueryが新名称と新バージョンへ
  6. [速報]Google Compute Engine Autoscaler発表。わずか数秒で千インスタンスをスケーラブルに伸縮
  7. Google Compute Engineが最大68万IOPSの超高速なローカルSSDをベータ公開
  8. WebアプリケーションをWindowsネイティブで開発できるVisual WAO。その技術と仕組みとは?[PR]
  9. [速報]Google Compute Engine Autoscaler発表。わずか数分で千インスタンスをスケーラブルに伸縮
  10. Google Cloud Debugger発表。クラウド上でアプリケーションの変数の値をチェック可能に。ログの統合やレスポンスの統計機能も
  11. [速報]HTML5、ついにW3Cの勧告となる
  12. Meteorがバージョン1.0に到達
  13. 2014年10月の人気記事「HTML5、W3Cの勧告に」「この1年の優れたIT系書籍は?」「Windows ServerがDockerを採用するとはどういうことか」ほか
  14. Dockerを管理するKubernetesの基本的な動作や仕組みとは? Kubernetesを触ってみた。第20回 PaaS勉強会
  15. OpenStack Summit、2015年10月に東京で開催決定

Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus