SlideShare a Scribd company logo
PostgreSQL
   High Availability & Scaling

John Paulett
October 26, 2009
Overview
     Scaling Overview
             –   Horizontal & Vertical Options
     High Availability Overview
     Other Options
     Suggested Architecture
     Hardware Discussion




10/26/2009                                       2
What are we trying to solve?
     Survive server failure?
             –   Support an uptime SLA (e.g. 99.9999%)?


     Application scaling?
             –   Support additional application demand




10/26/2009                                                3
What are we trying to solve?
     Survive server failure?
             –   Support an uptime SLA (e.g. 99.9999%)?


     Application scaling?
             –   Support additional application demand


     → Many options, each optimized for
     different constraints


10/26/2009                                                4
Scaling Overview




10/26/2009                      5
How To Scale
     Horizontal Scaling
             –   “Google” approach
             –   Distribute load across multiple servers
             –   Requires appropriate application architecture


     Vertical Scaling
             –   “Big Iron” approach
             –   Single, massive machine (lots of fast processors,
                 RAM, & hard drives)


10/26/2009                                                           6
Horizontal DB Scaling
     Load Balancing
             –   Distribute operations to multiple servers



     Partitioning
             –   Cut up the data (horizontal) or tables (vertical)
                 and put them on separate servers
             –   aka “sharding”




10/26/2009                                                           7
Basic Problem when Load
                     Balancing
     Difficult to maintain consistent state
     between servers (remember ACID),
     especially when dealing with writes


     4 PostgreSQL Load Balancing Methods:
             –   Master-Slave Replication
             –   Statement-Based Replication Middleware
             –   Asynchronous Multimaster Replication
             –   Synchronous Multimaster Replication


10/26/2009                                                8
Master-Slave Replication
     Master handles writes, slaves handle reads

     Asynchronous replication
             –   Possible data loss on master failure

     Slony-I
             –   Does not automatically propagate schema changes
             –   Does not offer single connection point
             –   Requires separate solution for master failures



10/26/2009                                                         9
Statement-Based Replication
             Middleware
     Intercept SQL queries, send writes to all
     servers, reads to any server


     Possible issues using random(),
     CURRENT_TIMESTAMP, & sequences


     pgpool-II
             –   Connection Pooling, Replication, Load Balancing,
                 Parallel Queries, Failover

10/26/2009                                                          10
pgpool-II




10/26/2009               11
Synchronous Multimaster
                   Replication
     Writes & reads on any server


     Not implemented in PostgreSQL, but
     application code can mimic via two-phase
     commit




10/26/2009                                  12
Load Balancing Issue
     Scaling writes breaks down at a certain
     point




10/26/2009                                     13
Partitioning
     Requires heavy application modification


     Performing queries across partitions is
     problematic (not possible)


     PL/Proxy can help




10/26/2009                                     14
Vertical DB Scaling
     “Buying a bigger box is quick(ish). Redesigning
     software is not.”
      ●      Cal Henderson, Flickr


     37 Signals Basecamp upgraded to 128 GB DB
     server: “don’t need to pay the complexity tax
     yet”
      ●      David Heinemeier Hansson, Ruby on Rails




10/26/2009                                             15
Sites Running on Single DB
     StackOverflow
             –   MS SQL, 48GB RAM, RAID 1 OS, RAID 10 for data


     37Signals Basecamp
             –   MySQL, 128GB RAM. Dell R710 or Dell 2950




10/26/2009                                                       16
High Availability Overview




10/26/2009                                17
High Availability
     Application still up even after node failure
             –   (Also try to prevent failure with appropriate
                 hardware)


     PostgreSQL High Availability Options
             –   pg-pool
             –   Shared Disk Failover
             –   File System Replication
             –   Warm Standby with Point-In-Time Recovery (PITR)
             Often still need heartbeat application

10/26/2009                                                         18
Shared Disk Failover
     Use single disk array to hold database's
     data files.
             –   Network Attached Storage (NAS)
             –   Network File System (NFS)


     Disk array is central point of failure


     Need heartbeat to bring 2nd server online

10/26/2009                                        19
File System Replication
     File system is mirrored to another
     computer


     DRDB
             –   Linux filesystem replication



     Need heartbeat to bring 2nd server online


10/26/2009                                       20
Point in Time Recovery
     “Log shipping”
             –   Write Ahead Logs sent to and replayed on standby
             –   Included in PostgreSQL 8.0+
             –   Asynchronous - Potential loss of data


     Warm Standby
             –   Standbys' hardware very similar to primary's
             –   Need heartbeat to bring 2nd server online



10/26/2009                                                      21
Heartbeat
     “STONITH” (Shoot the Other Node In The
     Head)
             –   Prevent multiple nodes thinking they are the
                 master


     Linux-HA
             –   Creates cluster, takes nodes out when they fail




10/26/2009                                                         22
Additional Options




10/26/2009                        23
Additional Options
     Tune PostgreSQL
             –   Defaults designed to “run anywhere”
             –   pgbench, VACUUM/ANALYZE


     Tune Queries
             –   EXPLAIN


     Caching (avoid the database)
             –   memcached
             –   Ehcache

10/26/2009                                             24
Radical Additional Options
     “NoSQL database
           ”
             –   CouchDB, MongoDB, HBase, Cassandra, Redis
             –   Document store
             –   Map/Reduce querying




10/26/2009                                                   25
Suggested Architecture




10/26/2009                            26
Current Production Setup
     DB and Web server on same machine
     No failover




10/26/2009                               27
Suggested Architecture
     2 nice machines
     Point in Time Recovery with Heartbeat
     Tune PostgreSQL
     Monitor & improve slow queries
     Add in Ehcache as we touch code


     → Leave horizontal scaling for another day


10/26/2009                                    28
Initial Architecture
     High Availability




10/26/2009                          29
Future Architecture
     Scale up application servers horizontally
     as needed
     Improve DB Hardware




10/26/2009                                       30
Hardware Options
     PostgreSQL typically constrained by RAM
     & Disk IO, not processor


     64-bit, as much memory as possible


     Data Array
             –   RAID10 with 4 drives (not RAID 5), 15k RPM
     Separate OS Drive / Array

10/26/2009                                                    31
Dell R710
     Processor: Xeon
     4x 15k HD in RAID10
     24GB (3x 8GB) RAM (up to 6x 16GB)
     =$6,905




10/26/2009                               32
Other Considerations
     Should have Test environment mimic
     Production
             –   Same database setup
             –   Provides environment for experimentation


     Can host multiple DBs on single cluster




10/26/2009                                                  33
References
   http://37signals.com/svn/posts/1509-mr-moore-gets-to-punt-on-sharding
   http://37signals.com/svn/posts/1819-basecamp-now-with-more-vroom
   http://anchor.com.au/hosting/dedicated/Tuning_PostgreSQL_on_your_Dedicated_S
   erver
   http://blogs.amd.co.at/robe/2009/05/testing-postgresql-replication-solutions-log-
   shipping-with-pg-standby.html
   http://blog.stackoverflow.com/2009/01/new-stack-overflow-servers-ready/
   http://developer.postgresql.org/pgdocs/postgres/high-availability.html
   http://developer.postgresql.org/pgdocs/postgres/pgbench.html
   https://developer.skype.com/SkypeGarage/DbProjects/PlProxy
   http://wiki.postgresql.org/wiki/Performance_Optimization
   http://www.postgresql.org/docs/8.4/static/warm-standby.html
   http://www.postgresql.org/files/documentation/books/aw_pgsql/hw_performance/
   http://www.slony.info/



10/26/2009                                                                             34
Additional Links
     http://ehcache.org/
     http://highscalability.com/skype-plans-postgresql-scale-1-billion-
     users
     http://www.25hoursaday.com/weblog/2009/01/16/BuildingScalable
     DatabasesProsAndConsOfVariousDatabaseShardingSchemes.aspx
     http://www.danga.com/memcached/
     http://www.mysqlperformanceblog.com/2009/08/06/why-you-dont-
     want-to-shard/
     http://www.slideshare.net/iamcal/scalable-web-architectures-
     common-patterns-and-approaches-web-20-expo-nyc-presentation




10/26/2009                                                                35
10/26/2009   36

More Related Content

PDF
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
PDF
PostgreSQL Replication High Availability Methods
PDF
5 Steps to PostgreSQL Performance
PDF
Linux tuning to improve PostgreSQL performance
PDF
Dbts2013 特濃jpoug log_file_sync
PDF
PostgreSQL replication
PDF
binary log と 2PC と Group Commit
PPTX
PostgreSQLのソース・ターゲットエンドポイントとしての利用
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
PostgreSQL Replication High Availability Methods
5 Steps to PostgreSQL Performance
Linux tuning to improve PostgreSQL performance
Dbts2013 特濃jpoug log_file_sync
PostgreSQL replication
binary log と 2PC と Group Commit
PostgreSQLのソース・ターゲットエンドポイントとしての利用

What's hot (20)

PDF
PostgreSQL HA
PDF
Configure Golden Gate Initial Load and Change Sync
PPTX
Seamless replication and disaster recovery for Apache Hive Warehouse
PPTX
Automating a PostgreSQL High Availability Architecture with Ansible
 
PDF
MySQL/MariaDB Proxy Software Test
PDF
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
PDF
Always on 可用性グループ 構築時のポイント
PDF
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
PDF
Linux Synchronization Mechanism: RCU (Read Copy Update)
PDF
Improving Python and Spark Performance and Interoperability with Apache Arrow...
PDF
PostgreSQL and Benchmarks
PPTX
Kafka replication apachecon_2013
PDF
ClickHouse Materialized Views: The Magic Continues
PDF
Best Practices for Becoming an Exceptional Postgres DBA
 
PDF
Best Practices of running PostgreSQL in Virtual Environments
PDF
Stumbling stones when migrating from Oracle
 
PPTX
MySQL_MariaDB로의_전환_기술요소-202212.pptx
PPTX
Scylla on Kubernetes: Introducing the Scylla Operator
PPTX
Introduction to SQL Server Internals: How to Think Like the Engine
PDF
PostgreSQL Query Cache - "pqc"
PostgreSQL HA
Configure Golden Gate Initial Load and Change Sync
Seamless replication and disaster recovery for Apache Hive Warehouse
Automating a PostgreSQL High Availability Architecture with Ansible
 
MySQL/MariaDB Proxy Software Test
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
Always on 可用性グループ 構築時のポイント
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Linux Synchronization Mechanism: RCU (Read Copy Update)
Improving Python and Spark Performance and Interoperability with Apache Arrow...
PostgreSQL and Benchmarks
Kafka replication apachecon_2013
ClickHouse Materialized Views: The Magic Continues
Best Practices for Becoming an Exceptional Postgres DBA
 
Best Practices of running PostgreSQL in Virtual Environments
Stumbling stones when migrating from Oracle
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
Scylla on Kubernetes: Introducing the Scylla Operator
Introduction to SQL Server Internals: How to Think Like the Engine
PostgreSQL Query Cache - "pqc"
Ad

Viewers also liked (20)

PDF
Building Hybrid data cluster using PostgreSQL and MongoDB
PDF
plProxy, pgBouncer, pgBalancer
PDF
Scaling postgres
ODP
PostgreSQL Replication in 10 Minutes - SCALE
PDF
Geographically Distributed PostgreSQL
KEY
PostgreSQL
ODP
Pro PostgreSQL, OSCon 2008
PPT
Building a Spatial Database in PostgreSQL
PDF
Advanced Postgres Monitoring
PDF
Postgres in Amazon RDS
PDF
My experience with embedding PostgreSQL
PDF
Android & PostgreSQL
PDF
Why use PostgreSQL?
PDF
PostgreSQL Hooks for Fun and Profit
PDF
PostgreSQL and RAM usage
PDF
Get to know PostgreSQL!
PDF
PostgreSQL Performance Tuning
PDF
Data Processing Inside PostgreSQL
 
PDF
Really Big Elephants: PostgreSQL DW
PDF
Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Building Hybrid data cluster using PostgreSQL and MongoDB
plProxy, pgBouncer, pgBalancer
Scaling postgres
PostgreSQL Replication in 10 Minutes - SCALE
Geographically Distributed PostgreSQL
PostgreSQL
Pro PostgreSQL, OSCon 2008
Building a Spatial Database in PostgreSQL
Advanced Postgres Monitoring
Postgres in Amazon RDS
My experience with embedding PostgreSQL
Android & PostgreSQL
Why use PostgreSQL?
PostgreSQL Hooks for Fun and Profit
PostgreSQL and RAM usage
Get to know PostgreSQL!
PostgreSQL Performance Tuning
Data Processing Inside PostgreSQL
 
Really Big Elephants: PostgreSQL DW
Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Ad

Similar to PostgreSQL Scaling And Failover (20)

PDF
RAMCloud: Scalable Datacenter Storage Entirely in DRAM
PPTX
Presentation db2 best practices for optimal performance
PDF
Postgres-XC: Symmetric PostgreSQL Cluster
PDF
Presentation db2 best practices for optimal performance
PDF
PDF
Oracle rac 10g best practices
PDF
We4IT lcty 2013 - infra-man - domino run faster
PPTX
How swift is your Swift - SD.pptx
PPTX
Storage and performance- Batch processing, Whiptail
PDF
Bigtable and Dynamo
PDF
NDH2k12 Cloud Computing Security
PPTX
Sql saturday dc vm ware
PDF
Gluster for Geeks: Performance Tuning Tips & Tricks
PDF
Linux Huge Pages
PPTX
Serve like a boss (part one)
PDF
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
 
PDF
Virtualization overheads
PDF
A27 Vectorwise Performance Considerations_implementation_best_practices
PPTX
Scalability
PDF
02.28.13 WANdisco ApacheCon 2013
RAMCloud: Scalable Datacenter Storage Entirely in DRAM
Presentation db2 best practices for optimal performance
Postgres-XC: Symmetric PostgreSQL Cluster
Presentation db2 best practices for optimal performance
Oracle rac 10g best practices
We4IT lcty 2013 - infra-man - domino run faster
How swift is your Swift - SD.pptx
Storage and performance- Batch processing, Whiptail
Bigtable and Dynamo
NDH2k12 Cloud Computing Security
Sql saturday dc vm ware
Gluster for Geeks: Performance Tuning Tips & Tricks
Linux Huge Pages
Serve like a boss (part one)
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
 
Virtualization overheads
A27 Vectorwise Performance Considerations_implementation_best_practices
Scalability
02.28.13 WANdisco ApacheCon 2013

More from John Paulett (8)

PDF
GeoDjango & HTML5 Geolocation
PDF
XNAT Case Study: DIAN QC Uploader
PDF
XNAT Open Source Development
PDF
XNAT Tuning & Monitoring
PDF
Mercurial: Modern Source Control Management
PDF
Drools
PDF
Automated Testing
PDF
Getting Started with (Distributed) Version Control
GeoDjango & HTML5 Geolocation
XNAT Case Study: DIAN QC Uploader
XNAT Open Source Development
XNAT Tuning & Monitoring
Mercurial: Modern Source Control Management
Drools
Automated Testing
Getting Started with (Distributed) Version Control

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Sensors and Actuators in IoT Systems using pdf
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 2 Digital Image Fundamentals.pdf
PDF
Advanced IT Governance
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Transforming Manufacturing operations through Intelligent Integrations
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Understanding_Digital_Forensics_Presentation.pptx
Sensors and Actuators in IoT Systems using pdf
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 2 Digital Image Fundamentals.pdf
Advanced IT Governance
Advanced Soft Computing BINUS July 2025.pdf
Electronic commerce courselecture one. Pdf
Transforming Manufacturing operations through Intelligent Integrations
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Review of recent advances in non-invasive hemoglobin estimation
MYSQL Presentation for SQL database connectivity
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Reach Out and Touch Someone: Haptics and Empathic Computing

PostgreSQL Scaling And Failover

  • 1. PostgreSQL High Availability & Scaling John Paulett October 26, 2009
  • 2. Overview Scaling Overview – Horizontal & Vertical Options High Availability Overview Other Options Suggested Architecture Hardware Discussion 10/26/2009 2
  • 3. What are we trying to solve? Survive server failure? – Support an uptime SLA (e.g. 99.9999%)? Application scaling? – Support additional application demand 10/26/2009 3
  • 4. What are we trying to solve? Survive server failure? – Support an uptime SLA (e.g. 99.9999%)? Application scaling? – Support additional application demand → Many options, each optimized for different constraints 10/26/2009 4
  • 6. How To Scale Horizontal Scaling – “Google” approach – Distribute load across multiple servers – Requires appropriate application architecture Vertical Scaling – “Big Iron” approach – Single, massive machine (lots of fast processors, RAM, & hard drives) 10/26/2009 6
  • 7. Horizontal DB Scaling Load Balancing – Distribute operations to multiple servers Partitioning – Cut up the data (horizontal) or tables (vertical) and put them on separate servers – aka “sharding” 10/26/2009 7
  • 8. Basic Problem when Load Balancing Difficult to maintain consistent state between servers (remember ACID), especially when dealing with writes 4 PostgreSQL Load Balancing Methods: – Master-Slave Replication – Statement-Based Replication Middleware – Asynchronous Multimaster Replication – Synchronous Multimaster Replication 10/26/2009 8
  • 9. Master-Slave Replication Master handles writes, slaves handle reads Asynchronous replication – Possible data loss on master failure Slony-I – Does not automatically propagate schema changes – Does not offer single connection point – Requires separate solution for master failures 10/26/2009 9
  • 10. Statement-Based Replication Middleware Intercept SQL queries, send writes to all servers, reads to any server Possible issues using random(), CURRENT_TIMESTAMP, & sequences pgpool-II – Connection Pooling, Replication, Load Balancing, Parallel Queries, Failover 10/26/2009 10
  • 12. Synchronous Multimaster Replication Writes & reads on any server Not implemented in PostgreSQL, but application code can mimic via two-phase commit 10/26/2009 12
  • 13. Load Balancing Issue Scaling writes breaks down at a certain point 10/26/2009 13
  • 14. Partitioning Requires heavy application modification Performing queries across partitions is problematic (not possible) PL/Proxy can help 10/26/2009 14
  • 15. Vertical DB Scaling “Buying a bigger box is quick(ish). Redesigning software is not.” ● Cal Henderson, Flickr 37 Signals Basecamp upgraded to 128 GB DB server: “don’t need to pay the complexity tax yet” ● David Heinemeier Hansson, Ruby on Rails 10/26/2009 15
  • 16. Sites Running on Single DB StackOverflow – MS SQL, 48GB RAM, RAID 1 OS, RAID 10 for data 37Signals Basecamp – MySQL, 128GB RAM. Dell R710 or Dell 2950 10/26/2009 16
  • 18. High Availability Application still up even after node failure – (Also try to prevent failure with appropriate hardware) PostgreSQL High Availability Options – pg-pool – Shared Disk Failover – File System Replication – Warm Standby with Point-In-Time Recovery (PITR) Often still need heartbeat application 10/26/2009 18
  • 19. Shared Disk Failover Use single disk array to hold database's data files. – Network Attached Storage (NAS) – Network File System (NFS) Disk array is central point of failure Need heartbeat to bring 2nd server online 10/26/2009 19
  • 20. File System Replication File system is mirrored to another computer DRDB – Linux filesystem replication Need heartbeat to bring 2nd server online 10/26/2009 20
  • 21. Point in Time Recovery “Log shipping” – Write Ahead Logs sent to and replayed on standby – Included in PostgreSQL 8.0+ – Asynchronous - Potential loss of data Warm Standby – Standbys' hardware very similar to primary's – Need heartbeat to bring 2nd server online 10/26/2009 21
  • 22. Heartbeat “STONITH” (Shoot the Other Node In The Head) – Prevent multiple nodes thinking they are the master Linux-HA – Creates cluster, takes nodes out when they fail 10/26/2009 22
  • 24. Additional Options Tune PostgreSQL – Defaults designed to “run anywhere” – pgbench, VACUUM/ANALYZE Tune Queries – EXPLAIN Caching (avoid the database) – memcached – Ehcache 10/26/2009 24
  • 25. Radical Additional Options “NoSQL database ” – CouchDB, MongoDB, HBase, Cassandra, Redis – Document store – Map/Reduce querying 10/26/2009 25
  • 27. Current Production Setup DB and Web server on same machine No failover 10/26/2009 27
  • 28. Suggested Architecture 2 nice machines Point in Time Recovery with Heartbeat Tune PostgreSQL Monitor & improve slow queries Add in Ehcache as we touch code → Leave horizontal scaling for another day 10/26/2009 28
  • 29. Initial Architecture High Availability 10/26/2009 29
  • 30. Future Architecture Scale up application servers horizontally as needed Improve DB Hardware 10/26/2009 30
  • 31. Hardware Options PostgreSQL typically constrained by RAM & Disk IO, not processor 64-bit, as much memory as possible Data Array – RAID10 with 4 drives (not RAID 5), 15k RPM Separate OS Drive / Array 10/26/2009 31
  • 32. Dell R710 Processor: Xeon 4x 15k HD in RAID10 24GB (3x 8GB) RAM (up to 6x 16GB) =$6,905 10/26/2009 32
  • 33. Other Considerations Should have Test environment mimic Production – Same database setup – Provides environment for experimentation Can host multiple DBs on single cluster 10/26/2009 33
  • 34. References http://37signals.com/svn/posts/1509-mr-moore-gets-to-punt-on-sharding http://37signals.com/svn/posts/1819-basecamp-now-with-more-vroom http://anchor.com.au/hosting/dedicated/Tuning_PostgreSQL_on_your_Dedicated_S erver http://blogs.amd.co.at/robe/2009/05/testing-postgresql-replication-solutions-log- shipping-with-pg-standby.html http://blog.stackoverflow.com/2009/01/new-stack-overflow-servers-ready/ http://developer.postgresql.org/pgdocs/postgres/high-availability.html http://developer.postgresql.org/pgdocs/postgres/pgbench.html https://developer.skype.com/SkypeGarage/DbProjects/PlProxy http://wiki.postgresql.org/wiki/Performance_Optimization http://www.postgresql.org/docs/8.4/static/warm-standby.html http://www.postgresql.org/files/documentation/books/aw_pgsql/hw_performance/ http://www.slony.info/ 10/26/2009 34
  • 35. Additional Links http://ehcache.org/ http://highscalability.com/skype-plans-postgresql-scale-1-billion- users http://www.25hoursaday.com/weblog/2009/01/16/BuildingScalable DatabasesProsAndConsOfVariousDatabaseShardingSchemes.aspx http://www.danga.com/memcached/ http://www.mysqlperformanceblog.com/2009/08/06/why-you-dont- want-to-shard/ http://www.slideshare.net/iamcal/scalable-web-architectures- common-patterns-and-approaches-web-20-expo-nyc-presentation 10/26/2009 35