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

Add transactional retry writes tests #1030

Closed
spolitov opened this issue Mar 19, 2019 · 0 comments
Closed

Add transactional retry writes tests #1030

spolitov opened this issue Mar 19, 2019 · 0 comments
Assignees
Labels
kind/enhancement This is an enhancement of an existing feature

Comments

@spolitov
Copy link
Contributor

No description provided.

@spolitov spolitov added the kind/enhancement This is an enhancement of an existing feature label Mar 19, 2019
@spolitov spolitov self-assigned this Mar 19, 2019
yugabyte-ci pushed a commit that referenced this issue Mar 19, 2019
Summary:
Added transactional retry writes test.

Fixed the following issues, found by this test.
1) Transaction could be aborted when status tablet leader changes.
Fixed by returning correct status to retryer.

2) Second commit request could fail after first one was replicated.
Fixed by returning AlreadyPresent status and handling it in commit callback.

3) RPC layers errors were not handled correctly.
For instance when request cannot be processed because of service shutdown, we could stop retrying to apply the operation.
Fixed by correct handling of such errors.

Those issues does NOT ruin correctness, but increase failure rate of transactions.

Also added more diagnostics information to retry writes test and transaction workflow.

Test Plan:
ybd --cxx-test ql-stress-test --gtest_filter QLStressTest.RetryTransactionalWritesWithRestarts -n 40
ybd --cxx-test ql-stress-test --gtest_filter QLStressTest.RetryTransactionalWrites -n 40

Reviewers: mikhail, dmitry, timur

Reviewed By: timur

Subscribers: bogdan, ybase, bharat

Differential Revision: https://phabricator.dev.yugabyte.com/D6354
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement This is an enhancement of an existing feature
Projects
None yet
Development

No branches or pull requests

1 participant