-
Notifications
You must be signed in to change notification settings - Fork 466
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
adapter: make all DurableTimestampOracle methods async #22091
adapter: make all DurableTimestampOracle methods async #22091
Conversation
We do this as preparation for introducing a TimestampOracle trait, which we eventually want to back by RPC or calls to an external consensus system, both of which require async'ness. This also requires making the call stack up to timestamp oracle methods async.
This PR has higher risk. Make sure to carefully review the file hotspots. In addition to having a knowledgeable reviewer, it may be useful to add observability and/or a feature flag. What's This?
Buggy File Hotspots:
|
Let me trigger a Nightly and a coverage build once the tests pipeline is green. |
I think Sheperdly becoming aware of this has at least tiggered nighlies already. Unless that was you. 😅 |
It's the CI 😀 |
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.
Personally I'm OK with all the added async
s.
schedule_storage_usage_collection
is the only one where I feel it's a bit unfortunate that it's become async
. It's meant to be obviously cheap so we don't accidentally start doing part of the actual collection work in that method. We could pass a timestamp into the method but, I don't really feel that strongly and I think getting the timestamp inside the method is a bit clearer.
I had triggered this coverage build (#244). |
Thank you for that additional context! How worried should we be about those nightly failures (I saw you restarted a couple jobs?). I don't know how healthy nightly currently is. |
We are good, Nightly is green. Some jobs in Nightly flicker a bit, I triggered a retry of "Parallel Workload (cancel)". I don't think that this is related to the changes, I think I have seen that elsewhere too. As for coverage build, failures are rather common. Tests with coverage enabled need more memory and take significantly longer. Consequently, they are more likely to run into timeouts. |
We do this as preparation for introducing a TimestampOracle trait, which we eventually want to back by RPC or calls to an external consensus system, both of which require async'ness.
This also requires making the call stack up to timestamp oracle methods async.
Part of MaterializeInc/database-issues#6635
Tips for reviewer
This is potentially one of the more spicy commits because it adds
async
to some coordinator methods, and the @MaterializeInc/adapter team might have stronger opinions on that.#21671 has this commit and all the follow-up commits for full MaterializeInc/database-issues#6635, it might be good to look at that for context.
Checklist
$T ⇔ Proto$T
mapping (possibly in a backwards-incompatible way), then it is tagged with aT-proto
label.