-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
[IM] Record LastReportTick and DirtyTick in ReadHandler #16060
Conversation
5b77dc5
to
cac6273
Compare
cac6273
to
503b9cc
Compare
PR #16060: Size comparison from 4ea2bae to 41ab797 Increases above 0.2%:
Increases (18 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Decreases (1 build for linux)
Full report (18 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
53c235e
to
7952064
Compare
PR #16060: Size comparison from 197f65f to 7952064 Increases above 0.2%:
Increases (27 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Full report (27 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some naming and comment fixes, but generally this looks quite good, thank you!
I did not review the TestReadChunking changes carefully...
/rebase |
Fast tracking given this has had > 3 days for review. |
// Here we just reset the iterator to the beginning of the current cluster, if the dirty path affects it. | ||
// This will ensure the reports are consistent within a single cluster generated from a single path in the request. | ||
|
||
// TODO (#16699): Currently we can only gurentee the reports generated from a single path in the request are consistent. The |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"guarantee", not "gurentee".
// For subscriptions, we record the dirty set generation when we started to generate the last report. | ||
// The mCurrentReportsBeginGeneration records the generation at the start of the current report. This only/ | ||
// has a meaningful value while IsReporting() is true. | ||
// | ||
// mPreviousReportsBeginGeneration will be set to mCurrentReportsBeginGeneration after we send the last | ||
// chunk of the current report. Anything that was dirty with a generation earlier than | ||
// mPreviousReportsBeginGeneration has had its value sent to the client. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not look like the right comment for mForceDirty
. Merge issue?
// For subscriptions, we record the timestamp when we started to generate the last report. | ||
// The mCurrentReportsBeginGeneration records the timestamp for the current report, which won;t be used for checking if this | ||
// ReadHandler is dirty. | ||
// mPreviousReportsBeginGeneration will be set to mCurrentReportsBeginGeneration after we sent the last chunk of the current | ||
// report. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is where the comment that's above mForceDirty
should be...
…#16060) * [IM] Record LastRecordTimestamp and DirtyTimestamp in ReadHandler * Update naming and comments * Add more tests * Fix * Update tests * Address comments * Resolve compile error * Drive IO for a bit longer time * Address comments * Lift timelimit for darwin * Tick -> Generation
…#16060) * [IM] Record LastRecordTimestamp and DirtyTimestamp in ReadHandler * Update naming and comments * Add more tests * Fix * Update tests * Address comments * Resolve compile error * Drive IO for a bit longer time * Address comments * Lift timelimit for darwin * Tick -> Generation
Problem
Fixes #15975
During priming report, the report might be large, and if there are any attributes changed during the report, we will do a full regeneration, makes the report unable to finish.
Change overview
Testing