Write draft release notes for Postgres-XL 10r1beta1
authorPavan Deolasee <[email protected]>
Thu, 13 Sep 2018 10:12:14 +0000 (15:42 +0530)
committerPavan Deolasee <[email protected]>
Thu, 13 Sep 2018 10:12:14 +0000 (15:42 +0530)
doc/src/sgml/filelist.sgml
doc/src/sgml/release-xl-10r1.sgml [new file with mode: 0644]
doc/src/sgml/release.sgml

index 37bddc7f4e88fe28dfb437ebe056b5941b6ff93a..d45a2a1eb9eb636c52a99a8c8cf7a9cb0d1bf142 100644 (file)
 <!ENTITY sourcerepo SYSTEM "sourcerepo.sgml">
 
 <!ENTITY release    SYSTEM "release.sgml">
+<!ENTITY release-xl-10r1    SYSTEM "release-xl-10r1.sgml">
 <!ENTITY release-10     SYSTEM "release-10.sgml">
 <!ENTITY release-9.6    SYSTEM "release-9.6.sgml">
 <!ENTITY release-xl-9.5r1    SYSTEM "release-xl-9.5r1.sgml">
diff --git a/doc/src/sgml/release-xl-10r1.sgml b/doc/src/sgml/release-xl-10r1.sgml
new file mode 100644 (file)
index 0000000..a14eccd
--- /dev/null
@@ -0,0 +1,447 @@
+<!-- doc/src/sgml/release-xl-10r1.sgml -->
+<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-xl-10r1beta1">
+  <title>Postgres-XL Release 10r1beta1</title>
+
+  <note>
+   <title>Release Date</title>
+   <simpara>2018-09-14</simpara>
+   <simpara>Current as of 2016-09-14</simpara>
+  </note>
+
+  <sect2>
+   <title>Overview</title>
+   <para>
+    This major release of <productname>Postgres-XL</productname> comes
+almost 2 years after <productname>Postgres-XL</productname> 9.5 was released,
+which was based on
+<productname>PostgreSQL</productname> 9.5. This release includes most of the
+new features added in <productname>PostgreSQL</productname> 9.6 and 10
+releases. This also includes almost all significant performance enhancements
+that were made to <productname>PostgreSQL</productname> in the last few years.
+   </para>
+
+   <para>
+    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
+<productname>PostgreSQL</productname> that are now available in
+<productname>Postgres-XL</productname>. A short list of features that are
+currently not supported or have limited support is also mentioned in
+<xref linkend="major-unsupported-enhancements">.
+   </para>
+  </sect2>
+
+  <sect2>
+  <title>Migration to Postgres-XL 10r1beta1 </title>
+   <sect3>
+   <title>Migration to Postgres-XL 10r1beta1 from PostgreSQL 10 </title>
+    <para>
+     A dump/restore using <xref linkend="app-pg-dumpall">
+     is required for those wishing to migrate
+     data from PostgreSQL 10 release. We don't currently support <xref
+linkend="pgupgrade">, as a mechanism to upgrade from PostgreSQL 10.
+    </para>
+    <para>
+    </para>
+   </sect3>
+   <sect3>
+   <title>Migration to Postgres-XL 10r1beta1 from Postgres-XL 9.5r1.x </title>
+    <para>
+     Version 10r1beta1 contains a number of changes that may affect compatibility
+     with previous releases. Since Postgres-XL 10r1beta1 release includes all changes
+from PostgreSQL 9.6 and PostgreSQL 10 releases, it is
+recommended that you review respective release notes of those releases to find
+the exact incompatibilities.
+    </para>
+   </sect3>
+  </sect2>
+
+  <sect2>
+   <title>Major Enhancements in Postgres-XL 10r1beta1 </title>
+   <para>
+    <productname>Postgres-XL</productname> 10r1beta1 is the first major release
+after <productname>Postgres-XL</productname> 9.5r1 release. So this release
+contains most of the major enhancements that went into
+<productname>PostgreSQL</productname> releases 9.6 and 10. This is a very
+short list of such enhancements, but all other enhancements also apply, unless
+otherwise stated.
+   </para>
+   <sect3>
+    <title>Major Enhancements from PostgreSQL 10 </title>
+    <itemizedlist>
+     <listitem><para>Declarative table partitioning</para></listitem>
+     <listitem><para>Improved query parallelism</para></listitem>
+     <listitem><para>Significant general performance improvements</para></listitem>
+     <listitem><para>Improved monitoring and control</para></listitem>
+    </itemizedlist>
+   </sect3>
+   <sect3>
+    <title>Major Enhancements from PostgreSQL 9.6 </title>
+    <itemizedlist>
+     <listitem><para>Parallel execution of sequential scans, joins and aggregates</para></listitem>
+     <listitem><para> Avoid scanning pages unnecessarily during vacuum freeze operations</para></listitem>
+     <listitem><para>Substantial performance improvements, especially in the area of scalability on multi-<acronym>CPU</acronym>-socket servers</para></listitem>
+     <listitem><para>Full-text search can now search for phrases (multiple adjacent words)</para></listitem>
+    </itemizedlist>
+   </sect3>
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <para>
+    Below you will find a detailed account of the changes between
+    <productname>Postgres-XL</productname> 10r1beta1 and the previous major
+    release.
+   </para>
+
+    <sect3>
+     <title>Performance</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Allow minimum value of pgxl_remote_fetch_size to zero
+       </para>
+       <para>
+        This is an experimental work. By setting pgxl_remote_fetch_size to 0, user can
+        fetch all rows at once from the remote side (instead of fetching a small number
+        at a time, thus giving the node to produce more rows as the previous set is
+        consumed). While fetching all rows at once is not very useful, it allows us to
+        circumvent PostgreSQL's limitation of not supporting parallel queries unless a
+        Portal is run once and to the end.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Automatically trigger ANALYZE (COORDINATOR) on remote coordinators
+       </para>
+       <para>
+        When a table is manually or automcatically analyzed, the coordiantor
+        will an ANALYZE (COORDINATOR) command to all other coordinators for them to
+        update their planner stats. This ensures that the planner stats remain up to date on all
+        coordinators in the cluster. The feature works when a table is analyzed
+        outside a transaction block.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Collect index statistics during ANALYZE on coordinator.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Randomize the choice of the initial ROUNDROBIN node.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect3>
+    <sect3>
+     <title>Additional Features</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        <command>pgxc_ctl</command> is now a built-in command and gets
+automatically compiled and installed along with other binaries.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Enable Hot Standby on the replicas.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add support for MODULO distribution on BIGINT.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support an additional syntax ANALYZE (COORDINATOR) to allow users to rebuild
+        coordinator side statistics without running ANALYZE again on the datanodes.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support GROUPING SETS, ROLLUP and CUBE.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect3>
+    <sect3>
+     <title>Improvements to pgxc_ctl</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        <command>pgxc_ctl</command> is now a built-in command and gets
+automatically compiled and installed along with other binaries.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect3>
+    <sect3> 
+     <title>Misc Improvements</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        <command>pgxc_ctl</command> is now a built-in command and gets
+automatically compiled and installed along with other binaries.
+       </para>
+      </listitem>
+     </itemizedlist> 
+    </sect3>
+ </sect2>
+ <sect2>
+  <title>Important Bug Fixes</title>
+  <itemizedlist> 
+      <listitem>
+       <para>
+        Make improvements to cluster monitor process and global state
+reporting.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Correctly select the GTM proxy for a new node being added.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Fixes related to handling of schema qualification of temporary tables on remote nodes.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Fix handling of REFRESH MATERIALIZED VIEW CONCURRENTLY.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Improve locking semantics in GTM and GTM Proxy.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Ensure pooler process follows consistent model for SIGQUIT handling.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Fix broken implementation of recovery to barrier.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Track clearly whether to run a remote transaction in autocommit or a block.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Disable FQS for cursors defined with SCROLL.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Ensure that database objects are created consistently.
+       </para>
+
+       <para>
+        We now create views/materialised views on all nodes, unless they are temporary
+        objects in which case they are created only on the local coordinator and the
+        datanodes. Similarly, temporary sequences are created on the local coordinator
+        and the datanodes.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Prevent dropping distribution keys for MODULO.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Use thread-specific storage for computing a snapshot.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add a user configurable parameter <xref linkend="guc-pgxl-remote-fetch-size"> to control the number of rows fetched from
+    the remote side during RemoteSubplan execution. Switch connections after processing pgxl_remote_fetch_size rows.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow COPY (INSERT RETURNING).
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Handle temp sequences so that duplicate values are not produced.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Ensure that the config parameters specified in the gtmPxyExtraConfig file take
+        precendence over the defaults.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Handle sequence's transactional behaviour on GTM.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Handle multi-command queries correctly inside SQL as well as plpgsql functions.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Do not silently skip FK constraints if loose_constraints are ON.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+         Ensure that the statistics about all-visible pages in fetched from remote
+    datanodes and updated at the coordinator for better planning.
+       </para>
+      </listitem>
+  </itemizedlist> 
+ </sect2>
+ <sect2>
+  <title>Known Limitation</title>
+  <para>
+   While <productname>Postgres-XL</productname> strives hard to stay compatible
+with <productname>PostgreSQL</productname> so that applications running on
+<productname>PostgreSQL</productname> can be easily ported to
+<productname>Postgres-XL</productname>, there are certain known limitations of
+the product. Many of these can be addressed as and when sufficient development
+funding and resources become available.
+  <itemizedlist>
+   <listitem>
+    <para>
+    Distributed deadlock detection is not supported yet. Deadlock detection exists
+    on each node, just not across nodes.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    Materialised views are currently maintained only on the coordinator.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    EXCLUSION CONSTRAINTS are enforced when both rows map to the same datanode.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    User defined functions have several limitations.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    There are restrictions on complex UPDATE/DELETE queries and updating
+distribution column values.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    TRIGGERs are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    EVENT TRIGGERs are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    SERIALIZABLE TRANSACTIONs are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    CREATE INDEX CONCURRENTLY is not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    SAVEPOINTs are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    Large objects are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    Recursive queries work only in certain conditions.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    Foreign Data Wrappers are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    INSENSITIVE/SCROLL/WITH HOLD cursors are not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+    LISTEN/NOTIFY is not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Remote Subplan nodes are marked parallel unsafe. This implies that
+     parallel workers can only be used for bottom most Remote Subplan node(s) in a
+     plan tree.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     CREATE PUBLICATION/SUBSCRIBER is not supported.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     All partitions of a partitioned table must have consistent column ordering
+and column positioning.
+    </para>
+   </listitem>
+  </itemizedlist>
+  </para>
+ </sect2>
+ <sect2>
+  <title>Contributing to Postgres-XL</title>
+  <para>
+   Contributions to <productname>Postgres-XL</productname> are welcome. The
+code will be accepted under the same open source license that governs this
+released version of <productname>Postgres-XL</productname>. The authors of the
+patches will be credited appropriately in the release notes of the future
+releases.   
+  </para>
+ </sect2>
+ <sect2>
+  <title>Credits</title>
+  <para>
+   <productname>Postgres-XL</productname> has been evolving over many years,
+originating with the <productname>GridSQL</productname>
+project and <productname>Postgres-XC</productname>, later combined as TransLattice Storm (StormDB).
+TransLattice open sourced the project, resulting in Postgres-XL 9.2. More
+recently, the EU-funded Big Data project AXLE funded the main work to bring the
+code up to date as <productname>Postgres-XL</productname> 9.5, allowing
+<productname>Postgres-XL</productname> to take advantage of the
+rapidly increasing BI features plugged into the core of
+<productname>PostgreSQL</productname>.  
+  </para>
+ </sect2>
+</sect1>
index 7e3e2c5c4430009a47a5a9df7b02565a1762d778..14dde15da319c76b468b21d0a69244f91302106e 100644 (file)
@@ -74,6 +74,7 @@ For new features, add links to the documentation sections.
   The reason for splitting the release notes this way is so that appropriate
   subsets can easily be copied into back branches.
 -->
+&release-xl-10r1;
 &release-10;
 &release-9.6;
 &release-xl-9.5r1;