From c6b76cd7a9d42641bb238c00fed01a904ef25fa0 Mon Sep 17 00:00:00 2001 From: Pavan Deolasee Date: Thu, 21 Jan 2016 19:26:56 +0530 Subject: [PATCH] First draft of release notes. --- doc/src/sgml/release-xl-9.5.sgml | 647 ++++++++++++++++++++++++++++++- 1 file changed, 633 insertions(+), 14 deletions(-) diff --git a/doc/src/sgml/release-xl-9.5.sgml b/doc/src/sgml/release-xl-9.5.sgml index 67115bd75a..40c52e4ad4 100644 --- a/doc/src/sgml/release-xl-9.5.sgml +++ b/doc/src/sgml/release-xl-9.5.sgml @@ -6,33 +6,652 @@ Release Date - 2015-??-?? - Current as of 2015-06-01 + 2016-??-?? + Current as of 2016-01-18 Overview + + This major release of Postgres-XL is coming +almost 2 years after Postgres-XL 9.2 was released. The +earlier Postgres-XL release was based on +PostgreSQL 9.2. This release includes most of the +new features added in PostgreSQL 9.3, 9.4 and 9.5 +releases. This also includes almost all significant performance enhancements +that were made to PostgreSQL in the last few years. + + + + Apart from this, a lot of work has gone into fixing outstanding bugs, +improving stability of the product and significantly improving performance for OLTP +workloads. The following sections describe the major enhancements in +PostgreSQL that are now available in +Postgres-XL. A short list of features that are +currently not supported or have limited support is also mentioned in +. + + + + + Migration to Postgres-XL 9.5 + + Migration to Postgres-XL 9.5 from PostgreSQL 9.5 + + A dump/restore using + is required for those wishing to migrate + data from PostgreSQL 9.5 release. We don't currently support , as a mechanism to upgrade from PostgreSQL 9.5 + + + + + + + Migration to Postgres-XL 9.5 from Postgres-XL 9.2 + + Version 9.5 contains a number of changes that may affect compatibility + with previous releases. Since Postgres-XL 9.5 release includes all changes +from PostgreSQL 9.3, PostgreSQL 9.4 and PostgreSQL 9.5 releases, it is +recommended that you review respective release notes of those releases to find +the exact incompatibilities. + + + + + Major Enhancements in Postgres-XL 9.5 - Major enhancements in Postgres-XL 9.5 include: + Postgres-XL 9.5 is the first major release +after Postgres-XL 9.2 release. So this release +contains most of the major enhancements that went into +PostgreSQL releases 9.3, 9.4 and 9.5. This is a very +short list of such enhancements, but all other enhancements also apply, unless +otherwise stated. + + Major Enhancements from PostgreSQL 9.5 + + + + Allow INSERTs + that would generate constraint conflicts to be turned into + UPDATEs or ignored + + + + + + + Add row-level security control + + + + + + Create mechanisms for tracking + the progress of replication, + including methods for identifying the origin of individual changes + during logical replication + + + + + + Add Block Range Indexes (BRIN) + + + + + + Substantial performance improvements for sorting + + + + + + Substantial performance improvements for multi-CPU machines + + + + + + Major Enhancements from PostgreSQL 9.4 + + + + Add jsonb, a more + capable and efficient data type for storing JSON data + + + + + + Add new SQL command + for changing postgresql.conf configuration file entries + + + + + + Reduce lock strength for some + commands + + - + + + Allow materialized views + to be refreshed without blocking concurrent reads + + - + + + Add support for logical decoding + of WAL data, to allow database changes to be streamed out in a + customizable format + + - - - ... to be filled in ... - - + + + Allow background worker processes + to be dynamically registered, started and terminated + + + + + + Major Enhancements from PostgreSQL 9.3 + - + + + Make simple views auto-updatable + + + + + + Add many features for the JSON data type, + including operators and functions + to extract elements from JSON values + + + + + + Implement SQL-standard LATERAL option for + FROM-clause subqueries and function calls + + + + + + Add optional ability to checksum data pages and + report corruption + + + + + + Prevent non-key-field row updates from blocking foreign key checks + + + + + + Greatly reduce System V shared + memory requirements + + + + + + Major Enhancements PostgreSQL that are currently not supported + + + + Add GROUP BY analysis features GROUPING SETS, + CUBE and + ROLLUP + + + + + Add materialized + views + + + + + Allow foreign data + wrappers to support writes (inserts/updates/deletes) on foreign + tables + + + + + + Add a Postgres foreign + data wrapper to allow access to + other Postgres servers + + + + + + Add support for event triggers + + + + + + + + Changes - The above items are explained in more detail in the sections below. + Below you will find a detailed account of the changes between + Postgres-XL 9.5 and the previous major + release. - + + + + Analyze all regression failures and make necessary changes to the +expected output or the test cases. + + + + + Persistent connections are not supported between datanodes. + + + Configuration parameter persistent_datanode_connections +is ignored on the datanodes. So connections between datanodes are returned back +to the connection pool at the end of the transaction. A WARNING will be shown +when this parameter is set on the datanode side and the value will be ignored. + + + + + Change GID format to include all participant nodes. + + + Every implicit 2PC GID now includes node_id of every +participating node in the 2PC transaction. This refers to the + element of pgxc_node + .node_id value. + + + + + WAL log only the actual GID used to prepare a 2PC transaction, not the + maximum bytes reserved for GID. + + + This change considerably reduces the WAL space required while preparing a +transaction and shows siginificant performance improvement. + + - + + + Support Greenplum syntax for specifying distribution strategy for a table. + + + Postgres-XL now supports additional syntax for specifying distribution +strategy. This syntax is compatible with Greenplum. See + for more details. + + + + + Support Redshift syntax for specifying distribution strategy for a table. + + + Postgres-XL now supports additional syntax for specifying distribution +strategy. This syntax is compatible with Redshift. See + for more details. + + + + + Improve pgxc_ctl so that it checks if a directory is empty before it can be + used as data directory for a new datanode/coordinator. + + + + + Replicated tables are now highly-available for read-access. + + + Every node now maintains a healthmap about all other nodes in the cluster. If +a node goes down or is unreachable, the healthmap is updated. Queries that read +from replicated tables are then sent to a healthy node. Unhealthy nodes are +periodically pinged and their status is updated when they come back online. + + + + + "make check" now automatically sets up a 2-coordinator, 2-datanode cluster +and runs parallel regression schedule. + + + + + Significantly improve performance for queries that can be fully executed on a +single node by shipping them to the node. + + + Postgres-XC has Fast Query Shipping (FQS) feature to fully ship queries that can be safely executed on the remote +datanodes, without any finalisation at the coordinator. The same feature has +now been ported to Postgres-XL. This improves +performances for extremely short queries which are now directly planned and +executed on the datanodes. + + + + + Print EXPLAIN plans, as created by the datanodes, for queries that are fully +shipped to the datanodes. + + + + + Bump up default value for sequence_range to 1000. + + + The earlier default for this GUC was 1. But performance of INSERT is observed to be extremely poor +when sequences are incremented by 1. So the default value of this GUC is now bumped up to +1000. This can create holes in the sequence assignment. +Applications that do not want holes in sequence values should set this GUC to +1. + + + + + Force commit ordering at the GTM for transactions that have followed a + specific logical ordering at the datanode/coordinators. + + + + + Add a developer GUC "enable_datanode_row_triggers" to allow ROW TRIGGERS to be + executed on the datanodes. + + + This is a developer GUC and it must be used with caution since the feature +is not fully supported yet. When this GUC is turned on, +ROW TRIGGERS can be defined on tables. Such triggers will only be executed on +the datanodes and they must be written in a way such that they don't need +access to cluster-wide data. This feature is not well tested and users are +advised to do thorough testing before using this feature. + + + + + Add a developer-GUC 'gloabl_snapshot_source' to allow users to + override the way snapshots are computed. + + + This is a developer GUC and it must be used with caution since its usage can +lead to inconsistent or wrong query results. In +Postgres-XL, snapshots are normally computed at the +GTM so that a globally consistent view of the cluster can be obtained. But +sometimes applications may want to read using a slightly stale snapshot that is +computed on the coordinator, so that an extra round trip to the GTM is avoided. +While such snapshots can improve performance, they may give a wrong result, +especially when more than one coorinators are running. + + + + + Allow on-demand assignment of XIDs. + + + + + Add a Cluster Monitor process which periodically reports local state to the + GTM for computation of a consistent global state. + + + + + Compute RecentGlobalXmin on each node separately and send it to the GTM + periodically. GTM then computes a cluster-wide RecentGlobalXmin and passes it + back to the nodes. + + + + + Support recursive queries for replicated tables. + + + + + Wait for the socket to become ready to receive more data before attempting to + write again. + + + + + Cancel queries on remote connections upon transaction abort. + + + + + Add two new GUCs, log_gtm_stats and +log_remotesubplan_stats to + collect runtime information about GTM communication stats and remote subplan + stats. + + + + + Use poll() instead of select() to check if one or more file descriptors are + ready for read/write. + + + + + Fix aggregate handling for BIGINT/INT8 datatype for platforms with + support for 128-bit integers. + + + + + Add support to receive error HINTs from remote nodes and send them back to the + client along with the error message. + + + + + Add necessary machinery to support TABLESAMPLE clause. + + + + + Add 'C' and 'R' to log_line_prefix. + + + This helps us print remote coordinator ID and PID of the remote coordinator + process. This is useful for debugging + + + + + Add support for materialized views on the coordinator. + + + + + Add "force" option to pgxc_ctl init command to forcefully remove datanode, + coordinator or gtm directory. + + + + + Add a new "minimal" option to "prepare" command of pgxc_ctl. + + + + + Do not read prototype config file when dealing with user specified conf + file. + + + + + Set the size of pending connections on a pooler socket to some respectable + high limit. + + + + + Allow DMLs inside a plpgsql procedure on the coordinator. + + + + + Add support for GTM to backup data at BARRIER command. + + + + + Disable internal subtransactions. + + + + + Add support for pg_stat_statements. + + + + + Add xc_maintenance_mode GUC which is useful for resolving in-doubt + prepared transactions. + + + + + Add support for gtmSlaveName in pgxc_ctl.conf. + + + + + Add "help" command to pgxc_ctl. + + + + + Improve "pgxc_ctl configure" command so that datanodes are also properly + configured. + + + + + Add ability to specify extra server configuration and pg_hba configuration while adding a new + datanode master or slave. + + + + + Add support to save history of pgxc_ctl commands. + + + + + Add ability to specify datanode slave ports and datanode slave pooler ports + separately. + + + + + + Important Bug Fixes + + + + Fix pgxc_clean so that it cleans up outstanding transactions correctly. + + + + + Fix multi-command SQL query execution i.e. queries that have multiple SQL +commands separated by ;. + + + + + Fix memory leaks in prepared statement handling. + + + + + Send CREATE/ALETR POLICY utility commands to the remote nodes. + + + + + Send SET commands in the same order to remote nodes at session initialization + time. + + + + + Propogate ALTER TABLE ALL IN correctly to all nodes. + + + + + Handle CREATE TABLE IF NOT EXISTS correctly. + + + + + Do not propogate REINDEX command to coordinators for indexes on temporary + tables. + + + + + Rename sequences correctly on the GTM when schemas are renamed. + + + + + Push down LIMIT clause to the remote side if its a constant. + + + + + Refactor GTM connection management. + + + + + Fix a bug in deciding local GTM proxy while adding a new datanode master. + + + + + Fix a problem in COPY while redistributing table data when a node is added +or removed from distribution or when distribution key is changed. + + + + + Set up pg_hba.conf on the master properly while adding a slave. + + + + + -- 2.39.5