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

Precreate transactions #918

Closed
spolitov opened this issue Feb 28, 2019 · 1 comment
Closed

Precreate transactions #918

spolitov opened this issue Feb 28, 2019 · 1 comment
Assignees
Labels
kind/enhancement This is an enhancement of an existing feature

Comments

@spolitov
Copy link
Contributor

When transaction is started, it is registered at status tablet. That takes one RAFT round.
We could maintain pool of registered transactions, and when new transaction is required it could be taken from this pool.
So we could start working with this transaction immediately.

@spolitov spolitov added the kind/enhancement This is an enhancement of an existing feature label Feb 28, 2019
@spolitov spolitov self-assigned this Feb 28, 2019
yugabyte-ci pushed a commit that referenced this issue Mar 4, 2019
… round-trip for transaction creation on the write path

Summary:
Currently, when a transaction is started, it is registered at the status tablet. That takes one Raft round trip.
With this change, we will maintain a pool of pre-created transactions, and when a new transaction is requested,
we will take it from this pool and start writing provisional records for this transaction immediately.

Also fixed issue an issue where the start time of a restarted transaction was picked incorrectly.

Test Plan: ybd --cxx-test ql-transaction-test --gtest_filter QLTransactionTest.BankAccounts

Reviewers: timur, robert, mikhail

Reviewed By: mikhail

Subscribers: ybase

Differential Revision: https://phabricator.dev.yugabyte.com/D6255
@spolitov spolitov closed this as completed Mar 4, 2019
@kmuthukk
Copy link
Collaborator

kmuthukk commented Mar 5, 2019

Excellent work @spolitov !

mbautin pushed a commit that referenced this issue Jul 11, 2019
…ed to the

earlier commit b1127a0

Original commit message:

[#918]: Add a pool of pre-created transaction records to avoid a Raft round-trip for transaction creation on the write path

Summary:
Currently, when a transaction is started, it is registered at the status tablet. That takes one Raft round trip.
With this change, we will maintain a pool of pre-created transactions, and when a new transaction is requested,
we will take it from this pool and start writing provisional records for this transaction immediately.

Also fixed issue an issue where the start time of a restarted transaction was picked incorrectly.

Test Plan: ybd --cxx-test ql-transaction-test --gtest_filter QLTransactionTest.BankAccounts

Reviewers: timur, robert, mikhail

Reviewed By: mikhail

Subscribers: ybase

Differential Revision: https://phabricator.dev.yugabyte.com/D6255
mbautin pushed a commit to mbautin/yugabyte-db that referenced this issue Jul 16, 2019
…d a Raft round-trip for transaction creation on the write path

Summary:
Currently, when a transaction is started, it is registered at the status tablet. That takes one Raft round trip.
With this change, we will maintain a pool of pre-created transactions, and when a new transaction is requested,
we will take it from this pool and start writing provisional records for this transaction immediately.

Also fixed issue an issue where the start time of a restarted transaction was picked incorrectly.

Test Plan: ybd --cxx-test ql-transaction-test --gtest_filter QLTransactionTest.BankAccounts

Reviewers: timur, robert, mikhail

Reviewed By: mikhail

Subscribers: ybase

Differential Revision: https://phabricator.dev.yugabyte.com/D6255

Note:
This commit provides additional functionality that is logically related to
the earlier commit yugabyte@b1127a0
and supersedes the commit yugabyte@98d91eb
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

2 participants