Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What's the catch #2

Open
Raynos opened this issue Jul 22, 2014 · 4 comments
Open

What's the catch #2

Raynos opened this issue Jul 22, 2014 · 4 comments

Comments

@Raynos
Copy link

Raynos commented Jul 22, 2014

This is a pure JS implementation of leveldown and it's almost as fast.

This sounds really amazing / cool to use :)

@kevinswiber
Copy link
Member

@Raynos I list some limitations of Medea here: https://github.com/argo/medea#limitations

Basically, the biggest "catch" is that key set needs to fit in memory. I find this is not a problem for the majority of my use cases, but there are certainly plenty of use cases that wouldn't work with that limitation.

Compaction needs to be scheduled, currently. We're looking at auto-compact semantics here: medea/medea#1.

Medea is fast, because it's basically just an in-memory hash table with entries pointing to the latest value on disk (file, offset). That's guaranteed to be a single disk seek per get operation. LevelDB may have to do multiple seeks, depending on the size of the database (number of levels).

With @kesla having created this LevelDOWN-compatible wrapper for Medea, it really opens up the possibility to reuse the modules that have already been created around the LevelUP ecosystem. It's really awesome.

Happy to answer any questions!

@kesla
Copy link
Member

kesla commented Jul 22, 2014

@Raynos I'm really interested in getting any catches out of the way (whenever possible) - so please let me know if you have a project where you'd like to use medeadown and if there's anything holding you back!

@Raynos
Copy link
Author

Raynos commented Jul 22, 2014

@kevinswiber do you want to leave a comment about key set needs to fit in memory in the README under the limitations section ?

@kevinswiber
Copy link
Member

@Raynos Yeah, I thought it was there already. Looks like it's mentioned elsewhere in the README.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants