HashFunction<byte[]> hashFunction, Serializer<K> keySerializer, Serializer<V> valueSerializer) {
DataStore<K, V> result = null;
File homeDir = new File(path);
homeDir.mkdirs();
try {
StoreConfig storeConfig = new StoreConfig(homeDir, initialCapacity);
storeConfig.setSegmentFactory(segmentFactory);
storeConfig.setHashFunction(hashFunction);
storeConfig.setSegmentFileSizeMB(segmentFileSize);
DataStore<byte[], byte[]> dynamicDataStore = new DynamicDataStore(storeConfig);
result = new SerializableObjectStore<K, V>(dynamicDataStore, keySerializer, valueSerializer);
} catch (Exception e) {
throw new RuntimeCamelException("Failed to create Krati DataStore.", e);
}