okuyamaでのアプリ開発で押さえておきたい機能

2011年11月10日(木)
岩瀬 高博

3. 複数データの同時取得

次の機能は複数データの同時取得です。文字通り複数のデータを一度に取得できるところがこの機能の特徴ですが、この「一度に」というところはOkuyamaClientを利用するユーザー側のプログラムにも言えますし、OkuyamaClientの内部の挙動としても言えます。okuyamaサーバ側に取得したいKeyを一度に転送しますので、取得依頼と結果取得の依頼の部分を大幅に減らす事ができます。サーバとのやり取りが少なくなり、短い時間が多くのデータを取得する事が可能です。あらかじめ取得するデータが複数件ある場合などはぜひこの機能を使ってみてください。ただし、この機能は本連載の1回目で取り上げた、メモリを多く使う機能に分類されているため、取得する大量のデータが一度にメモリ上に展開されてしまうので注意が必要です。

この機能を利用するためのOkuyamaClientのメソッド名はgetMultiValueになります。

コード3(クリックで拡大)

4. アトミックな更新処理

次は、アトミックにデータを更新する処理です。この処理はあらかじめ取得したデータを更新する際にサーバ上のデータが取得時から更新されていないか確認し更新されている場合は処理に失敗するという判定付き更新処理です。この機能を使えば1つのデータで複数のクライアントを更新するような場合に、整合性を保ちながら処理を行う事が可能になります。Memcachedではcasと呼ばれる処理に当たります。この処理を行うにはデータ取得時に対象データのバージョン番号を取得する必要があり、取得したバージョン番号を更新メソッドに渡す事になります。

この機能を利用するためのOkuyamaClientのメソッド名はValue取得時にバージョン番号を同時に取得するメソッド名がgetValueVersionCheckとなり、更新メソッドがsetValueVersionCheckになります。

コード4(クリックで拡大)

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

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メルマガ会員のサービス内容を見る

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