-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Refactor the indexing service to be able to better support realtime tasks #87
Conversation
Conflicts: merger/src/test/java/com/metamx/druid/merger/coordinator/RemoteTaskRunnerTest.java server/src/main/java/com/metamx/druid/master/DruidMaster.java
Conflicts: merger/src/main/java/com/metamx/druid/merger/common/TaskStatus.java merger/src/main/java/com/metamx/druid/merger/common/task/DeleteTask.java merger/src/main/java/com/metamx/druid/merger/common/task/IndexDeterminePartitionsTask.java merger/src/main/java/com/metamx/druid/merger/common/task/Task.java merger/src/main/java/com/metamx/druid/merger/common/task/V8toV9UpgradeTask.java merger/src/main/java/com/metamx/druid/merger/coordinator/MergerDBCoordinator.java merger/src/main/java/com/metamx/druid/merger/coordinator/RemoteTaskRunner.java merger/src/test/java/com/metamx/druid/merger/coordinator/RemoteTaskRunnerTest.java
Conflicts: merger/src/main/java/com/metamx/druid/merger/common/TaskStatus.java merger/src/main/java/com/metamx/druid/merger/common/TaskToolbox.java merger/src/main/java/com/metamx/druid/merger/common/task/DeleteTask.java merger/src/main/java/com/metamx/druid/merger/common/task/IndexDeterminePartitionsTask.java merger/src/main/java/com/metamx/druid/merger/common/task/KillTask.java merger/src/main/java/com/metamx/druid/merger/common/task/Task.java merger/src/main/java/com/metamx/druid/merger/common/task/V8toV9UpgradeTask.java merger/src/main/java/com/metamx/druid/merger/coordinator/MergerDBCoordinator.java merger/src/main/java/com/metamx/druid/merger/coordinator/RemoteTaskRunner.java merger/src/main/java/com/metamx/druid/merger/coordinator/TaskMasterLifecycle.java merger/src/main/java/com/metamx/druid/merger/coordinator/TaskQueue.java merger/src/main/java/com/metamx/druid/merger/coordinator/TaskRunner.java merger/src/main/java/com/metamx/druid/merger/coordinator/TaskRunnerWorkQueue.java merger/src/main/java/com/metamx/druid/merger/coordinator/http/IndexerCoordinatorNode.java merger/src/main/java/com/metamx/druid/merger/coordinator/http/IndexerCoordinatorServletModule.java merger/src/test/java/com/metamx/druid/merger/coordinator/RemoteTaskRunnerTest.java
|
||
public URI getServiceUri() throws URISyntaxException | ||
{ | ||
return new URI("http://localhost:8087/mmx/merger/v1/action"); |
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.
This isn't very remote...
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.
The user is expected to edit /etc/hosts to point this name at the desired service.
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.
can you even override localhost from the hosts file?
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.
Try it :)
log.info("Task %s switched from pending to running", taskId); | ||
} else { | ||
// Nothing running this task, announce it in ZK for a worker to run it | ||
zkWorker = findWorkerForTask(); |
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.
General comment about assigning work to workers. We only assign work to workers if their worker version is greater than some value we have specified in the DB config. This is something we decided about how to do rolling restarts. The autoscaling will see we lack workers of a specific version and create things. Tasks will get assigned to them and after awhile, old workers will have no tasks and auto scaling will terminate them. However, this also means we have to update the DB each time we update the indexer, which we will forget to do.
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 deploying a new indexer is equivalent to updating this version, then why will we forget?
Conflicts: merger/src/main/java/com/metamx/druid/merger/worker/config/WorkerConfig.java
* Fix potential NPEs in joins intelliJ reported issues with potential NPEs. This was first hit in testing with a filter being pushed down to the left hand table when joining against an indexed table. * More null check cleanup * Optimize filter value rewrite for IndexedTable * Add unit tests for LookupJoinable * Add tests for IndexedTableJoinable * Add non null assert for dimension selector * Supress null warning in LookupJoinMatcher * remove some null checks on hot path
…d be) (#87) * leadership election was easier than i thought it would be * fix build * log retry failed
This pull request introduces many changes on the indexing service to support real time tasks.