分散KVS「okuyama」実践TIPS 3

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

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

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

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

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

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

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

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

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

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る