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

EventProcessor needs to handle Ticks between Event batches #216

Closed
garious opened this issue May 14, 2018 · 0 comments
Closed

EventProcessor needs to handle Ticks between Event batches #216

garious opened this issue May 14, 2018 · 0 comments
Assignees

Comments

@garious
Copy link
Contributor

garious commented May 14, 2018

The Historian is pushing Ticks to its Entry sender every X milliseconds. Event processor pushes a batch of events to the Historian and expects the first Entry it reads to be the one that contains the events it just pushed. That's broken! Instead, find a different way to get all Entry IDs registered with the accountant. EventProcessor is the wrong place to intercept those entries.

@garious garious self-assigned this May 14, 2018
garious added a commit to garious/solana that referenced this issue May 14, 2018
No longer intercept entries to register_entry_id(). Intead,
register the ID in the Write stage.

EventProcessor is now just being used as a place to store data.

Fixes solana-labs#216
aeyakovenko referenced this issue in aeyakovenko/solana May 14, 2018
No longer intercept entries to register_entry_id(). Intead,
register the ID in the Write stage.

EventProcessor is now just being used as a place to store data.

Fixes #216
vkomenda pushed a commit to vkomenda/solana that referenced this issue Aug 29, 2021
steviez added a commit to steviez/solana that referenced this issue Mar 27, 2024
…a-labs#216)

Previously, entry verification had a dedicated threadpool used to verify
PoH hashes as well as some basic transaction verification via
Bank::verify_transaction(). It should also be noted that the entry
verification code provides logic to offload to a GPU if one is present.

Regardless of whether a GPU is present or not, some of the verification
must be done on a CPU. Moreso, the CPU verification of entries and
transaction execution are serial operations; entry verification finishes
first before moving onto transaction execution.

So, tx execution and entry verification are not competing for CPU cycles
at the same time and can use the same pool.

One exception to the above statement is that if someone is using the
feature to replay forks in parallel, then hypothetically, different
forks may end up competing for the same resources at the same time.
However, that is already true given that we had pools that were shared
between replay of multiple forks. So, this change doesn't really change
much for that case, but will reduce overhead in the single fork case
which is the vast majority of the time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant