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

Investigate level-js status #127

Closed
dignifiedquire opened this issue Mar 22, 2017 · 15 comments
Closed

Investigate level-js status #127

dignifiedquire opened this issue Mar 22, 2017 · 15 comments
Labels
exp/expert Having worked on the specific codebase is important help wanted Seeking public contribution on this issue P2 Medium: Good to have, but can wait until someone steps up status/ready Ready to be worked

Comments

@dignifiedquire
Copy link
Member

The current master of https://github.com/maxogden/level.js is not up to date with the rest of the level eco system. Currently we are depending on https://github.com/timkuijsten/level.js/tree/idbunwrapper which is near complete rewrite supporting use cases like empty values for us.

We should try and see in Level/level-js#46 what it takes to finish this and get it released or start maintaining our own version.

@daviddias daviddias added exp/expert Having worked on the specific codebase is important help wanted Seeking public contribution on this issue status/ready Ready to be worked labels Apr 5, 2017
@daviddias daviddias added status/deferred Conscious decision to pause or backlog and removed status/ready Ready to be worked labels Jun 20, 2017
@daviddias
Copy link
Member

@pgte you are very close to the Level ecosystem. Any comment here?

@pgte
Copy link
Contributor

pgte commented Jul 3, 2017

I'm less familiar with the level-js than the node side of it..
Anyway, I've been implementing a level down store myself, and the abstract level down test suite is impressive, so maintaining such a thing is not something to be taken light-heartedly, specially if this is touching the (de)serialising / (de)encoding parts.. :)
Which leads me to asking:
What problem are we trying to prevent / solve here?

@dignifiedquire
Copy link
Member Author

The issue is that the original level.js is not usable for us which is why we are currently using a fork, which brings with it all the issues of depending on a fork which is not maintained nor officially released.

Main issues with level.js master were the iterators not being usable as far as I remember and some other thing that are fixed in the fork

@daviddias
Copy link
Member

@dignifiedquire is there a PR to the main one?

@dignifiedquire
Copy link
Member Author

@diasdavid no just this comment:Level/level-js#46 (comment)

@ralphtheninja
Copy link
Contributor

@dignifiedquire o/ I have begun working on this.

@ralphtheninja
Copy link
Contributor

ralphtheninja commented Sep 12, 2017

Quick and dirty roadmap:

  • move level.js to level org, me, @juliangruber and @vweevers are active there now, I have asked @maxogden to move it and he's cool with it
  • spend some time on fixing most obvious problems to get it up to par with abstract-leveldown
  • replace the idb-wrapper
  • get snapshots working
  • other issues/unknown problems?

I haven't looked at the fork just yet, just focusing on the big brush for now :)

@dignifiedquire
Copy link
Member Author

@ralphtheninja great to hear, the fork works very well and is also a good deal faster than the official version if I remember correctly. I also think the other reason to use the fork were issues with the iterators, but I don't remember the details atm.

@juliangruber
Copy link

I'm happy with what @ralphtheninja suggests!

@ralphtheninja
Copy link
Contributor

ralphtheninja commented Sep 12, 2017

@ralphtheninja great to hear, the fork works very well and is also a good deal faster than the official version if I remember correctly. I also think the other reason to use the fork were issues with the iterators, but I don't remember the details atm.

Cool. The thing with iterators right now I think is that it doesn't terminate properly, it keeps going on under the hood but ignores calling back with data so it's slow.

Actually, maybe it's easier to take the fork and start working on that to get it up to the latest abstract-leveldown.

@daviddias daviddias added status/ready Ready to be worked P2 Medium: Good to have, but can wait until someone steps up and removed status/deferred Conscious decision to pause or backlog labels Oct 17, 2017
@richardschneider
Copy link
Contributor

Why are we dependent on level-js and level-down? This should all be handled by datastore-level.

Also, datastore-level uses "level-js": "^2.2.4" NOT "level-js": "timkuijsten/level.js#idbunwrapper"

@ralphtheninja
Copy link
Contributor

Unfortunately I don't have time for this atm because life. That said, I haven't forgotten about this. Maybe @vweevers can take this up or maybe I'll jump on it later on, but right now it's not possible 😢

@vweevers
Copy link

I'm currently working on memdown and abstract-leveldown (to fix weirdness surrounding serialization, which also helps to clean up level.js). After that I can put some time into level.js - but only on weekends atm, so it will take a while.

Regarding:

The thing with iterators right now I think is that it doesn't terminate properly, it keeps going on under the hood but ignores calling back with data so it's slow.

The fork will by default keep reading to fulfill the snapshot guarantee dictated by abstract-leveldown. If users want better performance, they can opt-in to backpressure, losing snapshot guarantees. I think this approach works well (and I don't see any other option), so will probably copy it.

@vweevers
Copy link

Hey everybody! Good news: v3.0.0-rc1 is out and can be installed with npm i level-js@next.

@achingbrain
Copy link
Member

This issue is quite old - level-js is healthy & well maintained, I think it can be closed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exp/expert Having worked on the specific codebase is important help wanted Seeking public contribution on this issue P2 Medium: Good to have, but can wait until someone steps up status/ready Ready to be worked
Projects
None yet
Development

No branches or pull requests

8 participants