～ 8.4リリースせまる ～PostgreSQL ＆ PowerGres
最新情報
2008年12月13日
OSC Fukuoka 15:15～ 811教室
SRA OSS,Inc.日本支社
マーケティング部 高塚 遙
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

1

Table Of Contents
 PostgreSQLについておさらい 8.4リリースへの道 PowerGres V6 登場

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

2

PostgreSQLについておさらい 代表的なオープンソースのデータベースソフトウェア
 Ingres を祖先としていて長い歴史を持つ
 ＢＳＤライセンスで配布 コミュニティで開発 - 特定企業1社に属さない 多機能で知られ、基本機能では商用ＤＢと遜色ない クラスタ機能は様々な周辺ソフトで実現
 pgpool-II、Slony-I、bucardo、Skype tools

 Webバックエンドで広く使われてる 大規模システムも多数
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

3

8.4リリースへの道
The proposed timetable for the cycle is as follows:* 1st March 2008 - commit fest begins* 1st May 2008 - commit fest begins

小物はたくさん取り込み済* 1st July 2008 - commit fest begins* 1st September 2008 - commit fest begins* 1st November 2008 - final commit fest begins ←今ここ* 1st January 2009 - beta 1* 1st March 2009 - 8.4.0 release

大物は今まさにレビュー中！

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

4March 2008 - commit fest
Friendly help for psql
Fix pg_dump dependency on postgres.h
Truncate Triggers
Better psql tab-completion support for schemas and tables
suggested wording improvement in psql
REFERENCED BY in psql
Add size/acl information when listing databases
Integer datetimes
execute using(at PL/pgSQL)

Implemented current_query
rewrite numericdivision
plpgsql, forc statement
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

5

May 2008 - commit fest
Committed (1)Moving snapshot code around
Suppress compiler warnings on mingw
More datum-vs-pointer cleanups
Make int8, float8, timestamp, timestamptz pass-by-value on 64-bit
architectures
Improve shutdown during online backup
ADD COLUMN PRIMARY KEY buggenerate_subscripts(for array type)

Remove typename field from A_Const
Remove NONSEG code, add configurable BLCKSZ and segment size
separate psql commands from arguments
Add table size to \d+Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

6

May 2008 - commit fest
Committed (2)GUC parameter cursor_tuple_fraction
RETURN QUERY EXECUTE(at PL/pgSQL)

pl/python OUT param support
Add statement_timeout to pg_dump("SET statement_timeout = 0")

Replace more manual text <-> cstring conversions
pg_conf_load_time() patch
generate_series for Timestamp
Fix \dT enum in psql
Multiline privileges in \zlibpq win32.mak fix
psql wraps at window width
Proper handling of inherited CHECK constraints
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

7

May 2008 - commit fest
Committed (３)Snapshot registering and tracking
New printTable API
Show role attributes in \duadditional options for RAISE statement
stored procedure stats in collector
plpgsql CASE statement
localization infrastructure for ecpg
shorten startup banner
GIN partial match, tsearch prefix search
ALTER SEQUENCE RESTART, TRUNCATE TABLE with IDENTITY
lc_time and localized dates
libpq Mutex on Win32
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

8

July 2008 - commit fest
Committed (1)psql: \timing as a boolean arg
small typo in DTrace docs
GUC variable to replace PGBE_ACTIVITY_SIZE
extend VacAttrStats to allowstavalues of different types
Better formatting of functions in pg_dump
multi-version support for psql \d commands
pg_get_keywords()
pg_standby keepfiles calc bug
Adding variables for segment_size, wal_segment_size andblock sizes(as configure param.)
multicolumn GIN
page macros cleanup
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

9

July 2008 - commit fest
Committed (2)text search ANALYZE enhancements
array_fill function
Custom variadic functions
Table function support
executor_hook
pg_dump lock timeout
CITEXT: A case-insensitive TEXT type
DTrace probe additions

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

10

September 2008 - commit fest
Committed (1)Unsigned Integer data types
pg_dumpall lock timeout
psql help corrections
pgbench minor fixes
suset log temp files
Make some internal SRF functions use output parameters
Fixing bug in combocid.c
Fix potential memleak in gram.y
Report details if module has wrong magic block
Code coverage
Test citext casts
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

11

September 2008 - commit fest
Committed (2)pg_get_functiondef() and psql \efBoyer-Moore string searching
Add a separate TRUNCATE permission
pg_stop_backup minor fixesVerbosity of Function Return Type Checks
Additional catalog tracking for plan invalidation
GUC source file and line numberto_date() validation
pgbench duration option
pg_hba parsing
GSoC Improved Hash Indexing
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

12

September 2008 - commit fest
Committed (3)libpq events
NDirectFileRead and Write
operator restrictivity function for text searchFix dblink security hole
Collation support (WIP)
stats hooks and contrib/TOM
FSM rewrite

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

13

November 2008 - commit fest
Committed (1)Common Table Expressions(aka. WITH RECURSIVE)

Add default_val to pg_settings
Noisy _dosmaperror
Memory leak on hashed agg rescan
Atomic subtransaction commit
add placeholder variables to planner
pg_hba options parsing
libpq ssl -> clear fallback looses error messages
better hba parsing error messages
remove crypt authentication
Unicode escapes in literals
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

14

November 2008 - commit fest
Committed (2)User defined I/O conversion casts
Updating FSM on recovery
use new heap_(form/deform/modify)_tuple API
don't use MAKE_PTR/OFFSET for shmem pointersreducing statistics write overheadpg_typeof()
Fixes for psql describeOneTableDetails
PageGetTempPage cleanup
Allow the UUID type to accept non-standard formats
array_ndims
bulk inserts - keep most recent page pinned
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

15

November 2008 - commit fest
Committed (3)ALTER DATABASE SET TABLESPACE Statement
Tests citext casts
SQL Standard Interval output and IntervalStyle GUC
ISO 8601 interval literal input and output
Interval rounding consistency
array_length
SSL cleanups/hostname verificationarray_agg/array_accum
contrib/auto_explain
clientcert option for pg_hba

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

16November 2008 - commit fest
Committed (4)client certificate authentication
TABLE command
adding VERBOSE option to CLUSTER
regexp support in usermaps
pg_stop_backup wait bug fix
Visibility map, partial vacuums(aka. the dead space map.)

libpq callback unregistration
default values for function's parameters
add columns via CREATE OR REPLACE VIEW

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

17

November 2008 - commit fest
PENDING (1) SE-PostgreSQL and related
 SE-PostgreSQL patches Column-level Permissions

 Recovery, Replication, Hot Standby
 Infrastructure changes for recovery
 Hot Standby - queries during archive recovery
 rmgr hooks and contrib/rmgr_hook
 Synchronous log-shipping replication
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

18

Recovery, Replication, Hot Standby
 ウォームスタンバイ
アクセス
マスターDB
通常稼動

アクセス不可

×XLOG
非同期転送

待機DB
ずっとリカバリ 同期ホットスタンバイ
アクセス
マスターDB
通常稼動

読み取りアクセス可XLOG
同期転送

待機DB
ずっとリカバリ

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

19

November 2008 - commit fest
PENDING (2) Upgrade-in-place and related issues
 htup and bufpage API clean up pg_upgrade script for 8.3->8.4

 SQL language features Window Functions
 Automatic view update rules
 Enable pl/python to return records based on
multiple OUT params
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

20

November 2008 - commit fest
PENDING (3) Indexes
 GIN fast insert
 B-Tree emulation for GIN
 On-disk bitmap indexes Performance Improve Performance of Multi-Batch Hash Join
for Skewed Data Sets
 posix_fadvise
 Proposal of PITR performance improvement
 Hash Join-Filter Pruning using Bloom Filters
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

21

November 2008 - commit fest
PENDING (4) Improving admin experience Block-level CRC checks
 Auto Partitioning Patch Reducing some DDL Locks to ShareLock Connection management
 Client SSL key/certificate/etc file namespecification

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

22

November 2008 - commit fest
PENDING (5) Contrib modules
 contrib/pg_stat_statements
 pg_standby support for compressed segments
 Simple postgresql.conf wizard

 Clients
 pg_dump roles support
 parallel restore Misc.
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

23

WITH RECURSIVE
 再帰SQLのサポート
 リスト，木構造などのデータ構造から再帰的にデータを取得できる
 今はアプリで処理するか，PL/pgSQLなどの関数を使わなければならなかった

 住友電工とSRA OSSの協力により開発
 ユーザ企業が積極的にPostgreSQLの開発に関与

2008/10/03 OSC Tokyo

Copyright(c) 2008 SRA OSS, Inc. Japan24

単純な再帰SQL
WITH RECURSIVE t(n) AS (SELECT 1-- 非再帰項

UNION ALLAL
SELECT n+1 FROM t WHERE n < 100 -- 再帰項)
SELECT sum(n) FROM t;sum-----5050

2008/10/03 OSC Tokyo

Copyright(c) 2008 SRA OSS, Inc. Japan25

サンプルデータ
神奈川支部
東日本営業本部

横浜営業所
関内営業所

厚木工場
東京本社

戸塚営業所

製造事業本部
千葉工場
西日本営業本部

大阪支部

梅田営業所
難波営業所

2008/10/03 OSC Tokyo

Copyright(c) 2008 SRA OSS, Inc. Japan26

RDBでの表現
事業所名
東京本社
東日本営業本部
神奈川支部
横浜営業所
関内営業所
戸塚営業所
製造事業本部
厚木工場
千葉工場
西日本営業本部
大阪支部
梅田営業所
難波営業所
2008/10/03 OSC Tokyo

管轄事業所名東京本社
東日本営業本部
神奈川支部
横浜営業所
横浜営業所
東京本社
製造事業本部
製造事業本部
東京本社
西日本営業本部大阪支部
大阪支部
Copyright(c) 2008 SRA OSS, Inc. Japan

人員数1005050201510502002005050202027東日本営業本部以下の人員数を求める
再帰SQLの定義
WITH RECURSIVE 東日本営業人員(事業所名, 人員数) AS(SELECT 事業所名, 人員数 FROM 人員構成表
WHERE 事業所名 = '東日本営業本部'
UNION ALL
SELECT PEN.事業所名, PEN.人員数 FROM 人員構成表 ASPEN,
東日本営業人員 AS EBP
WHERE PEN.管轄事業所名 = EBP.事業所名)

一つのＳＱＬ

SELECT SUM(人員数) FROM 東日本営業人員 ;sum----145(1 row)
2008/10/03 OSC Tokyo

SELECT本体
出力Copyright(c) 2008 SRA OSS, Inc. Japan

28組織階層の「深さ」を表示
WITH RECURSIVE 東日本営業人員 （事業所名, レベル, 人員数） AS （SELECT 事業所名, 1, 人員数 FROM 人員構成表
WHERE 事業所名 = '東日本営業本部'
UNION ALL
SELECT PEN.事業所名, EBP.レベル+1, PEN.人員数
FROM 人員構成表 AS PEN, 東日本営業人員 AS EBP
WHERE PEN.管轄事業所名 = EBP.事業所名）
SELECT * FROM 東日本営業人員;

事業所名 | レベル| 人員数-------------+--------+-------東日本営業本部 |
1 |
50
神奈川支部
|
2 |
50
横浜営業所
|
3 |
20
関内営業所
|
4 |
15
戸塚営業所
|
4 |
10(5 rows)
2008/10/03 OSC Tokyo

Copyright(c) 2008 SRA OSS, Inc. Japan29

PowerGres V6 登場 SRA OSS,Inc. による PostgreSQL の商用版製品（50400円／サーバ）です。
 V6 は PostgreSQL 8.3.5 をベースにしています。
 一つ前の安定版でリリースしています。

 オリジナルのＧＵＩ管理ツールが付きます。
 廉価なサポート（８４０００円／年）が受けられます。
 Windows版 と Linux（Redhat）版があります。
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

30

PowerGres V6
 PostgreSQL 8.3由来の高速性 その１

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

31

PowerGres V6
 PostgreSQL 8.3由来の高速性 その２

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

32

PowerGres V6
GUI管理ツール
 設定
 起動／停止 バックアップ PITR
 状態表示 ロール、スキーマ、データベース管理
 管理コマンド実行
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

33

PowerGres V6
 バックアップにスケジュール機能追加

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

34

PowerGres V6
 GUI指定したバックアップコマンドをスケジュール登録

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

35

PowerGres V6
 GUIによるPITR管理
 V5 で登場の機能
 おそらく PostgreSQL の PITR対応ＧＵＩは、 未だ、PowerGres Manager だけと思われる
 ベースバックアップ、アーカイブロクの定型的な管理 ワンボタン操作のリカバリ

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

36

PowerGres V6
 GUIによるPITR管理
 V5 で登場の機能
 おそらく PostgreSQL の PITR対応ＧＵＩは、 未だ、PowerGres Manager だけと思われる
 ベースバックアップ、アーカイブロクの定型的な管理 ワンボタン操作のリカバリ

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

37

ありがとうございました PostgreSQLについておさらい 8.4リリースへの道 PowerGres V6 登場をお話しました。
SRA OSS, Inc. 日本支社
http://powergres.sraoss.co.jp
http://www.sraoss.co.jp
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

38