-
Notifications
You must be signed in to change notification settings - Fork 27
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
Implement the aggregation flow as in draft07 #409
Conversation
d0623cf
to
9188356
Compare
b37c805
to
4ed73a1
Compare
ad21d31
to
7423f26
Compare
f109916
to
d0ac903
Compare
7423f26
to
cce9de6
Compare
(state, agg_job_init_req) | ||
} | ||
DapLeaderAggregationJobTransition::Finished(agg_span) | ||
if agg_span.report_count() == 0 => |
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.
I removed Skip
because it feels a bit redundant. But the fact that we need this if
statement here makes me wonder if we really want an empty agg span to distinguish between these branches.
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.
why do we need this if?
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.
If the agg span is empty, then we quite the agg job. Otherwise, if the agg span is non-empty, we send the next request for the agg job.
agg_span | ||
} else { | ||
return Ok(0); | ||
} |
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.
Similar comment here.
cce9de6
to
0daf9e8
Compare
1094133
to
90de281
Compare
2bfd1ae
to
a9f8971
Compare
In draft07, the Leader sends its prep share in the AggregationJobInitReq; the Helper computes its prep share, computes the prep message, and commits. For 1-round VDAFs, the flow is complete after one request. The main goal of this change is to implement this new control flow. Other changes: * Clean up and unify data structures for aggregation job state. * Rename the `aggregation_job_continue_repeats_due_to_replays` metric (we need to do an analogous thing during AggregationJobInitReq processing). * Regression: Remove the `handle_agg_job_req_init_expired_task` tests. Ideally we'd like to keep these, but it's difficult to do so without major refactoring. * Ensure Leader handles an `Err` from `try_put_agg_share_span()` as fatal. Work-in-progress: The code is not yet wire-compatible with draft07.
027fafb
to
2834966
Compare
Stacked on #412.
Partially addresses #350.
In draft07, the Leader sends its prep share in the
AggregationJobInitReq; the Helper computes its prep share, computes the
prep message, and commits. For 1-round VDAFs, the flow is complete after
one request.
The main goal of this change is to implement this new control flow.
Other changes:
Clean up and unify data structures for aggregation job state.
Rename the
aggregation_job_continue_repeats_due_to_replays
metric(we need to do an analogous thing during AggregationJobInitReq
processing).
Regression: Remove the
handle_agg_job_req_init_expired_task
tests.Ideally we'd like to keep these, but it's difficult to do so without
major refactoring.
Work-in-progress: The code is not yet wire-compatible with draft07.