Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

WORK IN PROGRESS !

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.

...

  1. Choose the query to schedule. This is done with 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:

...

defaultStrat=<SCHEDULING STRATEGY> 

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

Code Block
#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

 

...