Hello,

I am trying to figure how the cpuLoad configuration attribute of Trident
operators interacts with the Resource Aware Scheduler when operators are
grouped.

Here is my train of thoughts:

   - From Storm topology parallelism docs
   
<http://storm.apache.org/releases/1.0.1/Understanding-the-parallelism-of-a-Storm-topology.html>,
   I believe that each Storm bolt instance is deployed as a Task in an
   Executor. Since each executor is mapped on a thread, each bolt instance can
   use, at most, a full core, *unless it spawns child threads itself*.
   - RAS CPU load docs
   
<http://storm.apache.org/releases/1.1.0/Resource_Aware_Scheduler_overview.html#Setting-CPU-Requirement>
   proposes a point system and conventions to specify CPU core requirements.
   - So, in the general case where bolts do not spawn child threads, I see *no
   point in specifying a cpuLoad higher than full usage of a single core*.


 Is the assumption in bold correct ?


   - From Trident RAS API docs
   <http://storm.apache.org/releases/1.1.0/Trident-RAS-API.html>, I
   undertand a Storm bolt gets the sum of its grouped Trident operator cpuLoad.
   - So, how is the resulting bolt cpuLoad processed by the RAS ? Consider
   the following case:
      - The summed cpuLoad is higher than required for full usage of a
      single core
      - No grouped Trident operator spawns child threads


I hope I was clear enough. Do not hesitate to request clarifications if
necessary.

Thank you for your time,

Michaël

Reply via email to