220 likes | 337 Views
Capturing Complexity in Networked Systems Design: The Case for Improved Metrics. Sylvia Ratnasamy Intel Research. Motivation. Our community values “simple”, “clean” system designs “The advantage of Chord is that it is less complicated …” – Chord, Sigcomm’01
E N D
Capturing Complexity in Networked Systems Design: The Case for Improved Metrics Sylvia Ratnasamy Intel Research
Motivation Our community values “simple”, “clean” system designs “The advantage of Chord is that it is less complicated…” – Chord, Sigcomm’01 “The complexity of the architectural design…” – Sprint, IEEE Network 2000 “A design for multicast that is simple…” – Perlman. Simple Multicast, IETF Draft. “Complex routing algorithms may have difficulty scaling… simple floods are sufficient” -- TinyOS, NSDI’04 “This paper proposed a simple and effective approach …” – SOSR, OSDI’04 “Thus, simplicity is our primary design requirement …” – BVR, NSDI’05
Motivation Our community values “simple”, “clean” system designs • But lacks metrics that rigorously capture this aesthetic • Best practice: metrics borrowed from the theory community • e.g., total_messages, total_state • Problem: at times incongruent with our notion of “simplicity” • e.g., flooding: inefficient but simple • e.g., dijkstra’s: O(n) state, but simple • e.g., leaderID vs. neighborID
This Paper • Can we quantify design “simplicity”? • more rigorously compare-and-contrast design options • align design goals of algorithms, systems communities • First stab: complexity metrics for the algorithmic component of a networked system • Note • just one aspect to system complexity • intent: complement, not replace, existing metrics
Outline • Strawman • Simple evaluation scenarios • Limitations and Future Directions
Strawman Two observations: • much of system design centers around state • what state is required? • how is it constructed/maintained? • how is it used? • what distinguishes wide-area state: • derived from remote nodes dependencies are distributed • relayed via intermediate nodes more dependencies Current metrics mostly treat all state as equal
Proposal For a given piece of state s, measure the ensemble of distributed dependencies that yield s • First cut: measure counting • akin to existing metrics: #msgs, #state • amenable to evaluation by simple examination, simulation
Value vs. Transport Dependencies s is value dependent on x, s is transport dependent on next(B) state at A, R1, R2, R3. vs= #pieces of state on which s is value dependent tsx= #pieces of state relied on to transport x to s next(B) next(B) next(B) next(B) A R1 R2 R3 B x=30° s=x
Counting Dependencies next(B) next(B) next(B) next(B) A R1 R2 R3 B x=30° s=x vx = txx = 0 vs = 1 ; tsx = 4
Counting Dependencies Note: value dependencies accumulate A R1 R2 R3 B C R4 s=x y=20° x=30+y° vx = 1 txy = 2 vy = tyy = 0 vs = 2 tsx = 4
Dependencies Complexity single input: state s, derived from x • complexity of s, cs = (vx + 1)tsx + cx A R1 R2 R3 B C R4 s=x y=20° x=y+30° vs = 2 , tsx = 4 vy = tyy = 0 vx = 1 txy = 2 cx = 1.2+0 = 2 cs = 2.4+2 = 10 cy = 0
Dependencies Complexity single input: state s, derived from x • complexity of s, cs = (vx + 1)tsx + cx … B A s=2 s=i s=d x=0 s=1 vs = d , tss-1 = 1 vx = i tii-1 = 1 cs = O(d2) c= 0 cs = 1 cs = 3
Dependencies Complexity multiple inputs: state s, derived from x1, x2, …, xm two basic variants: • s = ALL (xi) cs = Σ ((vxi + 1)tsxi + cxi) • if vxi = cxi = 0, tsxi = 1, then cs = m • s = ANY (xi) cs = 1/m Σ ((vxi + 1/m)tsxi + cxi) • if vxi = cxi = 0, tsxi = 1, then cs = 1/m
Dependencies Complexity multiple paths: state s derived from x, multiple paths from x to s simple case: m disjoint paths, each incurring d transport dependencies tsx = d/m, cs = vs tsx + cx • if vx = cx = 0, then cs = d/m
Limitations, Future Directions • scope: no validation of assumptions, correctness, quality, performance, etc. • correlated inputs • discriminating transport dependencies • capturing absent dependencies • capturing robustness • count “reverse” dependencies? • role of time • evaluating the metric: future studies
Summary • design simplicity: valued, but poorly measured • question: is design complexity measurable? • conjecture: capturing dependencies in state is key (w.r.t. algorithmic component of a system)
… B A s=2 s=i s=d x=0 s=1 complexity of operations • an operation acts on different pieces of state • each piece of state has a complexity • compute complexity of an operation by (appropriately) combining complexity of state it acts on cs = 0 1 ... O((d-1)2) O(d2) complexity of forwarding operation: cfwd = O(d3)
complexity of operations • an operation acts on different pieces of state • each piece of state has a complexity • compute complexity of an operation by (appropriately) combining complexity of state it acts on cs = k 1 cs = k 2 cs = k 3 fetch(obj) … cs = k m complexity of fetch: cfetch = O(k/m)
Future Studies • centralized solutions simpler? • e.g., RCP vs. DV • designing for low dependency • e.g., soft state-based approaches • layered vs. customized • e.g., PHTs [sigcomm’05] vs. Mercury [sigcomm’04] • different routing options • mesh (RON, ESM), DHT-inspired (VRR/ROFL), centralized (RCP), compact routing-based, landmark routing, coordinate-based, …