11年目を迎えたPostgreSQL
2006年、トロントで盛大な誕生10周年記念サミットが開催されたPostgreSQLはいよいよ次の10年へと踏み出しました。筆者はPostgreSQLの誕生のころから開発に参加していますが、トランザクションログも副問い合わせも外部キーもなかった当初のPostgreSQLを考えると、現在のPostgreSQLはまったく別のソフトウェアのように思えるほどです。
今ではすっかり成長して大規模・ミッションクリティカルなシステムでも広く使われているPostgreSQLですが、2007年はどのような方向へ向かおうとしているのでしょうか?
レプリケーション、クラスタリングソリューションへの取組み
最近では、筆者のところで扱う比較的大型の案件のうち、半数以上が何らかの形でレプリケーションやHA(High Availability)ソリューションを採用しており、ますますレプリケーション、クラスタリングソリューションが重要になっています。
2006年暮にリリースされたPostgreSQL 8.2では、はじめてレプリケーションやクラスタリングソリューションについて解説する章がドキュメントに追加されました。また、従来ともすればPostgreSQL本体とばらばらに開発されてきたレプリケーションソフトウェアがよりPostgreSQL本体と密接に連携できるインターフェースの開発も提案されています。
更新性能の改善がホットなテーマ
PostgreSQLはすでに検索やデータ追加の性能に関してはかなりのところまで来ています。とくに、マルチコアを採用するなど、CPUを多数備えるようなマシンでは、I/O ボトルネックにならない限り、ほぼCPU数に比例するような高い性能を発揮できるようになりました。
最後に残った問題は更新性能で、この点を克服できれば大規模、高トランザクション性能が要求されるような用途により適用しやすくなります。そのためにさまざまな提案が行われていますが、中でも「HOT(Heap Overflow Tuple)」は、PostgreSQLのデータ管理を大きく変えるラジカルな提案で(詳細はコミュニティサイトを参照)、場合によっては倍以上の更新性能を得ることができるそうです。
どのような形でPostgreSQLに取り込まれていくのかはまだわかりませんが、今後が楽しみです。