-
Notifications
You must be signed in to change notification settings - Fork 178
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
mv-iterator-prev branch #69
Conversation
Any ETC on this pull request? I'm doing integration this week, and it would be nice to have it. :) |
uwiger, I was hoping to hear back on the results in your environment ... and we have gotten into a bottleneck on code reviews here. I can likely get this out Thursday. |
I have been testing it with the mnesia test suite (automatically transforming all occurrences of disc_only_copies to use a leveldb backend instead. While this doesn't work 100%, the mv-iterator-prev branch performs at least as well as master (slightly better since prev() actually works). The mnesia test suite shakes things up quite a lot, but operates on fairly small data sets. I have not yet run tests on this branch with really large tables. |
"While this doesn't work 100%" ... what is not working 100%: eleveldb, amnesia test suite, something else? |
Sorry for being unclear. The thing that doesn't work 100% is the "transforming all occurrences of disc_only_copies to use a leveldb backend instead" in the mnesia test suite. |
@matthewvon can you make Travis happy? |
Travis will not be consistently happy with this branch until 1) eleveldb's mv-clean-overlaps is pushed to master and 2) leveldb's mv-valgrind-cleanup is pushed to master. Travis is failing on the RSS test which Jon describes as unreliable. However, I reviewed it sufficiently to find a memory leak that lead to the other two branches. So, we could pull both branches to here, or finish the code review on the other two branches. I recommend the latter ... or ignoring Travis error on RSS. |
@@ -540,8 +541,7 @@ ERL_NIF_TERM send_reply(ErlNifEnv *env, ERL_NIF_TERM ref, ERL_NIF_TERM reply) | |||
itr_ptr.assign(ItrObject::RetrieveItrObject(env, itr_handle_ref)); | |||
|
|||
// prefetch logic broke PREV and not fixing for Riak |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this comment still accurate?
+1 Test output:
|
Thanks. |
This branch is to address issue: #52
The async NIF release knowingly disable the iterator "prev" support. Implicitly it also disabled all "next" / "prev" combinations. The assumption then was the Riak only used "fold" ... so don't sweat the details. However, other folks use eleveldb outside of Riak and need the support ... this restores the feature.