Scaleable Page Counter A gentle introduction to software - - PowerPoint PPT Presentation

scaleable page counter
SMART_READER_LITE
LIVE PREVIEW

Scaleable Page Counter A gentle introduction to software - - PowerPoint PPT Presentation

Scaleable Page Counter A gentle introduction to software engineering at Google scale Jon Tirsen, Google Monday, October 4, 2010 Weve had visitors! Monday, October 4, 2010 Monday, October 4, 2010 Monday, October 4, 2010 Monday, October


slide-1
SLIDE 1

Scaleable Page Counter

A gentle introduction to software engineering at Google scale

Jon Tirsen, Google

Monday, October 4, 2010

slide-2
SLIDE 2

We’ve had visitors!

Monday, October 4, 2010

slide-3
SLIDE 3

Monday, October 4, 2010

slide-4
SLIDE 4

Monday, October 4, 2010

slide-5
SLIDE 5

Monday, October 4, 2010

slide-6
SLIDE 6

Monday, October 4, 2010

slide-7
SLIDE 7

Monday, October 4, 2010

slide-8
SLIDE 8

Monday, October 4, 2010

slide-9
SLIDE 9

Front End Counter Front End Front End Front End Front End Front End Front End Front End Front End +1 112

Monday, October 4, 2010

slide-10
SLIDE 10

Front End Counter Front End Front End Front End Front End Front End Front End Front End Front End Counter Counter

Monday, October 4, 2010

slide-11
SLIDE 11

Front End Counter Counter Counter Write Shard by: random

Monday, October 4, 2010

slide-12
SLIDE 12

Monday, October 4, 2010

slide-13
SLIDE 13

Monday, October 4, 2010

slide-14
SLIDE 14

Front End Counter Counter Counter Read fan out

Monday, October 4, 2010

slide-15
SLIDE 15

Blocking reads Front end Counter Counter Counter

Monday, October 4, 2010

slide-16
SLIDE 16

Async reads Front end Counter Counter Counter

Monday, October 4, 2010

slide-17
SLIDE 17

Monday, October 4, 2010

slide-18
SLIDE 18

Front End Counter Counter Counter Write

Monday, October 4, 2010

slide-19
SLIDE 19

Front End Counter Counter Counter Read

Monday, October 4, 2010

slide-20
SLIDE 20

Availability

Monday, October 4, 2010

slide-21
SLIDE 21

Availability Number of shards 99% 1 1000 14 mins/day 7 hours/month = 3 days/year

Monday, October 4, 2010

slide-22
SLIDE 22

Availability Number of shards

Writing

99% 99.9999...% 1 1000

Monday, October 4, 2010

slide-23
SLIDE 23

Availability Number of shards

Read fan out

1 1000 99% 0.004% 0.6% 60%

Monday, October 4, 2010

slide-24
SLIDE 24

Replica Front End Counter Counter Counter Write Reads Replica Replicas Replica Replica Replicas Replica Replica Replicas Update

Monday, October 4, 2010

slide-25
SLIDE 25

Availability Number of shards

Read fan out to 5 replicas

1 1000 8 nines 5 nines 6 nines 99.99%

Monday, October 4, 2010

slide-26
SLIDE 26

Front End Counter Counter Counter Read & Cache Write & Read

Monday, October 4, 2010

slide-27
SLIDE 27

Availability Number of shards

Read fan out with caching

99% 99.9999...% 1 1000

Monday, October 4, 2010

slide-28
SLIDE 28

Monday, October 4, 2010

slide-29
SLIDE 29

Consistency

Monday, October 4, 2010

slide-30
SLIDE 30

Write Write Write Write Read Probability

Monday, October 4, 2010

slide-31
SLIDE 31

Write Write Write Write Read Probability

Monday, October 4, 2010

slide-32
SLIDE 32

Write Write Write Write Probability Read

Monday, October 4, 2010

slide-33
SLIDE 33

Monday, October 4, 2010

slide-34
SLIDE 34

Front End 52

200 Cached: 299

299

Monday, October 4, 2010

slide-35
SLIDE 35

Front End 52

200 Cached: 299, 52

299

Monday, October 4, 2010

slide-36
SLIDE 36

Front End 56

200 Cached: 299, 52

299

Monday, October 4, 2010

slide-37
SLIDE 37

Front End 56

200 Cached: 299, 52

302

Monday, October 4, 2010

slide-38
SLIDE 38

Front End 56

201 Cached: 299, 52

302 +1 552 =299+52+

2 1

Monday, October 4, 2010

slide-39
SLIDE 39

Monday, October 4, 2010

slide-40
SLIDE 40

Monday, October 4, 2010

slide-41
SLIDE 41

Monday, October 4, 2010

slide-42
SLIDE 42

Monday, October 4, 2010

slide-43
SLIDE 43

A different solution...

Monday, October 4, 2010

slide-44
SLIDE 44

Analyser

Read & sum

Logs Analyser Analysers Front End Front End Front End Logs Logs

Append

Push new count

Monday, October 4, 2010

slide-45
SLIDE 45

Front End Analyser Log Front End Counter

Monday, October 4, 2010

slide-46
SLIDE 46

Analyser Front End Front End Front End Push new count

Monday, October 4, 2010

slide-47
SLIDE 47

Monday, October 4, 2010

slide-48
SLIDE 48

Sharding Shard selection: random, by user, by document Fan out: writes, reads Replication/Caching Consistency model: eventual, shard local Sync -> Async Questions? tirsen@google.com Twitter: @tirsen

Monday, October 4, 2010