Upload
maryann-hancock
View
212
Download
0
Embed Size (px)
Citation preview
Using Access Probabilities In Address Lookups
Jim Washburn & Katerina Argyraki
EE384Y Class Project
Access probabilities are not uniform
• Lookup table contains set of keys Ki
• Access probabilities Pi
• Access times Ai
• Avg access time Ei = i { AiPi}
Key
Nexthop
Header
iP
Where is accounting info stored?
Key
Count
Nexthop
Header
Key2Count
Nexthop
HeaderKey2
• Per key
• Per nexthop
Lookup table operations
• add(key)• delete(key)• search(key)• compile( )
– When to compile? – What happens to searches while
compiling ? – How long to maintain accounting info?
Approach to the problem
• Amortize the optimization• Incrementally optimize at search
time• Perform optimization step with low
probability per access– keeps cost low!
Base structure: BST on intervals
• Can do prefix matches or exact matches • Allows many different tree configurations
for the same set of keys– can be dynamically reconfigurable
• Permits localized incremental operations– affect just two nodes
BST rotation operation
C
BA
y
x
z
CB
A
x
z
y
right
left
Only nodes x and y are written
Self-adjusting heuristics
• single rotation on every access– too conservative?
• move-to-root on every access– too aggressive?
• move-up on every access– “middle ground” solution– but how many nodes?
Low-cost heuristics
• single rotation with low probability p– decrease the amount of writes
• move-to-root with probability proportional to node depth– favor nodes that are deep down the tree
• move-up with counters– per node counter keeps # of hits– a node is never moved above another
node with higher counter
BST as Markov Chain
• Tree can be in any of its possible configurations, with probabilities given by the stationary distribution.
B
A
A
B
A
B
… A
B
Markov calculations (1)
Optimal
SingleRotatio
n
Move to
Root
Expected Access time
1.3283 1.4643 1.4633
Expected time to
first passage to
optimal
NA 59.9 39.7
Done with 60 randomly selected access distributions, for a 3 node treeProbability of optimization step set to 0.1
Markov Calculations (2)
Simulation results (1)
avg OPT SR MTRSRR
MTRR
MUP
access’s
4.56
10.35
9.38
7.62
5.1 5.87
reads4.56
9.214.82
7.51
4.95 5.7
writes 0 1.134.55
0.11
0.15 0.16
• Scenario 1: 99% hit on 7 rules – .5, .25, .12, .6, .3, .1
• Average performance (the good news):
Simulation results (2)
worstOPT
SRR
MTRR
MUP
access’s
12 57 42 35
reads 12 57 21 31
writes 0 2 21 14
• Scenario 1: 99% hit on 7 rules– .5, .25, .12, .6, .3, .1
• Worst-case performance (the bad news):
Simulation results (3)
avg OPT SRRMTR
RMUP
access’s
6.79
14.93
7.6 7.6
reads6.79
14.75
7.34 7.37
writes 0 0.17 0.26 0.23
• Scenario 2: 60% hit on 12 rules– .13, .09, .06, .05, .04, .03, .02, .01, .01, .
01
• Average performance:
Simulation results (4)
worstOPT
SRR
MTRR
MUP
access’s
10 74 42 29
reads 10 72 22 25
writes 0 2 21 14
• Scenario 2: 60% hit on 12 rules– .13, .09, .06, .05, .04, .03, .02, .01, .01, .
01
• Worst-case performance:
Simulation results (5)
avgOPT
SRRMTR
RMUP
access’s
722.8
59.32 9.61
reads 722.6
58.97 9.3
writes 0 0.2 0.34 0.31
• Scenario 3: uniform distribution– The worst-case for our heuristics!
• Average performance:
Simulation results (6)
worstOPT
SRR
MTRR
MUP
access’s
9 62 40 32
reads 9 61 22 22
writes 0 2 20 16
• Scenario 3: uniform distribution– The worst-case for our heuristics!
• Worst-case performance:
Bounding the tree depth
• Check before moving a node– If move will increase depth beyond max,
don’t do it
• How to check?– Keep extra info per node e.g., node depth– Must not introduce extra accesses for
maintenance!– Impossible with single rotation or move
up
MTRR with bounded worst-case
• Augmented BST– Each node knows
• the depth of its longest branch on the left• the depth of its longest branch on the right
– Rotating a node up, requires updating all its ancestors up to the root
– With move-to-root we do that anyway
Simulation results (1)
avg OPTMTR
RMTR
B
access’s
4.56
5.1 6.47
reads4.56
4.95 6.24
writes 0 0.15 0.23
• Scenario 1: 99% hit on 7 rules – .5, .25, ,12, .6, .3, .1
• Average performance:
Simulation results (2)
worstOPT
MTRR
MTRB
access’s
9 42 40
reads 9 22 20
writes 0 21 20
• Scenario 1: 99% hit on 7 rules – .5, .25, ,12, .6, .3, .1
• Worst-case performance:
Conclusions
• We can optimize without having to maintain per-key accounting state, or periodically recompiling the entire data structure.
• Average access time results comparable to compiled results, which are close to lower bound which is determined by entropy.
• Worst case results not as good, need more heuristics to bound the tree depth