Github user zhuoliu commented on a diff in the pull request:
https://github.com/apache/storm/pull/1306#discussion_r58316450
--- Diff: docs/Storm-Scheduler.md ---
@@ -0,0 +1,27 @@
+---
+title: Scheduler
+layout: documentation
+documentation: true
+---
+
+Storm now has 4 kinds of build-in schedulers:
[DefaultScheduler](https://github.com/apache/storm/blob/1.x-branch/storm-core/src/clj/org/apache/storm/scheduler/DefaultScheduler.clj),
[IsolationScheduler](https://github.com/apache/storm/blob/1.x-branch/storm-core/src/clj/org/apache/storm/scheduler/IsolationScheduler.clj),
[MultitenantScheduler](https://github.com/apache/storm/blob/1.x-branch/storm-core/src/jvm/org/apache/storm/scheduler/multitenant/MultitenantScheduler.java),
[ResourceAwareScheduler](Resource_Aware_Scheduler_overview.html).
+
+## Pluggable scheduler
+You can implement your own scheduler to replace the default scheduler to
assign executors to workers. You configure the class to use using the
"storm.scheduler" config in your storm.yaml, and your scheduler must implement
[this
interface](https://github.com/apache/storm/tree/1.x-branch/storm-core/src/jvm/org/apache/storm/scheduler/IScheduler.java).
+
+## Isolation Scheduler
+The isolation scheduler makes it easy and safe to share a cluster among
many topologies. The isolation scheduler lets you specify which topologies
should be "isolated", meaning that they run on a dedicated set of machines
within the cluster where no other topologies will be running. These isolated
topologies are given priority on the cluster, so resources will be allocated to
isolated topologies if there's competition with non-isolated topologies, and
resources will be taken away from non-isolated topologies if necessary to get
resources for an isolated topology. Once all isolated topologies are allocated,
the remaining machines on the cluster are shared among all non-isolated
topologies.
+
+You configure the isolation scheduler in the Nimbus configuration. Set
"storm.scheduler" to "org.apache.storm.scheduler.IsolationScheduler". Then, use
the "isolation.scheduler.machines" config to specify how many machines each
topology should get. This config is a map from topology name to number of
machines. For example:
--- End diff --
to the number of isolated machines allocated to this topology
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---