90 likes | 176 Views
An Efficient Decentralized Algorithm for the Distributed Trigger Counting Problem (DTCP). Venkatesan Chakravarthy, IBM India Research Lab Anamitra R. Choudhury, IBM India Research Lab Vijay K. Garg, University of Texas at Austin Yogish Sabharwal, IBM India Research Lab. Disc 2010.
E N D
An Efficient Decentralized Algorithm for the Distributed Trigger Counting Problem (DTCP) Venkatesan Chakravarthy, IBM India Research Lab Anamitra R. Choudhury, IBM India Research Lab Vijay K. Garg, University of Texas at Austin Yogish Sabharwal, IBM India Research Lab Disc 2010
Distributed Trigger Counting Problem (DTCP) • Distributed system with n processors • Each processor receives some triggers from an external source • Report to the user when the number of triggers received equals w .
Applications of DTCP • Distributed monitoring • traffic volume : raise an alarm if #vehicles on a highway exceeds some threshold • wildlife behavior: #sightings of a particular species in a wildlife region exceeds a value. • Global Snapshots: • the distributed system must determine if all in-transit messages have been received to declare snapshot valid. This problem reduces to DTCP [Garg, Garg, Sabharwal 2006] .
Assumptions: • complete graph model, i.e., any processor can communicate with any other processor • asynchronous model of computation and messages. • reliable message delivery and • no faults in the processors.
Objectives of the DTC Algorithm: • Low message complexity • Low MaxLoad, i.e., the maximum number of messages received by any processor in the system.
Main Result: LayeredRand, a decentralized randomized algorithm. • Theorem: For any trigger pattern, the message complexity of the LayeredRand algorithm is O(n log n log w). Also, there exists constants c,d > 1 such that Pr[MaxLoad > c log n log w] < 1/nd
LayeredRand Algorithm • n = (2L -1) processors arranged in L layers • lth layer has 2l processors, l=0 to L-1 • Algorithm proceeds in multiple rounds. • w’: initial value of a round (number of triggers yet to be received) • Threshold for lth layer defined as • C(x): sum of triggers received by x and some processors in layers below.
LayeredRand Algorithm (Contd.) • For non-root processor x at layer l • If a trigger is received: C(x)++ ; • If C(x)>= τ(l) • pick a processor y from level l-1 at random and send a coin to y. • C(x) := C(x) -τ(l); • If a coin is received from level l+1:C(x) :=C(x)+ τ(l+1). • Root r • maintains C(r) just like others. • If C(r) > , initiate end-of-round procedure • gets total number of triggers received in this round • broadcasts new value of w’ for next round.
Example w’ = 96 End of round w’ for next round = 96- 53 = 43 45 6 49 2 τ(1) = 4 3 5 1 3 4 1 1 2 τ(2) = 2 2 1 1 2 1 1 1 • System does not stall in the middle of a round, when all the triggers have been delivered. • thresholds => message complexity to O(n log n log w) • Random selection of processors for sending coins bounds the MaxLoad to O(log n log w)