Discussion of the roadmap
In the cluster summit and XC meeting as a part of PGCon 2014, this year, many productive discussions were made. Outline of the meeting will be found at Cluster Summit memo and XC meeting memo.
The important conclusions/advices were as follows:
- Postgres-XC already has sufficient feature.
- Missing features are not seriously used in production.
- Should concentrate on stabilization and bug fix.
- Catching-up PostgreSQL may not be urgent issue.
- Make community process more open.
- Publishing simple benchmark is sufficient. Just concentrate on DBT-1, DBT-2 and pgbench.
To-do list below has a bunch of features. Most of them can be classified as:
- Performance improvement,
- Improve cluster configuration and operation,
- High-availability.
To-do list and priority is subject to realistic use case and resource. Further discussion/proposal and development effort are very very welcome.
List of ToDos
It is highly advised that proposal/discussion material are linked from each item.
PG Merge
- PostgreSQL 9.4 merge
- This is high priority because we want to stay in sync with PG.
Single Binary for Postgres-XC
- Coordinator/Datanode integration
- When only one node is running as a cluster, planner should produce the same plan as current PostgreSQL.
- Simplify cluster configuration/operation
- This will improve read transaction by local cache at coordinator level.
- GTM/GTM Proxy integration into user backend or postmaster.
- Subquery optimisation
- DML Planning
- Executor refactoring to support binary mode
- Needed for better support of JDBC
Statics Collector
- Statistics (Maintain global statistics. Necessary for planning big queries as seen in DBT-3)
- Query optimisation (statistics)
More PG compliance
- SELECT FOR UPDATE
- WHERE CURRENT OF
- Long object support
Partitioning
- Distribution column update
- Alter table concurrently
- Range and list distribution
External data sources
Transaction
- SAVEPOINT
- Global deadlock detection
Administration
- pgxc_ctl improvement
- Barrier improvement
- Synchronize PREPARE in explicit 2PC if applicable.
Constraints support
Connectors
Other
- DBT-5 Analysis and running DBT-5 with Postgres-XC
- Use of temporary object with implicit 2PC
- General OID/CTID handling
- General function handling
- upgrade utility for upgrading a PG standalone database to PG XC cluster
- Pooler enhancements / refactoring
Known Bugs
- Fix the bug #311 (fail to commit in plpgsql)
- Fix the bug #427, some statment stack with EXECUTE DIRECT
- Fix view privilege issue.
- Transaction handling while GTM is out.
Other open bug list is available at List of known bugs.