- やっているのは NodeScheduler のcomputeAssignments のようだ。
- locationAwareScheduling と isRemotelyAccessible() によって処理は分岐する、と考えておいて良い
- ここでしばしば紹介される minCandidates パラメータが登場する。コードを読む限り、これ、「Split を処理する Node の候補をいくつ選ぶか」というだけであるっぽい。
- 少なくとも minCandidates の数だけ Node を選び、その中から現在持っているタスクが少ない Node を選んでいるのである。
- だから、 minCandidates は別に並列度とは関係ないわけで、結果的にパフォーマンスに寄与するかどうかは微妙な感じもある。
- "max number of workers to run a stage in parallel (default: 10) " という説明は誤りなのではないか、という話。
- この minCandidates が node-scheduler.min-candidates であることも確認済みである。
- 指摘もあったが誰も反応していない https://groups.google.com/forum/#!msg/presto-users/Ft71bkwElkQ/v85ROXC82hIJ