Comments (5)
pmemkv is a kv framework which supports a lot of kv engines as plugin and user is able to access different engines via pmemkv API. While the design target of kvdk is a kv engine optimized for persistent memory, optane ssd and xeon CPU. So in brief, you can look kvdk as a engine plugin of pmemkv. (We are working on it, and will published soon).
from kvdk.
pmemkv is a kv framework which supports a lot of kv engines as plugin and user is able to access different engines via pmemkv API. While the design target of kvdk is a kv engine optimized for persistent memory, optane ssd and xeon CPU. So in brief, you can look kvdk as a engine plugin of pmemkv. (We are working on it, and will published soon).
So, in pmemkv, we have several map engines, which I think is similar to kvdk. Could you tell me what the difference between them.
from kvdk.
From the view of functionality, kvdk is still under development, and for now it only supports set/get/delete/scan operations as csmap engine in pmemkv, and we are working on the read-committed transaction and snapshot features.
From performance view, I'd suggest you do some benchmarks based on your environment and data operation pattern, and see which one fit best for your scenario :)
from kvdk.
According to your word, I am still confused about why we need develop kvdk as we have pmemkv.
In pmemkv's docs, I can find the word pmemkv is a local/embedded key-value datastore optimized for persistent memory.
.
Could you tell me the purpose of kvdk more clearly or why we need kvdk as another plugin of pmemkv?
from kvdk.
pmemkv is more of a framework at the moment, whereas kvdk is a work-in-progress reference code for a key-value store engine with a different approach to memory management than the existing pmemkv engine implementations.
We might add kvdk as a plugin to pmemkv at a later date.
I understand the confusion - there's a large design space of key-value stores (especially if you considered all the possible hardware configurations) that needs to be explored to find the best approaches for specific use-cases. KVDK represents a significant shift from the pmemkv's engines design ideas (that mostly uses libpmemobj-cpp data structures), hence the separate repository. Hope this makes sense.
from kvdk.
Related Issues (20)
- Unexpected InvalidDataSize HOT 13
- Performance drops dramatically if update with 16 bytes value on dataset filled with 120 bytes value. HOT 1
- Wechat group QR code has expired HOT 11
- There are no optional templates about feature-requtest HOT 1
- [NEW] Support interface to get key number of collection HOT 3
- [NEW] Support interface to get valid key number of main hash_table_ HOT 1
- get_timestamp() malfunction HOT 1
- Will kvdk support other types of Key or value such as int64,selfdefined structure? [NEW] HOT 2
- [NEW] KVDK need to have the KV expire capability to support a lot of related Redis commands. HOT 1
- [NEW] Implement a Read-Modify-Write API to help improve the performance of commands like incr. HOT 1
- [NEW] Need to support snapshot dump/restore as the RDB dump in Redis. HOT 1
- [NEW]Support to get value type by key.
- [NEW]Fill the API/functionality gap of KVDK::List and Redis::List.
- [NEW]Fill the API/functionality gap of KVDK::Hash and Redis::Hash
- Why not use libpmemobj ? [NEW] HOT 6
- Cannot compile kvrocks HOT 3
- [NEW] provide an option to define whether KVDKModify function will erase the original TTL HOT 1
- [NEW] HOT 2
- unit test of BatchWriteSorted in tests.cpp HOT 1
- [NEW] How can KVDK use multiple PM disks? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kvdk.