Skip to content

Make possible to start Peon without DI loading of any querying-related stuff#4516

Merged
himanshug merged 3 commits intoapache:masterfrom
metamx:peon-without-query-stuff
Jul 12, 2017
Merged

Make possible to start Peon without DI loading of any querying-related stuff#4516
himanshug merged 3 commits intoapache:masterfrom
metamx:peon-without-query-stuff

Conversation

@leventov
Copy link
Copy Markdown
Member

@leventov leventov commented Jul 6, 2017

There are three steps:

  • Depend on QueryRunnerFactoryConglomerate lazily in TaskToolboxFactory
  • Extract QueryablePeonModule with the querying-related stuff loaded on Peon currently
  • Generalize druid.extensions.moduleExcludeList config as druid.modules.excludeList to be able to filter not only modules from extensions, but also "core" modules.

Putting into 0.10.1 because druid.extensions.moduleExcludeList was added just in this version, to avoid compatibility problems with removing some configuration that was added just in the previous version. Also the lack of this feature may be blocking for other people who run Peons with Spark/Hadoop tasks.

/**
* Using Provider, not {@link QueryRunnerFactoryConglomerate} directly, to not require {@link
* io.druid.indexing.overlord.TaskRunner} implementations that create TaskToolboxes to inject query stuff eagerly,
* because it may not be available, e. g. for batch tasks running in Spark or Hadooop.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor: "Hadooop" -> "Hadoop"

@fjy
Copy link
Copy Markdown
Contributor

fjy commented Jul 10, 2017

@leventov does this really need to be in 0.10.1?

@leventov
Copy link
Copy Markdown
Member Author

@fjy if not druid.extensions.moduleExcludeList will appear in a released version, that is better to avoid. Plus we were not really able to run some Spark tasks without this PR, so not including it may be blocking for some users.

@jihoonson
Copy link
Copy Markdown
Contributor

Would you elaborate on how DI of querying-related stuffs blocks peons from running with Spark/Hadoop tasks?

@leventov
Copy link
Copy Markdown
Member Author

leventov commented Jul 11, 2017

@jihoonson it's because we include our own extensions with configuration options for realtime peons, and they sneak into configuration for Spark peons. Those config options couldn't be instantiated on Spark peons, because we already exclude some other extensions/modules on them, I don't remember for what exact reason.

@jon-wei
Copy link
Copy Markdown
Contributor

jon-wei commented Jul 12, 2017

@himanshug Did you want to review this PR?

@himanshug
Copy link
Copy Markdown
Contributor

👍 looked at it today, i think its fine given that @leventov has a real use case for it.

@himanshug himanshug merged commit b2865b7 into apache:master Jul 12, 2017
@leventov leventov deleted the peon-without-query-stuff branch July 12, 2017 18:57
@leventov
Copy link
Copy Markdown
Member Author

I'll create a backport

leventov added a commit to metamx/druid that referenced this pull request Jul 12, 2017
…d stuff (apache#4516)

* Make QueryRunnerFactoryConglomerate injection lazy in TaskToolbox/TaskToolboxFactory

* Extract QueryablePeonModule and add druid.modules.excludeList config

* Typo
gianm pushed a commit that referenced this pull request Jul 12, 2017
…d stuff (#4516) (#4538)

* Make QueryRunnerFactoryConglomerate injection lazy in TaskToolbox/TaskToolboxFactory

* Extract QueryablePeonModule and add druid.modules.excludeList config

* Typo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants