Skip to content

Instantly share code, notes, and snippets.

@descico
descico / presto-code-split.md
Last active August 13, 2017 01:50
Presto の話。ただし最近ほとんど触っていなかったので情報は古いので注意せよ。

Split を worker Node に割り当てる処理について

  • やっているのは 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