• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
From Hand To Mouth (@pavlobaron)
 

From Hand To Mouth (@pavlobaron)

on

  • 1,567 views

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

Statistics

Views

Total Views
1,567
Views on SlideShare
1,555
Embed Views
12

Actions

Likes
1
Downloads
0
Comments
0

5 Embeds 12

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

Accessibility

Categories

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.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
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