BT

AppleがFoundationDBをオープンソース公開

| 作者: Sergio De Simone フォローする 13 人のフォロワー , 翻訳者 h_yoshida _ フォローする 0 人のフォロワー 投稿日 2018年5月27日. 推定読書時間: 2 分 |

原文(投稿日:2018/04/29)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。

Appleは、2015年に同名の企業から買収した分散データベースコアのFoundationDBを、オープンソースとして公開した。FoundationDBは、低価格サーバによるクラスタに格納された大容量のデータを対象として、完全にグローバルかつ行を越えたACIDトランザクションをサポートすることで、データの一貫性を確保するように設計されている。

FoundationDBは、その名が示すように、一貫性の維持と拡張可能性を備えたデータストアを必要とするシステムに対して、低レベルのインターフェースを提供する。基本的な考え方は、さまざまなデータモデルやクエリ言語を備えた複数のデータベースフロントエンドをその上に構築可能な“コア”を提供する、というものだ。対象の中には、SQLデータベースやドキュメントデータベース、グラフデータベースの他、Lucene/ElasticSearch、Zookeeoerなどの特化したAPIも含まれる。これらはすべて基盤となるデータストアのコア機能を用いて、拡張性とオペレーションの一貫性を確保する。

AppleによるとFoundationDBでは、クラスタにマシンを追加することによって、スケールアップと同時にハードウェア障害からの自動回復も可能となる。

FoundationDBデータストアを最初に開発したFoundationDBの創業者のひとりが、その設計内容の詳細についてHacker Newsで説明している。FoundationDBは楽観的並行性(optimistic concurrency)を採用しており、ロックではなく、辞書編纂型競合範囲を介して競合可能性を処理する。それぞれの範囲にはトランザクションによって読み書きされる1つ以上のキーの間隔があり、単一キー単位の最小粒度を持つ。競合範囲の交差は、データストレージのパーティショニングとは独立した方法でキー空間を分割する、一連の内部的なマイクロサービスによって解決される。

さらに、スケーラビリティ向上のためにFoundationDBでは、インデックスをキー/バリューストア内に直接配置し、トランザクションを通じたデータ一貫性を維持している。このアプローチのメリットは、すべてのノードにインデックスをブロードキャストする必要のないことだ。もうひとつの興味深い機能は、すべてのトランザクションが外部整合性を備えた直列化可能分離(serializable isolation)である。

開発者はCやGo、Java、Python、Rubyなど、さまざまな言語で使用可能なAPIバインディングを使って、FoundationDBを操作することができる。macOS、Windows、Linuxにはバイナリインストーラが用意されている。開発用としてはmacOSプラットフォームも完全にサポートされているが、運用環境としてのサポートはLinuxバージョンに限定されている点に注意が必要だ。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT