okuyama ver0.6.2をリリース & Fuseでkvsファイルシステム作成中

久々に日記

分散KVS「okuyama」のVersion-0.6.2をリリースしました。
今回のリリース内容は主にmemcache対応と、データノードリカバリー時の
データ転送方式の変更です。


memcache対応は以下の3点です。
    1.memcacheのメソッドであるaddに対応
        未登録データの場合のみ登録可能なmemcacheのaddコマンドに対応


    2.memcacheのメソッドであるdeleteに対応
        memcacheコマンドであるデータ削除用コマンドdeleteに対応


    3.memcacheのflag登録に対応
        memcacheコマンドでset、add時に指定するflagに対応
        get時に登録flagを返却




リカバリー時の転送方式の変更は
従来はノードダウンからのリカバー時にレプリケーションノードから1通信で全ての登録データ取得していたのを、
分割して取得するように変更しました。これは大きなデータが登録されている場合に、送信側、受信側でメモリに
のりきらずにリカバーに失敗する場合があったためで、それを使用可能なメモリの残量を確認しながら、転送し
リカバリーするように変更しました。




リリース内容はこんなもので、


後はFuseで現在Linux用のファイルシステム作成中です。
Fuseは結構前から興味があったんですが、あまり触れてなくて、そろそろ真剣にやろうと決意。
とりあえずokuyamaをストレージにするような構成で作成中です。


うまくいけば、RAIDなしで冗長化された大規模なストレージを複数マシンで共有出来るかなと。
結構この手のプロダクトはあるようなので、その辺りもリサーチしながら進めます。




使用プロダクトはGreeの藤本さんというかたが作成されたPHP用のFuseプロダクトを使用させていただいております。


PHPなのでコンパイルいらずでスイスイ進めれるという利点を生かして実装中。
とりあえず簡単なディレクトリの閲覧、ファイルのReadまでは出来たので、また日記に書いていきます。