NOSQLは「知る時代」から「使う時代」へ

2011年2月3日(木)
岩瀬 高博

2. okuyamaとは

ここまで、NOSQLの背景と特徴、およびNOSQL内での種別について、駆け足で説明してきました。

次回以降はokuyamaについて詳しく解説しますが、まずはokuyamaについて、今まで説明した各項目のどこに当てはまるのかを事前に整理しておきます。

okuyamaは、複数のサーバーを利用して分散環境で稼働することを前提に実装された、分散Key-Value型のNOSQL(分散Key-Value Storeと呼ばれることが多いです)です。

CAP定理で言うと、AP(可用性と分割耐性)を満たすように設計されています。しかし、Key-Value型の特徴にはない、複数のデータをタグで管理する概念があります。加えて、CAP定理における一貫性(C)を重視する設定も可能です。

図6: okuyamaのロゴ

図3: okuyamaのロゴ

(1)okuyamaを開発した経緯

筆者がokuyamaを開発し始めたのは、2009年の12月頃です。当時、HBaseなどが話題となっており、筆者に技術検証を行っていました。

ストレージ分野が好きだったこともあり、JavaのHSQLDBなどのソース・コードを読み、自身でもRDBMSを開発したりしていました。自作のRDBMSの開発が一通り終わったころ、HBaseの検証をしていたこともあり、勉強も兼ねてokuyamaの開発を始めました。ファースト・リリースは2010年の1月に行いました。

okuyamaを開発する際、特に力を入れた部分が3つあります。

1. サーバー障害時のフェール・オーバーと復旧時の自動リカバリ
動的にサーバーを追加する機能と、追加中にデータを自動的に最適化する機能と、追加中にアクセスを許容する機能です。この部分は、CAP定理のAPを満たすためのアプローチです。
2. 単一サーバーあたりの処理能力向上
分散Key-Value Storeは、その特性上、サーバー台数を増やすことによって処理能力を向上させることができます。しかし、1台あたりの性能が高ければ、サーバー増設数を少なく済ませられます。サーバー台数が増えれば故障率も上がるので、少ない台数で効率よく処理できるのであれば、それに越したことはありません。ですので、この部分にも力をいれました。
3. ストレージ機能
最後は、データを保存するストレージ部分の機能です。いくつかの保存方式を用意し、ユース・ケース単位で最適な選択ができるようにしました。

次回は、okuyamaの全体概要に加え、上記3点を中心にokuyamaの機能を解説します。

株式会社神戸デジタル・ラボ

2006年神戸デジタル・ラボに入社。企業内業務アプリケーション開発に従事。
2008年末から大規模ECサイトのアプリケーション、インフラ周りの運用に従事。
2009年末に分散Key-Value Store”okuyama”をオープンソースとして公開。
2010年から各都道府県で開催されるオープンソースカンファレンスへの出展やセミナー登壇、「NOSQL afternoon in Japan」や、「JavaCloud Meeting Kansai」での登壇といった”okuyama”の普及活動の傍ら、”okuyama”を使ったアプリケーション開発などに従事し、現在に至る。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています