Title: Using Access Probabilities In Address Lookups
1Using Access Probabilities In Address Lookups
- Jim Washburn Katerina Argyraki
- EE384Y Class Project
2Access probabilities are not uniform
- Lookup table contains set of keys Ki
- Access probabilities Pi
- Access times Ai
- Avg access time
- Ei ?i AiPi
3Where is accounting info stored?
4Lookup table operations
- add(key)
- delete(key)
- search(key)
- compile( )
- When to compile?
- What happens to searches while compiling ?
- How long to maintain accounting info?
5Approach to the problem
- Amortize the optimization
- Incrementally optimize at search time
- Perform optimization step with low probability
per access - keeps cost low!
6Base 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
7BST rotation operation
z
z
right
y
x
left
x
y
C
A
B
A
C
B
Only nodes x and y are written
8Self-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?
9Low-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
10BST as Markov Chain
- Tree can be in any of its possible
configurations, with probabilities given by the
stationary distribution.
11Markov calculations (1)
Optimal Single Rotation 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 tree Probability of
optimization step set to 0.1
12Markov Calculations (2)
13Simulation results (1)
- Scenario 1 99 hit on 7 rules
- .5, .25, .12, .6, .3, .1
- Average performance (the good news)
avg OPT SR MTR SRR MTRR MUP
accesss 4.56 10.35 9.38 7.62 5.1 5.87
reads 4.56 9.21 4.82 7.51 4.95 5.7
writes 0 1.13 4.55 0.11 0.15 0.16
14Simulation results (2)
- Scenario 1 99 hit on 7 rules
- .5, .25, .12, .6, .3, .1
- Worst-case performance (the bad news)
worst OPT SRR MTRR MUP
accesss 12 57 42 35
reads 12 57 21 31
writes 0 2 21 14
15Simulation results (3)
- Scenario 2 60 hit on 12 rules
- .13, .09, .06, .05, .04, .03, .02, .01, .01, .01
- Average performance
avg OPT SRR MTRR MUP
accesss 6.79 14.93 7.6 7.6
reads 6.79 14.75 7.34 7.37
writes 0 0.17 0.26 0.23
16Simulation results (4)
- Scenario 2 60 hit on 12 rules
- .13, .09, .06, .05, .04, .03, .02, .01, .01, .01
- Worst-case performance
worst OPT SRR MTRR MUP
accesss 10 74 42 29
reads 10 72 22 25
writes 0 2 21 14
17Simulation results (5)
- Scenario 3 uniform distribution
- The worst-case for our heuristics!
- Average performance
avg OPT SRR MTRR MUP
accesss 7 22.85 9.32 9.61
reads 7 22.65 8.97 9.3
writes 0 0.2 0.34 0.31
18Simulation results (6)
- Scenario 3 uniform distribution
- The worst-case for our heuristics!
- Worst-case performance
worst OPT SRR MTRR MUP
accesss 9 62 40 32
reads 9 61 22 22
writes 0 2 20 16
19Bounding the tree depth
- Check before moving a node
- If move will increase depth beyond max, dont 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 ?
20MTRR 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 ?
21Simulation results (1)
- Scenario 1 99 hit on 7 rules
- .5, .25, ,12, .6, .3, .1
- Average performance
avg OPT MTRR MTRB
accesss 4.56 5.1 6.47
reads 4.56 4.95 6.24
writes 0 0.15 0.23
22Simulation results (2)
- Scenario 1 99 hit on 7 rules
- .5, .25, ,12, .6, .3, .1
- Worst-case performance
worst OPT MTRR MTRB
accesss 9 42 40
reads 9 22 20
writes 0 21 20
23Conclusions
- 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