Nodes A, B, and C fully in the cluster
Local state before (1): {}
Client sends submit-job
(j1, tasks t1, t2) with a Round Robin task scheduler (1)
t1 and t2 request no maximum number of peers
A, B, and C play the log
A, B and C encounter (1)
{}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 []}}}
volunteer-for-task
(2)volunteer-for-task
(3)volunteer-for-task
(4)A encounters (2)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 []}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 []}}}
B, C encounters (2)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 []}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 []}}}
B encounters (3)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 []}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 [:B]}}}
A, C encounter (3)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 []}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 [:B]}}}
C encounters (4)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 [:B]}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A :C] :t2 [:B]}}}
A, B encounters (4)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A] :t2 [:B]}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A :C] :t2 [:B]}}}
C completes t1, sends complete-task
(5)
A, C encounter (5)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A :C] :t2 [:B]}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B]}} :completions {:j1 [:t1]}}
volunteer-for-task
(6)volunteer-for-task
(7)A encounters (6)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A]}} :completions {:j1 [:t1]}}
C encounters (6)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A]}} :completions {:j1 [:t1]}}
C encounters (7)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A :C]}} :completions {:j1 [:t1]}}
A encounters (7)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A :C]}} :completions {:j1 [:t1]}}
B encounters (5)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [:A :C] :t2 [:B]}}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B]}} :completions {:j1 [:t1]}}
B encounters (6)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A]}} :completions {:j1 [:t1]}}
B encounters (7)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A :C]}} :completions {:j1 [:t1]}}
B completes t2, sends complete-task
(8)
A, B, C encounter (8)
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 [:B :A :C]}} :completions {:j1 [:t1]}}
{:jobs [:j1] :tasks {:j1 [:t1 :t2]} :allocations {:j1 {:t1 [] :t2 []}} :completions {:j1 [:t1 :t2]}}
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close