PostgreSQL Features, Futures and Funding Simon Riggs
The research leading to these results has received funding from the European Union's Seventh Framework Programme (FP7/2007-2013) under grant agreement numbers 258862 and 318633
Topics Features of PostgreSQL 9.3 Dev Process, History and Futures Professional Support & Funding Model
Database Feature Goals Robustness Security Ease of Use Performance Advanced Features
Robustness Robust codebase with automatic testing Transactions and Transaction Log handling User defined robustness/performance Synchronous replication Multiple backup options, with full tooling Data block checksumming Point in Time Recovery Diagnostic tools and utilities
Security Role based access privileges Flexible and Pluggable authentication Host-based access rules Encrypted client-server access Cryptographic function library Security Definer functions, Security Barrier views Safe procedural languages Active security team
Ease of Use One CHAR datatype, optimised up to 1GB Automatic compression of long column values SQL Standard conformity and sanity Relatively few parameters, much self-tuning JDBC, ODBC, Python, Perl,.Net access Linux, BSD, Windows portability Clear, full and accurate documentation
Performance OLTP PostgreSQL 9.3 achieves >12,000 tps on writes, >>100,000 tps on reads PostgreSQL 9.4 will achieve >20,000 tps writes Business Intelligence Advanced optimizer with many transforms Many join types, including hybrid hash joins Advanced statistics collection and usage
Advanced Features Triggers, Views, Window & Recursive SQL Integrated full text search with special indexes Pluggable GIS support with indexing for spatial and nearest neighbour searching Range types, Time and Language support Full Serializability option for transactions Pluggable datatypes, indexes, functions, server languages and many internals
Concurrency The heart of Postgres is its concurrency: MVCC General Purpose design allows a mixed workload of everything at once Very fast/ very slow queries Simple/Join queries/complex (GIS) Synchronous replication and faster/less robust Local data access and distributed data access Functions written in Perl, Python, C, Java etc
Relational and Non-relational XML and JSON datatypes Row types, Arrays EAV datatype: hstore PL/Proxy sharding toolkit
Research Funding Original Postgres project AXLE Project 4CaaST Project SP-GiST (NSF) Telegraph CQ MayBMS Postgres Raw...as well as commercial funding
Release Mechanisms Current Stable Release 9.3.1 Current Development Release9.4 Annual release cycle Each release takes about 16 months Typical time-to-production 8 16 months for minor tweaks 20, 32+ months for larger new features
9.4 Development Schedule May 14 Development Pre-meeting Jun 14 Commit Fest 1 Sep 14Commit Fest 2 Nov 14 Commit Fest 3 Last new projects Jan 14 Commit Fest 4 Final designs in Mar 14 Beta 1 Sep 14 Release
9.4 Big Features In-Progress Logical Replication Min Max Indexes Massive scalability gains Parallel Sort Locking impact reductions Row Level Security SKIP LOCKED
AXLE Project Analytics on Xtremely Large European data Secure Big Fast Hardware optimised Visual Analytics axleproject.eu
Min Max Indexes Automatic Partitioning Use theorem proving to avoid sections of scan Covers all columns, not just defined partition key ~0.01% size of table - min/max indexes Options for placement/free-space use
PostgreSQL Roadmap 9.4 10.0 10.1 Logical Replication Advanced Business Intelligence High Security Online Change Globally Distributed Database Very Large Database
Direction Database Rich Data Platform
2ndQuadrant Largest group of PostgreSQL contributors Authors of 3 popular tech guides Massive contribution to PostgreSQL Major contributions every release for 10 years >10% of code base developed by 2ndQuadrant Platinum Sponsor Thought Leader on major new features Many ongoing development projects
Business Model Consulting Open Source Development Training Support RemoteDBA
The research leading to these results has received funding from the European Union's Seventh Framework Programme (FP7/2007-2013) under grant agreement numbers 258862 and 318633