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

Update AAE fullsync to support bucket types #665

Merged
merged 6 commits into from
Apr 8, 2015

Conversation

ian-mi
Copy link
Contributor

@ian-mi ian-mi commented Apr 2, 2015

Fixes issue #663 (RIAK-1292) (RIAK-1294) (RIAK-1295) by updating encode_obj_msg to support the w2 wire protocol, and by changing the AAE sink to use an updated decode_obj_msg function which can now properly handle bucket type property hashes.

encode_obj_msg and decode_obj_msg are not currently proper inverses of each other, but I kept the current behavior as not all messages passed to decode_obj_msg are guaranteed to be encoded using encode_obj_msg.

I have manually verified that this allows keys with a bucket type to be synced using AAE fullsync, but a test combining bucket types and AAE fullsync should probably be added to riak_test.

@bsparrow435
Copy link
Contributor

Code looks good. Will add a test for this tomorrow to riak_test and then we can merge.

@bsparrow435
Copy link
Contributor

Still in progress, riak_test setup has taken longer than anticipated. Will update again today.

@bsparrow435
Copy link
Contributor

Test finished, fails as expected with current code but am also getting failure with this branch. Investigating more now.

@bsparrow435
Copy link
Contributor

riak_test PR: basho/riak_test#770

Fails without this change, passes with the change.

👍 for merge

@bsparrow435
Copy link
Contributor

@borshop 👍 bffb7df

@bsparrow435
Copy link
Contributor

+1 bffb7df

@bsparrow435
Copy link
Contributor

👍 bffb7df

borshop added a commit that referenced this pull request Apr 8, 2015
Update AAE fullsync to support bucket types

Reviewed-by: bsparrow435,bsparrow435
@bsparrow435
Copy link
Contributor

@borshop retry

@bsparrow435
Copy link
Contributor

@borshop: retry

@bsparrow435
Copy link
Contributor

@borshop :retry

@bsparrow435
Copy link
Contributor

+1 bffb7df

@bsparrow435
Copy link
Contributor

@borshop merge

@bsparrow435
Copy link
Contributor

@borshop why have you forsaken me?

bsparrow435 added a commit that referenced this pull request Apr 8, 2015
@bsparrow435 bsparrow435 merged commit e6cd9ca into develop Apr 8, 2015
@bsparrow435 bsparrow435 deleted the bugfix/im/aae_fullsync_bucket_types branch April 8, 2015 22:30
@fadushin
Copy link
Contributor

fadushin commented Apr 8, 2015

Retry needs to be on the branch, not on the PR, I think.

@bsparrow435
Copy link
Contributor

@jonmeredith or @lordnull i'm told by others that this needs a review from one of you all before we can re-merge. Test is basho/riak_test#770

enjoy.

@bsparrow435
Copy link
Contributor

Ping @jonmeredith or @lordnull . I've been told by leads that I do not have review rights so one of you needs to review this.

@lordnull
Copy link
Contributor

lordnull commented May 1, 2015

This particular pr has been merged, so to get it in again a new pr will need to be opened. github can't re-open merged pr's unfortunately.

Since it's been merged once, it'll likely be an easy review.

@bsparrow435 bsparrow435 restored the bugfix/im/aae_fullsync_bucket_types branch May 1, 2015 18:57
@jonmeredith
Copy link
Contributor

@bsparrow435 hey - did this ever get re-opened? I'm assuming it should be fixed on 2.0.6 and 2.next ?

@bsparrow435
Copy link
Contributor

I'm on vacation, @ian-mi will need to re-open. Just make a new branch Ian with these changes so we can re-merge the re-merge before reverting and then re-merging :).

@jonmeredith
Copy link
Contributor

A magical dance. Sorry, didn't realize you were out - enjoy.

@cmeiklejohn
Copy link
Contributor

@ian-mi Will there be a new PR opened for this that I can review?

@cmeiklejohn
Copy link
Contributor

@ian-mi @bsparrow435 Will there be a new PR for this today against develop?

@cmeiklejohn cmeiklejohn self-assigned this May 20, 2015
@bsparrow435
Copy link
Contributor

Yes, Ian is working on this now. Git is complaining about his revert of the revert so he may just need to make a fresh branch and just copy/paste the changes.

@jonmeredith
Copy link
Contributor

Although this is reverted and we're looking for a more general solution to replicated bucket properties, I wanted to add a note here in case we use something like this in the interim.

I can definitely see why it's logically sound to put the decoding stuff into riak_repl_util, but that means that the objects will travel between the aae_sink and the worker process as decoded objects rather than as binaries and I'm concerned this will cause a minor performance regressions - generating more garbage on the aae_sink process and increased term copying.

@ian-mi
Copy link
Contributor Author

ian-mi commented Jul 13, 2015

Thank you for the feedback. I went with the current implementation as it was the simplest and I wanted to minimize changes to the way the code is currently structured. I can investigate modifying this PR to do all decoding in the worker process if you don't already have an alternative solution in mind. I agree we should eventually unify the handling of replicated bucket properties between realtime and both fullsync methods with a more general solution.

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

Successfully merging this pull request may close these issues.

7 participants