Mais conteúdo relacionado
Semelhante a PostgreSQLのこれまで、9.0、そしてこれから (11)
Mais de Takahiro Itagaki (6)
PostgreSQLのこれまで、9.0、そしてこれから
- 3. PostgreSQL 9.0
9.0 5
9.0.0
2 / 3
Ingress
Ingress PostgreSQL
PostgreSQL 8.1
1977
6.0
6.0
7.4
7.4
••
•2
8.3 9.0 (2010/8 )
•2
1986
1996
2000 ••
•HOT:
•HOT: •
•
2003 •VACUUM
•VACUUM
2004
•
•
•
•
POSTGRES
POSTGRES 2005
•
• //
2006
7.3
7.3 •
•
2007
2008
2009
8.0 2010
•Windows 8.2
•Windows
•• •CPU
•CPU
•• (PITR)
(PITR) •
• 8.
•• •GIN:
•GIN: Window
Window
•VACUUM
•VACUUM
• DBMS
• DBMS
JPUG 2010 3
- 4. PostgreSQL 9.0
1.
2. ( )
3. VACUUM FULL
1 2 3
/
LISTEN/NOTIFY /
Windows 64-bit
( URL )
http://developer.postgresql.org/pgdocs/postgres/release-9-0.html
http://lets.postgresql.jp/documents/technical/9.0/
JPUG 2010 4
- 5. 1.
9.0 2
•
=
= •
( )
VACUUM
/
PostgreSQL
JPUG 2010 5
- 6. vs.
READ WRITE READ WRITE
( v8.4)
8.4
WAL
archive_command WAL pg_standby
( 1 )
READ WRITE READ WRITE
9.0 (v9.0)
WAL
( )
wal sender WAL wal receiver
9.0
9.0
JPUG 2010 6
- 7. vs.
Slony-I pgpool-II
9.0 2.0 2.3
DB ( ) DB
SQL PK , DDL ※
☆ 10 10 3
( )
○
○
○
JPUG 2010 7
☆ ※PK= , DDL=
- 8. 2.
(UNIQUE)
“ ” “ ”
(EXCLUDE)
“ ” “ ”
GPS
JPUG 2010 8
- 9. CREATE TABLE placement (
&& “ ”
object text,
location box, --
EXCLUDE USING gist (location WITH &&)
);
CREATE TABLE reservation (
room text,
during period, -- { , }
EXCLUDE USING gist (room WITH =, during WITH &&)
);
gist
text gist contrib/btree_gist
period ( 9.1 )
JPUG 2010 9
- 10. 3. VACUUM FULL
VACUUM FULL
8.4 “ ”
9.0 “ ”
VACUUM FULL
VACUUM FULL UP
UP
VACUUM ( )
FULL
FULL
+TRUNCATE
JPUG 2010 10
- 11. PostgreSQL
VACUUM
VACUUM 8.4 ,
FULL 9.0 ,
CLUSTER + ,
REINDEX - ,
VACUUM
VACUUM FULL (8.4)
REINDEX
VACUUM FULL (9.0) CLUSTER REINDEX
REINDEX
JPUG 2010 11
- 13. 8.1 8.3
CPU
?
16CPU
8.3
8CPU 8.2
8.1
2CPU
8.0
JPUG 2010 13
- 14. - CPU
バ 5
ー 8.0
ジ 8.2
ョ 8.1 8CPU
ン 4 8 16core
ご CPU
と 8.2
の
、
C
3
P
U
1
個 2 8.1
に 4CPU
対
す
る 1 8.0
相 2CPU
対
性
能 0
1 2 4 8 12 16 20 24 28 32core
Scaling PostgreSQL on SMP Architectures Doug Tolbert (Unisys), PGCon 2007, Ottawa, 2007-05-24
http://www.pgcon.org/2007/schedule/events/16.en.html
JPUG 2010 14
- 15. 8.3
HOT 2
8.3
8.3
HOT
8.2
FILLFACTOR
JPUG 2010 15
- 16. – HOT (Heap-Only Tuples)
HOT Fill Factor
Fill Factor TPS
TPS
pgbench 280
40% 260
240
220 40%UP!
VACUUM 200
VACUUM
180
Fill Factor 160
HOT
140
100%( ) 120 HOT
90~95% 100
ALTER TABLE tablename 70 75 80 85 90 95 100
SET (fillfactor=95); Fill Factor (%)
pgbench -s400 (5GB)
NTT OSS Center
JPUG 2010 16
- 17. -
Checkpoint
Throughput [TPM]
8.2
Checkpoint Next Checkpoint
8.3
Time [sec]
JPUG 2010 17
- 18. SQL /
9.0
8.4
8.3 O/R ※
8.2 IN, EXISTS
8.1
Window
Bitmap Scan
min/max ORDER BY LIMIT
“ ” Seq Scan
JPUG 2010 ※ ORM SQL JOIN 18
- 19. VACUUM
VACUUM
8.2 8.3
9.0
8.4
autovacuum 8.3
VACUUM
FULL
8.2
VACUUM
8.1
8.0 HOT
7.4 XID
autovacuum
REINDEX
VACUUM XID
JPUG 2010 19
- 20. PostgreSQL is NoSQL!
Not Only SQL : SQL( )
( / )
XML
9.1
(GIN) 9.0
8.4 SQL/MED
(GiST) 8.3 JSON
8.2
6.0 FDW
SQL
JPUG 2010 20
- 23. PGCon 2010
2010 5 20 21 @
150 ( )
35
9.0
9.1
JPUG 2010 23
- 24. PGCon2010
:
Caixa Economica Federal ( )
22,000 ATM, 7 /
Enova Financial ( )
OLTP 1.3TB, 4000 / , 24
MySQL PostgreSQL
+
9.0
PgMQ :
Eventually Consistent
Postgres-XC
ACID
JPUG 2010 24
- 25. : 9.0 9.1
PostgreSQL 9.0
α
( : )
??
PostgreSQL 9.1
( , )
MERGE : UPDATE, INSERT
REPLACE, UPSERT SQL “MERGE”
Predicate Lock
SE-PgSQL : ,
SQL/MED : , DB
, JSON
PGCon 2010 http://wiki.postgresql.org/wiki/PgCon_2010_Developer_Meeting
JPUG 2010 25
Notas do Editor
- それぞれのバージョンでのCPU1個での性能で正規化しているため、バージョンアップによる性能向上は見えていない。当然ながら、基本性能も向上し続けている。