LP#1485374: Add release notes
authorMike Rylander <mrylander@gmail.com>
Tue, 23 Feb 2016 17:35:07 +0000 (12:35 -0500)
committerMike Rylander <mrylander@gmail.com>
Thu, 18 Aug 2016 14:45:58 +0000 (10:45 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
docs/RELEASE_NOTES_NEXT/Infrastructure/TZ_awareness.adoc [new file with mode: 0644]

diff --git a/docs/RELEASE_NOTES_NEXT/Infrastructure/TZ_awareness.adoc b/docs/RELEASE_NOTES_NEXT/Infrastructure/TZ_awareness.adoc
new file mode 100644 (file)
index 0000000..cee11c7
--- /dev/null
@@ -0,0 +1,34 @@
+Client Timezone Awareness
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Previously, adjusting the time zone in which a database session operates
+could not be done in any way except globally, directly within the database.
+However, allowing modification of the timezone parameter now supports
+localization efforts for those consortia that span multiple time zones.
+
+Implementation
+++++++++++++++
+
+CStore and other services that interact with the primary Evergreen database
+make use of the functionality provided by LP#1485371 in OpenSRF in order to
+set the time zone configuration parameter available in Postgres.  This has
+the effect of interpreting all timestamps written to or read from the database
+in the client's time zone.
+
+Within CStore (and related, C-based services), all stateful sessions make use
+of this capability, setting the database time zone upon a successful CONNECT
+message from the client.  The time zone is reset to the database default when
+a session is terminated either due to client DISCONNECT or server keepalive
+timeout.
+
+All stateless requests record the current database time zone, set the database
+time zone to that of the client's, run the query, and then reset the database
+time zone on each request that carries a client time zone value.  It is expect
+that this will not cause any noticeable increase in latency or query execution
+time, as this setting is local to the specific Postgres server backend process.
+
+Within the Storage service, the timezone will be set automatically by a simple
+wrapper method used by the existing method registration mechanism for method
+publishing.  Disconnect and error callbacks are registered to revert the time
+zone setting within the database.  This provides completely transparent time
+zone manipulation for backend services that make use of open-ils.storage.