SlideShare ist ein Scribd-Unternehmen logo
1 von 41
from
hand
to
mouth
Pavlo Baron
pavlo.baron@codecentric.de
              @pavlobaron
Forget backend
Or at least what
you call a backend
Your application server
will just slow down
your machines to
keep step with them
Or you will slow down
your incoming traffic
to give your application
server a chance to
breathe
User experience:
order food
at McDonalds, get
queued and receive
the ordered food
through mail 3
days later
User experience with some
psychology: order food at
McDonalds, get queued,
leave the restaurant
with color pictures of
your food and wait 3
days for its delivery
Every single data
abstraction layer only
helps ruin the
atmosphere through
heating
Hey, man,
you carry around a damn
USS Enterprise in your
pocket


         And you can run a
         damn Babylon 5 in
                  a cluster
And in the end, it's
always store/update/
delete/read/search/
process.

Isn't it?
So why drive a clown car
when you can have
a Ferrari
full of these?
Why not just live
from hand to mouth?
You haz this:

Your user. Totally drunk in
a football stadium. Just
wants to inform the world
that Ronaldo has scored a
goal. Shaking hand, lots of
typos and confusion.
You want this:

Let him protocol the fact at
any cost.

Look at it later, together
with further facts to make
a picture of the sports fact.
Concrete:

Mobile clients write from
everywhere, buffer,
read occasionally,
post-processing completely
behind the scenes, like
statistics etc.
Even more concrete:

Immediate, reliable, massive
writes. Analytics and
processing in a batch
afterwards. No need to
be exact to the second
and 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 how
to get structured records out
of a bunch of facts written by
shaking hands.

That's different story tho.
HTF does it work?
Da core
Da ring


X bit integer space
       0 <= N <= 2 ^ X


or: 2 x Pi
      0 <= A <= 2 x Pi
      x(N) = cos(A)
      y(N) = sin(A)
Da cluster


12 partitions (constant)
    3 nodes, 4 vnodes each
add node
    4 nodes, 3 vnodes each


Alternatives:
  3 nodes, 2 x 5 + 1 x 2 vnodes
    container based
Da quorum


V: vnodes holding a key
W: write quorum
R: read quorum
DW, PW, PR


     W > 0.5 * V
     R+W>V
Insert key
Key = “foo”
# = N, W = 2               (sloppy quorum)


                   replicate

               N
                      ok
Add node



       co
        py
             leave
leave
                co
                  py
  y




             leave
   p
co
Lookup key
                         (sloppy
N                       quorum)

      Value = “bar”




    Key = “foo”
    # = N, R = 2
Remove
                 node

copy



       leave
write          RM2          Da Gossip




                            RM1
  Clock table
                           Value
  Update log      stable   clock
Replica clock    updates
                           Value


  Executed operation table
Da vector clocks
Node 1




         1,0,0    2,2,0           3,2,0   4,3,3
Node 2




          1,1,0   1,2,0   1,3,3           4,4,3
Node 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 handoff


N: node, G: group including N


node(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 ->           Replica
handoff hint = true               fails

Key = “foo”

                        N
                    replicate
Replica
handoff   recovers
And that's by far not all:

You can search through
index with data locality.

You can tag objects and
query through 2i.

You can add hooks.
You don't even need to store
anything.

Just distribute your
calculation, search, batch
Have a look at tendita.com
So it's even comfy to load
your clown car
with 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

Weitere Àhnliche Inhalte

Was ist angesagt?

Turbo basic commands
Turbo basic commandsTurbo basic commands
Turbo basic commands
julviapretty
 
Cryptography for Smalltalkers - ESUG 2004
Cryptography for Smalltalkers - ESUG 2004Cryptography for Smalltalkers - ESUG 2004
Cryptography for Smalltalkers - ESUG 2004
Martin Kobetic
 
runtimestack
runtimestackruntimestack
runtimestack
Teddy Hsiung
 
"A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!...
"A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!..."A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!...
"A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!...
akaptur
 
Hacker Thursdays: An introduction to binary exploitation
Hacker Thursdays: An introduction to binary exploitationHacker Thursdays: An introduction to binary exploitation
Hacker Thursdays: An introduction to binary exploitation
OWASP Hacker Thursday
 

Was ist angesagt? (20)

JavaScript Event Loop
JavaScript Event LoopJavaScript Event Loop
JavaScript Event Loop
 
Turbo basic commands
Turbo basic commandsTurbo basic commands
Turbo basic commands
 
Cryptography for Smalltalkers - ESUG 2004
Cryptography for Smalltalkers - ESUG 2004Cryptography for Smalltalkers - ESUG 2004
Cryptography for Smalltalkers - ESUG 2004
 
runtimestack
runtimestackruntimestack
runtimestack
 
Scripting ppt
Scripting pptScripting ppt
Scripting ppt
 
Rcpp11 useR2014
Rcpp11 useR2014Rcpp11 useR2014
Rcpp11 useR2014
 
Rcpp11 genentech
Rcpp11 genentechRcpp11 genentech
Rcpp11 genentech
 
Let's golang
Let's golangLet's golang
Let's golang
 
Coding in GO - GDG SL - NSBM
Coding in GO - GDG SL - NSBMCoding in GO - GDG SL - NSBM
Coding in GO - GDG SL - NSBM
 
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
 
When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)
 
"A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!...
"A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!..."A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!...
"A 1,500 line (!!) switch statement powers your Python!" - Allison Kaptur, !!...
 
Script
ScriptScript
Script
 
Playing 44CON CTF for fun and profit
Playing 44CON CTF for fun and profitPlaying 44CON CTF for fun and profit
Playing 44CON CTF for fun and profit
 
Exploiting Memory Overflows
Exploiting Memory OverflowsExploiting Memory Overflows
Exploiting Memory Overflows
 
Hacker Thursdays: An introduction to binary exploitation
Hacker Thursdays: An introduction to binary exploitationHacker Thursdays: An introduction to binary exploitation
Hacker Thursdays: An introduction to binary exploitation
 
Activity Recognition Through Complex Event Processing: First Findings
Activity Recognition Through Complex Event Processing: First Findings Activity Recognition Through Complex Event Processing: First Findings
Activity Recognition Through Complex Event Processing: First Findings
 
Project gnuplot
Project gnuplotProject gnuplot
Project gnuplot
 
FEAL - CSAW CTF 2014 Quals Crypto300
FEAL - CSAW CTF 2014 Quals Crypto300FEAL - CSAW CTF 2014 Quals Crypto300
FEAL - CSAW CTF 2014 Quals Crypto300
 

Andere mochten auch

Assistech: An AAC Device for Autistic Children
Assistech: An AAC Device for Autistic ChildrenAssistech: An AAC Device for Autistic Children
Assistech: An AAC Device for Autistic Children
Susie Herbstritt
 
Future Things/Robotic Products
Future Things/Robotic ProductsFuture Things/Robotic Products
Future Things/Robotic Products
Susie Herbstritt
 

Andere mochten auch (19)

Q1_networks
Q1_networksQ1_networks
Q1_networks
 
Big Data - JAX2011 (Pavlo Baron)
Big Data - JAX2011 (Pavlo Baron)Big Data - JAX2011 (Pavlo Baron)
Big Data - JAX2011 (Pavlo Baron)
 
f6k & l10n
f6k & l10nf6k & l10n
f6k & l10n
 
Assistech: An AAC Device for Autistic Children
Assistech: An AAC Device for Autistic ChildrenAssistech: An AAC Device for Autistic Children
Assistech: An AAC Device for Autistic Children
 
Programa (extens) PSC PremiĂ  de Mar
Programa (extens) PSC PremiĂ  de MarPrograma (extens) PSC PremiĂ  de Mar
Programa (extens) PSC PremiĂ  de Mar
 
Set this Big Data technology zoo in order (@pavlobaron)
Set this Big Data technology zoo in order (@pavlobaron)Set this Big Data technology zoo in order (@pavlobaron)
Set this Big Data technology zoo in order (@pavlobaron)
 
a Tech guy’s take on Big Data business cases (@pavlobaron)
a Tech guy’s take on Big Data business cases (@pavlobaron)a Tech guy’s take on Big Data business cases (@pavlobaron)
a Tech guy’s take on Big Data business cases (@pavlobaron)
 
Programa del PSC PremiĂ  de Mar (versiĂł extensa)
Programa del PSC PremiĂ  de Mar (versiĂł extensa)Programa del PSC PremiĂ  de Mar (versiĂł extensa)
Programa del PSC PremiĂ  de Mar (versiĂł extensa)
 
Asma
AsmaAsma
Asma
 
Near realtime analytics - technology choice (@pavlobaron)
Near realtime analytics - technology choice (@pavlobaron)Near realtime analytics - technology choice (@pavlobaron)
Near realtime analytics - technology choice (@pavlobaron)
 
October 2011 website powerpoint
October 2011 website powerpointOctober 2011 website powerpoint
October 2011 website powerpoint
 
Theoretical aspects of distributed systems - playfully illustrated (@pavlobaron)
Theoretical aspects of distributed systems - playfully illustrated (@pavlobaron)Theoretical aspects of distributed systems - playfully illustrated (@pavlobaron)
Theoretical aspects of distributed systems - playfully illustrated (@pavlobaron)
 
The Big Data Developer (@pavlobaron)
The Big Data Developer (@pavlobaron)The Big Data Developer (@pavlobaron)
The Big Data Developer (@pavlobaron)
 
JUGS June'11 - Erlang/OTP
JUGS June'11 - Erlang/OTPJUGS June'11 - Erlang/OTP
JUGS June'11 - Erlang/OTP
 
20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)
 
Future Things/Robotic Products
Future Things/Robotic ProductsFuture Things/Robotic Products
Future Things/Robotic Products
 
BigData & CDN - OOP2011 (Pavlo Baron)
BigData & CDN - OOP2011 (Pavlo Baron)BigData & CDN - OOP2011 (Pavlo Baron)
BigData & CDN - OOP2011 (Pavlo Baron)
 
Let It Crash (@pavlobaron)
Let It Crash (@pavlobaron)Let It Crash (@pavlobaron)
Let It Crash (@pavlobaron)
 
Kokkola
KokkolaKokkola
Kokkola
 

Ähnlich wie From Hand To Mouth (@pavlobaron)

C:\Fakepath\Chapter 2 Part2 B
C:\Fakepath\Chapter 2 Part2 BC:\Fakepath\Chapter 2 Part2 B
C:\Fakepath\Chapter 2 Part2 B
ececourse
 
The Kumofs Project and MessagePack-RPC
The Kumofs Project and MessagePack-RPCThe Kumofs Project and MessagePack-RPC
The Kumofs Project and MessagePack-RPC
Sadayuki Furuhashi
 
Pharo, an innovative and open-source Smalltalk
Pharo, an innovative and open-source SmalltalkPharo, an innovative and open-source Smalltalk
Pharo, an innovative and open-source Smalltalk
Serge Stinckwich
 

Ähnlich wie From Hand To Mouth (@pavlobaron) (20)

NoSQL - how it works (@pavlobaron)
NoSQL - how it works (@pavlobaron)NoSQL - how it works (@pavlobaron)
NoSQL - how it works (@pavlobaron)
 
Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)
 
Python classes in mumbai
Python classes in mumbaiPython classes in mumbai
Python classes in mumbai
 
C:\Fakepath\Chapter 2 Part2 B
C:\Fakepath\Chapter 2 Part2 BC:\Fakepath\Chapter 2 Part2 B
C:\Fakepath\Chapter 2 Part2 B
 
Paul presentation P2P Chord v1
Paul presentation P2P Chord v1Paul presentation P2P Chord v1
Paul presentation P2P Chord v1
 
Python in 90mins
Python in 90minsPython in 90mins
Python in 90mins
 
Pydiomatic
PydiomaticPydiomatic
Pydiomatic
 
Python idiomatico
Python idiomaticoPython idiomatico
Python idiomatico
 
The Kumofs Project and MessagePack-RPC
The Kumofs Project and MessagePack-RPCThe Kumofs Project and MessagePack-RPC
The Kumofs Project and MessagePack-RPC
 
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
 
Class 18: Measuring Cost
Class 18: Measuring CostClass 18: Measuring Cost
Class 18: Measuring Cost
 
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Iterative Spark Developmen...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Iterative Spark Developmen...Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Iterative Spark Developmen...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Iterative Spark Developmen...
 
Lecture 3: Data-Intensive Computing for Text Analysis (Fall 2011)
Lecture 3: Data-Intensive Computing for Text Analysis (Fall 2011)Lecture 3: Data-Intensive Computing for Text Analysis (Fall 2011)
Lecture 3: Data-Intensive Computing for Text Analysis (Fall 2011)
 
Class 29: Inheritance
Class 29: InheritanceClass 29: Inheritance
Class 29: Inheritance
 
Snakes for Camels
Snakes for CamelsSnakes for Camels
Snakes for Camels
 
Nullcon HackIM 2012 Solutions
Nullcon HackIM 2012 SolutionsNullcon HackIM 2012 Solutions
Nullcon HackIM 2012 Solutions
 
Algorithm Homework Help
Algorithm Homework HelpAlgorithm Homework Help
Algorithm Homework Help
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Class 28: Entropy
Class 28: EntropyClass 28: Entropy
Class 28: Entropy
 
Pharo, an innovative and open-source Smalltalk
Pharo, an innovative and open-source SmalltalkPharo, an innovative and open-source Smalltalk
Pharo, an innovative and open-source Smalltalk
 

Mehr von Pavlo Baron

Mehr von Pavlo Baron (14)

@pavlobaron Why monitoring sucks and how to improve it
@pavlobaron Why monitoring sucks and how to improve it@pavlobaron Why monitoring sucks and how to improve it
@pavlobaron Why monitoring sucks and how to improve it
 
Why we do tech the way we do tech now (@pavlobaron)
Why we do tech the way we do tech now (@pavlobaron)Why we do tech the way we do tech now (@pavlobaron)
Why we do tech the way we do tech now (@pavlobaron)
 
Qcon2015 living database
Qcon2015 living databaseQcon2015 living database
Qcon2015 living database
 
Becoming reactive without overreacting (@pavlobaron)
Becoming reactive without overreacting (@pavlobaron)Becoming reactive without overreacting (@pavlobaron)
Becoming reactive without overreacting (@pavlobaron)
 
The hidden costs of the parallel world (@pavlobaron)
The hidden costs of the parallel world (@pavlobaron)The hidden costs of the parallel world (@pavlobaron)
The hidden costs of the parallel world (@pavlobaron)
 
data, ..., profit (@pavlobaron)
data, ..., profit (@pavlobaron)data, ..., profit (@pavlobaron)
data, ..., profit (@pavlobaron)
 
Data on its way to history, interrupted by analytics and silicon (@pavlobaron)
Data on its way to history, interrupted by analytics and silicon (@pavlobaron)Data on its way to history, interrupted by analytics and silicon (@pavlobaron)
Data on its way to history, interrupted by analytics and silicon (@pavlobaron)
 
(Functional) reactive programming (@pavlobaron)
(Functional) reactive programming (@pavlobaron)(Functional) reactive programming (@pavlobaron)
(Functional) reactive programming (@pavlobaron)
 
Diving into Erlang is a one-way ticket (@pavlobaron)
Diving into Erlang is a one-way ticket (@pavlobaron)Diving into Erlang is a one-way ticket (@pavlobaron)
Diving into Erlang is a one-way ticket (@pavlobaron)
 
Dynamo concepts in depth (@pavlobaron)
Dynamo concepts in depth (@pavlobaron)Dynamo concepts in depth (@pavlobaron)
Dynamo concepts in depth (@pavlobaron)
 
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
 
The Agile Alibi (Pavlo Baron)
The Agile Alibi (Pavlo Baron)The Agile Alibi (Pavlo Baron)
The Agile Alibi (Pavlo Baron)
 
Harry Potter and Enormous Data (Pavlo Baron)
Harry Potter and Enormous Data (Pavlo Baron)Harry Potter and Enormous Data (Pavlo Baron)
Harry Potter and Enormous Data (Pavlo Baron)
 

KĂŒrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂŒrzlich hochgeladen (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

From Hand To Mouth (@pavlobaron)

  • 4. Or at least what you call a backend
  • 5. Your application server will just slow down your machines to keep step with them
  • 6. Or you will slow down your incoming traffic to give your application server a chance to breathe
  • 7. User experience: order food at McDonalds, get queued and receive the ordered food through mail 3 days later
  • 8. User experience with some psychology: order food at McDonalds, get queued, leave the restaurant with color pictures of your food and wait 3 days for its delivery
  • 9. Every single data abstraction layer only helps ruin the atmosphere through heating
  • 10. Hey, man, you carry around a damn USS Enterprise in your pocket And you can run a damn Babylon 5 in a cluster
  • 11. And in the end, it's always store/update/ delete/read/search/ process. Isn't it?
  • 12. So why drive a clown car when you can have a Ferrari full of these?
  • 13. Why not just live from hand to mouth?
  • 14. You haz this: Your user. Totally drunk in a football stadium. Just wants to inform the world that Ronaldo has scored a goal. Shaking hand, lots of typos and confusion.
  • 15. You want this: Let him protocol the fact at any cost. Look at it later, together with further facts to make a picture of the sports fact.
  • 16. Concrete: Mobile clients write from everywhere, buffer, read occasionally, post-processing completely behind the scenes, like statistics etc.
  • 17. Even more concrete: Immediate, reliable, massive writes. Analytics and processing in a batch afterwards. No need to be exact to the second and 100% data complete
  • 19. Very concrete: ProtoBufs, REST Round Robin local REST, local Erlang client Buffer Web Apps, R, tools etc.
  • 20. Infrastructure can be solved. More challenging is how to get structured records out of a bunch of facts written by shaking hands. That's different story tho.
  • 21. HTF does it work?
  • 23. Da ring X bit integer space 0 <= N <= 2 ^ X or: 2 x Pi 0 <= A <= 2 x Pi x(N) = cos(A) y(N) = sin(A)
  • 24. Da cluster 12 partitions (constant) 3 nodes, 4 vnodes each add node 4 nodes, 3 vnodes each Alternatives: 3 nodes, 2 x 5 + 1 x 2 vnodes container based
  • 25. Da quorum V: vnodes holding a key W: write quorum R: read quorum DW, PW, PR W > 0.5 * V R+W>V
  • 26. Insert key Key = “foo” # = N, W = 2 (sloppy quorum) replicate N ok
  • 27. Add node co py leave leave co py y leave p co
  • 28. Lookup key (sloppy N quorum) Value = “bar” Key = “foo” # = N, R = 2
  • 29. Remove node copy leave
  • 30. write RM2 Da Gossip RM1 Clock table Value Update log stable clock Replica clock updates Value Executed operation table
  • 31. Da vector clocks Node 1 1,0,0 2,2,0 3,2,0 4,3,3 Node 2 1,1,0 1,2,0 1,3,3 4,4,3 Node 3 1,0,1 1,2,2 1,2,3 4,3,4
  • 32. Da MapReduce query = Node X "Alice" map reduce hit list map map N= N= N= „Alice" "Alice" "Alice" Node A Node B Node C
  • 33. Da hinted handoff N: node, G: group including N node(N) is unavailable replicate to G or store data(N) locally hint handoff for later node(N) is alive handoff data to node(N)
  • 34. Key = “foo”, # = N -> Replica handoff hint = true fails Key = “foo” N replicate
  • 35. Replica handoff recovers
  • 36. And that's by far not all: You can search through index with data locality. You can tag objects and query through 2i. You can add hooks.
  • 37. You don't even need to store anything. Just distribute your calculation, search, batch
  • 38. Have a look at tendita.com
  • 39. So it's even comfy to load your clown car with these
  • 41. 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