imply-cheddar opened a new pull request, #13580: URL: https://github.com/apache/druid/pull/13580
Change the Operator interface introduced for Window functions to be more of a push-model. The impetus for this is to generate better stack traces. With the pull-based model, the stack trace of an exception shows the operator chain that still has work to do without any indication of which operators have done work so far. With the change in the API introduced here, we will produce stack traces that start with the full operator chain running down the `.go()` method. Then the stack will walk back up towards the `Receiver` that was passed into the `.go()` method. This should produce a stack trace that tells us both the full operator chain that is being executed as well as give an indication of what actions have happened so far as the data has been processed. It remains important that Operators are implemented directly without any usage of fluent-style programming. This is something that we will likely have to enforce through review. This PR is a refactoring with no additional functionality. It's based on this HTTP refactoring, so cannot be merged until that is merged: https://github.com/apache/druid/pull/13564 It probably also shouldn't be reviewed until that is merged as this will contain all of the diffs for that PR too. This PR has: - [ ] been self-reviewed. - [ ] using the [concurrency checklist](https://github.com/apache/druid/blob/master/dev/code-review/concurrency.md) (Remove this item if the PR doesn't have any relation to concurrency.) - [ ] added documentation for new or modified features or behaviors. - [ ] a release note entry in the PR description. - [ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links. - [ ] added or updated version, license, or notice information in [licenses.yaml](https://github.com/apache/druid/blob/master/dev/license.md) - [ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader. - [ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for [code coverage](https://github.com/apache/druid/blob/master/dev/code-review/code-coverage.md) is met. - [ ] added integration tests. - [ ] been tested in a test Druid cluster. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
