Javaで実装された分散キーバリューストア(KVS)です
Githubへ移行しました。 https://github.com/kobedigitallabo/okuyama
今後の更新はGithub上にて行います。 こちらにある過去リリース分はそのまま維持します。
[New - 削除メソッドを実装&データ保存をメモリ上とファイルを選択できるように機能追加]
[[リリース Ver 0.3.0 - (2010/03/4)]]
■削除メソッドを追加
ImdstKeyValueClientのremoveValueメソッドにて呼び出し可能
リターン値はgetValueと同様で結果文字列("true" or "false")と削除できた場合は対象の値が格納された配列
TestSockの"7"番指定で呼び出し可能
---------------------------------------------------------------------------------------------------
java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 1 127.0.0.1 8888 100 <= 100件登録
java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 7 127.0.0.1 8888 50 <= 50件削除
■データ保存形式をメモリとファイルを選択可能
今までのバージョンでは稼動中はデータは常にKeyとValueの関係でメモリ上に保持されていた。
登録毎のトランザクション記録ファイルと、定期的なメモリ情報のファイル書き出しで永続性を保っていたが、
ファイル書き出しモードではKeyのみメモリ上に保持しデータはファイルにレストアすることを実現。
これによりメモリ情報上での情報を少なくすることが可能であり、テストではJVMオプションで-Xmx256mとした
DataNodeで400万件以上のデータを格納出来た。
(※Key値の長さはDataNode格納時は影響がないが、参考に"datasavekey_1"~"datasavekey_4000000"というKey値)
しかし、今まで制約を設けていなかった格納データ長に制約が出来た。
現在格納できるValueのサイズは、512byteである。
これ以上のデータ長を格納する場合は、ImdstKeyValueClientのsetByteValueメソッドを使用することとなる。
※512の指定を変更する場合は一度全てのデータファイル(サンプルでは.\keymapfileディレクトリのファイル)を
全て削除してから、ImdstDefineのsaveDataMaxSizeを変更することで対応可能。
※データファイル保存方法は追記型となるので、今後バキュームメソッドを実装予定。