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

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)

PPTX
The Evolution of Data Engineering Emerging Trends and Scalable Architecture D...
Ashis86
 
PDF
Qcon talk
bcoverston
 
PDF
Scaling data on public clouds
Liran Zelkha
 
PDF
Cassandra Core Concepts
Jon Haddad
 
PDF
Designing Data-Intensive Applications_ The Big Ideas Behind Reliable, Scalabl...
SindhuVasireddy1
 
PDF
Cassandra Core Concepts - Cassandra Day Toronto
Jon Haddad
 
PDF
Designing Data Intensive Applications The Big Ideas Behind Reliable Scalable ...
lebanfyockkc
 
PDF
Escalando una PHP App con DB sharding - PHP Conference
Matias Paterlini
 
PDF
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
PHP Conference Argentina
 
PDF
Martin Kleppmann-Designing Data-Intensive Applications_ The Big Ideas Behind ...
Samir P.
 
PDF
Scaling Out With Hadoop And HBase
Age Mooij
 
PDF
No sql and data scalability
Roger Xia
 
PPTX
Cloud Computing y Big Data, próxima frontera de la innovación
Fundación Ramón Areces
 
PDF
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
PPTX
Big Data Infrastructure and Hadoop components.pptx
GEZWARDGERALD
 
PDF
Big Data Rampage
Niko Vuokko
 
PDF
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
asya999
 
PDF
1 mapreduce-fest
Genoveva Vargas-Solar
 
PPTX
Beyond Jurassic NoSQL: New Designs for a New World
ScyllaDB
 
PPT
SQL or NoSQL, that is the question!
Andraz Tori
 
The Evolution of Data Engineering Emerging Trends and Scalable Architecture D...
Ashis86
 
Qcon talk
bcoverston
 
Scaling data on public clouds
Liran Zelkha
 
Cassandra Core Concepts
Jon Haddad
 
Designing Data-Intensive Applications_ The Big Ideas Behind Reliable, Scalabl...
SindhuVasireddy1
 
Cassandra Core Concepts - Cassandra Day Toronto
Jon Haddad
 
Designing Data Intensive Applications The Big Ideas Behind Reliable Scalable ...
lebanfyockkc
 
Escalando una PHP App con DB sharding - PHP Conference
Matias Paterlini
 
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
PHP Conference Argentina
 
Martin Kleppmann-Designing Data-Intensive Applications_ The Big Ideas Behind ...
Samir P.
 
Scaling Out With Hadoop And HBase
Age Mooij
 
No sql and data scalability
Roger Xia
 
Cloud Computing y Big Data, próxima frontera de la innovación
Fundación Ramón Areces
 
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
Big Data Infrastructure and Hadoop components.pptx
GEZWARDGERALD
 
Big Data Rampage
Niko Vuokko
 
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
asya999
 
1 mapreduce-fest
Genoveva Vargas-Solar
 
Beyond Jurassic NoSQL: New Designs for a New World
ScyllaDB
 
SQL or NoSQL, that is the question!
Andraz Tori
 
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
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 

Scaling postgres