PostgreSQL 8.3 Update

Post on 02-Nov-2014

1,767 views 0 download

Tags:

description

PostgreSQL 8.3の新機能のうち、特にHOT更新による高速化について解説します。

transcript

1

PostgreSQL 8.3 Update8.3

PostgreSQL / NTT OSS

2007.6.23

2007.DB

http://www.ospn.jp/osc2007.db/

2

8.1 8.3

8.1

8.2

8.3XML

GIN

HOT

fillfactor

autovacuum

autovacuum

3

8.1 8.2

8.1

8.2

8.3XML

GIN

HOT

fillfactor

autovacuum

autovacuum

4

CPU

0000

1111

2222

3333

4444

5555

1111 2222 4444 8888 12121212 16161616 20202020 24242424 28282828 32323232

8.08.08.08.0

8.18.18.18.1

8.28.28.28.2

8.2

8CPU

8.1

4CPU

8.0

2CPU

NUMA

Scaling PostgreSQL on SMP Architectures

Doug Tolbert (Unisys), PGCon 2007, Ottawa, 2007-05-24http://www.pgcon.org/2007/schedule/events/16.en.html

core

TPC-C(OLTP) CPU

SMP(8CPU )

バージョンごとの、CPU1個に対する相対性能

5

• tsearch2

: SELECT isbn,title FROM booksWHERE fts @@ to_tsquery(‘word1 & word2’);

– GiST, GIN: 2

– ,

306MB532s3344ms39msGIN

×2.10×3.02×11.94×0.35

146MB176s280ms112msGiST

Full-Text Search in PostgreSQL

Oleg Bartunov PGCon 2007, Ottawa, 2007/5/23http://www.pgcon.org/2007/schedule/events/13.en.html

• → GiST

• → GIN

tsearch2 GiST GIN

6

VACUUM

• UPDATE

VACUUM

7

PostgreSQL 8.3

1.– HOT OLTP

2.–

3.– WAL

4. VACUUM– VACUUM autovacuum

8

(1) 8.3

• HOT

– pgbench40%

•–

– VACUUM

• VACUUM

• FillFactor

– 100%( )90~95%

• ALTER TABLE nameSET (fillfactor=95);

pgbench -s400 (5GB)NTT OSS Center

Fill Factor TPS

100

120

140

160

180

200

220

240

260

280

70 75 80 85 90 95 100Fill Factor (%)

TPS

HOT

HOT

FillFactor

40%UP!

9

HOT (1)

• 8.2 UPDATE

D

C

B

A

8→7002

12004

20003

10001

ID…

10

HOT (2)

• 8.2 UPDATE

12D004

B

C

B

A

8002

7002

20003

10001

ID

UPDATE

××××3(I/O)

××××2(CPU)

11

HOT (3)

• 8.3 HOT UPDATE

7B002

12D004

C

B

A

8002

20003

10001

ID

UPDATE

1→

××××1(I/O)

××××1(CPU)

HOT

1/2

1/3

Heap

Only

Tuple

12

HOT (4)

• 8.3 HOT UPDATE

7B002

6B002

12D004

C

A

20003

10001

ID

UPDATE

HOT

VACUUM

××××1(I/O)

××××1(CPU)

HOT

VACUUM

13

HOT

• UPDATE

– DELETE+INSERT

– FillFactor

– VACUUM

VACUUM

14

PostgreSQL 8.3

1.– HOT OLTP

2.–

3.– WAL

4. VACUUM– VACUUM autovacuum

15

(2) 8.3

• (LDC)

EnterpriseDB Performance Testing http://community.enterprisedb.com/ldc/

16

– (write)

– (fsync)

8.2

8.3

PostgreSQL

I/O

I/O

17

PostgreSQL 8.3

1.– HOT OLTP

2.–

3.– WAL

4. VACUUM– VACUUM autovacuum

18

(3) 8.3

•– WAL I/O 1/2

• ( )

–• InfoFrame DB Maintenance (NEC)

• pg_bulkload ( , pgFoundry)

BEGIN;

TRUNCATE t;

COPY t FROM …;

COMMIT;0 20 40 60 80

pgbench -i -s30 ( COPY )

35%

NTT OSS Center

8.3

19

(4) 8.3 VACUUM

• autovacuum VACUUM

– (autovacuum_max_workers)

8.2 8.31

→ VACUUM

A B

VACUUM

20

8.1

8.2

8.3XML

GIN

HOT

fillfactor

autovacuum

autovacuum

21

PostgreSQL 8.3

• HOT OLTP

• VACUUM, Background Writer ( )

• SQL/XML, , , etc.