Providing Flexible Consistency Levels with Manhattan at Twitter - - PowerPoint PPT Presentation

providing flexible consistency levels with manhattan at
SMART_READER_LITE
LIVE PREVIEW

Providing Flexible Consistency Levels with Manhattan at Twitter - - PowerPoint PPT Presentation

Providing Flexible Consistency Levels with Manhattan at Twitter Boaz Avital @bx BOAZ AVITAL Tech Lead, Core Storage @bx M A N H AT TA N USING MANHATTAN Self service creation of applications and datasets Large multitenant clusters


slide-1
SLIDE 1

Providing Flexible Consistency Levels with Manhattan at Twitter

Boaz Avital @bx

slide-2
SLIDE 2

BOAZ AVITAL

Tech Lead, Core Storage @bx

slide-3
SLIDE 3

M A N H AT TA N

slide-4
SLIDE 4

# T W I T T E R M A N H AT TA N

USING MANHATTAN

Self service creation of applications and datasets Large multitenant clusters Seamless global replication Automatic observability and alerting

slide-5
SLIDE 5

ADOPTION

More use cases need more features

# T W I T T E R M A N H AT TA N

Use cases you designed for Use cases you didn't

slide-6
SLIDE 6

ADOPTION

More use cases need more features

# T W I T T E R M A N H AT TA N

Use cases you designed for Use cases you didn't

{

Pain!

slide-7
SLIDE 7

# T W I T T E R M A N H AT TA N

DO ONE THING WELL

Too many running services with slightly different code and tooling

EVERYTHING AND THE KITCHEN SINK

Bloated software that’s not that good at anything

ONE THING ALL THINGS

BUILDING NEW FEATURES

slide-8
SLIDE 8

# T W I T T E R M A N H AT TA N

A R C H I T E C T U R E

slide-9
SLIDE 9

ARCHITECTURE: DATA MODEL

# T W I T T E R M A N H AT TA N

“@womeng” 437698567 profile, username partitioning key local key value

slide-10
SLIDE 10

ARCHITECTURE: DATA MODEL

# T W I T T E R M A N H AT TA N

“@womeng” 437698567 profile, username partitioning key local key value “https:/ /pbs.twimg.com…” 437698567 profile, image “In which our Periscope…” 437698567 tweets, 70309… “Boston, @WomenWhoC…” 437698567 tweets, 70260… “@bx” 53205685 profile, username “https:/ /pbs.twimg.com…” 53205685 profile, image “Strong consistency in…” 53205685 tweets, 710573… “Anyone else having issu…” 53205685 tweets, 709182…

slide-11
SLIDE 11

ARCHITECTURE: PARTITIONING

# T W I T T E R M A N H AT TA N

437698567 53205685 partitioning key shards

slide-12
SLIDE 12

ARCHITECTURE: PARTITIONING

# T W I T T E R M A N H AT TA N

437698567 53205685 partitioning key shards

slide-13
SLIDE 13

ARCHITECTURE: PARTITIONING

# T W I T T E R M A N H AT TA N

437698567 53205685 partitioning key shards

slide-14
SLIDE 14

ARCHITECTURE: MESSAGING

# T W I T T E R M A N H AT TA N

C C C C

slide-15
SLIDE 15

ARCHITECTURE: CONSISTENCY

# T W I T T E R M A N H AT TA N

Dynamo + Last Write Wins

slide-16
SLIDE 16

ARCHITECTURE: CONSISTENCY

# T W I T T E R M A N H AT TA N

Dynamo + Last Write Wins

slide-17
SLIDE 17

ARCHITECTURE: CONSISTENCY

# T W I T T E R M A N H AT TA N

Dynamo + Last Write Wins

slide-18
SLIDE 18

ARCHITECTURE: CONSISTENCY

# T W I T T E R M A N H AT TA N

Replica Reconciliation

slide-19
SLIDE 19

BENEFITS OF EVENTUAL CONSISTENCY

# T W I T T E R M A N H AT TA N

AVAILABILITY LATENCY SIMPLICITY

slide-20
SLIDE 20

WHEN IT’S NOT ENOUGH

# T W I T T E R M A N H AT TA N

@justinbieber reserve() reserve()

? ?

slide-21
SLIDE 21

WHEN IT’S NOT ENOUGH

# T W I T T E R M A N H AT TA N

reserve() reserve()

slide-22
SLIDE 22

WHEN IT’S NOT ENOUGH

# T W I T T E R M A N H AT TA N

@username claimed by 53205685 @username is free @username is free

slide-23
SLIDE 23

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

Logs!

APACHE BOOKKEEPER TWITTER DISTRIBUTEDLOG

slide-24
SLIDE 24

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

Operations

read write compare-and-set increment

slide-25
SLIDE 25

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

Check: @username → free Set: @username → 53205685 Check: @username → free Set: @username → 20719205

slide-26
SLIDE 26

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

C C C C

slide-27
SLIDE 27

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

C C C C

slide-28
SLIDE 28

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

C C C C

slide-29
SLIDE 29

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

C C C C

slide-30
SLIDE 30

ADAPTING ARCHITECTURE

# T W I T T E R M A N H AT TA N

C C C C

slide-31
SLIDE 31

RESULTS

# T W I T T E R M A N H AT TA N

WHAT WE’VE GAINED WHAT WE’VE LOST

In order updates for keys (but not full transactions) Failure isolation at shard level Mixing strong and eventual consistency in a cluster Mixing strong and eventual consistency in a dataset A few 10s of milliseconds added to average latency Latency hiccups during failures Potential for stream halts on error

slide-32
SLIDE 32

# T W I T T E R M A N H AT TA N

C O N S E Q U E N C E S

slide-33
SLIDE 33

A DIFFERENT CONSISTENCY MODEL

# T W I T T E R M A N H AT TA N

y, v2 y, v2 y, v2 x, v1 x, v1 y, v2 EVENTUAL CONSISTENCY x, v1 y, v2

slide-34
SLIDE 34

A DIFFERENT CONSISTENCY MODEL

# T W I T T E R M A N H AT TA N

STRONG CONSISTENCY y y y x, a1 x, b1 y, b2 x, c1 y, c2

slide-35
SLIDE 35

A DIFFERENT CONSISTENCY MODEL

# T W I T T E R M A N H AT TA N

NO MORE REPLICA RECONCILIATION

slide-36
SLIDE 36

A DIFFERENT CONSISTENCY MODEL

# T W I T T E R M A N H AT TA N

BACKFILL AND DATA MIGRATION Live requests Backfill data

slide-37
SLIDE 37

A DIFFERENT TOPOLOGY TRANSITION

# T W I T T E R M A N H AT TA N

Old New

slide-38
SLIDE 38

A DIFFERENT TOPOLOGY TRANSITION

# T W I T T E R M A N H AT TA N

2 1 3

slide-39
SLIDE 39

A DIFFERENT DEFINITION OF TIME

# T W I T T E R M A N H AT TA N

x, ttl=1001 now=1000 x, ttl=1001 now=1003 x, ttl=1001 now=1002 x ⍉ ⍉

slide-40
SLIDE 40

A DIFFERENT DEFINITION OF TIME

# T W I T T E R M A N H AT TA N

external time

write value x expire value x check for x, set y write value x expire value x check for x, set y write value x expire value x check for x, set y

slide-41
SLIDE 41

A DIFFERENT DEFINITION OF TIME

# T W I T T E R M A N H AT TA N

now = 1002 x, ttl=1001 now=1000 x, ttl=1001 now=1002 x, ttl=1001 now=1002

slide-42
SLIDE 42

WHAT THE USER SEES

# T W I T T E R M A N H AT TA N

Provisioning Querying

slide-43
SLIDE 43

T H A N K YO U

@ B X

slide-44
SLIDE 44