• Save
From Hand To Mouth (@pavlobaron)
Upcoming SlideShare
Loading in...5

From Hand To Mouth (@pavlobaron)



Slides of my talk I gave at the NoSQL Roadshow in Zurich and at Berlin Buzzwords, both 2012

Slides of my talk I gave at the NoSQL Roadshow in Zurich and at Berlin Buzzwords, both 2012



Total Views
Views on SlideShare
Embed Views



5 Embeds 12

http://coderwall.com 5
http://www.codecentric.de 4
http://tweetedtimes.com 1
https://twitter.com 1
http://twitter.com 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

From Hand To Mouth (@pavlobaron) From Hand To Mouth (@pavlobaron) Presentation Transcript

  • fromhandtomouth
  • Pavlo Baronpavlo.baron@codecentric.de @pavlobaron
  • Forget backend
  • Or at least whatyou call a backend
  • Your application serverwill just slow downyour machines tokeep step with them
  • Or you will slow downyour incoming trafficto give your applicationserver a chance tobreathe
  • User experience:order foodat McDonalds, getqueued and receivethe ordered foodthrough mail 3days later
  • User experience with somepsychology: order food atMcDonalds, get queued,leave the restaurantwith color pictures ofyour food and wait 3days for its delivery
  • Every single dataabstraction layer onlyhelps ruin theatmosphere throughheating
  • Hey, man,you carry around a damnUSS Enterprise in yourpocket And you can run a damn Babylon 5 in a cluster
  • And in the end, itsalways store/update/delete/read/search/process.Isnt it?
  • So why drive a clown carwhen you can havea Ferrarifull of these?
  • Why not just livefrom hand to mouth?
  • You haz this:Your user. Totally drunk ina football stadium. Justwants to inform the worldthat Ronaldo has scored agoal. Shaking hand, lots oftypos and confusion.
  • You want this:Let him protocol the fact atany cost.Look at it later, togetherwith further facts to makea picture of the sports fact.
  • Concrete:Mobile clients write fromeverywhere, buffer,read occasionally,post-processing completelybehind the scenes, likestatistics etc.
  • Even more concrete:Immediate, reliable, massivewrites. Analytics andprocessing in a batchafterwards. No need tobe exact to the secondand 100% data complete
  • More concrete:
  • Very concrete: ProtoBufs, REST Round Robin local REST, local Erlang client Buffer Web Apps, R, tools etc.
  • Infrastructure can be solved.More challenging is howto get structured records outof a bunch of facts written byshaking hands.Thats different story tho.
  • HTF does it work?
  • Da core
  • Da ringX bit integer space 0 <= N <= 2 ^ Xor: 2 x Pi 0 <= A <= 2 x Pi x(N) = cos(A) y(N) = sin(A)
  • Da cluster12 partitions (constant) 3 nodes, 4 vnodes eachadd node 4 nodes, 3 vnodes eachAlternatives: 3 nodes, 2 x 5 + 1 x 2 vnodes container based
  • Da quorumV: vnodes holding a keyW: write quorumR: read quorumDW, PW, PR W > 0.5 * V R+W>V
  • Insert keyKey = “foo”# = N, W = 2 (sloppy quorum) replicate N ok
  • Add node co py leaveleave co py y leave pco
  • Lookup key (sloppyN quorum) Value = “bar” Key = “foo” # = N, R = 2
  • Remove nodecopy leave
  • write RM2 Da Gossip RM1 Clock table Value Update log stable clockReplica clock updates Value Executed operation table
  • Da vector clocksNode 1 1,0,0 2,2,0 3,2,0 4,3,3Node 2 1,1,0 1,2,0 1,3,3 4,4,3Node 3 1,0,1 1,2,2 1,2,3 4,3,4
  • Da MapReduce query =Node X "Alice"map reduce hit list map map N= N= N=„Alice" "Alice" "Alice" Node A Node B Node C
  • Da hinted handoffN: node, G: group including Nnode(N) is unavailable replicate to G or store data(N) locally hint handoff for later node(N) is alive handoff data to node(N)
  • Key = “foo”, # = N -> Replicahandoff hint = true failsKey = “foo” N replicate
  • Replicahandoff recovers
  • And thats by far not all:You can search throughindex with data locality.You can tag objects andquery through 2i.You can add hooks.
  • You dont even need to storeanything.Just distribute yourcalculation, search, batch
  • Have a look at tendita.com
  • So its even comfy to loadyour clown carwith these
  • Thank you
  • Most images originate from istockphoto.com except few ones taken from Wikipedia or Flickr (CC) and product pages/publicly available presentations or generated through public online generators