kfaraz opened a new pull request, #18391:
URL: https://github.com/apache/druid/pull/18391
### Description
Druid MSQ engine offers a very convenient method of performing SQL-based
batch ingestion, export, etc.
Given the importance and heavy adoption of MSQ, this patch converts MSQ into
a core capability of Druid
rather than an extension, as was always intended.
### Changes
- Move all MSQ classes to `services` module without renaming the package
- Move the module loader file `org.apache.druid.guice.DruidModule` to
`services/src/main/resources/META-INF/services`
- This effectively means that the modules listed in this file will always
be loaded on all Druid services as desired
- Update dependencies as needed
- Remove mentions of extension from properties
### Alternative
The alternative was to simply move the `multi-stage-query` module into a
top-level module but that would
lead to cyclic dependencies between `services` and `multi-stage-query` since:
a) multi-stage-query depends on services for various classes
b) services is the entry point and must depend on all the core modules that
need to be on the classpath
### Pending
- Once initial feedback is received, the docs will also be updated to remove
mentions of the multi-stage-query extension.
### Future
- Over time, various MSQ classes may be moved out of `services` module into
more appropriate modules such as
`processing`, `server`, `indexing-service` or `sql` as applicable.
### Release note
- Multi-stage-query (MSQ engine) is now a core capability of Druid rather
than an extension.
- Remove `druid-multi-stage-query` from `druid.extensions.loadList` in
`common.runtime.properties`.
### Upgrade notes
While upgrading, the extension `druid-multi-stage-query` must be removed
from `druid.extensions.loadList`.
Otherwise, Druid services would fail to start as they would not be able to
locate this extension.
<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.
- [ ] 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]