SlideShare a Scribd company logo
/
Scaling Postgres
Denish Patel
Database Architect
https://twitter.com/DenishPatel
Wednesday, September 18, 13
1
Wednesday, September 18, 13
OmniTI
1
Wednesday, September 18, 13
OmniTI
1
• Helping customers
navigate explosive growth
with technology.
Wednesday, September 18, 13
OmniTI
1
• Helping customers
navigate explosive growth
with technology.
100MM+ users
$1B+ gross online sales
Wednesday, September 18, 13
OmniTI
1
• Helping customers
navigate explosive growth
with technology.
100MM+ users
$1B+ gross online sales
Open and closed source thought leaders,
experts and authors
Wednesday, September 18, 13
OmniTI
1
• Helping customers
navigate explosive growth
with technology.
100MM+ users
$1B+ gross online sales
Open and closed source thought leaders,
experts and authors
Wednesday, September 18, 13
2
Wednesday, September 18, 13
Talk Outline
2
Wednesday, September 18, 13
Talk Outline
• Scalability
• Database Scaling needs, costs, methods
• Scaling Postgres
• Vertically
• Horizontally
• Obstacles to Scalability
• Beyond Postgres
2
Wednesday, September 18, 13
3
Wednesday, September 18, 13
What is Scalability?
3
Wednesday, September 18, 13
What is Scalability?
3
A service is said to be scalable if when we
increase the resources in a system, it results in
increased performance in a manner proportional
to resources added.
Wednesday, September 18, 13
4
Wednesday, September 18, 13
Why to scale databases?
4
Wednesday, September 18, 13
Why to scale databases?
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Provide better performance for existing users
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Provide better performance for existing users
• Store a larger volume of data
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Provide better performance for existing users
• Store a larger volume of data
• Improve system availability
• Support a higher volume of users
4
Wednesday, September 18, 13
Why to scale databases?
• Provide better performance for existing users
• Store a larger volume of data
• Improve system availability
• Geographic dispersion
• Support a higher volume of users
4
Wednesday, September 18, 13
5
Wednesday, September 18, 13
Why is database scalability so hard?
5
Wednesday, September 18, 13
Why is database scalability so hard?
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
• Consistency
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
• Consistency
• Speed
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
• Consistency
• Speed
• Cost
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
• Consistency
• Speed
• Cost
• Cost of hardware
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
• Consistency
• Speed
• Cost
• Cost of hardware
• Cost deployment effort
5
Wednesday, September 18, 13
Why is database scalability so hard?
• Search
• Concurrency
• Consistency
• Speed
• Cost
• Cost of hardware
• Cost deployment effort
• Cost Ongoing maintenance
5
Wednesday, September 18, 13
6
Wednesday, September 18, 13
Scaling Needs & Methods
6
Wednesday, September 18, 13
Scaling Needs & Methods
6
Wednesday, September 18, 13
Scaling Needs & Methods
• Data growth
6
Wednesday, September 18, 13
Scaling Needs & Methods
• Data growth
• Read requests
6
Wednesday, September 18, 13
Scaling Needs & Methods
• Data growth
• Read requests
• Write requests
6
Wednesday, September 18, 13
Scaling Needs & Methods
• Data growth
• Read requests
• Write requests
• Vertical Scaling
• Horizontal Scaling
6
Wednesday, September 18, 13
Scaling Needs & Methods
• Data growth
• Read requests
• Write requests
• Vertical Scaling
• Horizontal Scaling
6
Wednesday, September 18, 13
Scaling Needs & Methods
• Data growth
• Read requests
• Write requests
• Vertical Scaling
• Horizontal Scaling
6
Wednesday, September 18, 13
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
• Pros
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
• Pros
• Simple to implement
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
• Pros
• Simple to implement
• Ease of maintenance
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
• Pros
• Simple to implement
• Ease of maintenance
• Cons
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
• Pros
• Simple to implement
• Ease of maintenance
• Cons
• Cost of hardware
7
Wednesday, September 18, 13
Vertical Scaling (Scale up)
• Pros
• Simple to implement
• Ease of maintenance
• Cons
• Cost of hardware
• Sometimes SPOFs
7
Wednesday, September 18, 13
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
• Higher fault tolerance
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
• Higher fault tolerance
• Cons
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
• Higher fault tolerance
• Cons
• Complex to implement
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
• Higher fault tolerance
• Cons
• Complex to implement
• Expensive to maintain
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
• Higher fault tolerance
• Cons
• Complex to implement
• Expensive to maintain
• Bigger footprint in the Data Center
8
Wednesday, September 18, 13
Horizontal Scaling (Scale Out)
• Pros
• Cheaper in hardware cost
• Flexibility
• Higher fault tolerance
• Cons
• Complex to implement
• Expensive to maintain
• Bigger footprint in the Data Center
• No built in support in databases
8
Wednesday, September 18, 13
9
Wednesday, September 18, 13
Spec’ing Hardware
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
• 64GB+
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
• 64GB+
• Disks
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
• 64GB+
• Disks
• SSDs
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
• 64GB+
• Disks
• SSDs
• RAID 10
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
• 64GB+
• Disks
• SSDs
• RAID 10
• Network
9
Wednesday, September 18, 13
Spec’ing Hardware
• CPU
• 8+ cores
• RAM
• 64GB+
• Disks
• SSDs
• RAID 10
• Network
• min Gigbit, 10Gigbit
9
Wednesday, September 18, 13
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
• checkpoint_completion_target
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
• checkpoint_completion_target
• checkpoint_segments
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
• checkpoint_completion_target
• checkpoint_segments
• max_connections
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
• checkpoint_completion_target
• checkpoint_segments
• max_connections
• work_mem
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
• checkpoint_completion_target
• checkpoint_segments
• max_connections
• work_mem
• maintenance_work_mem
10
Wednesday, September 18, 13
Tune Postgres/memory parameters
• shared_buffers
• effective_cache_size
• checkpoint_completion_target
• checkpoint_segments
• max_connections
• work_mem
• maintenance_work_mem
http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
10
Wednesday, September 18, 13
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
• logging_collector => 'on'
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
• logging_collector => 'on'
• log_destination => 'stderr'
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
• logging_collector => 'on'
• log_destination => 'stderr'
• log_filename => 'postgresql-%Y-%m-%d_%H%M%S.log'
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
• logging_collector => 'on'
• log_destination => 'stderr'
• log_filename => 'postgresql-%Y-%m-%d_%H%M%S.log'
• log_line_prefix => '%m [%r] [%p]: [%l-1] user=%u,db=%d,e=%e '
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
• logging_collector => 'on'
• log_destination => 'stderr'
• log_filename => 'postgresql-%Y-%m-%d_%H%M%S.log'
• log_line_prefix => '%m [%r] [%p]: [%l-1] user=%u,db=%d,e=%e '
• log_min_duration_statement => 1000ms
11
Wednesday, September 18, 13
Tune Postgres/logging parameters
• logging_collector => 'on'
• log_destination => 'stderr'
• log_filename => 'postgresql-%Y-%m-%d_%H%M%S.log'
• log_line_prefix => '%m [%r] [%p]: [%l-1] user=%u,db=%d,e=%e '
• log_min_duration_statement => 1000ms
• log_autovacuum_min_duration => '0'
11
Wednesday, September 18, 13
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
• log_checkpoints => 'on'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
• log_checkpoints => 'on'
• log_connections => 'on'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
• log_checkpoints => 'on'
• log_connections => 'on'
• log_disconnections => 'on'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
• log_checkpoints => 'on'
• log_connections => 'on'
• log_disconnections => 'on'
• log_min_error_statement => 'warning'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
• log_checkpoints => 'on'
• log_connections => 'on'
• log_disconnections => 'on'
• log_min_error_statement => 'warning'
• log_min_messages => 'warning'
12
Wednesday, September 18, 13
Tune Postgres/logging parameters
• log_lock_waits => 'on'
• log_temp_files => '0'
• log_checkpoints => 'on'
• log_connections => 'on'
• log_disconnections => 'on'
• log_min_error_statement => 'warning'
• log_min_messages => 'warning'
• log_statement => 'ddl'
12
Wednesday, September 18, 13
13
Wednesday, September 18, 13
Optimize Queries/report slow queries
13
Wednesday, September 18, 13
Optimize Queries/report slow queries
13
Wednesday, September 18, 13
Optimize Queries/report slow queries
13
Wednesday, September 18, 13
14
Wednesday, September 18, 13
Optimize Queries/Extensive monitoring
14
Wednesday, September 18, 13
Optimize Queries/Extensive monitoring
14
Wednesday, September 18, 13
15
Wednesday, September 18, 13
Optimize Queries /Explain Analyze
15
Wednesday, September 18, 13
Optimize Queries /Explain Analyze
explain (analyze,buffers) select col1,col2 from demo_ios where col2 between 0.01 and 0.02;
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------
Index Only Scan using idx_demo_ios on demo_ios (cost=0.00..35330.93 rows=993633 width=16) (actual time=58.100..3250.589
rows=1000392 loops=1)
Index Cond: ((col2 >= 0.01::double precision) AND (col2 <= 0.02::double precision))
Heap Fetches: 0
Buffers: shared hit=923073 read=3848
Total runtime: 4297.405 ms
15
Wednesday, September 18, 13
Optimize Queries /Explain Analyze
explain (analyze,buffers) select col1,col2 from demo_ios where col2 between 0.01 and 0.02;
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------
Index Only Scan using idx_demo_ios on demo_ios (cost=0.00..35330.93 rows=993633 width=16) (actual time=58.100..3250.589
rows=1000392 loops=1)
Index Cond: ((col2 >= 0.01::double precision) AND (col2 <= 0.02::double precision))
Heap Fetches: 0
Buffers: shared hit=923073 read=3848
Total runtime: 4297.405 ms
15
Wednesday, September 18, 13
16
Wednesday, September 18, 13
Optimize Queries /track functions
16
Wednesday, September 18, 13
Optimize Queries /track functions
16
Wednesday, September 18, 13
Optimize Queries /track functions
• track_functions = pl # none, pl, all
16
Wednesday, September 18, 13
Optimize Queries /track functions
• track_functions = pl # none, pl, all
• reload online
16
Wednesday, September 18, 13
Optimize Queries /track functions
• track_functions = pl # none, pl, all
• reload online
• select * from pg_stat_user_functions;
16
Wednesday, September 18, 13
Optimize Queries /track functions
• track_functions = pl # none, pl, all
• reload online
• select * from pg_stat_user_functions;
16
Wednesday, September 18, 13
Optimize Queries /track functions
• track_functions = pl # none, pl, all
• reload online
• select * from pg_stat_user_functions;
funcid | schemaname | funcname | calls | total_time | self_time
16
Wednesday, September 18, 13
Optimize Queries /track functions
• track_functions = pl # none, pl, all
• reload online
• select * from pg_stat_user_functions;
funcid | schemaname | funcname | calls | total_time | self_time
16
Wednesday, September 18, 13
17
Wednesday, September 18, 13
Partitioning
17
Wednesday, September 18, 13
Partitioning
• As table size grows, queries eventually slows down, even with indexing
17
Wednesday, September 18, 13
Partitioning
• As table size grows, queries eventually slows down, even with indexing
• Allows data added, removed and queried fast
17
Wednesday, September 18, 13
Partitioning
• As table size grows, queries eventually slows down, even with indexing
• Allows data added, removed and queried fast
• Partitioning pruning queries
17
Wednesday, September 18, 13
Partitioning
• As table size grows, queries eventually slows down, even with indexing
• Allows data added, removed and queried fast
• Partitioning pruning queries
• Manage partitions
17
Wednesday, September 18, 13
18
Wednesday, September 18, 13
Partitioning /Postgres
18
Wednesday, September 18, 13
Partitioning /Postgres
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
• Trigger based
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
• Trigger based
• Rule based
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
• Trigger based
• Rule based
• Lack of built-in Postgres partition management
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
• Trigger based
• Rule based
• Lack of built-in Postgres partition management
• Postgres partition management extension: pg_partman
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
• Trigger based
• Rule based
• Lack of built-in Postgres partition management
• Postgres partition management extension: pg_partman
• http://pgxn.org/dist/pg_partman/doc/pg_partman.html
18
Wednesday, September 18, 13
Partitioning /Postgres
• Postgres partitioning
• Trigger based
• Rule based
• Lack of built-in Postgres partition management
• Postgres partition management extension: pg_partman
• http://pgxn.org/dist/pg_partman/doc/pg_partman.html
• Tomorrow’s session at 11:30AM (When Postgres can’t....)
18
Wednesday, September 18, 13
19
Wednesday, September 18, 13
Partitioning /functional
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
• Partition data based on functionality
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
• Partition data based on functionality
• Separate Postgres clusters
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
• Partition data based on functionality
• Separate Postgres clusters
• Start with Separate schemas
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
• Partition data based on functionality
• Separate Postgres clusters
• Start with Separate schemas
• No relationship between data
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
• Partition data based on functionality
• Separate Postgres clusters
• Start with Separate schemas
• No relationship between data
• Help to spread the load across server
19
Wednesday, September 18, 13
Partitioning /functional
Configuration Data Transaction data Session data
Configuration Tools Reporting Tools Monitoring Tools
Web Applications Other Applications
• Partition data based on functionality
• Separate Postgres clusters
• Start with Separate schemas
• No relationship between data
• Help to spread the load across server
• Less complex compare to sharding!
19
Wednesday, September 18, 13
20
Wednesday, September 18, 13
pgbouncer
20
Wednesday, September 18, 13
pgbouncer
20
Wednesday, September 18, 13
pgbouncer
20
Wednesday, September 18, 13
pgbouncer
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
• Helps to reduce # of newly created connections on DB server
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
• Helps to reduce # of newly created connections on DB server
• Abstracts DBs from App
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
• Helps to reduce # of newly created connections on DB server
• Abstracts DBs from App
• Helps to instrument smooth and easy failover
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
• Helps to reduce # of newly created connections on DB server
• Abstracts DBs from App
• Helps to instrument smooth and easy failover
• Connection pooling Options
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
• Helps to reduce # of newly created connections on DB server
• Abstracts DBs from App
• Helps to instrument smooth and easy failover
• Connection pooling Options
• Session, Transaction, Statement pooling options
20
Wednesday, September 18, 13
pgbouncer
• A lightweight connection pooler
• Helps to reduce # of newly created connections on DB server
• Abstracts DBs from App
• Helps to instrument smooth and easy failover
• Connection pooling Options
• Session, Transaction, Statement pooling options
• Beware! Transaction pooling doesn’t support prepared transactions
20
Wednesday, September 18, 13
21
Wednesday, September 18, 13
Caching
21
Wednesday, September 18, 13
Caching
21
Wednesday, September 18, 13
Caching
• Memcached
21
Wednesday, September 18, 13
Caching
• Memcached
• Open source, High-performance distributed memory object
caching system
21
Wednesday, September 18, 13
Caching
• Memcached
• Open source, High-performance distributed memory object
caching system
• Speeds up dynamic web applications by alleviating database load.
21
Wednesday, September 18, 13
Caching
• Memcached
• Open source, High-performance distributed memory object
caching system
• Speeds up dynamic web applications by alleviating database load.
• An in-memory key-value store for small chunks of arbitrary data
21
Wednesday, September 18, 13
Caching
• Memcached
• Open source, High-performance distributed memory object
caching system
• Speeds up dynamic web applications by alleviating database load.
• An in-memory key-value store for small chunks of arbitrary data
• Redis
21
Wednesday, September 18, 13
Caching
• Memcached
• Open source, High-performance distributed memory object
caching system
• Speeds up dynamic web applications by alleviating database load.
• An in-memory key-value store for small chunks of arbitrary data
• Redis
• Open source, advanced key-value store.
21
Wednesday, September 18, 13
Caching
• Memcached
• Open source, High-performance distributed memory object
caching system
• Speeds up dynamic web applications by alleviating database load.
• An in-memory key-value store for small chunks of arbitrary data
• Redis
• Open source, advanced key-value store.
• Works with an in-memory & persistent dataset
21
Wednesday, September 18, 13
22
Wednesday, September 18, 13
Replication /built-in
22
Wednesday, September 18, 13
Replication /built-in
• Cluster Level Replication (Binary)
22
Wednesday, September 18, 13
Replication /built-in
• Cluster Level Replication (Binary)
• Streaming Replication
22
Wednesday, September 18, 13
Replication /built-in
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
22
Wednesday, September 18, 13
Replication /built-in
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
• All or none
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
• All or none
• Doesn’t allow write on replicated database
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
• All or none
• Doesn’t allow write on replicated database
• Doesn’t work across major version
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
• All or none
• Doesn’t allow write on replicated database
• Doesn’t work across major version
• Postgres 9.2 (primary) does NOT replicate to 9.3 (secondary)
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
• All or none
• Doesn’t allow write on replicated database
• Doesn’t work across major version
• Postgres 9.2 (primary) does NOT replicate to 9.3 (secondary)
• Postgres 9.2.1 (primary) can replicate to 9.2.4 (secondary)
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
Replication /built-in
• Pros:
• Built-in
• Allows to open replicated database in read-only mode
• Cons:
• All or none
• Doesn’t allow write on replicated database
• Doesn’t work across major version
• Postgres 9.2 (primary) does NOT replicate to 9.3 (secondary)
• Postgres 9.2.1 (primary) can replicate to 9.2.4 (secondary)
Master
Failover
Read
Salve 1
PITR!
PITR!
PITR!
Streaming Replication
https://wiki.postgresql.org/wiki/Binary_Replication_Tools
• Cluster Level Replication (Binary)
• Streaming Replication
• WAL-only replication
• Hybrid replication
22
Wednesday, September 18, 13
23
Wednesday, September 18, 13
Replication /built-in
23
Wednesday, September 18, 13
Replication /built-in
Read
Salve 1
23
Wednesday, September 18, 13
Replication /built-in
Read
Salve 1
DW
System
23
Wednesday, September 18, 13
Replication /built-in
Read
Salve 1
DW
System
23
Wednesday, September 18, 13
Replication /built-in
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
• Allows to access data stored in external PostgreSQL
servers
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
• Allows to access data stored in external PostgreSQL
servers
• cross version queries
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
• Allows to access data stored in external PostgreSQL
servers
• cross version queries
• Postgres 9.3 could query Postgres 9.1
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
• Allows to access data stored in external PostgreSQL
servers
• cross version queries
• Postgres 9.3 could query Postgres 9.1
• Application
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
• Allows to access data stored in external PostgreSQL
servers
• cross version queries
• Postgres 9.3 could query Postgres 9.1
• Application
• Run query remotely on slave db
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
Replication /built-in
• postgres_fdw
• Postgres 9.3 feature
• Allows to access data stored in external PostgreSQL
servers
• cross version queries
• Postgres 9.3 could query Postgres 9.1
• Application
• Run query remotely on slave db
• Data warehouse data refreshes
Read
Salve 1
DW
System
postgres_fdw
23
Wednesday, September 18, 13
24
Wednesday, September 18, 13
Replication /third-party tools
24
Wednesday, September 18, 13
Replication /third-party tools
24
Wednesday, September 18, 13
Replication /third-party tools
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
• Allows rolling upgrade
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
• Allows rolling upgrade
• cross version replication is allowed
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
• Allows rolling upgrade
• cross version replication is allowed
• Multi-master replication
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
• Allows rolling upgrade
• cross version replication is allowed
• Multi-master replication
• Cons:
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
• Allows rolling upgrade
• cross version replication is allowed
• Multi-master replication
• Cons:
• Complicated to setup
24
Wednesday, September 18, 13
Replication /third-party tools
• Table level Replication Tools (Trigger based)
• Slony
• Bucardo
• Mimeo: http://pgxn.org/dist/mimeo/
• Pros:
• Allows to open replicated database in read-
write mode
• Allows table/database level replication
• Allows rolling upgrade
• cross version replication is allowed
• Multi-master replication
• Cons:
• Complicated to setup
• Unknown territory
24
Wednesday, September 18, 13
25
Wednesday, September 18, 13
Sharding
25
Wednesday, September 18, 13
Sharding
25
Wednesday, September 18, 13
Sharding
25
Wednesday, September 18, 13
Sharding
• Sharding is the process of splitting up your data so it resides in
different tables or often different physical databases.
25
Wednesday, September 18, 13
Sharding
• Sharding is the process of splitting up your data so it resides in
different tables or often different physical databases.
• Application aware sharding
25
Wednesday, September 18, 13
Sharding
• Sharding is the process of splitting up your data so it resides in
different tables or often different physical databases.
• Application aware sharding
• Application transparent sharding
25
Wednesday, September 18, 13
26
Wednesday, September 18, 13
Application aware sharding
26
Wednesday, September 18, 13
Application aware sharding
26
Wednesday, September 18, 13
Application aware sharding
26
Wednesday, September 18, 13
Application aware sharding
• http://instagram-engineering.tumblr.com/
post/10853187575/sharding-ids-at-
instagram
26
Wednesday, September 18, 13
Application aware sharding
• http://instagram-engineering.tumblr.com/
post/10853187575/sharding-ids-at-
instagram
• Postgres allows “logical” shards through
Schema
26
Wednesday, September 18, 13
Application aware sharding
• http://instagram-engineering.tumblr.com/
post/10853187575/sharding-ids-at-
instagram
• Postgres allows “logical” shards through
Schema
• Easy to move to “physical” shard later
26
Wednesday, September 18, 13
27
Wednesday, September 18, 13
Application transparent sharding
27
Wednesday, September 18, 13
Application transparent sharding
27
Wednesday, September 18, 13
28
Wednesday, September 18, 13
Sharding Challenges
28
Wednesday, September 18, 13
Sharding Challenges
• Reliability
28
Wednesday, September 18, 13
Sharding Challenges
• Reliability
• Distributed queries
28
Wednesday, September 18, 13
Sharding Challenges
• Reliability
• Distributed queries
• Cross-shard join
28
Wednesday, September 18, 13
Sharding Challenges
• Reliability
• Distributed queries
• Cross-shard join
• Auto-increment key management
28
Wednesday, September 18, 13
Sharding Challenges
• Reliability
• Distributed queries
• Cross-shard join
• Auto-increment key management
• Choosing shard key
28
Wednesday, September 18, 13
Sharding Challenges
• Reliability
• Distributed queries
• Cross-shard join
• Auto-increment key management
• Choosing shard key
• Shard schemes
28
Wednesday, September 18, 13
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
• Insufficient logging
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
• Insufficient logging
• Insufficient Caching
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
• Insufficient logging
• Insufficient Caching
• Insufficient Monitoring and Metrics
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
• Insufficient logging
• Insufficient Caching
• Insufficient Monitoring and Metrics
• ORMs
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
• Insufficient logging
• Insufficient Caching
• Insufficient Monitoring and Metrics
• ORMs
• Single Point of Failure
29
Wednesday, September 18, 13
Obstacles for Scaling Postgres
• Postgres table bloat
• FKs relationships
• Insufficient logging
• Insufficient Caching
• Insufficient Monitoring and Metrics
• ORMs
• Single Point of Failure
• Lack of communications between teams
29
Wednesday, September 18, 13
30
Wednesday, September 18, 13
Beyond Postgres
30
Wednesday, September 18, 13
Beyond Postgres
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
• Browse only mode (Read only mode)
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
• Browse only mode (Read only mode)
• Don’t use database for Queuing
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
• Browse only mode (Read only mode)
• Don’t use database for Queuing
• RabbitMQ
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
• Browse only mode (Read only mode)
• Don’t use database for Queuing
• RabbitMQ
• Reconsider options for Full Text Search
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
• Browse only mode (Read only mode)
• Don’t use database for Queuing
• RabbitMQ
• Reconsider options for Full Text Search
• tsearch provided by Postgres
30
Wednesday, September 18, 13
Beyond Postgres
• Avoid serialization in application code
• Feature Flags
• Browse only mode (Read only mode)
• Don’t use database for Queuing
• RabbitMQ
• Reconsider options for Full Text Search
• tsearch provided by Postgres
• Solr, Lucene
30
Wednesday, September 18, 13
31
Wednesday, September 18, 13
Further reading . . .
31
Wednesday, September 18, 13
Further reading . . .
• Scalable Internet Architectures - Theo Schlossnagle
• Web Operations: Keeping the Data On Time - John Allspaw , Jesse
Robbins
• PostgreSQL 9.0 High Performance - Greg Smith
31
Wednesday, September 18, 13
32
Wednesday, September 18, 13
References
32
Wednesday, September 18, 13
References
32
Wednesday, September 18, 13
References
• http://www.postgresql.org/docs/
• http://www.circonus.com
• http://pgbouncer.projects.pgfoundry.org/doc/usage.html
• http://pgxn.org/dist/pg_partman/doc/pg_partman.html
• http://dalibo.github.io/pgbadger/
• https://github.com/omniti-labs/omnipitr
• http://instagram-engineering.tumblr.com/post/10853187575/
sharding-ids-at-instagram
• http://memcached.org
• http://redis.io
• http://postgres-xc.sourceforge.net/docs/1_1/
32
Wednesday, September 18, 13
Thanks
• PostgresOpen Conference Committee
• OmniTI
• You!!
33
Wednesday, September 18, 13
Ad

Recommended

PDF
permanent beta (∞β):Your Ecommerce Optimization Framework
Abhishek Tiwari
 
PDF
Postgres in Amazon RDS
Denish Patel
 
PDF
Out of the Box Replication in Postgres 9.4(PgCon)
Denish Patel
 
PDF
Advanced Postgres Monitoring
Denish Patel
 
PDF
PostgreSQL Disaster Recovery with Barman
Gabriele Bartolini
 
PDF
Building Hybrid data cluster using PostgreSQL and MongoDB
Ashnikbiz
 
PDF
Out of the box replication in postgres 9.4
Denish Patel
 
PDF
The Essential PostgreSQL.conf
Robert Treat
 
PDF
PostgreSQL Scaling And Failover
John Paulett
 
PDF
plProxy, pgBouncer, pgBalancer
elliando dias
 
PDF
Pro Postgres 9
Robert Treat
 
PDF
Postgres-XC Write Scalable PostgreSQL Cluster
Mason Sharp
 
PDF
Advanced WAL File Management With OmniPITR
Robert Treat
 
PDF
Think_your_Postgres_backups_and_recovery_are_safe_lets_talk.pptx
Payal Singh
 
PDF
Visual Design with Data
Seth Familian
 
PPTX
Backups
Payal Singh
 
PDF
Inaugural Addresses
Booz Allen Hamilton
 
PDF
Teaching Students with Emojis, Emoticons, & Textspeak
Shelly Sanchez Terrell
 
PDF
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
 
PDF
Hype vs. Reality: The AI Explainer
Luminary Labs
 
PDF
Designing Teams for Emerging Challenges
Aaron Irizarry
 
PPT
Deploying Maximum HA Architecture With PostgreSQL
Denish Patel
 
PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
PDF
Why PostgreSQL for Analytics Infrastructure (DW)?
Huy Nguyen
 
PDF
7 Ways To Crash Postgres
PostgreSQL Experts, Inc.
 
PDF
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
PDF
Demystifying PostgreSQL
NOLOH LLC.
 
PDF
Real-time Analytics with Cassandra, Spark, and Shark
Evan Chan
 
PDF
Bankers Association Communications Conference Deck
Hodges_Digital
 
PDF
Cassandra at scale
Patrick McFadin
 

More Related Content

Viewers also liked (19)

PDF
PostgreSQL Scaling And Failover
John Paulett
 
PDF
plProxy, pgBouncer, pgBalancer
elliando dias
 
PDF
Pro Postgres 9
Robert Treat
 
PDF
Postgres-XC Write Scalable PostgreSQL Cluster
Mason Sharp
 
PDF
Advanced WAL File Management With OmniPITR
Robert Treat
 
PDF
Think_your_Postgres_backups_and_recovery_are_safe_lets_talk.pptx
Payal Singh
 
PDF
Visual Design with Data
Seth Familian
 
PPTX
Backups
Payal Singh
 
PDF
Inaugural Addresses
Booz Allen Hamilton
 
PDF
Teaching Students with Emojis, Emoticons, & Textspeak
Shelly Sanchez Terrell
 
PDF
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
 
PDF
Hype vs. Reality: The AI Explainer
Luminary Labs
 
PDF
Designing Teams for Emerging Challenges
Aaron Irizarry
 
PPT
Deploying Maximum HA Architecture With PostgreSQL
Denish Patel
 
PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
PDF
Why PostgreSQL for Analytics Infrastructure (DW)?
Huy Nguyen
 
PDF
7 Ways To Crash Postgres
PostgreSQL Experts, Inc.
 
PDF
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
PDF
Demystifying PostgreSQL
NOLOH LLC.
 
PostgreSQL Scaling And Failover
John Paulett
 
plProxy, pgBouncer, pgBalancer
elliando dias
 
Pro Postgres 9
Robert Treat
 
Postgres-XC Write Scalable PostgreSQL Cluster
Mason Sharp
 
Advanced WAL File Management With OmniPITR
Robert Treat
 
Think_your_Postgres_backups_and_recovery_are_safe_lets_talk.pptx
Payal Singh
 
Visual Design with Data
Seth Familian
 
Backups
Payal Singh
 
Inaugural Addresses
Booz Allen Hamilton
 
Teaching Students with Emojis, Emoticons, & Textspeak
Shelly Sanchez Terrell
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
 
Hype vs. Reality: The AI Explainer
Luminary Labs
 
Designing Teams for Emerging Challenges
Aaron Irizarry
 
Deploying Maximum HA Architecture With PostgreSQL
Denish Patel
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
Why PostgreSQL for Analytics Infrastructure (DW)?
Huy Nguyen
 
7 Ways To Crash Postgres
PostgreSQL Experts, Inc.
 
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
Demystifying PostgreSQL
NOLOH LLC.
 

Similar to Scaling postgres (20)

PDF
Real-time Analytics with Cassandra, Spark, and Shark
Evan Chan
 
PDF
Bankers Association Communications Conference Deck
Hodges_Digital
 
PDF
Cassandra at scale
Patrick McFadin
 
PDF
"Unlocked: The Hybrid Cloud" Business Track
Hart Hoover
 
PDF
Scaling PHP to 40 Million Uniques
Jonathan Klein
 
PDF
Responsive Design & the Business Analyst
Ted Hardy, MBA, CBAP
 
KEY
Trending with Purpose
Jason Dixon
 
PDF
Angular js, Yeomon & Grunt
Richard Powell
 
PPTX
Off Site Backup Strategies
Steven Aiello
 
PDF
Devopsdays NYC Oct 2013 - SOTU - The Widgets Dilemma
John Willis
 
PDF
Making Happy Users: The Science Behind Great User Experiences
Hilary Little
 
PDF
Optiq: A dynamic data management framework
Julian Hyde
 
PDF
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
PHP Conference Argentina
 
PDF
Escalando una PHP App con DB sharding - PHP Conference
Matias Paterlini
 
PDF
Cooking an Omelette with Chef
ctaintor
 
PDF
Phpday - Automated acceptance testing with Behat and Mink
Richard Tuin
 
PDF
Pinot: Realtime Distributed OLAP datastore
Kishore Gopalakrishna
 
PDF
Pinotcoursera 151103183418-lva1-app6892 (1)
Nayeli Bonilla
 
PDF
DataStax Enterprise in the Field – 20160920
Daniel Cohen
 
PPTX
SnapLogic Technology Open House – January 2018
SnapLogic
 
Real-time Analytics with Cassandra, Spark, and Shark
Evan Chan
 
Bankers Association Communications Conference Deck
Hodges_Digital
 
Cassandra at scale
Patrick McFadin
 
"Unlocked: The Hybrid Cloud" Business Track
Hart Hoover
 
Scaling PHP to 40 Million Uniques
Jonathan Klein
 
Responsive Design & the Business Analyst
Ted Hardy, MBA, CBAP
 
Trending with Purpose
Jason Dixon
 
Angular js, Yeomon & Grunt
Richard Powell
 
Off Site Backup Strategies
Steven Aiello
 
Devopsdays NYC Oct 2013 - SOTU - The Widgets Dilemma
John Willis
 
Making Happy Users: The Science Behind Great User Experiences
Hilary Little
 
Optiq: A dynamic data management framework
Julian Hyde
 
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
PHP Conference Argentina
 
Escalando una PHP App con DB sharding - PHP Conference
Matias Paterlini
 
Cooking an Omelette with Chef
ctaintor
 
Phpday - Automated acceptance testing with Behat and Mink
Richard Tuin
 
Pinot: Realtime Distributed OLAP datastore
Kishore Gopalakrishna
 
Pinotcoursera 151103183418-lva1-app6892 (1)
Nayeli Bonilla
 
DataStax Enterprise in the Field – 20160920
Daniel Cohen
 
SnapLogic Technology Open House – January 2018
SnapLogic
 
Ad

More from Denish Patel (13)

PDF
Out of the Box Replication in Postgres 9.4(PgConfUS)
Denish Patel
 
PDF
Out of the box replication in postgres 9.4(pg confus)
Denish Patel
 
PDF
Out of the Box Replication in Postgres 9.4(pgconfsf)
Denish Patel
 
PDF
Out of the Box Replication in Postgres 9.4(PgCon)
Denish Patel
 
PDF
Choosing the "D" , Lightning talk
Denish Patel
 
PDF
Deploying postgre sql on amazon ec2
Denish Patel
 
PDF
Two Elephants Inthe Room
Denish Patel
 
PPTX
Deploying Maximum HA Architecture With PostgreSQL
Denish Patel
 
PDF
P90 X Your Database!!
Denish Patel
 
PDF
Achieving Pci Compliace
Denish Patel
 
PDF
Using SQL Standards? Database SQL comparition
Denish Patel
 
PDF
Oracle10g New Features I
Denish Patel
 
PDF
Yet Another Replication Tool: RubyRep
Denish Patel
 
Out of the Box Replication in Postgres 9.4(PgConfUS)
Denish Patel
 
Out of the box replication in postgres 9.4(pg confus)
Denish Patel
 
Out of the Box Replication in Postgres 9.4(pgconfsf)
Denish Patel
 
Out of the Box Replication in Postgres 9.4(PgCon)
Denish Patel
 
Choosing the "D" , Lightning talk
Denish Patel
 
Deploying postgre sql on amazon ec2
Denish Patel
 
Two Elephants Inthe Room
Denish Patel
 
Deploying Maximum HA Architecture With PostgreSQL
Denish Patel
 
P90 X Your Database!!
Denish Patel
 
Achieving Pci Compliace
Denish Patel
 
Using SQL Standards? Database SQL comparition
Denish Patel
 
Oracle10g New Features I
Denish Patel
 
Yet Another Replication Tool: RubyRep
Denish Patel
 
Ad

Recently uploaded (20)

PDF
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
PDF
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
PDF
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
PDF
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
PDF
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PPTX
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
PDF
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
DOCX
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
PDF
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PDF
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
PDF
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
PDF
Python Conference Singapore - 19 Jun 2025
ninefyi
 
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
PPTX
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
PDF
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
PDF
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
PPTX
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 

Scaling postgres