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

Implement transaction sealing #3220

Open
spolitov opened this issue Dec 23, 2019 · 0 comments
Open

Implement transaction sealing #3220

spolitov opened this issue Dec 23, 2019 · 0 comments
Assignees
Labels
area/docdb YugabyteDB core features kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue

Comments

@spolitov
Copy link
Contributor

spolitov commented Dec 23, 2019

Jira Link: DB-1369

@spolitov spolitov added the area/docdb YugabyteDB core features label Dec 23, 2019
@spolitov spolitov self-assigned this Dec 23, 2019
@spolitov spolitov added this to To Do in YBase features via automation Dec 23, 2019
spolitov added a commit that referenced this issue Dec 23, 2019
Summary:
During transaction sealing implementation we store set of replicated batches in running transaction.
This diff adds bitmap that is optimized for this particular scenario:
  1) Bits could only be set, i.e. clear is not allowed.
  2) Usually bits are getting set in increasing order.
  3) Bitmap is frequently encoded and skipped, but rarely decoded.

Test Plan: ybd debug --cxx-test bitmap-test --gtest_filter *.OneWayBitmap*

Reviewers: dmitry, mikhail, timur

Reviewed By: timur

Subscribers: ybase

Differential Revision: https://phabricator.dev.yugabyte.com/D7735
spolitov added a commit that referenced this issue Dec 26, 2019
Summary:
When sealed transaction is applied, coordinator cleans up its intents.
We already have such functionality in YBTransaction, i.e. client part of transaction.

So extracted it to separate utility function.

Test Plan: Jenkins

Reviewers: dmitry, mikhail, timur

Reviewed By: timur

Subscribers: ybase, bogdan

Differential Revision: https://phabricator.dev.yugabyte.com/D7744
spolitov added a commit that referenced this issue Jan 27, 2020
Summary:
To implement the "transaction sealing" protocol, we should track
transactional batches replicated at each transaction participant.  So
with this diff, YBTransaction now tracks all batches sent to participant
tablets as part of the transaction, and assigns an index to each batch.
When a transactional batch is replicated, we add its index to the set of
indexes of replicated batches for the transaction at the transaction
participant.

Test Plan: ybd debug --gtest_filter SealTxnTest.NumBatches*

Reviewers: timur, dmitry, mikhail

Reviewed By: mikhail

Subscribers: ybase, bogdan

Differential Revision: https://phabricator.dev.yugabyte.com/D7743
spolitov added a commit that referenced this issue Feb 19, 2020
Summary:
This diff implements transaction sealing w/o the ability to abort sealed transactions and intents apply.
(It will be addressed by upcoming diffs).

Added ability to request transaction status at the participant, i.e. number of replicated batches, etc.

Test Plan: ybd debug --cxx-test seal-txn-test

Reviewers: mikhail

Reviewed By: mikhail

Subscribers: ybase, bogdan

Differential Revision: https://phabricator.dev.yugabyte.com/D7848
@yugabyte-ci yugabyte-ci added kind/bug This issue is a bug priority/medium Medium priority issue labels Jun 8, 2022
@yugabyte-ci yugabyte-ci added kind/enhancement This is an enhancement of an existing feature and removed kind/bug This issue is a bug labels Jul 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/docdb YugabyteDB core features kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue
Projects
YBase features
  
Backlog
Development

No branches or pull requests

2 participants