Java client library for Okuyama KVS
Java client library for Okuyama KVS
At first, create OkuyamaClientFactory and specify endpoints and pool size. OkuyamaClientFactory can be held through application life time.
String[] endpoints = {"127.0.0.1:8888", "127.0.0.1:8889"};
int poolSize = 10;
OkuyamaClientFactory factory = new OkuyamaClientFactoryImpl(endpoints, poolSize);
// Enable compression with default compression strategy, compress if size of value is over 32 bytes
factory.setCompressionMode(true);
// Or set your own compression strategy
factory.setCompressionStrategy(new YourCompressionStrategy());
When you use client instance, call factory.createClient(). This instance is supposed to retain short time as in function.
OkuyamaClient client = factory.createClient();
互換モードを指定すると、オリジナルのOkuyamaClientからでも読み出し可能な形式で格納するように下の設定でクライアントを生成する。
public class YourCompressionStrategy implements CompressionStrategy {
private static final int MINIMUM_LENGTH_TO_COMPRESS = 32;
private Compressor compressorDefault;
private Compressor compressorFast;
public YourCompressionStrategy() {
compressorDefault = Compressor.getCompressor(JdkDeflaterCompressor.COMPRESSOR_ID);
compressorFast = Compressor.getCompressor(LZFCompressor.COMPRESSOR_ID);
}
@Override
public Compressor getSuitableCompressor(String key, int valueLength) {
if (valueLength < MINIMUM_LENGTH_TO_COMPRESS) {
return null;
}
if (key.startsWith("session:")) {
return compressorFast;
}
if (key.startsWith("count:")) {
return null;
}
return compressorDefault;
}
}