abhishekagarwal87 opened a new pull request #10366: URL: https://github.com/apache/druid/pull/10366
This PR adds caching capabilities to queries with join. The support is limited for now and only supported if the right-hand data source in the join is `GlobalTableDataSource`. But it can be extended to more data sources in follow-up PRs. ### Description The cache key is computed independently of `Joinable` objects. `ServerManager`, `ResultLevelCachingQueryRunner`, `SinkQuerySegmentWalker` uses `Joinables.computeDataSourceCacheKey` which then loops through all `PreJoinableClause` objects and - builds the cache key for data source participating in clause - calls `JoinableFactory.computeJoinCacheKey`. Returns absent if caching is not supported. `BroadcastTableJoinableFactory` returns a key computed using the segment of the broadcast table - adds the `JoinConditionAnalysis` to the above cache key <hr> 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. - [ ] 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/licenses.yaml) - [ ] 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. <!-- Check the items by putting "x" in the brackets for the done things. Not all of these items apply to every PR. Remove the items which are not done or not relevant to the PR. None of the items from the checklist above are strictly necessary, but it would be very helpful if you at least self-review the PR. --> <hr> ##### Key changed/added classes in this PR * `ServerManager` * `SinkQuerySegmentWalker` * `ResultLevelCachingQueryRunner` * `Joinables` ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org