Code Monkey home page Code Monkey logo

Comments (5)

peifengsi avatar peifengsi commented on August 17, 2024

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.

GOGOYAO avatar GOGOYAO commented on August 17, 2024

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.

peifengsi avatar peifengsi commented on August 17, 2024

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.

GOGOYAO avatar GOGOYAO commented on August 17, 2024

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.

pbalcer avatar pbalcer commented on August 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.