SlideShare a Scribd company logo
1 of 42
Download to read offline
Copyright © 2016 NTT DATA Corporation
03/17/2016
NTT DATA Corporation
Masahiko Sawada
Introduction VACUUM, FREEZING, XID wraparound
2Copyright © 2016NTT DATA Corporation
A little about me	
Ø  Masahiko Sawada
Ø  twitter : @sawada_masahiko
Ø  NTT DATA Corporation
Ø  Database engineer
Ø  PostgreSQL Hacker
Ø  Core feature
Ø  pg_bigm (Multi-byte full text search module for PostgreSQL)
3Copyright © 2016NTT DATA Corporation
Contents	
•  VACUUM
•  Visibility Map
•  Freezing Tuple
•  XID wraparound
•  New VACUUM feature for 9.6
Copyright © 2016 NTT DATA Corporation 4
What is the VACUUM?
5Copyright © 2016 NTT DATA Corporation
VACUUM	
1 AAA
2 BBB
3 CCC
2 bbb
4 DDD Concurrently INSERT/DELETE/UPDATE	
1 AAA
2 BBB
3 CCC
2 bbb
1 AAA
3 CCC
2 bbb
4 DDD
VACUUM
Starts
VACUUM
Done
FSM	
UPDATE : BBB->bbb	
•  Postgres garbage collection feature
•  Acquire ShareUpdateExclusive Lock
6Copyright © 2016 NTT DATA Corporation
Why do we need to VACUUM?	
•  Recover or reuse disk space occupied
•  Update data statistics
•  Update visibility map to speed up Index-Only Scan.
•  Protect against loss of very old data due to XID wraparound
7Copyright © 2016 NTT DATA Corporation
Evolution history of VACUUM	
v8.1 (2005) v8.4 (2009)
autovacuum
!?
Visibility Map
Free Space Map
v9.5 (2016)
vacuumdb
parallel option
v9.6
8Copyright © 2016 NTT DATA Corporation
VACUUM Syntax	
-- VACUUM whole database
=# VACUUM;
-- Multiple option, analyzing only col1 column
=# VACUUM FREEZE VERBOSE ANALYZE hoge (col1);
-- Multiple option with parentheses
=# VACUUM (FULL, ANALYZE, VERBOSE) hoge;
Copyright © 2016 NTT DATA Corporation 9
Visibility Map
10Copyright © 2016 NTT DATA Corporation
Visibility Map	
•  Introduced at 8.4
•  A bit map for each table (1 bit per 1 page)
•  A table relation can have a visibility map.
•  keep track of which pages are all-visible page
•  keep track of which pages are having garbage.
•  If 500GB table, Visibility Map is less than 10MB.
Table
(base/XXX/1234)	
Visibility Map
(base/XXX/1234_vm)	
Block 0
Block 1
Block 2
Block 3
Block 4	
11001…
11Copyright © 2016 NTT DATA Corporation
State transition of Visibility Map bit	
VACUUM
0 1
INSERT, UPDATE, DELETE
(NOT all-visible)	
 (all-visible)
12Copyright © 2016 NTT DATA Corporation
How does the VACUUM works actually?	
•  VACUUM works with two phases;
1.  Scan table to collect TID
2.  Reclaim garbage (Table, Index)
maintenance_work_mem	
Index
	
Table
Scan
Table
Collect
garbage TID
Reclaim
garbages
1st Phase
2nd Phase
13Copyright © 2016 NTT DATA Corporation
Performance improvement point of VACUUM	
•  Scan table page one by one.
•  vacuum can skip, iff there are more than 32 consecutive all-visible pages
•  Store and remember garbage tuple ID to maintenance_work_mem.
VACUUM can skip to scan efficiency.
SLOW!!FAST!
VACUUM needs to scan all page.
: all-visible block	
: Not all-visible block
Copyright © 2016 NTT DATA Corporation 14
XID wraparound and freezing tuple
15Copyright © 2016 NTT DATA Corporation
What is the transaction ID (XID)?	
•  Every tuple has two transaction IDs.
•  xmin : Inserted XID
•  xmax : Deleted/Updated XID
xmin | xmax | col
-------+------+------
1810 | 1820 | AAA
1812 | 0 | BBB
1814 | 1830 | CCC
1820 | 0 | XXX
In REPEATABLE READ transaction isolation level,
•  Transaction 1815 can see ‘AAA’, ‘BBB’ and ‘CCC’.
•  Transaction 1821 can see ‘BBB’, ‘CCC’ and ‘XXX’
•  Transaction 1831 can see ‘BBB’ and ‘XXX’.
16Copyright © 2016 NTT DATA Corporation
What is the transaction ID (XID)?	
•  Can represent up to 4 billion transactions (uint32).
•  XID space is circular with no endpoint.
•  There are 2 billion XIDs that are “older”, 2 billion XIDs that are “newer”.	
0232-1
Older
(Not visible)	
Newer
(Visible)
17Copyright © 2016 NTT DATA Corporation
What is the XID wraparound?	
XID=100	
XID=100	
XID 100 become
not visible	
XID=100	
Older
(Visible)	
Newer
(Not visible)	
XID 100 is visible	
Older
(Not visible)	
 Older
(Not visible)	
Newer
(Visible)	
Newer
(Visible)	
Still visible	
•  Postgres could loss the very old data due to XID wraparound.
•  When tuple is more than 2 billion transaction old, it could be happen.
•  If 200 TPS system, it’s happen every 120 days.
•  Note that it could be happen on INSERT-only table.
18Copyright © 2016 NTT DATA Corporation
Freezing tuple	
•  Mark tuple as “Frozen”
•  Marking “frozen” means that it will appear to be “in the past” to all transaction.
•  Must freeze old tuple *before* XID proceeds 2 billion.	
XID=100
(FREEZE)	
XID=100
(FREEZE)	
Tuple is visible.
XID=100	
Older
(Visible)	
Newer
(Not visible)	
XID 100 is visible	
Older
(Not visible)	
 Older
(Not visible)	
Newer
(Visible)	
Newer
(Visible)	
Still visible.
Tuple is marked as
‘FREEZE’
19Copyright © 2016 NTT DATA Corporation
To prevent old data loss due to XID wraparound	
•  Emit WARNING log at 10 million transactions remaining.
•  Prohibit to generate new XID at 1 million transactions remaining.
•  Run anti-wraparound VACUUM automatically.
20Copyright © 2016 NTT DATA Corporation
Anti-wraparound VACUUM	
•  All table has pg_class.relfrozenxid value.
•  All tuples which had been inserted by XID older than relfrozenxid have been
marked as “Frozen”.
•  Same as forcibly executed VACUUM *FREEZE*.
Current XID	
pg_class.
relfrozenxid	
anti-
wraparound
VACUUM is
launched
forcibly	
VACUUM could
do a whole
table scan	
autovacuum_max_freeze_age
(default 200 million)	
+ 2 billion	
vacuum_freeze_table_age
(default 150 million)	
XID
wraparound
21Copyright © 2016 NTT DATA Corporation
Anti-wraparound VACUUM	
At this XID, lazy VACUUM is
executed.	
Current XID	
pg_class.
relfrozenxid	
anti-
wraparound
VACUUM is
launched
forcibly	
VACUUM could
do a whole
table scan	
autovacuum_max_freeze_age
(default 200 million)	
+ 2 billion	
vacuum_freeze_table_age
(default 150 million)	
XID
wraparound	
VACUUM
22Copyright © 2016 NTT DATA Corporation
VACUUM could
do a whole
table scan	
Anti-wraparound VACUUM	
If you execute VACUUM at this XID,
anti-wraparound VACUUM will be
executed.	
If you do VACUUM at this XID,
anti-wraparound VACUUM is
executed.	
pg_class.
relfrozenxid	
anti-
wraparound
VACUUM is
launched
forcibly	
autovacuum_max_freeze_age
(default 200 million)	
+ 2 billion	
vacuum_freeze_table_age
(default 150 million)	
XID
wraparound	
anti-wraparound
VACUUM
	
Current XID
23Copyright © 2016 NTT DATA Corporation
Anti-wraparound VACUUM	
After current XID is exceeded, anti-
wraparound VACUUM is launched
forcibly by autovacuum.
pg_class.
relfrozenxid	
anti-
wraparound
VACUUM is
launched
forcibly	
autovacuum_max_freeze_age
(default 200 million)	
+ 2 billion	
vacuum_freeze_table_age
(default 150 million)	
XID
wraparound	
anti-wraparound
auto VACUUM
	
Current XID	
VACUUM could
do a whole
table scan
24Copyright © 2016 NTT DATA Corporation
Anti-wraparound VACUUM	
After anti-wraparound VACUUM,
relrozenxid value is updated.
Current XID	
pg_class.
relfrozenxid	
vacuum_freeze_min_age
(default 50 million)
25Copyright © 2016 NTT DATA Corporation
anti-wraparound VACUUM is too slow	
•  Scanning whole table is always required to proceed relfrozenxid.
•  Because lazy vacuum could skip page having the visible but not frozen tuple.	
Visibility
Map
Block
#
xmin
0	
 0	
FREEZE
FREEZE
1	
 1	
FREEZE
FREEZE
1	
 2	
101
102
103
0	
 3	
Garbage
104
Normal
VACUUM	
Anti-
wraparound
VACUUM
Copyright © 2016 NTT DATA Corporation 26
How can we improve anti-wraparound VACUUM?
27Copyright © 2016 NTT DATA Corporation
Approaches	
•  Freeze Map
•  Track pages which are necessary to be frozen.
•  64bit XID
•  Change size of XID from 32bit to 64bit.
•  LSN to XID map
•  Mapping XID to LSN.
28Copyright © 2016 NTT DATA Corporation
Freeze Map	
•  New feature for 9.6.
•  Improve VACUUM FREEZE, anti-wraparound VACUUM performance.
•  Bring us to functionality for VLDB.
29Copyright © 2016 NTT DATA Corporation
Idea - Add an additional bit	
•  Not adding new map.
•  Add a additional bit to Visibility Map.
•  The additional bits tracks which pages are all-frozen.
•  All-frozen page should be all-visible as well.
10110010	
all-visible	
 all-frozen
30Copyright © 2016 NTT DATA Corporation
State transition of two bits	
00	
10	
 11	
all-visible	
 all-frozen	
VACUUM
UPDATE/
DELETE/
INSERT	
UPDATE/
DELETE/
INSERT	
VACUUM
FREEZE
VACUUM
FREEZE
31Copyright © 2016 NTT DATA Corporation
Idea - Improve anti-wraparound performance	
•  VACUUM can skip all-frozen page even if anti-wraparound VACUUM is
required.
Normal
VACUUM	
Anti-
wraparound
VACUUM	
Visiblity Map Block
#
xmin
visible frozen
1	
 0	
 0	
FREEZE
FREEZE
1	
 1	
 1	
FREEZE
FREEZE
1	
 0	
 2	
101
102
103
0	
 0	
 3	
Garbage
104
32Copyright © 2016 NTT DATA Corporation
Pros/Cons	
•  Pros
•  Dramatically performance improvement for VACUUM FREEZE.
•  Read only table. (future)
•  Cons
•  Bloat Visibility Map size as twice.
33Copyright © 2016 NTT DATA Corporation
No More Full-Table Vacuums	
http://rhaas.blogspot.jp/2016/03/no-more-full-table-vacuums.html#comment-form
Copyright © 2016 NTT DATA Corporation 34
Another work
35Copyright © 2016 NTT DATA Corporation
Vacuum Progress Checker	
•  New feature for 9.6. (under reviewing)
•  Report progress information of VACUUM via system view.
36Copyright © 2016 NTT DATA Corporation
Idea	
•  Add new system view.
•  Report meaningful progress information for detail per process doing VACUUM.	
postgres(1)=# SELECT * FROM pg_stat_vacuum_progress ;
-[ RECORD 1 ]-------+--------------
pid | 55513
relid | 16384
phase | Scanning Heap
total_heap_blks | 451372
current_heap_blkno | 77729
total_index_pages | 559364
scanned_index_pages | 559364
index_scan_count | 1
percent_complete | 17
37Copyright © 2016 NTT DATA Corporation
Future works	
•  Read Only Table
•  Report progress information of other maintenance command.
Copyright © 2011 NTT DATA Corporation
Copyright © 2016 NTT DATA Corporation
PostgreSQL git repository
git://git.postgresql.org/git/postgresql.git
39Copyright © 2016 NTT DATA Corporation
VERBOSE option	
=# VACUUM VERBOSE hoge;
INFO: vacuuming "public.hoge"
INFO: scanned index "hoge_idx1" to remove 1000 row versions
DETAIL: CPU 0.00s/0.01u sec elapsed 0.01 sec.
INFO: "hoge": removed 1000 row versions in 443 pages
DETAIL: CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: index "hoge_idx1" now contains 100000 row versions in 276
pages
DETAIL: 1000 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: "hoge": found 1000 removable, 100000 nonremovable row
versions in 447 out of 447 pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 0.00s/0.05u sec elapsed 0.05 sec.
VACUUM
40Copyright © 2016 NTT DATA Corporation
FREEZE option	
•  Aggressive freezing of tuples
•  Same as running normal VACUUM with vacuum_freeze_min_age = 0 and
vacuum_freeze_table_age = 0
•  Always scan whole table
41Copyright © 2016 NTT DATA Corporation
ANALYZE option	
•  Do ANALYZE after VACUUM
•  Update data statistics used by planner	
-- VACUUM and analyze with VERBOSE option
=# VACUUM ANALYZE VERBOSE hoge;
INFO: vacuuming "public.hoge"
:
INFO: analyzing "public.hoge"
INFO: "hoge": scanned 452 of 452 pages, containing 100000 live rows and
0 dead rows; 30000 rows in sample, 100000 estimated total rows
VACUUM
42Copyright © 2016 NTT DATA Corporation
FULL option	
•  Completely different from lazy VACUUM
•  Similar to CLUSTER
•  Acquire AccessExclusiveLock
•  Take much longer than lazy VACUUM
•  Need more space at most twice as table size.
•  Rebuild table and indexes
•  Freeze tuple while VACUUM FULL (9.3~)

More Related Content

What's hot

HOT Understanding this important update optimization
HOT Understanding this important update optimizationHOT Understanding this important update optimization
HOT Understanding this important update optimizationGrant McAlister
 
Vacuum in PostgreSQL
Vacuum in PostgreSQLVacuum in PostgreSQL
Vacuum in PostgreSQLRafia Sabih
 
XIDを周回させてみよう
XIDを周回させてみようXIDを周回させてみよう
XIDを周回させてみようAkio Ishida
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015PostgreSQL-Consulting
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PGConf APAC
 
Same plan different performance
Same plan different performanceSame plan different performance
Same plan different performanceMauro Pagano
 
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerOptimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerSamaySharma10
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksJignesh Shah
 
Autovacuum, explained for engineers, new improved version PGConf.eu 2015 Vienna
Autovacuum, explained for engineers, new improved version PGConf.eu 2015 ViennaAutovacuum, explained for engineers, new improved version PGConf.eu 2015 Vienna
Autovacuum, explained for engineers, new improved version PGConf.eu 2015 ViennaPostgreSQL-Consulting
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsCommand Prompt., Inc
 
Oracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsOracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsCarlos Sierra
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)Uptime Technologies LLC (JP)
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Full Page Writes in PostgreSQL PGCONFEU 2022
Full Page Writes in PostgreSQL PGCONFEU 2022Full Page Writes in PostgreSQL PGCONFEU 2022
Full Page Writes in PostgreSQL PGCONFEU 2022Grant McAlister
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL TuningPgDay.Seoul
 

What's hot (20)

Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
HOT Understanding this important update optimization
HOT Understanding this important update optimizationHOT Understanding this important update optimization
HOT Understanding this important update optimization
 
Vacuum in PostgreSQL
Vacuum in PostgreSQLVacuum in PostgreSQL
Vacuum in PostgreSQL
 
XIDを周回させてみよう
XIDを周回させてみようXIDを周回させてみよう
XIDを周回させてみよう
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
Same plan different performance
Same plan different performanceSame plan different performance
Same plan different performance
 
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
 
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerOptimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW Locks
 
Autovacuum, explained for engineers, new improved version PGConf.eu 2015 Vienna
Autovacuum, explained for engineers, new improved version PGConf.eu 2015 ViennaAutovacuum, explained for engineers, new improved version PGConf.eu 2015 Vienna
Autovacuum, explained for engineers, new improved version PGConf.eu 2015 Vienna
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 
Oracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsOracle Performance Tuning Fundamentals
Oracle Performance Tuning Fundamentals
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Full Page Writes in PostgreSQL PGCONFEU 2022
Full Page Writes in PostgreSQL PGCONFEU 2022Full Page Writes in PostgreSQL PGCONFEU 2022
Full Page Writes in PostgreSQL PGCONFEU 2022
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
 

Viewers also liked

Праздник осени
Праздник осениПраздник осени
Праздник осениIrina Kutuzova
 
FEL Position Paper
FEL Position PaperFEL Position Paper
FEL Position Paperchitlesh
 
Blended-and-Braided-Funding_final
Blended-and-Braided-Funding_finalBlended-and-Braided-Funding_final
Blended-and-Braided-Funding_finalKC Jones
 
OBHE Presentation, Malcolm Read, JISC 3 november 2011
OBHE Presentation, Malcolm Read, JISC 3 november 2011OBHE Presentation, Malcolm Read, JISC 3 november 2011
OBHE Presentation, Malcolm Read, JISC 3 november 2011Jisc
 
Frases para la vida jesus vargas
Frases para la vida jesus vargasFrases para la vida jesus vargas
Frases para la vida jesus vargasJesus Vargas
 
Sales management 8 2014 van verkopen naar co creatie
Sales management 8 2014 van verkopen naar co creatieSales management 8 2014 van verkopen naar co creatie
Sales management 8 2014 van verkopen naar co creatieAntwerp Management School
 
Unit Testing with Nose
Unit Testing with NoseUnit Testing with Nose
Unit Testing with NoseVengat Vasanth
 
Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)JISC.AM
 
Intro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite AppsIntro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite Appsdreamforce2006
 
áNgel luis 4º b. nuevas nike safari boots
áNgel luis 4º b.  nuevas nike safari bootsáNgel luis 4º b.  nuevas nike safari boots
áNgel luis 4º b. nuevas nike safari bootsadnaya
 
Representing Bicyclists CLE Materials
Representing Bicyclists CLE MaterialsRepresenting Bicyclists CLE Materials
Representing Bicyclists CLE MaterialsCharley Gee
 

Viewers also liked (20)

Mississippi flood 2011
Mississippi flood 2011Mississippi flood 2011
Mississippi flood 2011
 
Праздник осени
Праздник осениПраздник осени
Праздник осени
 
Ecologically Safe Monotheistic Solutions to Global Crisis Of The Finance System
Ecologically Safe Monotheistic Solutions to Global Crisis Of The Finance SystemEcologically Safe Monotheistic Solutions to Global Crisis Of The Finance System
Ecologically Safe Monotheistic Solutions to Global Crisis Of The Finance System
 
OrgCultureView_v0.1
OrgCultureView_v0.1OrgCultureView_v0.1
OrgCultureView_v0.1
 
01
0101
01
 
Conceitos Interativos08
Conceitos Interativos08Conceitos Interativos08
Conceitos Interativos08
 
FEL Position Paper
FEL Position PaperFEL Position Paper
FEL Position Paper
 
Blended-and-Braided-Funding_final
Blended-and-Braided-Funding_finalBlended-and-Braided-Funding_final
Blended-and-Braided-Funding_final
 
OBHE Presentation, Malcolm Read, JISC 3 november 2011
OBHE Presentation, Malcolm Read, JISC 3 november 2011OBHE Presentation, Malcolm Read, JISC 3 november 2011
OBHE Presentation, Malcolm Read, JISC 3 november 2011
 
Frases para la vida jesus vargas
Frases para la vida jesus vargasFrases para la vida jesus vargas
Frases para la vida jesus vargas
 
Sales management 8 2014 van verkopen naar co creatie
Sales management 8 2014 van verkopen naar co creatieSales management 8 2014 van verkopen naar co creatie
Sales management 8 2014 van verkopen naar co creatie
 
Weapons of Mass Deception by David Moosa Pidcock, Leader of Islamic Party of ...
Weapons of Mass Deception by David Moosa Pidcock, Leader of Islamic Party of ...Weapons of Mass Deception by David Moosa Pidcock, Leader of Islamic Party of ...
Weapons of Mass Deception by David Moosa Pidcock, Leader of Islamic Party of ...
 
Unit Testing with Nose
Unit Testing with NoseUnit Testing with Nose
Unit Testing with Nose
 
Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)
 
LOS RESULTADOS MARAVILLOSOS DE LA JUSTIFICACIÓN
LOS RESULTADOS MARAVILLOSOS DE LA JUSTIFICACIÓNLOS RESULTADOS MARAVILLOSOS DE LA JUSTIFICACIÓN
LOS RESULTADOS MARAVILLOSOS DE LA JUSTIFICACIÓN
 
Intro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite AppsIntro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite Apps
 
áNgel luis 4º b. nuevas nike safari boots
áNgel luis 4º b.  nuevas nike safari bootsáNgel luis 4º b.  nuevas nike safari boots
áNgel luis 4º b. nuevas nike safari boots
 
Regulamento Bom pra tudo
Regulamento Bom pra tudoRegulamento Bom pra tudo
Regulamento Bom pra tudo
 
Representing Bicyclists CLE Materials
Representing Bicyclists CLE MaterialsRepresenting Bicyclists CLE Materials
Representing Bicyclists CLE Materials
 
Meri_dliny1
Meri_dliny1Meri_dliny1
Meri_dliny1
 

Similar to Introduction VAUUM, Freezing, XID wraparound

Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than everMasahiko Sawada
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLMasahiko Sawada
 
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...VirtualTech Japan Inc.
 
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...DataStax
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorMasahiko Sawada
 
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platformcloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
cloudera Apache Kudu Updatable Analytical Storage for Modern Data PlatformRakuten Group, Inc.
 
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...Cloudera, Inc.
 
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...VMworld
 
Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph
Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph
Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph Ceph Community
 
DRBD + OpenStack (Openstack Live Prague 2016)
DRBD + OpenStack (Openstack Live Prague 2016)DRBD + OpenStack (Openstack Live Prague 2016)
DRBD + OpenStack (Openstack Live Prague 2016)Jaroslav Jacjuk
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Henning Jacobs
 
DataCore Technology Overview
DataCore Technology OverviewDataCore Technology Overview
DataCore Technology OverviewJeff Slapp
 
Data Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
Data Science Connect, July 22nd 2014 @IBM Innovation Center ZurichData Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
Data Science Connect, July 22nd 2014 @IBM Innovation Center ZurichRomeo Kienzler
 
How to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesHow to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesSolarWinds
 
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...Michal Němec
 
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?Anne Nicolas
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance AnalysisRodrigo Campos
 
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...DataStax
 
Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...
Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...
Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...VirtualTech Japan Inc.
 

Similar to Introduction VAUUM, Freezing, XID wraparound (20)

Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQL
 
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
 
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
 
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platformcloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
 
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
 
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
 
Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph
Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph
Ceph Day Tokyo - Bit-Isle's 3 years footprint with Ceph
 
Stabilizing Ceph
Stabilizing CephStabilizing Ceph
Stabilizing Ceph
 
DRBD + OpenStack (Openstack Live Prague 2016)
DRBD + OpenStack (Openstack Live Prague 2016)DRBD + OpenStack (Openstack Live Prague 2016)
DRBD + OpenStack (Openstack Live Prague 2016)
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
 
DataCore Technology Overview
DataCore Technology OverviewDataCore Technology Overview
DataCore Technology Overview
 
Data Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
Data Science Connect, July 22nd 2014 @IBM Innovation Center ZurichData Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
Data Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
 
How to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesHow to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machines
 
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
 
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
 
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
 
Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...
Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...
Design and Operation of OpenStack Cloud on 100 Physical Servers - OpenStack S...
 

More from Masahiko Sawada

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLMasahiko Sawada
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Masahiko Sawada
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Masahiko Sawada
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~Masahiko Sawada
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説Masahiko Sawada
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and FutureMasahiko Sawada
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介Masahiko Sawada
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索Masahiko Sawada
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことMasahiko Sawada
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題Masahiko Sawada
 

More from Masahiko Sawada (20)

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
Vacuumとzheap
VacuumとzheapVacuumとzheap
Vacuumとzheap
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Parallel Vacuum
Parallel VacuumParallel Vacuum
Parallel Vacuum
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいこと
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題
 

Recently uploaded

Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceIES VE
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxMarkSteadman7
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 

Recently uploaded (20)

Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Introduction VAUUM, Freezing, XID wraparound

  • 1. Copyright © 2016 NTT DATA Corporation 03/17/2016 NTT DATA Corporation Masahiko Sawada Introduction VACUUM, FREEZING, XID wraparound
  • 2. 2Copyright © 2016NTT DATA Corporation A little about me Ø  Masahiko Sawada Ø  twitter : @sawada_masahiko Ø  NTT DATA Corporation Ø  Database engineer Ø  PostgreSQL Hacker Ø  Core feature Ø  pg_bigm (Multi-byte full text search module for PostgreSQL)
  • 3. 3Copyright © 2016NTT DATA Corporation Contents •  VACUUM •  Visibility Map •  Freezing Tuple •  XID wraparound •  New VACUUM feature for 9.6
  • 4. Copyright © 2016 NTT DATA Corporation 4 What is the VACUUM?
  • 5. 5Copyright © 2016 NTT DATA Corporation VACUUM 1 AAA 2 BBB 3 CCC 2 bbb 4 DDD Concurrently INSERT/DELETE/UPDATE 1 AAA 2 BBB 3 CCC 2 bbb 1 AAA 3 CCC 2 bbb 4 DDD VACUUM Starts VACUUM Done FSM UPDATE : BBB->bbb •  Postgres garbage collection feature •  Acquire ShareUpdateExclusive Lock
  • 6. 6Copyright © 2016 NTT DATA Corporation Why do we need to VACUUM? •  Recover or reuse disk space occupied •  Update data statistics •  Update visibility map to speed up Index-Only Scan. •  Protect against loss of very old data due to XID wraparound
  • 7. 7Copyright © 2016 NTT DATA Corporation Evolution history of VACUUM v8.1 (2005) v8.4 (2009) autovacuum !? Visibility Map Free Space Map v9.5 (2016) vacuumdb parallel option v9.6
  • 8. 8Copyright © 2016 NTT DATA Corporation VACUUM Syntax -- VACUUM whole database =# VACUUM; -- Multiple option, analyzing only col1 column =# VACUUM FREEZE VERBOSE ANALYZE hoge (col1); -- Multiple option with parentheses =# VACUUM (FULL, ANALYZE, VERBOSE) hoge;
  • 9. Copyright © 2016 NTT DATA Corporation 9 Visibility Map
  • 10. 10Copyright © 2016 NTT DATA Corporation Visibility Map •  Introduced at 8.4 •  A bit map for each table (1 bit per 1 page) •  A table relation can have a visibility map. •  keep track of which pages are all-visible page •  keep track of which pages are having garbage. •  If 500GB table, Visibility Map is less than 10MB. Table (base/XXX/1234) Visibility Map (base/XXX/1234_vm) Block 0 Block 1 Block 2 Block 3 Block 4 11001…
  • 11. 11Copyright © 2016 NTT DATA Corporation State transition of Visibility Map bit VACUUM 0 1 INSERT, UPDATE, DELETE (NOT all-visible) (all-visible)
  • 12. 12Copyright © 2016 NTT DATA Corporation How does the VACUUM works actually? •  VACUUM works with two phases; 1.  Scan table to collect TID 2.  Reclaim garbage (Table, Index) maintenance_work_mem Index Table Scan Table Collect garbage TID Reclaim garbages 1st Phase 2nd Phase
  • 13. 13Copyright © 2016 NTT DATA Corporation Performance improvement point of VACUUM •  Scan table page one by one. •  vacuum can skip, iff there are more than 32 consecutive all-visible pages •  Store and remember garbage tuple ID to maintenance_work_mem. VACUUM can skip to scan efficiency. SLOW!!FAST! VACUUM needs to scan all page. : all-visible block : Not all-visible block
  • 14. Copyright © 2016 NTT DATA Corporation 14 XID wraparound and freezing tuple
  • 15. 15Copyright © 2016 NTT DATA Corporation What is the transaction ID (XID)? •  Every tuple has two transaction IDs. •  xmin : Inserted XID •  xmax : Deleted/Updated XID xmin | xmax | col -------+------+------ 1810 | 1820 | AAA 1812 | 0 | BBB 1814 | 1830 | CCC 1820 | 0 | XXX In REPEATABLE READ transaction isolation level, •  Transaction 1815 can see ‘AAA’, ‘BBB’ and ‘CCC’. •  Transaction 1821 can see ‘BBB’, ‘CCC’ and ‘XXX’ •  Transaction 1831 can see ‘BBB’ and ‘XXX’.
  • 16. 16Copyright © 2016 NTT DATA Corporation What is the transaction ID (XID)? •  Can represent up to 4 billion transactions (uint32). •  XID space is circular with no endpoint. •  There are 2 billion XIDs that are “older”, 2 billion XIDs that are “newer”. 0232-1 Older (Not visible) Newer (Visible)
  • 17. 17Copyright © 2016 NTT DATA Corporation What is the XID wraparound? XID=100 XID=100 XID 100 become not visible XID=100 Older (Visible) Newer (Not visible) XID 100 is visible Older (Not visible) Older (Not visible) Newer (Visible) Newer (Visible) Still visible •  Postgres could loss the very old data due to XID wraparound. •  When tuple is more than 2 billion transaction old, it could be happen. •  If 200 TPS system, it’s happen every 120 days. •  Note that it could be happen on INSERT-only table.
  • 18. 18Copyright © 2016 NTT DATA Corporation Freezing tuple •  Mark tuple as “Frozen” •  Marking “frozen” means that it will appear to be “in the past” to all transaction. •  Must freeze old tuple *before* XID proceeds 2 billion. XID=100 (FREEZE) XID=100 (FREEZE) Tuple is visible. XID=100 Older (Visible) Newer (Not visible) XID 100 is visible Older (Not visible) Older (Not visible) Newer (Visible) Newer (Visible) Still visible. Tuple is marked as ‘FREEZE’
  • 19. 19Copyright © 2016 NTT DATA Corporation To prevent old data loss due to XID wraparound •  Emit WARNING log at 10 million transactions remaining. •  Prohibit to generate new XID at 1 million transactions remaining. •  Run anti-wraparound VACUUM automatically.
  • 20. 20Copyright © 2016 NTT DATA Corporation Anti-wraparound VACUUM •  All table has pg_class.relfrozenxid value. •  All tuples which had been inserted by XID older than relfrozenxid have been marked as “Frozen”. •  Same as forcibly executed VACUUM *FREEZE*. Current XID pg_class. relfrozenxid anti- wraparound VACUUM is launched forcibly VACUUM could do a whole table scan autovacuum_max_freeze_age (default 200 million) + 2 billion vacuum_freeze_table_age (default 150 million) XID wraparound
  • 21. 21Copyright © 2016 NTT DATA Corporation Anti-wraparound VACUUM At this XID, lazy VACUUM is executed. Current XID pg_class. relfrozenxid anti- wraparound VACUUM is launched forcibly VACUUM could do a whole table scan autovacuum_max_freeze_age (default 200 million) + 2 billion vacuum_freeze_table_age (default 150 million) XID wraparound VACUUM
  • 22. 22Copyright © 2016 NTT DATA Corporation VACUUM could do a whole table scan Anti-wraparound VACUUM If you execute VACUUM at this XID, anti-wraparound VACUUM will be executed. If you do VACUUM at this XID, anti-wraparound VACUUM is executed. pg_class. relfrozenxid anti- wraparound VACUUM is launched forcibly autovacuum_max_freeze_age (default 200 million) + 2 billion vacuum_freeze_table_age (default 150 million) XID wraparound anti-wraparound VACUUM Current XID
  • 23. 23Copyright © 2016 NTT DATA Corporation Anti-wraparound VACUUM After current XID is exceeded, anti- wraparound VACUUM is launched forcibly by autovacuum. pg_class. relfrozenxid anti- wraparound VACUUM is launched forcibly autovacuum_max_freeze_age (default 200 million) + 2 billion vacuum_freeze_table_age (default 150 million) XID wraparound anti-wraparound auto VACUUM Current XID VACUUM could do a whole table scan
  • 24. 24Copyright © 2016 NTT DATA Corporation Anti-wraparound VACUUM After anti-wraparound VACUUM, relrozenxid value is updated. Current XID pg_class. relfrozenxid vacuum_freeze_min_age (default 50 million)
  • 25. 25Copyright © 2016 NTT DATA Corporation anti-wraparound VACUUM is too slow •  Scanning whole table is always required to proceed relfrozenxid. •  Because lazy vacuum could skip page having the visible but not frozen tuple. Visibility Map Block # xmin 0 0 FREEZE FREEZE 1 1 FREEZE FREEZE 1 2 101 102 103 0 3 Garbage 104 Normal VACUUM Anti- wraparound VACUUM
  • 26. Copyright © 2016 NTT DATA Corporation 26 How can we improve anti-wraparound VACUUM?
  • 27. 27Copyright © 2016 NTT DATA Corporation Approaches •  Freeze Map •  Track pages which are necessary to be frozen. •  64bit XID •  Change size of XID from 32bit to 64bit. •  LSN to XID map •  Mapping XID to LSN.
  • 28. 28Copyright © 2016 NTT DATA Corporation Freeze Map •  New feature for 9.6. •  Improve VACUUM FREEZE, anti-wraparound VACUUM performance. •  Bring us to functionality for VLDB.
  • 29. 29Copyright © 2016 NTT DATA Corporation Idea - Add an additional bit •  Not adding new map. •  Add a additional bit to Visibility Map. •  The additional bits tracks which pages are all-frozen. •  All-frozen page should be all-visible as well. 10110010 all-visible all-frozen
  • 30. 30Copyright © 2016 NTT DATA Corporation State transition of two bits 00 10 11 all-visible all-frozen VACUUM UPDATE/ DELETE/ INSERT UPDATE/ DELETE/ INSERT VACUUM FREEZE VACUUM FREEZE
  • 31. 31Copyright © 2016 NTT DATA Corporation Idea - Improve anti-wraparound performance •  VACUUM can skip all-frozen page even if anti-wraparound VACUUM is required. Normal VACUUM Anti- wraparound VACUUM Visiblity Map Block # xmin visible frozen 1 0 0 FREEZE FREEZE 1 1 1 FREEZE FREEZE 1 0 2 101 102 103 0 0 3 Garbage 104
  • 32. 32Copyright © 2016 NTT DATA Corporation Pros/Cons •  Pros •  Dramatically performance improvement for VACUUM FREEZE. •  Read only table. (future) •  Cons •  Bloat Visibility Map size as twice.
  • 33. 33Copyright © 2016 NTT DATA Corporation No More Full-Table Vacuums http://rhaas.blogspot.jp/2016/03/no-more-full-table-vacuums.html#comment-form
  • 34. Copyright © 2016 NTT DATA Corporation 34 Another work
  • 35. 35Copyright © 2016 NTT DATA Corporation Vacuum Progress Checker •  New feature for 9.6. (under reviewing) •  Report progress information of VACUUM via system view.
  • 36. 36Copyright © 2016 NTT DATA Corporation Idea •  Add new system view. •  Report meaningful progress information for detail per process doing VACUUM. postgres(1)=# SELECT * FROM pg_stat_vacuum_progress ; -[ RECORD 1 ]-------+-------------- pid | 55513 relid | 16384 phase | Scanning Heap total_heap_blks | 451372 current_heap_blkno | 77729 total_index_pages | 559364 scanned_index_pages | 559364 index_scan_count | 1 percent_complete | 17
  • 37. 37Copyright © 2016 NTT DATA Corporation Future works •  Read Only Table •  Report progress information of other maintenance command.
  • 38. Copyright © 2011 NTT DATA Corporation Copyright © 2016 NTT DATA Corporation PostgreSQL git repository git://git.postgresql.org/git/postgresql.git
  • 39. 39Copyright © 2016 NTT DATA Corporation VERBOSE option =# VACUUM VERBOSE hoge; INFO: vacuuming "public.hoge" INFO: scanned index "hoge_idx1" to remove 1000 row versions DETAIL: CPU 0.00s/0.01u sec elapsed 0.01 sec. INFO: "hoge": removed 1000 row versions in 443 pages DETAIL: CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: index "hoge_idx1" now contains 100000 row versions in 276 pages DETAIL: 1000 index row versions were removed. 0 index pages have been deleted, 0 are currently reusable. CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: "hoge": found 1000 removable, 100000 nonremovable row versions in 447 out of 447 pages DETAIL: 0 dead row versions cannot be removed yet. There were 0 unused item pointers. Skipped 0 pages due to buffer pins. 0 pages are entirely empty. CPU 0.00s/0.05u sec elapsed 0.05 sec. VACUUM
  • 40. 40Copyright © 2016 NTT DATA Corporation FREEZE option •  Aggressive freezing of tuples •  Same as running normal VACUUM with vacuum_freeze_min_age = 0 and vacuum_freeze_table_age = 0 •  Always scan whole table
  • 41. 41Copyright © 2016 NTT DATA Corporation ANALYZE option •  Do ANALYZE after VACUUM •  Update data statistics used by planner -- VACUUM and analyze with VERBOSE option =# VACUUM ANALYZE VERBOSE hoge; INFO: vacuuming "public.hoge" : INFO: analyzing "public.hoge" INFO: "hoge": scanned 452 of 452 pages, containing 100000 live rows and 0 dead rows; 30000 rows in sample, 100000 estimated total rows VACUUM
  • 42. 42Copyright © 2016 NTT DATA Corporation FULL option •  Completely different from lazy VACUUM •  Similar to CLUSTER •  Acquire AccessExclusiveLock •  Take much longer than lazy VACUUM •  Need more space at most twice as table size. •  Rebuild table and indexes •  Freeze tuple while VACUUM FULL (9.3~)