Update release notes for XL release r1.1
authorPavan Deolasee <[email protected]>
Thu, 12 May 2016 08:12:20 +0000 (13:42 +0530)
committerPavan Deolasee <[email protected]>
Thu, 12 May 2016 08:12:20 +0000 (13:42 +0530)
doc/src/sgml/release-xl-9.5r1.sgml

index 300e5e552d1e17501dfe850e3396e0f0c7b3723e..0cb85e65994b2ad25139b57050ce7c3b3ad7d64f 100644 (file)
@@ -1,6 +1,147 @@
 <!-- doc/src/sgml/release-9.5.sgml -->
 <!-- See header comment in release.sgml about typical markup -->
 
+ <sect1 id="release-xl-9-5r1.1">
+  <title>Postgres-XL Release 9.5r1.1</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2016-05-12</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from Postgres-XL 9.5r1.
+   For information about new features in the Postgres-XL 9.5r1 major release, see
+   <xref linkend="release-xl-9-5r1">.
+  </para>
+  <para>
+   This release also incorporates all the bug and security fixes in PostgreSQL
+   9.5.3 release.
+  </para>
+  <sect2>
+   <title>Migration to Version Postgres-XL 9.5r1.1</title>
+
+   <para>
+    A dump/restore is not required for those running Postgres-XL 9.5r1
+   </para>
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+   <itemizedlist>
+    <listitem>
+     <para>
+      Fix a nasty bug that was zeroing out clog and subtrans pages, thus
+      causing various sorts of data corruptions.
+     </para>
+     <para>
+      The bug dates back to the XC days, but became prominent in XL because of
+      certain recent changes, especially the addition of cluster monitor process. In
+      Postgres-XL, a node may not see all the XIDs and hence clog/subtrans log must
+      be extended whenever a new XID crosses the previously seen page boundary. We do
+      this by comparing the pageno where the new XID maps with the latest_page_no as
+      stored in the shared SLRU data structure.  But to handle XID wrap-arounds, we
+      added a check for difference in number of pages to be less than
+      CLOG_WRAP_CHECK_DELTA, which was incorrectly defined as (2^30 /
+              CLOG_XACTS_PER_PAGE). Note that "^" is a logical XOR operator in C and hence
+      this was returned a very small number of 28, thus causing incorrect zeroing of
+      pages if ExtendCLOG is called with an XID which is older than what 28 clog
+      pages can hold. All such transactions would suddenly be marked as aborted,
+      resulting in removal of perfectly valid tuples.
+     </para>
+     <para>
+      This bug is now fixed.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Extend CLOG and Subtrans Log correctly when a new XID is received from
+      the remote node.
+     </para>
+     <para>
+      When a datanode assigns an XID for a running transaction, it sends it
+      back to the coordinator. If the XID maps to a new CLOG page, it must extend the
+      CLOG to include the page. 
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Correct shared memory size calculation for Shared Queue hashtable.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Add a reference count mechanism for Shared Queue management.
+     </para>
+     <para>
+      When a process acquires or binds to a Shared Queue, reference count is
+      incremented and decremented when the process releases or unbinds from the
+      queue. The new mechanism ensures that the queue is returned to the free list
+      once all users have finished their work.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Interprete <varname>shared_queue_size</varname> to be per datanode value.
+     </para>
+     <para>
+      Earlier, each consumer of a shared queue would get
+      <varname>shared_queue_size</varname>/<varname>num_consumers</varname> kilobytes
+      of shared memory. So the amount of shared memory available to each consumer
+      greatly depends on the number of datanodes in the cluster, thus making it
+      difficult to choose a default value. So we now treat the
+      <varname>shared_queue_size</varname> as a per datanode setting and compute the
+      total size by multiplying it with the number of max datanodes as configured by
+      <varname>max_datanodes</varname>.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Set <varname>shared_queues</varname> to at least 1/4th of
+      <varname>max_connections</varname>.
+     </para>
+     <para>
+      This parameter is highly dependent on the number of concurrent sessions
+      and in the worst case, every session may use more than one shared queues. While
+      the user should set this value high enough depending on the concurrent
+      distributed queries, we now automatically set this to at least 1/4th of the
+      <varname>max_connections</varname> to avoid running with too small value.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Fix a memory leak in the GTM proxy.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Properly deallocate prepared statements on the remote node when user makes
+      such request.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Avoid protocol breakage when pooler fails to open connection to one or
+      more nodes. 
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Add a mechanism to selectively refresh pooler information when only
+      connection options, such as hostname/port changes for a node.
+     </para> 
+     <para> 
+      This allows us to retain connections to all other nodes in the cluster and
+      just recreate connections to the node whose connection information is changed.
+      This will be especially handy while dealing with datanode/coordinator failover
+     </para> 
+    </listitem>
+   </itemizedlist>
+
+  </sect2>
+
+ </sect1>
  <sect1 id="release-xl-9-5r1">
   <title>Postgres-XL Release 9.5r1</title>