Make orphan processing interruptible#15644
Merged
maflcko merged 3 commits intobitcoin:masterfrom Apr 1, 2019
Merged
Conversation
Contributor
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
maflcko
reviewed
Mar 22, 2019
ebf3331 to
358a4f8
Compare
This makes orphan processing work like handling getdata messages: After every actual transaction validation attempt, interrupt processing to deal with messages arriving from other peers.
358a4f8 to
866c805
Compare
Contributor
|
ACK |
Contributor
|
utACK |
Member
|
ACK 866c805 |
Member
|
utACK 866c805 |
maflcko
pushed a commit
to maflcko/bitcoin-core
that referenced
this pull request
Mar 28, 2019
Github-Pull: bitcoin#15644 Rebased-From: 9453018
maflcko
pushed a commit
to maflcko/bitcoin-core
that referenced
this pull request
Mar 28, 2019
Github-Pull: bitcoin#15644 Rebased-From: 6e051f3
maflcko
pushed a commit
to maflcko/bitcoin-core
that referenced
this pull request
Mar 28, 2019
This makes orphan processing work like handling getdata messages: After every actual transaction validation attempt, interrupt processing to deal with messages arriving from other peers. Github-Pull: bitcoin#15644 Rebased-From: 866c805
promag
reviewed
Mar 29, 2019
Contributor
promag
left a comment
There was a problem hiding this comment.
Refactor LGTM, some comments though.
maflcko
pushed a commit
to maflcko/bitcoin-core
that referenced
this pull request
Apr 1, 2019
866c805 Interrupt orphan processing after every transaction (Pieter Wuille) 6e051f3 [MOVEONLY] Move processing of orphan queue to ProcessOrphanTx (Pieter Wuille) 9453018 Simplify orphan processing in preparation for interruptibility (Pieter Wuille) Pull request description: As individual orphan transactions can be relatively expensive to handle, it's undesirable to process all of them (max 100) as soon as the parent becomes available, as it pegs the net processing the whole time. Change this by interrupting orphan handling after every transactions, and continue in the next processing slot of the peer that gave us the parent - similar to how getdata processing works now. Messages from other peers arriving in the mean time are processed normally, but other messages from the peer that gave us the parent have to wait until all orphan processing is done. ACKs for commit 866c80: sdaftuar: ACK 866c805 MarcoFalke: utACK 866c805 promag: utACK 866c805. Verified refactor in 9453018 and moved code in 6e051f3. Not so sure about change in 866c805 just because I'm not familiar with net processing. Tree-SHA512: d8e8a1ee5f2999446cdeb8fc9756ed9c24f3d5cd769a7774ec4c317fc8d463fdfceec88de97266f389b715a5dfcc2b0a3abaa573955ea451786cc43b870e8cde
Member
|
Backported in #15691. |
HashUnlimited
pushed a commit
to HashUnlimited/chaincoin
that referenced
this pull request
Apr 19, 2019
Github-Pull: bitcoin#15644 Rebased-From: 9453018
HashUnlimited
pushed a commit
to HashUnlimited/chaincoin
that referenced
this pull request
Apr 19, 2019
Github-Pull: bitcoin#15644 Rebased-From: 6e051f3
HashUnlimited
pushed a commit
to HashUnlimited/chaincoin
that referenced
this pull request
Apr 19, 2019
This makes orphan processing work like handling getdata messages: After every actual transaction validation attempt, interrupt processing to deal with messages arriving from other peers. Github-Pull: bitcoin#15644 Rebased-From: 866c805
HashUnlimited
pushed a commit
to HashUnlimited/chaincoin
that referenced
this pull request
Aug 23, 2019
Github-Pull: bitcoin#15644 Rebased-From: 9453018
HashUnlimited
pushed a commit
to HashUnlimited/chaincoin
that referenced
this pull request
Aug 23, 2019
Github-Pull: bitcoin#15644 Rebased-From: 6e051f3
HashUnlimited
pushed a commit
to HashUnlimited/chaincoin
that referenced
this pull request
Aug 23, 2019
This makes orphan processing work like handling getdata messages: After every actual transaction validation attempt, interrupt processing to deal with messages arriving from other peers. Github-Pull: bitcoin#15644 Rebased-From: 866c805
deadalnix
pushed a commit
to Bitcoin-ABC/bitcoin-abc
that referenced
this pull request
May 22, 2020
…uptibility Summary: bitcoin/bitcoin@9453018 --- Partial backport of Core [[bitcoin/bitcoin#15644 | PR15644]] Test Plan: ninja check ./test/functional/test_runner.py --extended Reviewers: #bitcoin_abc, deadalnix, nakihito Reviewed By: #bitcoin_abc, deadalnix, nakihito Subscribers: nakihito, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D6216
deadalnix
pushed a commit
to Bitcoin-ABC/bitcoin-abc
that referenced
this pull request
May 23, 2020
…sOrphanTx Summary: bitcoin/bitcoin@6e051f3 --- Depends on D6216 Partial backport of Core [[bitcoin/bitcoin#15644 | PR15644]] Test Plan: ninja check Reviewers: #bitcoin_abc, nakihito, deadalnix Reviewed By: #bitcoin_abc, nakihito, deadalnix Subscribers: deadalnix Differential Revision: https://reviews.bitcoinabc.org/D6217
deadalnix
pushed a commit
to Bitcoin-ABC/bitcoin-abc
that referenced
this pull request
May 23, 2020
Summary: This makes orphan processing work like handling getdata messages: After every actual transaction validation attempt, interrupt processing to deal with messages arriving from other peers. --- Depends on D6217 Concludes backport of Core [[bitcoin/bitcoin#15644 | PR15644]] Test Plan: ninja check-all Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Subscribers: deadalnix Differential Revision: https://reviews.bitcoinabc.org/D6235
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As individual orphan transactions can be relatively expensive to handle, it's undesirable to process all of them (max 100) as soon as the parent becomes available, as it pegs the net processing the whole time.
Change this by interrupting orphan handling after every transactions, and continue in the next processing slot of the peer that gave us the parent - similar to how getdata processing works now. Messages from other peers arriving in the mean time are processed normally, but other messages from the peer that gave us the parent have to wait until all orphan processing is done.