Hashed and Hierarchical Timing Wheels - PowerPoint PPT Presentation

About This Presentation
Title:

Hashed and Hierarchical Timing Wheels

Description:

Processor interrupted every clock tick. Fine granularity timers are used ... Make 2 rounds of wheel 1 more tick. Schedule the timer in the bucket '1' ... – PowerPoint PPT presentation

Number of Views:320
Avg rating:3.0/5.0
Slides: 12
Provided by: Sar5161
Learn more at: https://www.cs.wustl.edu
Category:

less

Transcript and Presenter's Notes

Title: Hashed and Hierarchical Timing Wheels


1
Hashed and Hierarchical Timing Wheels
  • A paper by
  • George Varghese and Tony Lauck

2
Motivation
  • Timers are important for
  • Failure recovery, rate based flow control,
    scheduling algorithms, controlling packet
    lifetime in networks
  • Timer maintenance high if
  • Processor interrupted every clock tick
  • Fine granularity timers are used
  • outstanding timers is high
  • Efficient timer algorithms are required to reduce
    the overall interrupt overhead

3
Model Performance Measure
  • Routines in the model
  • Client Invoked
  • START_TIMER(Interval, Request_ID, Expiry_Action)
  • STOP_TIMER(Request_ID)
  • Timer tick invoked
  • PER_TICK_BOOKKEEPING
  • EXPIRY_PROCESSING
  • Performance Measure
  • Space Memory used by the data structures
  • Latency Time required to begin and end any of
    the routines mentioned above

4
Currently Used Timer Schemes
a
b
a
b
c
c
d
d
e
e
f
Can maintain absolute expiry time or the timer
interval START_TIMER O(1) STOP_TIMER
O(1) PER_TICK_BOOKKEEPING O(n)
  • maintain absolute expiry time
  • START_TIMER O(n)
  • STOP_TIMER O(1)
  • PER_TICK_BOOKKEEPING O(1)

5
Tree based timers
a
a
b
b
c
c
d
d
Can degenerate to a linear list in case of
equal Interval timers START_TIMER
O(n) STOP_TIMER O(1) PER_TICK_BOOKKEEPING O(1)
maintain absolute expiry time START_TIMER
O(log(n)) STOP_TIMER O(1) PER_TICK_BOOKKEEPING
O(1)
6
Simple Timing Wheel
  • Keep a large timing wheel
  • A curser in the timing wheel moves one location
    every time unit (just like a seconds hand in the
    clock)
  • If the timer interval is within a rotation from
    the current curser position then put the timer in
    the corresponding location
  • Requires exponential amount of memory

1
0
7
2
6
3
4
5
START_TIMER O(1) STOP_TIMER
O(1) PER_TICK_BOOKKEEPING O(1)
7
Hashed Timing Wheel
of rounds remaining
  • Say wheel has 8 ticks
  • Timer value 17
  • Make 2 rounds of wheel 1 more tick
  • Schedule the timer in the bucket 1
  • Keep the rounds with the timer
  • At the expiry processing if the rounds gt 0 then
    reinsert the timer

2
4
1
0
7
2
6
3
1
2
4
5
2
1
1
2
8
Hashed Timing Wheel
  • Sorted Lists in each bucket
  • The list in each bucket can be insertion sorted
  • Hence START_TIMER takes O(n) time in the worst
    case
  • If n lt WheelSize then average O(1)
  • Unsorted list in each bucket
  • List can be kept unsorted to avoid worst case
    O(n) latency for START_TIMER
  • However worst case PER_TICK_BOOKKEEPING O(n)
  • Again, if n lt WheelSize then average O(1)

9
Hierarchical Timing Wheel
0
1
7
2
6
3
4
5
3
5
0
1
7
Hours wheel
2
6
3
7
5
4
0
5
1
7
2
2
1
1
6
3
Minutes wheel
4
5
Seconds wheel
10
Hierarchical Timing Wheels
  • START_TIMER O(m) where m is the number of
    wheels
  • The bucket value on each wheel needs to be
    calculated
  • STOP_TIMER O(1)
  • PER_TICK_BOOKKEEPING O(1) on avg.

11
Comparison
START_TIMER
STOP_TIMER
PER_TICK
O(1)
Straight Fwd
O(1)
O(n)
Sequential List
O(n)
O(1)
O(1)
Tree Based
O(log(n))
O(1)
O(1)
High memory requirement
Simple Wheel
O(1)
O(1)
O(1)
Hashed Wheel (sorted)
O(n) worst case O(1) avg
O(1)
O(1)
Hashed Wheel (unsorted)
O(1)
O(1)
O(n) worst case O(1) avg
Hierarchical Wheels
O(m)
O(1)
O(1)
Write a Comment
User Comments (0)
About PowerShow.com