InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

Membase,NoSQL ファミリのヘビー級の新メンバ

作者 Michael Hunger , 翻訳者 吉田 英人 投稿日 2010年7月1日

セクション
運用/インフラ,
デベロップメント,
設計/アーキテクチャ
トピック
クラスタリング&キャッシング ,
Architecture ,
パフォーマンス&スケーラビリティ

原文(投稿日:2010/06/23)へのリンク

North Scale Solutions は3月23日,Membase NoSQL データベース ソリューションの リリースを発表 した。これが一連の報道記事 ((MarketWireTheRegisterGigaOM ) のきっかけになっている。

North Scale の memcached コアチーム メンバ による Membase データベースの開発には,主要なコントリビュータである ZyngaNHN からも技術者が参加している。2社はともに,オンラインゲームとソーシャルネットワークスペースにおける大手企業だ。
その他にアーリーアダプタとして,mig33 (モバイルアプリケーション)と Red Aril (広告)も参画している。

Membase Logoオープンソースプロジェクト Membase.org が,Apache 2.0 ライセンスの下でソースコードを公開している。GitHub にホストされた同プロジェクトのサイトからは,ソースの tar アーカイブ と Linux 用バイナリ が公開ベータ版としてダウンロード入手可能だ。

 

North Scale は既存の memcached サーバ サポートの拡張として,同社独自の サーバソフトウェア を通じた 商用サポート を提供する。

プレスリリース以外のデータベースに関する技術情報は豊富とは言えない。情報を入手する一番の方法は,ソースコードを見ることかも知れない。

この Membase 開発において最も重要かつ困難だった目標は,"シンプルさ,高速性,柔軟性",この3つである。

その "シンプルさ" を実現したのが キー・バリュー・ストア形式の採用だ。Membase には (今のところ) クエリ機能は存在しない。また,(フィルタされた TAP インターフェース経由でフックする) プラグイン・アーキテクチャによるエクステンションが実現されている。フルテキスト検索,バックアップ,データウェアハウスのダンプなどの用途で利用できるだろう。その他 (計画中の) 拡張ポイントとしては,特殊なコンテナタイプと "NodeCode" 機能のためのエンジン API データバケットがある。

Membase はそのインストールの簡単さ,単一ノードからクラスタまでの操作性と拡張性,memcached へのリプレースの容易さ(接続プロトコルの互換性) によって,開発と運用の両面で導入障壁の低いものになっている。memcached には各種アプリケーションでキャッシュソリューションとして使用された実績があるが,Membase サーバはフロントエンドで,そのコードベースの一部を直接使用している。

このような互換性のため,memcached 用プログラム言語やフレームワークの多くは Membase でも容易に再利用することができる。また Membase 実行システムを管理する操作画面とプログラム呼び出し用の2種類のインターフェースと,設定可能な警告機能が用意されている。

Membase はリニアにスケールするように設計されている。同一形式のノードの集まりで構成されているため,クラスタの能力を増強するためには単にその数を増やせばよいのだ。ただし,保存データの再配布については通常どおり実行する必要がある。

NoSQL ソリューションである Membase には,予測可能なパフォーマンス,準決定論的な待ち時間(レイテンシ) とスループット,という興味深い特性がある。これを実現しているのは次のものだ

  • ホットなデータを,待ち時間の最も低いストレージ技術 (RAM,SSD,ディスク)へ自動的に移動
  • 選択可能な書き込み動作 - ( レプリケーション,永続化での) 同期および非同期
  • バックチャネルのリバランス [実装予定]
  • ロック待ちの少ないマルチスレッド処理
  • 可能な限り非同期処理で処理
  • 自動的な書き込み重複除外
  • 稼動状態クラスタの動的再バランス
  • 複数クラスタメンバへのデータコピーと高速フェールオーバーによる高可用性の提供

以下の2図は,North Scale のプレゼンテーションの技術情報スライドからの引用だ。
 

Membase Key Translation

Membase Replication

Alex Popescu 氏は技術情報の不足を指摘した上で,Gear6 の Memcached ソリューション について言及している。同社は最近,サーバ用のフラッシュメモリ設備に多くの提供実績を持つ Violin Memory によって買収された。

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。