SlideShare a Scribd company logo
Problems with PostgreSQL on
Multi-core Systems with Multi-
Terabyte Data
Jignesh Shah and
PostgreSQL Performance Team @ Sun
Sun Microsystems Inc
PGCon May 2008 - Ottawa
PostgreSQL Performance Team
@Sun
• Staale Smedseng
• Magne Mahre
• Paul van den Bogaard
• Lars-Erik Bjork
• Robert Lor
• Jignesh Shah
• Guided by Josh Berkus
Agenda
• Current market trends
• Impact on workload with PostgreSQL on multicore
systems
> PGBench Scalability
> TPCE- Like Scalability
> IGEN Scalability
• Impact with multi-terabyte data running PostgreSQL
• Tools and Utilities for DBA
• Summary Next Steps
Current Market trends
Current Market Trends in Systems
• Quad-core sockets are current market standards
> Also 8-core sockets available now and could become a
standard in next couple of year
• Most common rack servers now have two sockets
> 8-core (or more ) systems are the norm with trend going
to 12-16 core systems soon
• Most Servers have internal drives > 146 GB
> Denser in capacity, smaller in size but essentially same
or lower speed
> More denser in case of SATA-II drives
Current Market Trends in Software
• Software (including Operating Systems) have yet to
fully catch up with multi-core systems
> “tar” still single process utility
• Horizontal Scaling helps a lot but not a good clean
solution for multi-core systems
• Virtualization is the new buzzword for Consolidations
> Hides the fact that the software is not able to fully
capitalize the extra cores :-(
• Research being done on new paradigms
> Complexity of parallelized software is huge
Current Market Trends in Data
• 12 years ago, a 20GB data warehouse was
considered a big database
• Now everybody talks about 200GB-5TB databases
• Some 2005 Survey numbers:
> Top OLTP DB sizes = 5,973 GB to 23,101 GB
> Top DW DB Sizes = 17,685 GB to 100,386 GB
> Source http://www.wintercorp.com/VLDB/2005_TopTen_Survey/TopTenWinners_2005.asp
• Some 2007 Survey numbers:
> Top DB sizes = 20+ TB to 220 TB ( 6+ PB on tape)
> Source http://www.businessintelligencelowdown.com/2007/02/top_10_largest.html
Impact on workloads
with multi-cores
system running
PostgreSQL
PGBench (Modified )
• Custom insert.sql
> BEGIN;
> INSERT INTO history (tid, bid, aid, delta, mtime)
VALUES (:tid, :bid, :aid, :delta,
CURRENT_TIMESTAMP);
> END;
• pgbench -f insert.sql -s 1000 -c 1 -t 10000 pgbench
PGBench ( inserts only)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0
2000
4000
6000
8000
10000
12000
Linear tps (async) tps (commit_sibling=5) tps(default)
Number of Clients
Transactionspersecond(tps)
• IOPS on logs during regular pgbench run is around 800 w/s which means transaction optimizations happening somewhere
• With commit_delay (sibling =5) at 16 clients IOPS on logs is 102 w/sec which means quite a bit of capacity on logs yet
• With synchronous_commit=off wal_writer_delay=100ms, the iops on the log devices is 10 w/sec
• Same performance with wal_writer_delay=10ms (50w/sec on logs) and wal_writer_delay=1ms (100w/sec on logs)
PGBench ( inserts only) – Take II
1 2 4 8 16 32 64 128
400
4000
40000
400000
Linear tps (async) tps (commit_sibling=5) tps(default)
Number of Clients
Transactionspersecond(tps)
• At 128 clients system (16cores) was 58% idle (commit) , 56% idle (async)
• As more and more clients are added eventually performance seems to converge
• Runs with 256 clients and beyond using pgbench Clients pgbench running on a different server becomes cpu core limited
and hence those results are not useful
TPC-E Like Workload with PG 8.3
1 2 3 4 5 6 7 8 9
Idle-CPU TPC-E Linear Clients
Number of x64 Cores
Performance
• At 7 cores number of clients increases beyond 110
• Increasing more cores beyond 8 doesn't seem to help much in terms of performance
• Quick dtrace shows ProcArrayLock Exclusive waits increasing while committing transactions at high loads
Some thoughts
• Two main Blocks for PostgreSQL Backend:
> READS
> LOCK WAITS (Top few):
> ProcArray Exclusive
> Dynamic Locks (Shared) IndexScan
> Dynamic Locks (Exclusive) InsertIndexTuples
• Reducing and modifying various indexes increased
performance more than 2-3X but still limited due to
core indexes required
• Haven't filtered out lock spins which keeps CPU busy
(results in higher CPU utilization with more core without
appropriate increase in throughput rates)
IGEN with PostgreSQL on T2000
32 64 128 256 512 1024 1280 1536
0
20000
40000
60000
80000
100000
120000
140000
160000
iGen OLTP, 4 minute averages, varying thinktimes [ms], 32 HW-threads
1ms think 5ms think 10ms think 50ms think 100ms think 200ms think
Clients
TPM
• Sun Enterprise T2000 has 32 hardware threads of CPU
• Data and log files on RAM (/tmp)
• Database reloaded everytime before the run
IGEN with PostgreSQL on T2000
• First number is LockID, (Only 2 different locks pop up: ProcArrayLock == 4; WALWriteLock == 8)
• Second is Mode: S(hared)or E(xclusive) mode
• Third is Function P(arse), B(ind), E(xecute).
• Example: procarraylock in S(hared) mode while doing a B(ind) operation will be reflected in the graph 4SB
OLTP Workload on PostgreSQL
• Top Light Weight Locks having increasing wait times
as connections increases
> ProcArrayLock
> EXCLUSIVE - Called from ProcArrayEndTransaction() from
CommitTransaction()
> SHARED - Called from GetSnapShotData()
> WALWriteLock
> XlogFlush()
> WALInsertLock
> XLogInsert()
•
ProcArray LWLock Thoughts
• ProcArray Lock currently has one wait list
> If it encounters SHARED, it looks if the following wait-listed
process is SHARED or not if it is wakes them up together
> If it Encounters EXCLUSIVE, it just wakes up that process
• Multiple SHARED process can execute
simultaneously on multi-core,
> maybe a two wait-list (SHARED, EXCLUSIVE) or
something schedule SHARED requests together might
improve utilization
• Won't help EXCLUSIVE (which is the main problem)
> Reduce Code Path
> Use some sort of Messaging to synchronize
WALWriteLock & WALInsertLock
• WALWriteLock can be controlled
> commit_delay=10 (at expense of latency of individual commit)
> synchronous_commit = off (for non-mission critical types)
• WALInsertLock (writing into the WAL buffers)
eventually still is a problem
> Even after increasing WAL Buffers, its single write lock
architecture makes it a contention point
• Making WALInsertLock more granular will certainly
help scalability
> Some discussion on reserving WAL Buffer space and
releasing locks earlier
Impact on workloads
with multi-terabyte
data running
PostgreSQL
Some Observations
• Its easy to reach a terabyte even with OLTP
environments
• Even a single socket run for TPC-E could result
close to about 1 TB data population
> http://tpc.org/tpce/tpce_price_perf_results.asp
• In some sense you can work around “writes” but
“read” will block and random read can have real
poor response time bigger the database size
• Blocking Reads specially while holding locks is
detrimental to performance and scaling
•
Impact on Sequential Scan
• Sequential Scan rate impact depends on not only on
storage hardware but also CPU intense functions
which depends on updates done to table since last
vacuum
> Types of functions with high CPU usage during sequential reads:
HeapTupleSatisfiesMVCC (needs Vacuum to avoid this CPU
cost), heapgettup_pagemode, advance_* (count() fuction)
> Blocking reads and then CPU intense functions results in
inefficient usage of system resources which should be separated
in two separate processes if possible
> Hard to predict rate of scan during Sequential scan with
PostgreSQL
> Example: Before Vacuum: Sequential scan takes 216.8sec
> After Vacuum: Same sequential scan takes 120.2sec
Impact on Index Range Scan
• Similar to sequential scan except still slower
• High CPU usage functions include index_getnext(),
_bt_checkkeys, HeapTupleSatisfiesMVCC,
pg_atomic_cas (apart from BLOCKS happening with
read)
• Slow enough to cause performance problems
> 26 reads/sec on index and 1409 reads/sec on table during a
sample index range scan (with file system buffer on) Its really
reads on tables that kills the range scan even when SQL only
refers to columns in the index
> 205 seconds Vs 102 seconds (via sequential) while doing primary
key range scan
•
Tools Utilities for DBA
Think about the DBA
• Multicore systems means more end users using the
database
• More pressure on DBA to keep the scheduled downtime
window small
• Keeping DBA's guessing (“is it done yet?”) while running
maintenance commands is like testing the breaking point of
his patience
• Example: VACUUM FULL -
> Customer (DBA) reported it took 18 hrs to vacuum 3.4TB
> VACUUM is just an example, all maintenance commands
need to be multi-core aware designed to handle multi-
terabyte data efficiently
Tools Utilities
• Tools are generally used more as a single task at a time
• Problems with Tools using a Single Process approach
Compute Intensive IO Intensive
Maxes out 1 cpu/core/thread at a time
Wasted CPU Resources
Wated IO Resources
Uses 1 cpu/core/thread at a time
Wasted CPU Resources
Resulting System Utilization very poor
Most people do not run other tasks while
doing maintenance jobs
*No indication when it will finish*
BACKUP Performance
• pg_dump dbname
> CPU limited with hot functions _ndoprnt, CopyAttributeOut,
CopyOneRowTo, memcpy
> Processing about 36MB/sec when CPU is saturated
> Multiple pg_dump process could give about 91MB/sec
which means if additional cores are used it could
effectively help speed up backup
• Same goes for pg_recovery
VACUUM Performance
• We saw earlier state of last VACUUM is important for
performance which means VACUUM is needed (apart from
XID rollover)
• However VACUUM itself is very inefficient if there are
cost_delays set
> Sample run on about 15GB table with vacuum_cost_delay=50:
> CPU utilization : 2% avg
> Took 3:03:39 @ 1.39 MB/sec
> Hot functions: heap_prune_chain(30%), lazy_scan_heap(14%),
HeapTupleSatisfiesVacuum(14%)
• A heavily updated table can result in a bigger downtime just to get
VACUUM completed on it
VACUUM Performance
• If costs for auto_vacuum are controlled and let DBA initiated
VACUUM go full speed then (cost_limit=1, cost_delay=0)
• Hot functions include bsearch
> Sample run on about 15GB table:
> CPU utilization : 0-55% avg core
> Took 0:18:8 @ 14.11 MB/sec
> Hot functions: heap_prune_chain, hash_search_with_hash_value,
heap_freeze_tuple
• Even with this a 1TB table could take about 20 hours
• Maybe help with some sort of pipelining reads through one process
while processing it with another
CREATE INDEX Performance
• Dropping Index takes about 10 seconds
• However index creation is much longer
> Depending on type of columns, the backend can process
about 18MB/sec before its limited by core performance
> Hot functions are btint8cmp (in this case) 50%,
dumptuples (25%), comparetup_index (9.1)%,
timestamp_cmp(3%)
• In this particular index it was index on an id and a
timestamp field.
• On a table that takes about 105 second to do a full
sequential scan, it takes about 1078 seconds to create an
index (10X)
Summary/Next Step
• Propose more projects in making DBA utilities multi-process
capable to spread up the work (eg VACUUM)
• Propose a separate background reader for sequential scans
so that it can do processing more efficiently without blocking
for read
• Propose re-thinking INDEX in multi-terabyte world
More Acknowledgements
• Greg Smith, Truviso - Guidance on PGBench
• Masood Mortazavi – PostgreSQL Manager @ Sun
• PostgreSQL Team @ Sun
More Information
• Blogs on PostgreSQL
> Josh Berkus: http://blogs.ittoolbox.com/database/soup
> Jignesh Shah: http://blogs.sun.com/jkshah/
> Paul van den Bogaard: http://blogs.sun.com/paulvandenbogaard/
> Robert Lor: http://blogs.sun.com/robertlor/
> Tom Daly: http://blogs.sun.com/tomdaly/
• PostgreSQL on Solaris Wiki:
> http://wikis.sun.com/display/DBonSolaris/PostgreSQL
• PostgreSQL Questions:
> postgresql-questions@sun.com
> databases-discuss@opensolaris.org
Q & A
Backup Slides/
Additional Information
TPC-E Characteristics
• Brokerage House workload
• Scale factor in terms of active customers to be used
dependent on target performance (roughly Every 1K
customer = 7.1GB raw data to be loaded)
• Lots of Constraints and Foreign keys
• Business logic (part of system) can be implemented
via Stored Procedures or other mechanisms
• Can be used to stress multiple features of database:
Random IO reads/writes, Index performance, stored
procedure performance, response times, etc
TPC-E Highlights
● Complex schema
● Referential Integrity
● Less partitionable
● Increase # of trans
● Transaction Frames
● Non-primary key access
to data
● Data access
requirements (RAID)
● Complex transaction
queries
● Extensive foreign key
relationships
● TPC provided core
components

More Related Content

What's hot

祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
Kosuke Kida
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
NTT DATA Technology & Innovation
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
 
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo!デベロッパーネットワーク
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
PGConf APAC
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
 
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
NTT DATA Technology & Innovation
 
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
Samir Hammoudi
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
Masahiko Sawada
 
問合せ最適化インサイド
問合せ最適化インサイド問合せ最適化インサイド
問合せ最適化インサイド
Takahiro Itagaki
 

What's hot (20)

祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
iostatの見方
iostatの見方iostatの見方
iostatの見方
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
問合せ最適化インサイド
問合せ最適化インサイド問合せ最適化インサイド
問合せ最適化インサイド
 

Similar to Problems with PostgreSQL on Multi-core Systems with MultiTerabyte Data

Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
javier ramirez
 
Aioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_featuresAioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_features
AiougVizagChapter
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
Jignesh Shah
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...
javier ramirez
 
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Bobby Curtis
 
Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceEnkitec
 
OGG Architecture Performance
OGG Architecture PerformanceOGG Architecture Performance
OGG Architecture PerformanceEnkitec
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
Jignesh Shah
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
Ryusuke Kajiyama
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Altinity Ltd
 
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACPerformance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACKristofferson A
 
Overview of Postgres Utility Processes
Overview of Postgres Utility ProcessesOverview of Postgres Utility Processes
Overview of Postgres Utility Processes
EDB
 
Oracle Database : Addressing a performance issue the drilldown approach
Oracle Database : Addressing a performance issue the drilldown approachOracle Database : Addressing a performance issue the drilldown approach
Oracle Database : Addressing a performance issue the drilldown approach
Laurent Leturgez
 
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast DataDatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
Hakka Labs
 
SQream DB - Bigger Data On GPUs: Approaches, Challenges, Successes
SQream DB - Bigger Data On GPUs: Approaches, Challenges, SuccessesSQream DB - Bigger Data On GPUs: Approaches, Challenges, Successes
SQream DB - Bigger Data On GPUs: Approaches, Challenges, Successes
Arnon Shimoni
 
Presto At Treasure Data
Presto At Treasure DataPresto At Treasure Data
Presto At Treasure Data
Taro L. Saito
 
SQL Server It Just Runs Faster
SQL Server It Just Runs FasterSQL Server It Just Runs Faster
SQL Server It Just Runs Faster
Bob Ward
 
Proving out flash storage array performance using swingbench and slob
Proving out flash storage array performance using swingbench and slobProving out flash storage array performance using swingbench and slob
Proving out flash storage array performance using swingbench and slob
Kapil Goyal
 
Analyzing and Interpreting AWR
Analyzing and Interpreting AWRAnalyzing and Interpreting AWR
Analyzing and Interpreting AWR
pasalapudi
 
Database Core performance principles
Database Core performance principlesDatabase Core performance principles
Database Core performance principles
Koppelaars
 

Similar to Problems with PostgreSQL on Multi-core Systems with MultiTerabyte Data (20)

Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
Aioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_featuresAioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_features
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...
 
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
 
Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture Performance
 
OGG Architecture Performance
OGG Architecture PerformanceOGG Architecture Performance
OGG Architecture Performance
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
 
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACPerformance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
 
Overview of Postgres Utility Processes
Overview of Postgres Utility ProcessesOverview of Postgres Utility Processes
Overview of Postgres Utility Processes
 
Oracle Database : Addressing a performance issue the drilldown approach
Oracle Database : Addressing a performance issue the drilldown approachOracle Database : Addressing a performance issue the drilldown approach
Oracle Database : Addressing a performance issue the drilldown approach
 
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast DataDatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
 
SQream DB - Bigger Data On GPUs: Approaches, Challenges, Successes
SQream DB - Bigger Data On GPUs: Approaches, Challenges, SuccessesSQream DB - Bigger Data On GPUs: Approaches, Challenges, Successes
SQream DB - Bigger Data On GPUs: Approaches, Challenges, Successes
 
Presto At Treasure Data
Presto At Treasure DataPresto At Treasure Data
Presto At Treasure Data
 
SQL Server It Just Runs Faster
SQL Server It Just Runs FasterSQL Server It Just Runs Faster
SQL Server It Just Runs Faster
 
Proving out flash storage array performance using swingbench and slob
Proving out flash storage array performance using swingbench and slobProving out flash storage array performance using swingbench and slob
Proving out flash storage array performance using swingbench and slob
 
Analyzing and Interpreting AWR
Analyzing and Interpreting AWRAnalyzing and Interpreting AWR
Analyzing and Interpreting AWR
 
Database Core performance principles
Database Core performance principlesDatabase Core performance principles
Database Core performance principles
 

More from Jignesh Shah

PostgreSQL Extensions: A deeper look
PostgreSQL Extensions:  A deeper lookPostgreSQL Extensions:  A deeper look
PostgreSQL Extensions: A deeper look
Jignesh Shah
 
Deep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL UniverseDeep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL Universe
Jignesh Shah
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
Jignesh Shah
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
Jignesh Shah
 
Tuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris EnvironmentTuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris Environment
Jignesh Shah
 
PostgreSQL and Linux Containers
PostgreSQL and Linux ContainersPostgreSQL and Linux Containers
PostgreSQL and Linux Containers
Jignesh Shah
 
My experience with embedding PostgreSQL
 My experience with embedding PostgreSQL My experience with embedding PostgreSQL
My experience with embedding PostgreSQL
Jignesh Shah
 
SFPUG - DVDStore Performance Benchmark and PostgreSQL
SFPUG - DVDStore Performance Benchmark and PostgreSQLSFPUG - DVDStore Performance Benchmark and PostgreSQL
SFPUG - DVDStore Performance Benchmark and PostgreSQL
Jignesh Shah
 
Best Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual EnvironmentsBest Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual Environments
Jignesh Shah
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksJignesh Shah
 
OLTP Performance Benchmark Review
OLTP Performance Benchmark ReviewOLTP Performance Benchmark Review
OLTP Performance Benchmark ReviewJignesh Shah
 
Introduction to PostgreSQL for System Administrators
Introduction to PostgreSQL for System AdministratorsIntroduction to PostgreSQL for System Administrators
Introduction to PostgreSQL for System AdministratorsJignesh Shah
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Jignesh Shah
 

More from Jignesh Shah (13)

PostgreSQL Extensions: A deeper look
PostgreSQL Extensions:  A deeper lookPostgreSQL Extensions:  A deeper look
PostgreSQL Extensions: A deeper look
 
Deep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL UniverseDeep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL Universe
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
Tuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris EnvironmentTuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris Environment
 
PostgreSQL and Linux Containers
PostgreSQL and Linux ContainersPostgreSQL and Linux Containers
PostgreSQL and Linux Containers
 
My experience with embedding PostgreSQL
 My experience with embedding PostgreSQL My experience with embedding PostgreSQL
My experience with embedding PostgreSQL
 
SFPUG - DVDStore Performance Benchmark and PostgreSQL
SFPUG - DVDStore Performance Benchmark and PostgreSQLSFPUG - DVDStore Performance Benchmark and PostgreSQL
SFPUG - DVDStore Performance Benchmark and PostgreSQL
 
Best Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual EnvironmentsBest Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual Environments
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW Locks
 
OLTP Performance Benchmark Review
OLTP Performance Benchmark ReviewOLTP Performance Benchmark Review
OLTP Performance Benchmark Review
 
Introduction to PostgreSQL for System Administrators
Introduction to PostgreSQL for System AdministratorsIntroduction to PostgreSQL for System Administrators
Introduction to PostgreSQL for System Administrators
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
 

Recently uploaded

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

Problems with PostgreSQL on Multi-core Systems with MultiTerabyte Data

  • 1. Problems with PostgreSQL on Multi-core Systems with Multi- Terabyte Data Jignesh Shah and PostgreSQL Performance Team @ Sun Sun Microsystems Inc PGCon May 2008 - Ottawa
  • 2. PostgreSQL Performance Team @Sun • Staale Smedseng • Magne Mahre • Paul van den Bogaard • Lars-Erik Bjork • Robert Lor • Jignesh Shah • Guided by Josh Berkus
  • 3. Agenda • Current market trends • Impact on workload with PostgreSQL on multicore systems > PGBench Scalability > TPCE- Like Scalability > IGEN Scalability • Impact with multi-terabyte data running PostgreSQL • Tools and Utilities for DBA • Summary Next Steps
  • 5. Current Market Trends in Systems • Quad-core sockets are current market standards > Also 8-core sockets available now and could become a standard in next couple of year • Most common rack servers now have two sockets > 8-core (or more ) systems are the norm with trend going to 12-16 core systems soon • Most Servers have internal drives > 146 GB > Denser in capacity, smaller in size but essentially same or lower speed > More denser in case of SATA-II drives
  • 6. Current Market Trends in Software • Software (including Operating Systems) have yet to fully catch up with multi-core systems > “tar” still single process utility • Horizontal Scaling helps a lot but not a good clean solution for multi-core systems • Virtualization is the new buzzword for Consolidations > Hides the fact that the software is not able to fully capitalize the extra cores :-( • Research being done on new paradigms > Complexity of parallelized software is huge
  • 7. Current Market Trends in Data • 12 years ago, a 20GB data warehouse was considered a big database • Now everybody talks about 200GB-5TB databases • Some 2005 Survey numbers: > Top OLTP DB sizes = 5,973 GB to 23,101 GB > Top DW DB Sizes = 17,685 GB to 100,386 GB > Source http://www.wintercorp.com/VLDB/2005_TopTen_Survey/TopTenWinners_2005.asp • Some 2007 Survey numbers: > Top DB sizes = 20+ TB to 220 TB ( 6+ PB on tape) > Source http://www.businessintelligencelowdown.com/2007/02/top_10_largest.html
  • 8. Impact on workloads with multi-cores system running PostgreSQL
  • 9. PGBench (Modified ) • Custom insert.sql > BEGIN; > INSERT INTO history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP); > END; • pgbench -f insert.sql -s 1000 -c 1 -t 10000 pgbench
  • 10. PGBench ( inserts only) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 2000 4000 6000 8000 10000 12000 Linear tps (async) tps (commit_sibling=5) tps(default) Number of Clients Transactionspersecond(tps) • IOPS on logs during regular pgbench run is around 800 w/s which means transaction optimizations happening somewhere • With commit_delay (sibling =5) at 16 clients IOPS on logs is 102 w/sec which means quite a bit of capacity on logs yet • With synchronous_commit=off wal_writer_delay=100ms, the iops on the log devices is 10 w/sec • Same performance with wal_writer_delay=10ms (50w/sec on logs) and wal_writer_delay=1ms (100w/sec on logs)
  • 11. PGBench ( inserts only) – Take II 1 2 4 8 16 32 64 128 400 4000 40000 400000 Linear tps (async) tps (commit_sibling=5) tps(default) Number of Clients Transactionspersecond(tps) • At 128 clients system (16cores) was 58% idle (commit) , 56% idle (async) • As more and more clients are added eventually performance seems to converge • Runs with 256 clients and beyond using pgbench Clients pgbench running on a different server becomes cpu core limited and hence those results are not useful
  • 12. TPC-E Like Workload with PG 8.3 1 2 3 4 5 6 7 8 9 Idle-CPU TPC-E Linear Clients Number of x64 Cores Performance • At 7 cores number of clients increases beyond 110 • Increasing more cores beyond 8 doesn't seem to help much in terms of performance • Quick dtrace shows ProcArrayLock Exclusive waits increasing while committing transactions at high loads
  • 13. Some thoughts • Two main Blocks for PostgreSQL Backend: > READS > LOCK WAITS (Top few): > ProcArray Exclusive > Dynamic Locks (Shared) IndexScan > Dynamic Locks (Exclusive) InsertIndexTuples • Reducing and modifying various indexes increased performance more than 2-3X but still limited due to core indexes required • Haven't filtered out lock spins which keeps CPU busy (results in higher CPU utilization with more core without appropriate increase in throughput rates)
  • 14. IGEN with PostgreSQL on T2000 32 64 128 256 512 1024 1280 1536 0 20000 40000 60000 80000 100000 120000 140000 160000 iGen OLTP, 4 minute averages, varying thinktimes [ms], 32 HW-threads 1ms think 5ms think 10ms think 50ms think 100ms think 200ms think Clients TPM • Sun Enterprise T2000 has 32 hardware threads of CPU • Data and log files on RAM (/tmp) • Database reloaded everytime before the run
  • 15. IGEN with PostgreSQL on T2000 • First number is LockID, (Only 2 different locks pop up: ProcArrayLock == 4; WALWriteLock == 8) • Second is Mode: S(hared)or E(xclusive) mode • Third is Function P(arse), B(ind), E(xecute). • Example: procarraylock in S(hared) mode while doing a B(ind) operation will be reflected in the graph 4SB
  • 16. OLTP Workload on PostgreSQL • Top Light Weight Locks having increasing wait times as connections increases > ProcArrayLock > EXCLUSIVE - Called from ProcArrayEndTransaction() from CommitTransaction() > SHARED - Called from GetSnapShotData() > WALWriteLock > XlogFlush() > WALInsertLock > XLogInsert() •
  • 17. ProcArray LWLock Thoughts • ProcArray Lock currently has one wait list > If it encounters SHARED, it looks if the following wait-listed process is SHARED or not if it is wakes them up together > If it Encounters EXCLUSIVE, it just wakes up that process • Multiple SHARED process can execute simultaneously on multi-core, > maybe a two wait-list (SHARED, EXCLUSIVE) or something schedule SHARED requests together might improve utilization • Won't help EXCLUSIVE (which is the main problem) > Reduce Code Path > Use some sort of Messaging to synchronize
  • 18. WALWriteLock & WALInsertLock • WALWriteLock can be controlled > commit_delay=10 (at expense of latency of individual commit) > synchronous_commit = off (for non-mission critical types) • WALInsertLock (writing into the WAL buffers) eventually still is a problem > Even after increasing WAL Buffers, its single write lock architecture makes it a contention point • Making WALInsertLock more granular will certainly help scalability > Some discussion on reserving WAL Buffer space and releasing locks earlier
  • 19. Impact on workloads with multi-terabyte data running PostgreSQL
  • 20. Some Observations • Its easy to reach a terabyte even with OLTP environments • Even a single socket run for TPC-E could result close to about 1 TB data population > http://tpc.org/tpce/tpce_price_perf_results.asp • In some sense you can work around “writes” but “read” will block and random read can have real poor response time bigger the database size • Blocking Reads specially while holding locks is detrimental to performance and scaling •
  • 21. Impact on Sequential Scan • Sequential Scan rate impact depends on not only on storage hardware but also CPU intense functions which depends on updates done to table since last vacuum > Types of functions with high CPU usage during sequential reads: HeapTupleSatisfiesMVCC (needs Vacuum to avoid this CPU cost), heapgettup_pagemode, advance_* (count() fuction) > Blocking reads and then CPU intense functions results in inefficient usage of system resources which should be separated in two separate processes if possible > Hard to predict rate of scan during Sequential scan with PostgreSQL > Example: Before Vacuum: Sequential scan takes 216.8sec > After Vacuum: Same sequential scan takes 120.2sec
  • 22. Impact on Index Range Scan • Similar to sequential scan except still slower • High CPU usage functions include index_getnext(), _bt_checkkeys, HeapTupleSatisfiesMVCC, pg_atomic_cas (apart from BLOCKS happening with read) • Slow enough to cause performance problems > 26 reads/sec on index and 1409 reads/sec on table during a sample index range scan (with file system buffer on) Its really reads on tables that kills the range scan even when SQL only refers to columns in the index > 205 seconds Vs 102 seconds (via sequential) while doing primary key range scan •
  • 24. Think about the DBA • Multicore systems means more end users using the database • More pressure on DBA to keep the scheduled downtime window small • Keeping DBA's guessing (“is it done yet?”) while running maintenance commands is like testing the breaking point of his patience • Example: VACUUM FULL - > Customer (DBA) reported it took 18 hrs to vacuum 3.4TB > VACUUM is just an example, all maintenance commands need to be multi-core aware designed to handle multi- terabyte data efficiently
  • 25. Tools Utilities • Tools are generally used more as a single task at a time • Problems with Tools using a Single Process approach Compute Intensive IO Intensive Maxes out 1 cpu/core/thread at a time Wasted CPU Resources Wated IO Resources Uses 1 cpu/core/thread at a time Wasted CPU Resources Resulting System Utilization very poor Most people do not run other tasks while doing maintenance jobs *No indication when it will finish*
  • 26. BACKUP Performance • pg_dump dbname > CPU limited with hot functions _ndoprnt, CopyAttributeOut, CopyOneRowTo, memcpy > Processing about 36MB/sec when CPU is saturated > Multiple pg_dump process could give about 91MB/sec which means if additional cores are used it could effectively help speed up backup • Same goes for pg_recovery
  • 27. VACUUM Performance • We saw earlier state of last VACUUM is important for performance which means VACUUM is needed (apart from XID rollover) • However VACUUM itself is very inefficient if there are cost_delays set > Sample run on about 15GB table with vacuum_cost_delay=50: > CPU utilization : 2% avg > Took 3:03:39 @ 1.39 MB/sec > Hot functions: heap_prune_chain(30%), lazy_scan_heap(14%), HeapTupleSatisfiesVacuum(14%) • A heavily updated table can result in a bigger downtime just to get VACUUM completed on it
  • 28. VACUUM Performance • If costs for auto_vacuum are controlled and let DBA initiated VACUUM go full speed then (cost_limit=1, cost_delay=0) • Hot functions include bsearch > Sample run on about 15GB table: > CPU utilization : 0-55% avg core > Took 0:18:8 @ 14.11 MB/sec > Hot functions: heap_prune_chain, hash_search_with_hash_value, heap_freeze_tuple • Even with this a 1TB table could take about 20 hours • Maybe help with some sort of pipelining reads through one process while processing it with another
  • 29. CREATE INDEX Performance • Dropping Index takes about 10 seconds • However index creation is much longer > Depending on type of columns, the backend can process about 18MB/sec before its limited by core performance > Hot functions are btint8cmp (in this case) 50%, dumptuples (25%), comparetup_index (9.1)%, timestamp_cmp(3%) • In this particular index it was index on an id and a timestamp field. • On a table that takes about 105 second to do a full sequential scan, it takes about 1078 seconds to create an index (10X)
  • 30. Summary/Next Step • Propose more projects in making DBA utilities multi-process capable to spread up the work (eg VACUUM) • Propose a separate background reader for sequential scans so that it can do processing more efficiently without blocking for read • Propose re-thinking INDEX in multi-terabyte world
  • 31. More Acknowledgements • Greg Smith, Truviso - Guidance on PGBench • Masood Mortazavi – PostgreSQL Manager @ Sun • PostgreSQL Team @ Sun
  • 32. More Information • Blogs on PostgreSQL > Josh Berkus: http://blogs.ittoolbox.com/database/soup > Jignesh Shah: http://blogs.sun.com/jkshah/ > Paul van den Bogaard: http://blogs.sun.com/paulvandenbogaard/ > Robert Lor: http://blogs.sun.com/robertlor/ > Tom Daly: http://blogs.sun.com/tomdaly/ • PostgreSQL on Solaris Wiki: > http://wikis.sun.com/display/DBonSolaris/PostgreSQL • PostgreSQL Questions: > postgresql-questions@sun.com > databases-discuss@opensolaris.org
  • 33. Q & A
  • 35. TPC-E Characteristics • Brokerage House workload • Scale factor in terms of active customers to be used dependent on target performance (roughly Every 1K customer = 7.1GB raw data to be loaded) • Lots of Constraints and Foreign keys • Business logic (part of system) can be implemented via Stored Procedures or other mechanisms • Can be used to stress multiple features of database: Random IO reads/writes, Index performance, stored procedure performance, response times, etc
  • 36. TPC-E Highlights ● Complex schema ● Referential Integrity ● Less partitionable ● Increase # of trans ● Transaction Frames ● Non-primary key access to data ● Data access requirements (RAID) ● Complex transaction queries ● Extensive foreign key relationships ● TPC provided core components