PADS: Policy Architecture for Distributed Storage Systems Nalini - - PowerPoint PPT Presentation

pads policy architecture for distributed storage systems
SMART_READER_LITE
LIVE PREVIEW

PADS: Policy Architecture for Distributed Storage Systems Nalini - - PowerPoint PPT Presentation

PADS: Policy Architecture for Distributed Storage Systems Nalini Belaramani, Jiandan Zheng, Amol Nayate, Robert Soul, Mike Dahlin and Robert Grimm. University of Texas at AusHn, Amazon Inc., IBM T.J. Watson, New York University Lots of data


slide-1
SLIDE 1

PADS: Policy Architecture for Distributed Storage Systems

Nalini Belaramani, Jiandan Zheng, Amol Nayate, Robert Soulé, Mike Dahlin and Robert Grimm.

University of Texas at AusHn, Amazon Inc., IBM T.J. Watson, New York University

slide-2
SLIDE 2

Lots of data storage systems

1985 1995 2005 NFS AFS Coda Deceit Ficus Zebra Bayou XFS OceanStore Farsite Pangaea Ivy Google File System Chain Replication BlueFS Segank Ceph OmniStore WheelFS Dynamo TierStore WinFS Cimbiosys

slide-3
SLIDE 3

Is there a beOer way to build distributed storage systems?

slide-4
SLIDE 4

Microkernel approach

General mechanism layer System development defining policy

System 1 Policy PRACTI Mechanisms System 2 Policy System 3 Policy

[*] “PRACTI Replication”, Nalini Belaramani, Mike Dahlin, Lei Gao, Amol Nayate, Arun Venkataramani, Praveen Yalagandula, and Jiandan Zheng. NSDI 2006.

slide-5
SLIDE 5

Is it really a beOer way?

Challenge: 10 systems, 1K lines each before you graduate *Gulp* How about 3?

slide-6
SLIDE 6

Yes it is!

With PADS: 2 grad students + 4 months = 12 diverse systems

Topology Independence Any Consistency

Bayou Pangaea Coda TRIP* Chain ReplicaHon TierStore FCS

Par5al Replica5on

Bayou* Coda* TierStore* TRIP SCS

10 ‐ 100 LOC

slide-7
SLIDE 7

Outline

  • PADS approach
  • Policy

– RouHng – Blocking

  • EvaluaHon
slide-8
SLIDE 8

Where is data stored? How is informaHon propagated? Consistency requirements?

RouHng Blocking

PADS

Durability requirements?

slide-9
SLIDE 9

Outline

  • PADS approach
  • Policy

– RouHng – Blocking

  • EvaluaHon
slide-10
SLIDE 10

RouHng

Data flows among nodes

When and where to send an update? Who to contact on a local read miss? Bayou Coda Chain ReplicaHon TierStore

slide-11
SLIDE 11

SubscripHon

PrimiHve for update flow

OpHons:

  • Data set of interest (e.g. /vol1/*)
  • NoHficaHons (invalidaHons) in causal order or

updates (bodies)

  • Logical start Hme

Source Node Destination Node

slide-12
SLIDE 12

Event‐driven API

To set up rouHng

PADS RouHng Policy Blocking Policy

Operation block Write Delete Inval arrived Send body succ Send body failed Subscription start Subscription caught- up Subscription end Add inval sub Add body sub Remove inval sub Remove body sub Send body Assign seq B_action

Events AcHons

slide-13
SLIDE 13

To specify rouHng

  • R/Overlog

– RouHng language based on Overlog[*]

– declaraHve rules fired by events

  • Policy wriOen as rules

– invoke acHons when events received

Domain‐specific language

[*] “ImplemenHng DeclaraHve Overlays”. Boon Thau Loo, Tyson Condie, Joseph M. Hellerstein, Petros ManiaHs, Timothy Roscoe, Ion Stoica. SOSP 2005.

slide-14
SLIDE 14

Simple example

On read operaHon block, establish subscripHon to server

PADS RouHng Policy Blocking Policy Read “/foo” Read Operation Block: “/foo” Add Subscription: Server to me, “/foo”

slide-15
SLIDE 15

Simple example

On read operaHon block, establish subscripHon to server

addInvalSubscription(@C, S, C, Obj, Catchup) :-

  • perationBlock(@C, Obj, Off, Len, BPoint, _),

serverId(@C, S), BPoint==“ReadNowBlock”, Catchup:=“CP”. Table lookup CondiHons Assignment ResulHng AcHon Triggering event

slide-16
SLIDE 16

P‐TierStore RouHng

in0 TRIG readEvent(@X, ObjId) :‐ EVT iniHalize(@X), ObjId := "/.parent“. pp0 TBL parent(@X, P) :‐ RCV parent(@X, P). pp1 TRIG readAndWatchEvent(@X, ObjId) :‐ RCV iniHalize(@X), ObjId := "/.subList". pSb0 TBL subscripHon(@X, SS) :‐ RCV subscripHon(@X, SS). pSb1 ACT addInvalSub(@X, P, X, SS, CTP) :‐ RCV subscripHon(@X, SS), TBL parent(@X, P), CTP=="LOG". pSb2 ACT addBodySub(@X, P, X, SS) :‐ RCV subscripHon(@X, SS), TBL parent(@X, P). f1 ACT addInvalSub(@X, P, X, SS, CTP) :‐ TRIG subEnd(@X, P, X, SS, , Type), TBL parent(@X, P), Type=="Inval", CTP:="LOG". f2 ACT addBodySub(@X, P, X, SS) :‐ TRIG subEnd(@X, P, X, SS, , Type), TBL parent(@X, P), TYPE=="Body", CTP:="LOG". cSb1 ACT addInvalSub(@X, C, X, SS, CTP) :‐ TRIG subStart(@X, X, C, , Type), C 6= P, Type == "Inval", SS := "/*", CTP := "LOG". cSb2 ACT addBodySub(@X, C, X, SS, CTP) :‐ TRIG subStart(@X, X, C, , Type), C 6= P, Type == "Body", SS := "/*". dtn1 ACT addInvalSub(@X, R, X, SS, CTP) :‐ EVT relayNodeArrives(@X, R), TBL subscripHon(@X, SS), CTP=="LOG". dtn2 ACT addBodySub(@X, R, X, SS) :‐ EVT relayNodeArrives(@X, R), TBL subscripHon(@X, SS), CTP=="LOG". dtn3 ACT addInvalSub(@X, X, R, SS, CTP) :‐ EVT relayNodeArrives(@X, R), SS:="/*", CTP=="LOG". dtn4 ACT addBodySub(@X, X, R, SS) :‐ EVT relayNodeArrives(@X, R), SS:="/*", CTP=="LOG".

Parent Config PublicaHons Config SubscripHons from parent SubscripHons from child DTN support

[*] “TierStore: A Distributed Storage System for Challenged Networks”. M. Demmer, B. Du, and E. Brewer. FAST 2008.

slide-17
SLIDE 17

Outline

  • PADS approach
  • Policy

– RouHng – Blocking

  • EvaluaHon
slide-18
SLIDE 18

Blocking policy

Is it safe to access local data?

Consistency What version of data can be accessed? Durability Whether updates have propagated to safe locaHons?

Block unHl semanHcs guaranteed

slide-19
SLIDE 19

How to specify blocking policy?

Where to block?

  • At data access points

What to specify?

  • List of condiHons

PADS provides

  • 4 built‐in condiHons

(local bookkeeping )

  • 1 extensible condiHon

PADS

Read Write Update

Is valid Is causal Is sequenced Max staleness R_Msg

slide-20
SLIDE 20

Blocking policy examples

Consistency:

  • Read only causal data

Read at block: Is_causal

Durability:

  • Block write unHl update reaches server

Write after block : R_Msg (ackFromServer)

slide-21
SLIDE 21

Outline

  • PADS approach
  • Policy

– RouHng – Blocking

  • EvaluaHon
slide-22
SLIDE 22

Is PADS a beOer way to build distributed storage systems?

  • General enough?
  • Easy to use?
  • Easy to adapt
  • Overheads?
slide-23
SLIDE 23

General enough?

Update Update Update Update Inval Inval Inval Inval v. update progagaHon      Disconnected

  • peraHon

  Leases   Callbacks Mono‐ Reads Causal Lineari‐ zable Mono‐ Reads Seque nHal Open/ Close Seque nHal Consistency    Demand caching ParHal Full Full ParHal Full ParHal ParHal ReplicaHon Ad‐Hoc Ad‐ Hoc Chains Tree Client/ Server Client/ Server Client/ Server Topology Pangaea Bayou Chain Repl Tier Store TRIP Coda FCS       Prefetching Inval   Seque nHal  ParHal Client/ Server SCS  CooperaHve caching

slide-24
SLIDE 24

Easy to use?

System P‐Pangaea P‐Bayou P‐TierStore P‐Coda P‐TRIP Rou5ng Rules 75 9 14 31 6 Blocking Condi5ons 1 3 1 5 3 P‐Chain Rep 75 5 P‐FCS 43 6 P‐Bayou* 9 3 P‐Coda* 44 5 P‐TierStore* P‐TRIP* 29 6 1 3

slide-25
SLIDE 25

Easy to adapt?

Coda

  • Restricts communicaHon to client‐server only
  • Cannot take advantage of nearby peers

Added co‐operaHve caching in 13 rules

Read Latency (ms)

slide-26
SLIDE 26

Overheads?

Kilobytes transferred Number of updates

slide-27
SLIDE 27

Read/Write performance

Time (ms)

slide-28
SLIDE 28

Take away lesson

slide-29
SLIDE 29

Distributed data storage systems RouHng Blocking

Update propagaHon Consistency Durability

+

slide-30
SLIDE 30

Thank you

slide-31
SLIDE 31

Easy to adapt?

Bayou

  • Mechanisms only support full replicaHon

Add small device support

  • Change 4 rules

Kilobytes Transferred

slide-32
SLIDE 32

Real enough?

slide-33
SLIDE 33

TierStore

  • Data storage for developing environments
  • Publish‐subscribe system

– Every node subscribes to publicaHons

  • Hierarchical topology

– Updates flood down the tree – Child updates go up the tree to the root

[*] “TierStore: A Distributed Storage System for Challenged Networks”. M. Demmer, B. Du, and E. Brewer. FAST 2008.