Dynamo: Theme and Varia0ons @shanley Riak 150 - - PowerPoint PPT Presentation

dynamo
SMART_READER_LITE
LIVE PREVIEW

Dynamo: Theme and Varia0ons @shanley Riak 150 - - PowerPoint PPT Presentation

Dynamo: Theme and Varia0ons @shanley Riak 150 Services Global access Mul3ple machines


slide-1
SLIDE 1

Dynamo: ¡ ¡

Theme ¡and ¡Varia0ons ¡

slide-2
SLIDE 2

@shanley ¡

slide-3
SLIDE 3

Riak ¡

slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

150 ¡ ¡ Services ¡

slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

Ÿ ¡ ¡Global ¡access ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡Mul3ple ¡machines ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡Mul3ple ¡datacenters ¡ Ÿ ¡ ¡Scale ¡to ¡peak ¡loads ¡easily ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡Con3nuous ¡failure ¡

slide-10
SLIDE 10
slide-11
SLIDE 11

Tradi3onally ¡produc3on ¡systems ¡store ¡their ¡ state ¡in ¡rela3onal ¡databases. ¡For ¡many ¡of ¡the ¡ more ¡common ¡usage ¡pa@erns ¡of ¡state ¡ ¡ persistence, ¡however, ¡a ¡rela3onal ¡database ¡is ¡ a ¡solu3on ¡that ¡is ¡far ¡from ¡ideal. ¡ ¡ ¡ Most ¡of ¡these ¡services ¡only ¡store ¡and ¡retrieve ¡ data ¡by ¡primary ¡key ¡and ¡do ¡not ¡require ¡the ¡ complex ¡querying ¡and ¡management ¡ func3onality ¡offered ¡by ¡an ¡RDBMS. ¡ ¡ ¡ This ¡excess ¡func3onality ¡requires ¡expensive ¡ hardware ¡and ¡highly ¡skilled ¡personnel ¡for ¡its ¡

  • pera3on, ¡making ¡it ¡a ¡very ¡inefficient ¡solu3on. ¡ ¡

¡ In ¡addi3on, ¡the ¡available ¡replica3on ¡ technologies ¡are ¡limited ¡and ¡typically ¡choose ¡ consistency ¡over ¡availability. ¡ ¡ ¡ Although ¡many ¡advances ¡have ¡been ¡made ¡in ¡ the ¡recent ¡years, ¡it ¡is ¡s3ll ¡not ¡easy ¡to ¡scale-­‑out ¡ databases ¡or ¡use ¡smart ¡par33oning ¡schemes ¡ for ¡load ¡balancing. ¡ ¡ Dynamo: ¡Amazon’s ¡Highly ¡Available ¡Key-­‑value ¡Store ¡ ¡

slide-12
SLIDE 12

CAP ¡Theorem ¡ ¡

slide-13
SLIDE 13

People ¡tend ¡to ¡focus ¡on ¡consistency/availability ¡as ¡the ¡sole ¡driver ¡of ¡ emerging ¡database ¡models ¡because ¡it ¡provides ¡a ¡simple ¡and ¡academic ¡ explana0on ¡for ¡more ¡complex ¡evolu0onary ¡factors. ¡In ¡fact, ¡ ¡CAP ¡ Theorem, ¡according ¡to ¡its ¡original ¡author, ¡“prohibits ¡only ¡a ¡3ny ¡part ¡of ¡ the ¡design ¡space: ¡perfect ¡availability ¡and ¡consistency ¡in ¡the ¡presence ¡of ¡ par33ons, ¡which ¡are ¡rare… ¡there ¡is ¡li@le ¡reason ¡to ¡forfeit ¡C ¡or ¡A ¡when ¡ the ¡system ¡is ¡not ¡par33oned.” ¡In ¡reality, ¡a ¡much ¡larger ¡range ¡of ¡ considera0ons ¡and ¡tradeoffs ¡have ¡informed ¡the ¡“NoSQL” ¡movement… ¡

¡

slide-14
SLIDE 14

Tradi3onally ¡produc3on ¡systems ¡store ¡their ¡ state ¡in ¡rela3onal ¡databases. ¡For ¡many ¡of ¡the ¡ more ¡common ¡usage ¡pa@erns ¡of ¡state ¡ ¡ persistence, ¡however, ¡a ¡rela3onal ¡database ¡is ¡ a ¡solu3on ¡that ¡is ¡far ¡from ¡ideal. ¡ ¡ ¡ Most ¡of ¡these ¡services ¡only ¡store ¡and ¡retrieve ¡ data ¡by ¡primary ¡key ¡and ¡do ¡not ¡require ¡the ¡ complex ¡querying ¡and ¡management ¡ func3onality ¡offered ¡by ¡an ¡RDBMS. ¡ ¡ ¡ This ¡excess ¡func3onality ¡requires ¡expensive ¡ hardware ¡and ¡highly ¡skilled ¡personnel ¡for ¡its ¡

  • pera3on, ¡making ¡it ¡a ¡very ¡inefficient ¡solu3on. ¡ ¡

¡ In ¡addi3on, ¡the ¡available ¡replica3on ¡ technologies ¡are ¡limited ¡and ¡typically ¡choose ¡ consistency ¡over ¡availability. ¡ ¡ ¡ Although ¡many ¡advances ¡have ¡been ¡made ¡in ¡ the ¡recent ¡years, ¡it ¡is ¡s3ll ¡not ¡easy ¡to ¡scale-­‑out ¡ databases ¡or ¡use ¡smart ¡par33oning ¡schemes ¡ for ¡load ¡balancing. ¡ ¡ Dynamo: ¡Amazon’s ¡Highly ¡Available ¡Key-­‑value ¡Store ¡ ¡

slide-15
SLIDE 15

Spanner ¡is ¡Google’s ¡scalable, ¡mul3-­‑version, ¡ globally-­‑ ¡distributed, ¡and ¡synchronously-­‑ replicated ¡database… ¡It ¡is ¡the ¡first ¡system ¡to ¡ distribute ¡data ¡at ¡global ¡scale ¡and ¡support ¡ externally-­‑consistent ¡distributed ¡transac3ons... ¡ ¡ ¡ Spanner ¡is ¡designed ¡to ¡scale ¡up ¡to ¡millions ¡of ¡ machines ¡across ¡hundreds ¡of ¡datacenters ¡and ¡ trillions ¡of ¡database ¡rows… ¡Spanner’s ¡main ¡ focus ¡is ¡managing ¡cross-­‑datacenter ¡replicated ¡ data… ¡ ¡ Spanner ¡started… ¡as ¡part ¡of ¡a ¡rewrite ¡of ¡ Google’s ¡adver3sing ¡backend ¡called ¡F1 ¡[35]. ¡ This ¡backend ¡was ¡originally ¡based ¡on ¡a ¡MySQL ¡ database… ¡ ¡ Resharding ¡this ¡revenue-­‑cri3cal ¡database ¡as ¡it ¡ grew ¡in ¡the ¡number ¡of ¡customers ¡and ¡their ¡ data ¡was ¡extremely ¡costly. ¡The ¡last ¡resharding ¡ took ¡over ¡two ¡years ¡of ¡intense ¡effort… ¡ ¡ ¡ ¡ ¡ Spanner: ¡Google’s ¡Globally-­‑Distributed ¡Database ¡ ¡

slide-16
SLIDE 16

Shanley’s ¡Theorem ¡ ¡

slide-17
SLIDE 17

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario. ¡ ¡
slide-18
SLIDE 18

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario. ¡ ¡

Ÿ ¡ ¡Stringent ¡latency ¡requirements ¡measured ¡at ¡the ¡99.9% ¡percen3le ¡ ¡Ÿ ¡ ¡Highly ¡available ¡ ¡ ¡ Ÿ ¡ ¡Always ¡writeable ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡Modeled ¡as ¡keys/values ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-19
SLIDE 19

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario. ¡ ¡

Ÿ Choice ¡to ¡manage ¡conflict ¡resolu3on ¡themselves ¡or ¡manage ¡on ¡the ¡data ¡store ¡level ¡ Ÿ Simple, ¡primary-­‑key ¡only ¡interface ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡No ¡need ¡for ¡rela3onal ¡data ¡model ¡

slide-20
SLIDE 20

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario. ¡ ¡

Ÿ Func3ons ¡on ¡commodity ¡hardware ¡ ¡ ¡Ÿ ¡ ¡Each ¡object ¡must ¡be ¡replicated ¡across ¡mul3ple ¡DCs ¡ ¡ Ÿ Can ¡scale ¡out ¡one ¡node ¡at ¡a ¡3me ¡with ¡minimal ¡impact ¡on ¡system ¡and ¡operators ¡ ¡ ¡ ¡

slide-21
SLIDE 21

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡

slide-22
SLIDE 22

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario. ¡ ¡

Ÿ 1995: ¡Less ¡than ¡40 ¡million ¡internet ¡users; ¡ ¡now: ¡2.4 ¡billion ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡Latency ¡perceived ¡as ¡unavailability ¡ ¡ ¡ ¡Ÿ ¡New ¡types ¡of ¡applica3ons ¡

slide-23
SLIDE 23

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario. ¡ ¡

Ÿ Much ¡more ¡data ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡Unstructured ¡data ¡ ¡ ¡ Ÿ New ¡kinds ¡of ¡business ¡requirements ¡ ¡ Ÿ App ¡scales ¡gracefully ¡without ¡high ¡development ¡overheard ¡

slide-24
SLIDE 24

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡limita0ons ¡of ¡the ¡

  • pera0onal ¡scenario ¡ ¡

Ÿ Scale-­‑out ¡design ¡on ¡less ¡expensive ¡hardware ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ Ability ¡to ¡easily ¡meet ¡peak ¡loads ¡ Ÿ Run ¡efficiently ¡across ¡mul3ple ¡sites ¡ ¡ ¡ ¡ ¡Ÿ Low ¡opera3onal ¡burden ¡ ¡ ¡

slide-25
SLIDE 25

Aspects ¡of ¡the ¡database: ¡

¡

  • ¡ How ¡to ¡distribute ¡data ¡around ¡the ¡cluster ¡
  • ¡ ¡Adding ¡new ¡nodes ¡ ¡
  • ¡ ¡Replica0ng ¡data ¡ ¡
  • ¡ ¡Resolving ¡data ¡conflicts ¡ ¡
  • ¡ ¡Dealing ¡with ¡failure ¡scenarios ¡ ¡
  • ¡ ¡Data ¡model ¡ ¡

¡

slide-26
SLIDE 26

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡how ¡to ¡distribute ¡ data ¡around ¡the ¡cluster ¡

slide-27
SLIDE 27

Database ¡design ¡is ¡driven ¡ by ¡a ¡virtuous ¡tension ¡ between ¡the ¡requirements ¡

  • f ¡the ¡app, ¡the ¡profile ¡of ¡

developer ¡produc0vity, ¡ and ¡the ¡how ¡to ¡distribute ¡ data ¡around ¡the ¡cluster ¡

slide-28
SLIDE 28

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

Bunny ¡Names ¡A-­‑G ¡ Bunny ¡Names ¡H-­‑R ¡ Bunny ¡Names ¡R-­‑Z ¡

slide-29
SLIDE 29

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

Bunny ¡Names ¡Dispropor3onately ¡Trend ¡Towards ¡Bunny, ¡Cuddles, ¡Fluffy, ¡ ¡

  • Mr. ¡Bunny, ¡Peter ¡Rabbit, ¡Velveteen, ¡Peter ¡Co@ontail, ¡and ¡Mi@en ¡
slide-30
SLIDE 30

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

slide-31
SLIDE 31

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

Ÿ Reduce ¡risk ¡of ¡hot ¡spots ¡in ¡the ¡database ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ Data ¡is ¡automa3cally ¡assigned ¡to ¡nodes ¡ ¡ ¡

slide-32
SLIDE 32

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

slide-33
SLIDE 33

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

slide-34
SLIDE 34

¡ ¡ ¡ ¡ ¡ ¡ ¡how ¡to ¡distribute ¡data ¡ around ¡the ¡cluster ¡

slide-35
SLIDE 35

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

slide-36
SLIDE 36

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

slide-37
SLIDE 37

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

Bunny ¡Names ¡A-­‑G ¡

slide-38
SLIDE 38

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

Bunny ¡Names ¡A-­‑G ¡ Bunny ¡Names ¡A-­‑G ¡ Bunny ¡Nam es ¡A-­‑G ¡

slide-39
SLIDE 39

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

slide-40
SLIDE 40

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

slide-41
SLIDE 41

¡ ¡ ¡ ¡ ¡ ¡ ¡adding ¡new ¡nodes ¡

Ÿ “decoupling ¡of ¡par33oning ¡and ¡par33on ¡placement” ¡

slide-42
SLIDE 42

¡ ¡ ¡ ¡ replica0ng ¡data ¡

slide-43
SLIDE 43

¡ ¡ ¡ ¡ replica0ng ¡data ¡

master ¡ slave ¡ slave ¡

slide-44
SLIDE 44

¡ ¡ ¡ ¡ replica0ng ¡data ¡

master ¡ slave ¡ slave ¡ writes ¡

slide-45
SLIDE 45

¡ ¡ ¡ ¡ replica0ng ¡data ¡

master ¡ slave ¡ slave ¡ writes ¡ reads ¡

slide-46
SLIDE 46

¡ ¡ ¡ ¡ replica0ng ¡data ¡

master ¡ slave ¡ slave ¡

slide-47
SLIDE 47

¡ ¡ ¡ ¡ replica0ng ¡data ¡

master ¡ slave ¡ slave ¡

  • 1. Time ¡to ¡figure ¡out ¡the ¡master ¡is ¡gone ¡ ¡
  • 2. Master ¡elec3on ¡

Availability ¡Clock ¡

slide-48
SLIDE 48

¡ ¡ ¡ ¡ replica0ng ¡data ¡

master ¡ slave ¡ slave ¡

Consistency ¡> ¡Availability ¡ ¡ ¡ Unavailable ¡to ¡writes ¡un3l ¡data ¡can ¡ ¡ be ¡confirmed ¡correct ¡

¡ Availability ¡Clock ¡

slide-49
SLIDE 49

¡ ¡ ¡ ¡ replica0ng ¡data ¡

slide-50
SLIDE 50

¡ ¡ “Every ¡node ¡in ¡Dynamo ¡should ¡have ¡the ¡same ¡ set ¡of ¡responsibili3es ¡as ¡its ¡peers; ¡there ¡should ¡ be ¡no ¡dis3nguished ¡node ¡or ¡nodes ¡that ¡take ¡ special ¡roles ¡or ¡extra ¡set ¡of ¡responsibili3es.” ¡ ¡

¡ replica0ng ¡data ¡

slide-51
SLIDE 51

¡ ¡

¡ ¡ ¡ replica0ng ¡data ¡

reads ¡ reads ¡ reads ¡ reads ¡ reads ¡ writes ¡ ¡ reads ¡ reads ¡ reads ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡

slide-52
SLIDE 52

¡ ¡

¡ ¡ ¡ replica0ng ¡data ¡

reads ¡ reads ¡ reads ¡ reads ¡ reads ¡ writes ¡ ¡ reads ¡ reads ¡ reads ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡ writes ¡ ¡

Ÿ Clients ¡can ¡read ¡/ ¡write ¡to ¡any ¡node ¡ Ÿ All ¡updates ¡reach ¡all ¡replicas ¡eventually ¡ ¡

slide-53
SLIDE 53

¡ ¡

¡ ¡ ¡ replica0ng ¡data ¡ ¡

Ÿ w ¡and ¡r ¡values ¡ ¡

slide-54
SLIDE 54

¡ ¡

¡ ¡ ¡ replica0ng ¡data ¡ ¡

Ÿ number ¡of ¡replicas ¡that ¡need ¡to ¡par3cipate ¡in ¡a ¡read/write ¡for ¡a ¡ success ¡response ¡

slide-55
SLIDE 55

¡ ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡put( ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡) ¡ ¡ ¡ replica0ng ¡data ¡ ¡

Ÿ w ¡= ¡1 ¡ Ÿ only ¡one ¡node ¡needs ¡to ¡be ¡available ¡to ¡complete ¡write ¡request ¡

slide-56
SLIDE 56

¡ ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡put( ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡) ¡ ¡ ¡ replica0ng ¡data ¡ ¡

Ÿ w ¡= ¡3 ¡

slide-57
SLIDE 57

¡ ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ resolving ¡conflicts ¡

Ÿ reads ¡when ¡not ¡all ¡writes ¡have ¡propagated ¡(laggy ¡or ¡down ¡node) ¡

slide-58
SLIDE 58

¡ ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ resolving ¡conflicts ¡

Ÿ different ¡clients ¡update ¡at ¡the ¡exact ¡same ¡3me ¡

slide-59
SLIDE 59

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡a85hYGBgzm ¡

DKBVIsTFUPPmcwJ TLmsTIcmsJ1nA8qz K7HcQwqfB0hzNac xCYWcA1ZIgsA ¡

slide-60
SLIDE 60

¡ ¡

¡Whether ¡one ¡object ¡is ¡a ¡direct ¡descendant ¡of ¡the ¡other ¡ Whether ¡the ¡objects ¡are ¡direct ¡descendants ¡of ¡a ¡common ¡parent ¡ Whether ¡the ¡objects ¡are ¡unrelated ¡in ¡recent ¡heritage ¡

¡ ¡ resolving ¡conflicts ¡

¡ Ÿ vector ¡clocks ¡that ¡show ¡rela3onships ¡between ¡objects ¡ ¡ ¡

slide-61
SLIDE 61

¡ ¡

¡ ¡ ¡ resolving ¡conflicts ¡

¡ Ÿ vector ¡clock ¡is ¡updated ¡when ¡objects ¡are ¡updated ¡ Ÿ last-­‑write ¡wins ¡or ¡conflicts ¡can ¡be ¡resolved ¡on ¡client ¡side ¡ ¡ ¡ ¡ ¡

slide-62
SLIDE 62

¡ ¡

¡ ¡ ¡ resolving ¡conflicts ¡

¡ Ÿ if ¡stale ¡responses ¡are ¡returned ¡as ¡part ¡of ¡the ¡read, ¡ ¡ those ¡replicas ¡are ¡updated ¡ ¡

slide-63
SLIDE 63

¡ ¡

¡ ¡ ¡ failure ¡condi0ons ¡

slide-64
SLIDE 64

¡ ¡

¡ ¡ ¡ failure ¡condi0ons ¡

¡ Ÿ n ¡= ¡3 ¡ ¡

slide-65
SLIDE 65

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡writes ¡& ¡updates ¡ ¡

¡ ¡ ¡ failure ¡condi0ons ¡

¡ Ÿ n ¡= ¡3 ¡ ¡

slide-66
SLIDE 66

¡ ¡

¡ ¡ ¡ failure ¡condi0ons ¡

¡ Ÿ hinted ¡handoff ¡ ¡

¡

slide-67
SLIDE 67

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡

slide-68
SLIDE 68

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ “Most ¡of ¡these ¡services ¡only ¡store ¡and ¡retrieve ¡ data ¡by ¡primary ¡key ¡and ¡do ¡not ¡require ¡the ¡ complex ¡querying ¡and ¡management ¡ func3onality ¡offered ¡by ¡an ¡RDBMS.” ¡ ¡

slide-69
SLIDE 69

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡

¡ Ÿ “schema-­‑less” ¡ ¡ ¡ ¡ ¡ ¡ ¡Ÿ ¡more ¡flexibility, ¡agility ¡ ¡ ¡

slide-70
SLIDE 70

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ User/Session ¡ID ¡ ¡ Session ¡Data ¡ ¡ ¡Session ¡ ¡ ¡ ¡

slide-71
SLIDE 71

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ User/Session ¡ID ¡ ¡ Campaign ¡ID ¡ Session ¡Data ¡ ¡ Ad ¡Content ¡ ¡Session ¡ ¡ ¡Adver3sing ¡

slide-72
SLIDE 72

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ User/Session ¡ID ¡ ¡ Campaign ¡ID ¡ ¡ Date ¡ Session ¡Data ¡ ¡ Ad ¡Content ¡ ¡ Log ¡File ¡ ¡Session ¡ ¡ ¡Adver3sing ¡ ¡ ¡Logs ¡ ¡ ¡

slide-73
SLIDE 73

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ User/Session ¡ID ¡ ¡ Campaign ¡ID ¡ ¡ Date ¡ ¡ Date, ¡Date/Time ¡ ¡ Session ¡Data ¡ ¡ Ad ¡Content ¡ ¡ Log ¡File ¡ ¡ Updates ¡ ¡Session ¡ ¡ ¡Adver3sing ¡ ¡ ¡Logs ¡ ¡ ¡Sensor ¡ ¡ ¡ ¡ ¡ ¡

slide-74
SLIDE 74

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ User/Session ¡ID ¡ ¡ Campaign ¡ID ¡ ¡ Date ¡ ¡ Date, ¡Date/Time ¡ ¡ Login, ¡Email, ¡UUID ¡ ¡ Session ¡Data ¡ ¡ Ad ¡Content ¡ ¡ Log ¡File ¡ ¡ Updates ¡ ¡ User ¡A@ributes ¡ ¡Session ¡ ¡ ¡Adver3sing ¡ ¡ ¡Logs ¡ ¡ ¡Sensor ¡ ¡ ¡User ¡Data ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-75
SLIDE 75

¡ ¡

¡ ¡ ¡ developing ¡apps ¡

¡

¡ User/Session ¡ID ¡ ¡ Campaign ¡ID ¡ ¡ Date ¡ ¡ Date, ¡Date/Time ¡ ¡ Login, ¡Email, ¡UUID ¡ ¡ ¡Title, ¡Integer, ¡Etc. ¡ Session ¡Data ¡ ¡ Ad ¡Content ¡ ¡ Log ¡File ¡ ¡ Updates ¡ ¡ User ¡A@ributes ¡ ¡ Text, ¡JSON, ¡XML ¡ ¡Session ¡ ¡ ¡Adver3sing ¡ ¡ ¡Logs ¡ ¡ ¡Sensor ¡ ¡ ¡User ¡Data ¡ ¡ ¡Content ¡ ¡ ¡ ¡ ¡ ¡

slide-76
SLIDE 76

¡ ¡

¡ ¡ ¡ future ¡

¡

¡

slide-77
SLIDE 77

¡ ¡

¡ ¡ ¡ future ¡

¡

¡

slide-78
SLIDE 78

¡ ¡

¡ ¡ ¡ future ¡

¡

¡

slide-79
SLIDE 79

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ more ¡data ¡types ¡

¡

¡

¡ ¡ ¡ ¡ ¡

slide-80
SLIDE 80

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ more ¡data ¡types ¡

¡

¡

Ÿ counters ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡sets ¡ ¡ Ÿ ¡sever ¡side ¡structure ¡and ¡conflict ¡resolu3on ¡policy ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-81
SLIDE 81

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ strong ¡consistency ¡

¡

¡ there ¡is ¡li]le ¡reason ¡to ¡forfeit ¡C ¡or ¡A ¡when ¡the ¡ system ¡is ¡not ¡par00oned ¡

slide-82
SLIDE 82

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ strong ¡consistency ¡

¡

¡

Ÿ condi3onal ¡writes ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡consistent ¡reads ¡ ¡ ¡ ¡ ¡ ¡

slide-83
SLIDE 83

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡

  • ther ¡advanced ¡features ¡

¡

¡

slide-84
SLIDE 84

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡

  • ther ¡advanced ¡features ¡

¡

¡

slide-85
SLIDE 85

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡

  • ther ¡advanced ¡features ¡

¡

¡

Ÿ metadata ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡aggrega3on ¡tasks ¡ ¡ ¡Ÿ ¡ ¡search ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-86
SLIDE 86

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡

  • ther ¡advanced ¡features ¡

¡

¡

Ÿ metadata ¡ ¡ ¡ ¡ ¡Ÿ ¡ ¡aggrega3on ¡tasks ¡ ¡ ¡Ÿ ¡ ¡search ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-87
SLIDE 87

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡

  • ther ¡advanced ¡features ¡

¡

¡

¡ ¡ ¡ ¡

slide-88
SLIDE 88

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ In ¡summary… ¡

¡

¡

slide-89
SLIDE 89

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ rapid ¡evolu0onary ¡change ¡

¡

¡

slide-90
SLIDE 90

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ significant ¡events ¡

¡

¡

slide-91
SLIDE 91

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ explosion ¡of ¡new ¡systems ¡

¡

¡

slide-92
SLIDE 92

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ ¡ evolving ¡into ¡higher-­‑order ¡ systems ¡

¡

¡

slide-93
SLIDE 93

¡ ¡ ¡ ¡ ¡ ¡ ¡

¡ ¡ We’re ¡hiring. ¡ ¡ shanley@basho.com ¡

¡

¡