You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

When you have only one query with one source, scheduling is not a thing to think about, in other cases some options can be done by configuring the scheduler.

Scheduling in Odysseus has two parts:

  1. Choose the query to schedule. This is done by the scheduler
  2. Scheduler the plan of the query. This is done with the scheduling strategy

In ODYSSEUS_HOME a file called scheduling.conf defines the basic scheduling mechanisms:

defaultScheduler=<SCHEDULER>

defaultStrat=<SCHEDULING STRATEGY>

The scheduling can be changed via Odysseus Script (Other Commands).

#SCHEDULER "Single Thread Scheduler RR" "Round Robin"

This will not update scheduling.conf file.


List of currently available Schedulers:

  • ST Scheduler RR MS Limit Thread: This scheduler schedules different sources in multiple thread. You can configure how many sources should be scheduled by one thread. If more sources need to be scheduled a new thread is spawned
  • Single Thread Scheduler RR Multi Source: This scheduler schedules different sources in multiple thread. Here you can define how many threads should be used to schedule all sources, independed of the number of sources
  • Single Thread Scheduler RR: This scheduler schedules each sources in a different thread.

  • Simple Dynamic Priority Scheduler: TBD
  • Static Priority Plan Scheduler: TBD
  • SLA Scheduler: TBD


Only if a query contains at least one Buffer operator, the scheduling strategy is relevant. In other cases, this

List of currently available Scheduling Strategies (Availablity depends on contained bundles):

  • Aurora Min Latency
  • Aurora Min Cost
  • Chain
  • Chain (Iter)
  • Biggest Queue
  • Round Robin
  • Round Robin (Iter)


Further configurations can be done in the Odysseus.conf:

  • scheduler_simpleThreadScheduler_executorThreadsCount: How many schedulers should be used in parallel. If set to -1 (or not set) the number of processor cores is used. Save value = 1
  • Scheduler.Simplethreaded.SourceThreadCount: How many threads should be used for all sources, independed of the number of sources
  • Scheduler.Simplethreaded.SourcesPerThread (for ST Scheduler RR MS Limit Thread): How many sources should be access by one thread, if there are more sources, then a new scheduler is used



  • No labels