hashed and hierarchical timing wheels a paper by george varghese and tony lauck

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

Upload: stuart-shepherd

Post on 23-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

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

Hashed and Hierarchical Timing Wheels

A paper by George Varghese and Tony

Lauck

Page 2: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

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

Page 3: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

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

Page 4: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

Currently Used Timer Schemes

abcde

Can maintain absolute expiry time or the timer interval

START_TIMER = O(1)STOP_TIMER = O(1)PER_TICK_BOOKKEEPING = O(n)

a

b

c

d

e

f

maintain absolute expiry time

START_TIMER = O(n)STOP_TIMER = O(1)PER_TICK_BOOKKEEPING = O(1)

Page 5: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

Tree based timers

a

b c

d

a

b

c

d

maintain absolute expiry time

START_TIMER = O(log(n))STOP_TIMER = O(1)PER_TICK_BOOKKEEPING = O(1)

Can degenerate to a linear list in case of equalInterval timers

START_TIMER = O(n)STOP_TIMER = O(1)PER_TICK_BOOKKEEPING = O(1)

Page 6: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

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

START_TIMER = O(1)STOP_TIMER = O(1)PER_TICK_BOOKKEEPING = O(1)

1

2

345

6

70

Page 7: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

Hashed Timing Wheel

1

2

345

6

70

2 4

1 2

2112

# 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 > 0 then reinsert the timer

Page 8: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

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 < 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 < WheelSize then average O(1)

Page 9: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

Hierarchical Timing Wheel

1

2

345

6

70

3 5

7 5

211

Hours wheel

1

2

345

6

70

1

2

345

6

70

Minutes wheel

Seconds wheel

1 3 3 5

3 7

15

Page 10: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

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.

Page 11: Hashed and Hierarchical Timing Wheels A paper by George Varghese and Tony Lauck

Comparison

START_TIMER STOP_TIMER PER_TICK

O(1)Straight Fwd O(1) O(n)

SequentialList

O(n) O(1) O(1)

Tree Based O(log(n)) O(1) O(1)

SimpleWheel

O(1) O(1) O(1) High memory requirementHashed

Wheel (sorted)

Hashed Wheel(unsorted)

Hierarchical Wheels

O(n) worst caseO(1) avg

O(1)

O(m)

O(1)

O(1)

O(1)

O(1)

O(n) worst caseO(1) avg

O(1)