Database Scalability Patterns

1 month ago

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Do you like this presentation?

No comments yet

Post a comment

    Login or Signup to post a comment
    Login to SlideShare
    Login to Twitter
    Edit your comment Cancel

    11 Favorites

    Database Scalability Patterns - Presentation Transcript

    1. Database Scalability {Patterns} / Robert Treat Wednesday, July 21, 2010
    2. robert treat omniti Wednesday, July 21, 2010
    3. robert treat omniti postgres Wednesday, July 21, 2010
    4. robert treat omniti postgres oracle - mysql Wednesday, July 21, 2010
    5. robert treat omniti postgres oracle - mysql mssql - sqlite - nosql Wednesday, July 21, 2010
    6. What are “Database Scalability Patterns?” Wednesday, July 21, 2010
    7. Part Design Patterns Part Application Life-Cycle Wednesday, July 21, 2010
    8. Part Design Patterns Part Application Life-Cycle Wednesday, July 21, 2010
    9. Part Design Patterns Part Application Life-Cycle Wednesday, July 21, 2010
    10. Part Design Patterns Part Application Life-Cycle Wednesday, July 21, 2010
    11. MyFirstDatabase Wednesday, July 21, 2010
    12. Vertical Partitioning Wednesday, July 21, 2010
    13. Vertical Scaling Wednesday, July 21, 2010
    14. Vertical Scaling Wednesday, July 21, 2010
    15. Vertical Scaling Wednesday, July 21, 2010
    16. Federated Data Storage “sharding” Horizontal Partitioning Read Slaves Multi-Master Horizontal Scaling Wednesday, July 21, 2010
    17. Read Slaves / Master - Slave Scale Read Load Wednesday, July 21, 2010
    18. Read Slaves / Master - Slave Scale Read Load writes go here! Wednesday, July 21, 2010
    19. Read Slaves / Master - Slave Scale Read Load writes go here! reads go here (or here) (or here) Wednesday, July 21, 2010
    20. Read Slaves / Master - Slave Scale Read Load database writes data to slaves writes go here! slave db slave db slave db reads go here (or here) (or here) Wednesday, July 21, 2010
    21. Read Slaves / Master - Slave Scale Read Load app writes data everywhere writes go here! memcached memcached memcached reads go here (or here) (or here) Wednesday, July 21, 2010
    22. Read Slaves / Master - Slave Scale Read Load • Typically • Full Copy of Data On Each Node • Asynchronous Wednesday, July 21, 2010
    23. Read Slaves / Master - Slave Scale Read Load • Typically • Consider • Full Copy of Data • Partial Copy On Each Node • Synchronous • Asynchronous • Don’t use a RDBMS? Wednesday, July 21, 2010
    24. Read Slaves / Master - Slave Scale Read Load • Typically • Consider • Full Copy of Data • Partial Copy On Each Node • Synchronous • Asynchronous • Don’t use a RDBMS? Requires Application Changes Wednesday, July 21, 2010
    25. Read Slaves / Master - Slave Scale Read Load • Typically • Consider • Full Copy of Data • Partial Copy On Each Node • Synchronous • Asynchronous • Don’t use a RDBMS? Requires Application Changes “easy” Wednesday, July 21, 2010
    26. Scaling Writes Wednesday, July 21, 2010
    27. Scaling Writes “not easy” Wednesday, July 21, 2010
    28. Multi-Master many different ways to implement this, few that actually work in production Wednesday, July 21, 2010
    29. Multi-Master many different ways to implement this, few that actually work in production write to any node, database syncs data Wednesday, July 21, 2010
    30. Multi-Master many different ways to implement this, few that actually work in production write to any node, database syncs data can reduce cpu, doesn’t reduce i/o Wednesday, July 21, 2010
    31. Multi-Master many different ways to implement this, few that actually work in production write to any node, database syncs data can reduce cpu, doesn’t reduce i/o failover solution not a scalability solution Wednesday, July 21, 2010
    32. Horizontal Partitioning “sharding” “SOA” Wednesday, July 21, 2010
    33. Horizontal Partitioning “sharding” “SOA” Wednesday, July 21, 2010
    34. Horizontal Partitioning • Divide schema by job operations • Move each piece to own server • Duplicate some data as needed Wednesday, July 21, 2010
    35. Horizontal Partitioning items • Divide schema by job operations • Move each piece to own server • Duplicate some data as needed forums users Wednesday, July 21, 2010
    36. Horizontal Partitioning items • Divide schema by job operations • Move each piece to own server • Duplicate some data as needed forums • You must separate dependencies in the app code first! users Wednesday, July 21, 2010
    37. Horizontal Partitioning items • Divide schema by job operations • Move each piece to own server • Duplicate some data as needed forums • You must separate dependencies in the app code first! users Each node is a new instance of vertical scaling Wednesday, July 21, 2010
    38. Horizontal Scaling • data split across servers based on algorithm • data dropped into buckets (multiple?) app magic hash algorithm Wednesday, July 21, 2010
    39. Horizontal Scaling • data split across servers based on algorithm • data dropped into buckets (multiple?) magic hash algorithm app Wednesday, July 21, 2010
    40. Horizontal Scaling • data split across servers based on algorithm • data dropped into buckets (multiple?) •someone must keep track of data, and provide lookup services magic hash algorithm app Wednesday, July 21, 2010
    41. Universal Truths of Scaling Databases Vertical Scalability is Helpful for Every Pattern Even in a horizontally scaled, fully distributed database, the number of nodes needed is affected by vertical scalability Wednesday, July 21, 2010
    42. Universal Truths of Scaling Databases New Nodes Are Never Free • Add points of failure • Add management costs • Add complexity to architecture • Add complexity to your app code Wednesday, July 21, 2010
    43. MyFirstDB V Vertical Partitioning V Vertical Scaling V Read Slaves V Horizontal Partitioning Wednesday, July 21, 2010
    44. tips Wednesday, July 21, 2010
    45. tips plan for layered data sources Wednesday, July 21, 2010
    46. tips plan for layered data sources read / write connections in code Wednesday, July 21, 2010
    47. tips plan for layered data sources read / write connections in code use schemas to separate services Wednesday, July 21, 2010
    48. THANKS! more: xzilla.net @robtreat2 omniti.com/surge (scalability conference) Wednesday, July 21, 2010

    Robert TreatRobert Treat + Follow

    1194 views, 11 favs, 1 embed more

    About this presentation

    Usage Rights

    © All Rights Reserved

    Stats

    • 11 Favorites
    • 0 Comments
    • 0 Downloads
    • 1,192 Views on
      SlideShare
    • 2 Views on
      Embeds
    • 1,194 Total Views

    Embed views

    • 2 views on http://www.xzilla.net

    more

    Embed views

    • 2 views on http://www.xzilla.net

    less

    Accessibility

    Additional Details

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint

    Follow SlideShare