SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Databases suck for Messaging
          Alexis Richardson


      Oxford Geek Night May 2009




                  1
Computers were
meant to get rid
of this




                   2
A new kind of fail?




                      3
Solution - use a database?




    4
Databases were
meant to get rid
of this too




                   5
I want to know
when THIS
changes




                 6
Problem - databases suck for messaging


     DATA is facts (“state”) persisted on disk

     Databases are great for storing facts and asking questions about them

     If you know what to ask them and are willing to keep asking them



     INFORMATION is always changing

     Networks are great pushing changes (“messages”) to recipients

     Databases are not optimised for this




                                         7
Social applications store data




                                 8
Social applications store data




And there’s terabytes of it


                                 9
Social applications store data




And there’s terabytes of it

      Enterprises are made of people too
          So: the same issues arise
                                 10
I want to know
when THIS
changes




                 11
Email doesn’t scale




                      12
Information gets old - real quick




                                    13
But current
information is
valuable




                 14
Example: Flickr


     Flickr is a vast database of social objects

     Filtered by interest and relationships

     So - tell me what’s currently relevant

     Without sending me more emails....




                                          15
Polling sucks




                16
What’s going on here? We are trapped in the database world view




                   Example due to Brett Slatkin and Brad Fitzpatrick at Google
                  http://code.google.com/p/pubsubhubbub/wiki/WhyPollingSucks

                                                  17
How do we defeat this evil?




                              18
Can we apply the Hollywood Principle?




                                  19
Can we apply the Hollywood Principle?




         Hint: phone calls and SMS don’t
            travel through databases

                                  20
Email push is direct




                       to:blaine
           alexis       “blah”     blaine




                             21
Email push is direct




                       to:blaine
           alexis       “blah”     blaine
                        “blah”
                        “blah”
                        “blah”
                        “blah”



                             22
Polling is just reverse spam




                               to:alexis
           alexis                 “?”      blaine
                                  “?”
                                  “?”
                                  “?”
                                  “?”



                                     23
Publishing to a queue (“topic”) takes the spam burden off the receiver




           alexis                                          blaine

          PUSH                                              PUSH
                     auth                          filter
                    “blah”“blah”“blah”“blah”“blah”
                            topic: “from alexis”

                                     24
And you can use pubsub and queues in all sorts of ways




                                   25
Databases are not meant to do Pubsub
        SELECT * FROM queue WHERE done = 0 ORDER BY created LIMIT 1




                                      26
A true story


     most people would just create a simple "queue" table

     and: SELECT * FROM queue WHERE done = 0 ORDER BY created LIMIT 1

     “concurrency issues on that thing now - inserting into the queue occasionally takes
     longer than doing the task that needs to be executed synchronously”

     “middle management did not want to have "new third party software" because it
     would be too much Operations to learn and manage”

     so they decided for the time being a MySQL based queue would be sufficient (only
     few million messages/day) and implemented it in PHP/MySQL resulting in lots of dev
     hours for implementation / testing, and more hours because of performance issues ..

     so i think we have spent about the same amount of time as we would to get a
     descent thing up and running, but now we're stuck with a lame and unscalable mysql
     database machines that is dressed as a message broker


                                            27
Flickr from a Pubsub point of view


     Flickr = people publishing to a vast set of streams (photostreams)

     Users express interest through subscription

     I don’t need to see everything - only changes on what I follow



     This seems better - but what’s missing?
     - I am still trapped by the database world view.
     - I still poll for changes (that’s what RSS does)
     - I want the PUSH that email gave me, without the spam.....




                                          28
Characteristics of PUBSUB


    A means of authenticated communication (network transport)
     - eg HTTP, OAuth

    An addressable place to publish to
     - Usually a topic, feed, endpoint or address.

    A way to name, enrol, share, and discover these addressable places
     - For example “blaine@twitter.com” or - TBD!

    A way to deliver and ack delivery (or “take responsibility”)

    The above is in fact a distributed object system




                                               29
How do you solve a problem like Flickr/Twitter/...

                                        Database              Pubsub/MQ
                                      Objects serialised as   Messages organised
                      Data
                                        rows in tables          into streams


                    Interest            Filter by query        Durable “follow”


                                               Pull
                  Notification                                       Push
                                        (polling sucks!)

                  Buffering    Put = add row to table         PUT and GET are
              (non-idempotent) Get = delete top row             symmetric

                                      Overheads tend to       Data flows out to
                     Scale
                                       grow indefinitely         destinations

                                            30
You might need messaging if ... you need to monitor data feeds




                                                    (CC) Kishore Nagarigari



                                    31
You might need messaging if ... you need a message delivered responsibly




                                   32
You might need messaging if ... you need things done in order




                                                     (CC) David Mach


                                    33
You might need messaging if ... you are using the cloud




                                    34
Thank you!
RabbitMQ is a messaging server that just works!




                  Im in yr serverz,
                  queueing yr messagez
                   Photo credit: http://flickr.com/photos/53366513@N00/67046506/

                                              35                                   copyright (c) Rabbit Technologies Ltd.

Mais conteúdo relacionado

Semelhante a Databases aren't optimized for messaging - A case for pub/sub queues

Social media & sentiment analysis splunk conf2012
Social media & sentiment analysis   splunk conf2012Social media & sentiment analysis   splunk conf2012
Social media & sentiment analysis splunk conf2012Michael Wilde
 
Tim Estes - Generating dynamic social networks from large scale unstructured ...
Tim Estes - Generating dynamic social networks from large scale unstructured ...Tim Estes - Generating dynamic social networks from large scale unstructured ...
Tim Estes - Generating dynamic social networks from large scale unstructured ...Digital Reasoning
 
Information Architecture 3.0 (Second Life)
Information Architecture 3.0 (Second Life)Information Architecture 3.0 (Second Life)
Information Architecture 3.0 (Second Life)Peter Morville
 
Gareth millwood interrogating the archived uk web
Gareth millwood   interrogating the archived uk webGareth millwood   interrogating the archived uk web
Gareth millwood interrogating the archived uk webDigital History
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic WebGIS Colorado
 
Systems that learn and reason | Frank Van Harmelen
Systems that learn and reason | Frank Van HarmelenSystems that learn and reason | Frank Van Harmelen
Systems that learn and reason | Frank Van HarmelenConnected Data World
 
Sharing Data Across Memory Institutions
Sharing Data Across Memory InstitutionsSharing Data Across Memory Institutions
Sharing Data Across Memory InstitutionsDavid Newbury
 
Developmental Psychology Theoretical Approaches Essay
 Developmental Psychology Theoretical Approaches Essay Developmental Psychology Theoretical Approaches Essay
Developmental Psychology Theoretical Approaches EssayPatty Buckley
 

Semelhante a Databases aren't optimized for messaging - A case for pub/sub queues (12)

Social media & sentiment analysis splunk conf2012
Social media & sentiment analysis   splunk conf2012Social media & sentiment analysis   splunk conf2012
Social media & sentiment analysis splunk conf2012
 
Tim Estes - Generating dynamic social networks from large scale unstructured ...
Tim Estes - Generating dynamic social networks from large scale unstructured ...Tim Estes - Generating dynamic social networks from large scale unstructured ...
Tim Estes - Generating dynamic social networks from large scale unstructured ...
 
Tutorial
TutorialTutorial
Tutorial
 
Information Architecture 3.0 (Second Life)
Information Architecture 3.0 (Second Life)Information Architecture 3.0 (Second Life)
Information Architecture 3.0 (Second Life)
 
Gareth millwood interrogating the archived uk web
Gareth millwood   interrogating the archived uk webGareth millwood   interrogating the archived uk web
Gareth millwood interrogating the archived uk web
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic Web
 
Secular Technological Tailwinds
Secular Technological TailwindsSecular Technological Tailwinds
Secular Technological Tailwinds
 
Systems that learn and reason | Frank Van Harmelen
Systems that learn and reason | Frank Van HarmelenSystems that learn and reason | Frank Van Harmelen
Systems that learn and reason | Frank Van Harmelen
 
Sharing Data Across Memory Institutions
Sharing Data Across Memory InstitutionsSharing Data Across Memory Institutions
Sharing Data Across Memory Institutions
 
Developmental Psychology Theoretical Approaches Essay
 Developmental Psychology Theoretical Approaches Essay Developmental Psychology Theoretical Approaches Essay
Developmental Psychology Theoretical Approaches Essay
 
Breaking the catalog
Breaking the catalogBreaking the catalog
Breaking the catalog
 
Big Data
Big DataBig Data
Big Data
 

Último

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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 RobisonAnna Loughnan Colquhoun
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Último (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Databases aren't optimized for messaging - A case for pub/sub queues

  • 1. Databases suck for Messaging Alexis Richardson Oxford Geek Night May 2009 1
  • 2. Computers were meant to get rid of this 2
  • 3. A new kind of fail? 3
  • 4. Solution - use a database? 4
  • 5. Databases were meant to get rid of this too 5
  • 6. I want to know when THIS changes 6
  • 7. Problem - databases suck for messaging DATA is facts (“state”) persisted on disk Databases are great for storing facts and asking questions about them If you know what to ask them and are willing to keep asking them INFORMATION is always changing Networks are great pushing changes (“messages”) to recipients Databases are not optimised for this 7
  • 9. Social applications store data And there’s terabytes of it 9
  • 10. Social applications store data And there’s terabytes of it Enterprises are made of people too So: the same issues arise 10
  • 11. I want to know when THIS changes 11
  • 13. Information gets old - real quick 13
  • 15. Example: Flickr Flickr is a vast database of social objects Filtered by interest and relationships So - tell me what’s currently relevant Without sending me more emails.... 15
  • 17. What’s going on here? We are trapped in the database world view Example due to Brett Slatkin and Brad Fitzpatrick at Google http://code.google.com/p/pubsubhubbub/wiki/WhyPollingSucks 17
  • 18. How do we defeat this evil? 18
  • 19. Can we apply the Hollywood Principle? 19
  • 20. Can we apply the Hollywood Principle? Hint: phone calls and SMS don’t travel through databases 20
  • 21. Email push is direct to:blaine alexis “blah” blaine 21
  • 22. Email push is direct to:blaine alexis “blah” blaine “blah” “blah” “blah” “blah” 22
  • 23. Polling is just reverse spam to:alexis alexis “?” blaine “?” “?” “?” “?” 23
  • 24. Publishing to a queue (“topic”) takes the spam burden off the receiver alexis blaine PUSH PUSH auth filter “blah”“blah”“blah”“blah”“blah” topic: “from alexis” 24
  • 25. And you can use pubsub and queues in all sorts of ways 25
  • 26. Databases are not meant to do Pubsub SELECT * FROM queue WHERE done = 0 ORDER BY created LIMIT 1 26
  • 27. A true story most people would just create a simple "queue" table and: SELECT * FROM queue WHERE done = 0 ORDER BY created LIMIT 1 “concurrency issues on that thing now - inserting into the queue occasionally takes longer than doing the task that needs to be executed synchronously” “middle management did not want to have "new third party software" because it would be too much Operations to learn and manage” so they decided for the time being a MySQL based queue would be sufficient (only few million messages/day) and implemented it in PHP/MySQL resulting in lots of dev hours for implementation / testing, and more hours because of performance issues .. so i think we have spent about the same amount of time as we would to get a descent thing up and running, but now we're stuck with a lame and unscalable mysql database machines that is dressed as a message broker 27
  • 28. Flickr from a Pubsub point of view Flickr = people publishing to a vast set of streams (photostreams) Users express interest through subscription I don’t need to see everything - only changes on what I follow This seems better - but what’s missing? - I am still trapped by the database world view. - I still poll for changes (that’s what RSS does) - I want the PUSH that email gave me, without the spam..... 28
  • 29. Characteristics of PUBSUB A means of authenticated communication (network transport) - eg HTTP, OAuth An addressable place to publish to - Usually a topic, feed, endpoint or address. A way to name, enrol, share, and discover these addressable places - For example “blaine@twitter.com” or - TBD! A way to deliver and ack delivery (or “take responsibility”) The above is in fact a distributed object system 29
  • 30. How do you solve a problem like Flickr/Twitter/... Database Pubsub/MQ Objects serialised as Messages organised Data rows in tables into streams Interest Filter by query Durable “follow” Pull Notification Push (polling sucks!) Buffering Put = add row to table PUT and GET are (non-idempotent) Get = delete top row symmetric Overheads tend to Data flows out to Scale grow indefinitely destinations 30
  • 31. You might need messaging if ... you need to monitor data feeds (CC) Kishore Nagarigari 31
  • 32. You might need messaging if ... you need a message delivered responsibly 32
  • 33. You might need messaging if ... you need things done in order (CC) David Mach 33
  • 34. You might need messaging if ... you are using the cloud 34
  • 35. Thank you! RabbitMQ is a messaging server that just works! Im in yr serverz, queueing yr messagez Photo credit: http://flickr.com/photos/53366513@N00/67046506/ 35 copyright (c) Rabbit Technologies Ltd.