GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Work complete for optimistic transaction semantics
Merge branch 'two-dot-o' into optimistic-tx-semantics
First stab at optimistic verification
Progress on optimistic verify and test.
shell of a WriteOptimisticVerifyTest now in place, but it does not re…
…ally test anything.
Separate WriteOptimisticVerify test into to parts, one Theories part …
…and one Jukito part.
Use mocks instead of real live serialization strategy.
@snoopdave take a look at:
A lot there, but does describe in detail an excellent way to break test transactional stuff.
Fix broken test.
Operation specific exception types.
We now cleanup and unique values on version conflict; also, added bet…
…ter tests for optimistic and unique verification.
Operation now removes self from log instead of writing a rollback entry.
What about the deletes of the unique properties as well? I think we'll need to do them too, otherwise you'll get incorrect duplicate property exceptions if you try to write again <= timeout on the columns of unique properties
That's there now. Take a look at the previous commits.
New RollbackAction and exception handling changes.
Rollback of MVCC log and UniqueValues now working and verified by test.
@tnine the RollbackAction is now hooked in via RxJava and I think this is ready to merge with two-dot-o. Please take another look when you get a chance.
Rather than do this in parallel for each rollback, it would actually probably be more performant to roll them all into 1 single mutation batch for a single network call. Then you wouldn't need to mess with the observables here in this state since it would be a single network call. Thoughts?
The mutation needs executed here. Again, this could be rolled in the batch with all the unique fields.
Might want to attempt to update the original entity here. Just to ensure all the unique values were removed from the CF's and that nothing is blocking an update.
Use one mutation batch instead of concurrent ops in Rollback action, …
…and add update to end of test.
Thanks @tnine. I made those suggested changes.
Merge pull request #52 from usergrid/optimistic-tx-semantics
Optimistic tx semantics