Pavan Deolasee [Fri, 4 Mar 2016 06:51:18 +0000 (12:21 +0530)]
Add support for process-level control for overriding log levels.
This patch changes the behaviour of pg_msgmodule_set/change() functions. These
functions now only change the log levels for various messages, but the actual
logging won't start until one of the following enable() function is called.
This patch adds a few more functions:
- pg_msgmodule_enable(pid) - the given pid will start logging as per the
current settings for various msgs.
- pg_msgmodule_disable(pid) - the given pid will stop logging and use the
compile time settings
- pg_msgmodule_enable_all(persistent) - all current processes will start
logging as per the current setting. If "persistent" is set to true then all
new processes will also log as per the setting
- pg_msgmodule_disable_all() - all current and future processes will stop
logging and only use compile time settings.
Pavan Deolasee [Thu, 3 Mar 2016 11:40:41 +0000 (17:10 +0530)]
Honour client's request for binary data transfer.
When coordinator gets data from the datanode, it always gets it in TEXT mode.
But if the client has requested binary transfer of the data, then it must not
forward the data received from the datanode as it is. Rather it must send each
column in the desired format.
While this should fix the JDBC or libpq issue with binary data transfer, we
should really see if the coordinator to datanode communication can also use
binary mode for performance reason. But thats a separate patch.
Pavan Deolasee [Thu, 3 Mar 2016 09:31:06 +0000 (15:01 +0530)]
Avoid repeated palloc for query strings while handling multi-statement SQLs
We now only pass pointers until we have the complete query string. At that
point, we only required bytes and copy the query string
Pavan Deolasee [Thu, 3 Mar 2016 05:35:30 +0000 (11:05 +0530)]
Collect and return query substrings corresponding to each SQL statement
while parsing a multi-statement query separated by ';'
raw_parser() returns a list of parsetrees after parsing a multi-statement SQL
query, where each parsetree corresponds to one SQL statement. It does not have
any mechanism to return the source text of the SQL statement. In Postgres-XL,
we send out the query text as it is to remote datanodes and coordinators while
dealing with utility statements. Not having access to individual SQL statement
is a problem because we end up sending the same text again and again, leading
to various issues.
This patch adds some rudimentary mechanism to return a list of query strings
along with the list of parsetress.
Pavan Deolasee [Thu, 3 Mar 2016 04:06:11 +0000 (09:36 +0530)]
Enable 'random' test case to match with the parallel_schedule
Pavan Deolasee [Wed, 2 Mar 2016 06:18:30 +0000 (11:48 +0530)]
Save global_xmin in the GTM control file and use that when its restarted
The control file now also have a version identifier so that we can read and
interpret older versions while keeping flexibility to change the format
Pavan Deolasee [Tue, 1 Mar 2016 13:27:23 +0000 (18:57 +0530)]
Include the string terminator in GID size calculation
Pavan Deolasee [Tue, 1 Mar 2016 11:53:05 +0000 (17:23 +0530)]
Report state to the GTM no more frequently than defined by
CLUSTER_MONITOR_NAPTIME
Otherwise we have danger of flooding the GTM with messages in an infinite loop,
if the GTM is reporting back errors
Pavan Deolasee [Tue, 1 Mar 2016 10:16:02 +0000 (15:46 +0530)]
Use -P preprocessor option to avoid to inhibit generation of linemarkers in the
output from the preprocessor
This ensures that grepping for the elog messages works correctly on various
compilers (tested for gcc and clang)
Pavan Deolasee [Tue, 1 Mar 2016 05:57:20 +0000 (11:27 +0530)]
Fix bugs around handling of params passed to the datanodes.
This fixes problems reported in plpgsql function calls since
fast-query-shipping was added. But fixing the problem also highlighted other
bugs in the protocol handling. For example, we would set a datanode connection
state to be IDLE upon receiving a CommandComplete. But for simple query
protocol, we should really be waiting for ReadyForQuery before changing the
state. This patch has related fixes.
plpgsql test case's expected output is also fixed now that the underlying bug
has been take care of
Pavan Deolasee [Fri, 19 Feb 2016 10:45:48 +0000 (16:15 +0530)]
Fix docs and Makefile so that "make dist" works correctly
Pavan Deolasee [Fri, 19 Feb 2016 09:50:31 +0000 (15:20 +0530)]
Handle case correctly when collection function is not defined.
Also, make sure some other missed out responses are handled correctly during
receiving responses
Pavan Deolasee [Thu, 18 Feb 2016 15:47:22 +0000 (21:17 +0530)]
Correct stale links in the README file
Pavan Deolasee [Thu, 18 Feb 2016 14:22:33 +0000 (19:52 +0530)]
Update release notes
Pavan Deolasee [Thu, 18 Feb 2016 12:19:40 +0000 (17:49 +0530)]
Stamp Postgres-XL 9.5r1beta1
Pavan Deolasee [Thu, 18 Feb 2016 12:19:09 +0000 (17:49 +0530)]
Make some adjustments to the way documentation headers are printed
Pavan Deolasee [Thu, 18 Feb 2016 11:56:49 +0000 (17:26 +0530)]
Install docs under "doc" directory instead of "doc-xc"
Pavan Deolasee [Thu, 18 Feb 2016 10:20:10 +0000 (15:50 +0530)]
Remove some leftover merge-conflicts markers
Pavan Deolasee [Thu, 18 Feb 2016 10:13:35 +0000 (15:43 +0530)]
Increase the timeout for waiting to end query to 1s from existing 20ms.
We see that this timeout expires sometime on a loaded machine, leading to other
errors. We need to handle that situation better, but for now increase the
timeout to 1s to reduce the chances of this happening.
Mason Sharp [Thu, 18 Feb 2016 07:40:55 +0000 (23:40 -0800)]
There was a missing commit from when the repo was forked,
applying to the new repo.
Original commit from the sourceforge repo:
commit
e61639b864e83b6b45d11b737ec3c3d67aeb4b56
Author: Mason Sharp <
[email protected]>
Date: Sun Jul 26 17:54:08 2015 -0700
Changed license from the Mozilla Public License
to the PostgreSQL License
Pavan Deolasee [Wed, 17 Feb 2016 12:37:21 +0000 (18:07 +0530)]
Fix a few compiler warnings.
Pallavi Sontakke [Wed, 17 Feb 2016 10:58:08 +0000 (16:28 +0530)]
Remove known bugs' tests from schedule.
Pavan Deolasee [Wed, 17 Feb 2016 07:28:31 +0000 (12:58 +0530)]
Handle a race condition between portal close 'C' message and new request for
running the portal, as part of the next step of query execution
A producer will unbind and remove the SharedQ once all consumers are done
with reading pending data. It does not wait for consumers to actually send
close 'C' message. If the next step of the execution now recreates the SharedQ
with the same name (because its the same RemoteSubplan being re-executed), and
if the close messages arrives after that, but before the new producer gets
chance to bind to the SharedQ, we will end up marking future consumers of the
new SharedQ as 'DONE'. The SharedQueueAcquire then incorrectly assumes that
this is a stale Q belonging to earlier execution and gets in an infinite wait.
Also do not try indefinitely for the old producer to unbind and remove a stale
queue. Any further bugs in this area will cause infinite loops. Instead try for
a fixed number of times and then let the query fail.
Pavan Deolasee [Wed, 17 Feb 2016 04:52:05 +0000 (10:22 +0530)]
Group all uncategorised log messages to a default module-id (with number set to
255 right now)
Pavan Deolasee [Wed, 17 Feb 2016 04:51:22 +0000 (10:21 +0530)]
Correct a typo
Pavan Deolasee [Tue, 16 Feb 2016 18:34:41 +0000 (00:04 +0530)]
Add a missing value for "%s" placeholder in an elog message
Pavan Deolasee [Mon, 15 Feb 2016 18:28:58 +0000 (23:58 +0530)]
Use "expr" instead of "bc" for arithmetic since "bc" may not be available on
all platforms
Pavan Deolasee [Mon, 15 Feb 2016 18:23:22 +0000 (23:53 +0530)]
Fix build failure when configured with --with-openssl
Pavan Deolasee [Mon, 15 Feb 2016 12:56:13 +0000 (18:26 +0530)]
Handle errors while PREPARing a transaction gracefully.
If an error occurs after PREPARE TRANSACTION command is sent, we don't know if
the command is successful or not. So the coordinator will go ahead and abort
the transaction. But the node which failed to run PREPARE TRANSACTION may not
be even reachable on the coordinator. So we don't try to rollback transaction
on such nodes.
Pavan Deolasee [Mon, 15 Feb 2016 12:50:44 +0000 (18:20 +0530)]
Make sure to write to the GTM control file only after paths are set up
correctly
Pavan Deolasee [Mon, 15 Feb 2016 10:47:11 +0000 (16:17 +0530)]
Extend commit, subtrans and commit_ts logs appropriately when new xids are
received from the GTM.
After our recent work on cluster monitor, GTM will now send back
latestCompletedXid and RecentGlobalXmin which we record in a shared memory
area. But if the node has not asked for XIDs for some time, the SLRU
maintaining these logs may fall much behind. So we must keep these log files
upto date with the XIDs generated by the GTM
This should also fix the spotting of the following log message as reported
by Mason Sharp
LOG: could not truncate directory "pg_subtrans": apparent wraparound
Pavan Deolasee [Mon, 15 Feb 2016 09:52:53 +0000 (15:22 +0530)]
Correctly check for implicit 2PC.
Now we have far more information embedded in the GID string. So there is no
point looking for [0-9]+ pattern beyond the prefix. Just assume external tools
would never use that pattern (PREPARE TRANSACTION should anyway throw an error
if they try to use the pattern)
Pavan Deolasee [Fri, 12 Feb 2016 05:23:21 +0000 (10:53 +0530)]
Grep for all elog messages correctly post preprocessing
Pallavi Sontakke [Mon, 15 Feb 2016 13:04:51 +0000 (18:34 +0530)]
Test sql and output changes for some contrib modules
Accept expected XL behavior. Add ORDER BY where needed.
Pallavi Sontakke [Fri, 12 Feb 2016 12:50:37 +0000 (18:20 +0530)]
Test sql and output changes for LATERAL issue
Separate out Issue #73 in Issue Tracker.
Accept XL query plans.
Pavan Deolasee [Thu, 11 Feb 2016 12:17:11 +0000 (17:47 +0530)]
Fix a typo in the script, we should be looking for GNUmakefile and not
GNUMakefile
Pavan Deolasee [Thu, 11 Feb 2016 10:31:14 +0000 (16:01 +0530)]
Improve the debugging infrastructure by adding mechanism to dynamically
increase/decrease log levels
This new pg_msgmodule_change() function can be used to increment or decrement
compile time defined log levels by the given step. Of course, this is only
applicable to DEBUG1-5 and LOG messages and the resulting new level is also
within the same range. This only affects whats gets logged on the server log
and not what gets sent to the client
Pavan Deolasee [Thu, 11 Feb 2016 07:58:11 +0000 (13:28 +0530)]
Improve node exclusion and node rejoining logic for calculation for global
xmin.
When a node rejoins the cluster, after disconnection or restart, the logic now
accounts for the fact that the node might be running with an older xmin. GTM
sends back appropriate error codes and recent state information so that the
node can make a decision to join the cluster or fail.
Also increase the threshold for delay in reporting to 10mins to avoid false
positives.
Pavan Deolasee [Wed, 10 Feb 2016 15:30:41 +0000 (21:00 +0530)]
Improve node registration and xmin reporting such that false log messages are
avoided at the GTM.
Also add some more debug messages to the GTM
Pavan Deolasee [Wed, 10 Feb 2016 11:54:18 +0000 (17:24 +0530)]
Do not log unnecessary node registration failures by differentiating between a
node and session registration
Pavan Deolasee [Wed, 10 Feb 2016 10:14:00 +0000 (15:44 +0530)]
Some misc fixes and documentation updates for pgxc_ctl
Pavan Deolasee [Wed, 10 Feb 2016 04:48:38 +0000 (10:18 +0530)]
Sprinkle SQueue and portal management code with DEBUG messages
Pallavi Sontakke [Wed, 10 Feb 2016 07:05:27 +0000 (12:35 +0530)]
Test sql and output changes for hstore
Add order by clause for consistent test results from
json_agg() function
Pavan Deolasee [Tue, 9 Feb 2016 08:46:21 +0000 (14:16 +0530)]
Adjust log_line_prefix to log much more information about connections.
'R' - now reports information about remote end (type/name/pid) where type can
be 'C' for coordinator, 'D' for datanode, 'A' for application and 'U' for rest
'G' - now reports information about the originating coordinator (name/pid)
'S' - reports the global session identifier.
Pavan Deolasee [Mon, 8 Feb 2016 17:02:12 +0000 (22:32 +0530)]
Let many GUC parameters be user-settable, compatible with PG.
They were made SUSET to support multi-tenant environment, but no longer
applicable to the current use case of XL.
Pavan Deolasee [Mon, 8 Feb 2016 12:04:27 +0000 (17:34 +0530)]
Some improvements to debug/error logging.
We now log name of the remote node and remote PID if an error is received on a
connection. Some more debugging messages added to the pooler code.
Pavan Deolasee [Mon, 8 Feb 2016 09:57:40 +0000 (15:27 +0530)]
Track PID of the remote backend processes serving a particular connection.
This information is usally readily available in PGConn, but since we only pass
around socket descriptors between pooler and the coordinator (or datanode
backends), we pass this information back to the backends. This is at least very
useful for debugging purposes.
(This API definitely deserves some refactoring. In particular, I would like to
keep a copy of some other members of the PGConn structure in the
PGXCNodeHandle, but for now backend PID is what we care for).
Pavan Deolasee [Mon, 8 Feb 2016 06:17:40 +0000 (11:47 +0530)]
Add support for overrding default log levels for specfic messages or all
messages in a file or a module.
We now support a new --enable-genmsgids configure option. When compiled with
this, superusers can run pg_msgmodule_set(moduleid, fileid, msgid, newlevel)
command to override the log level specified in the source code.
There are many TODOs and limitations of this approach. We could only, for
example, increase logging level of messages i.e. turn DEBUG2 to DEBUG1 or DEBUG
to LOG. But we can't change ERROR to PANIC or supress a log message. Also, we
are using a very sparse representation of the message log levels. This
increases memory requirements significantly, though should speed up lookups and
keep the code simple.
When configured with --enable-genmsgids, a file named MSGMODULES is created at
the top of the build tree and the module-ids are later picked from that file
while compiling individual files. We would also preprocess each file before
compilation and save all elog() calls, along with the file_name, line_number,
messgae, module_id, file_id, msg_id in MSGIDS file. This file can then be used
to lookup the messages so that correct information is passed. This clearly
needs a lot more polishing and work.
When configued without --enable-genmsgids, we don't expect this facility to add
overhead because all codes gets #ifdef-ed out
Pavan Deolasee [Mon, 8 Feb 2016 05:36:30 +0000 (11:06 +0530)]
Standardize "subdir = <name>" in the Makefile(s)
Pavan Deolasee [Sun, 7 Feb 2016 12:55:01 +0000 (18:25 +0530)]
Add a mechanism to start with an empty pgxc_ctl configuration file and build
the cluster one at a time.
A new option "prepare config empty" is now supported which sets up an almost
empty conf file and all components, including GTM, can be added one at a time
Pavan Deolasee [Thu, 4 Feb 2016 13:55:08 +0000 (14:55 +0100)]
Handle MergeAppend node correctly while determing param types.
Report by Krzysztof Nienartowicz, patch by me.
Pavan Deolasee [Thu, 4 Feb 2016 13:33:34 +0000 (14:33 +0100)]
If we don't find GTM control file on startup, look for the temporary control
file and use that.
While updating the control file, GTM first writes updated content to a temp
file, then deletes the old file and renames the temp to the control file. But
in a rare situation, its possible that GTM may exit before renaming the temp
file. In such cases, we should use the temp file after renaming it to the
orignal file.
More improvements in this area are necessary.
P.S. This commit gets distinction to be the first commit, pushed from 41000
feet in the air ;-)
Pallavi Sontakke [Wed, 3 Feb 2016 13:49:08 +0000 (19:19 +0530)]
Test output and sql changes
Run rangefuncs separately in parallel_schedule,
as it has table names common with group.
Pallavi Sontakke [Wed, 3 Feb 2016 05:31:33 +0000 (11:01 +0530)]
Add expected output previously removed.
Add back as it is needed on some systems.
Pallavi Sontakke [Tue, 2 Feb 2016 09:17:30 +0000 (14:47 +0530)]
Test output and sql changes
Change comments on FQS of query as per behavior #59
Separate out an issue #67 from xc_copy
Pavan Deolasee [Mon, 1 Feb 2016 10:55:50 +0000 (11:55 +0100)]
Fix collate regression case by removing an ORDER BY (added in XL) which seems
to produce different results on different platforms.
Expected output adjusted accordingly
Pavan Deolasee [Mon, 1 Feb 2016 09:29:33 +0000 (10:29 +0100)]
Change expected output for 'transactions' test case which seems to be working
fine after recent bug fixes.
Pavan Deolasee [Mon, 1 Feb 2016 09:19:37 +0000 (10:19 +0100)]
Exponetially increase the sleep before retrying commit on the GTM.
When a transaction waits for another transaction to complete, we enforce the
same ordering on the same GTM by making the former transaction wait on the
latter. We do this by a simple retry logic. While the latter transaction should
ideally finish soon because it has already finished on the datanode, the retry
loop now waits exponentially, starting at 1000usec but limited by 1s.
Patch by Mason Sharp
Pavan Deolasee [Sun, 31 Jan 2016 08:25:01 +0000 (13:55 +0530)]
Do not throw a FATAL error when SharedQ producer times out while waiting for
one or more consumers to finish.
We have seen bunch of cases where a consumer may never bind to the SharedQ and
rightfully so. For example, in a join between 3 tables which requires
redistribution of tuples, a consumer may not at all bind to the SharedQ because
it the top level outer side did not produce any tuples to join against the
redistributed inner node.
This patch avoids the unnecessary FATAL errors, but what we still do not do
nicely is to avoid the 10s timeout (as currently set for producer). So while
queries, as included in the test case, will finally return success, it will
unnecessarily add a 10s delay in the response time. This is a TODO.
Pavan Deolasee [Sun, 31 Jan 2016 07:49:53 +0000 (13:19 +0530)]
Remove a WARNING about coordinator provided snapshot not available.
There are a few expected cases, such as catalog scans, where coordinator
supplied snapshot may not be available. So remove this mis-leading warning.
Pavan Deolasee [Fri, 29 Jan 2016 09:16:10 +0000 (14:46 +0530)]
Fix a bug where queries would incorrectly get executed on the coordinator.
Report by Krzysztof Nienartowicz, patch by me.
Pavan Deolasee [Fri, 29 Jan 2016 09:13:52 +0000 (14:43 +0530)]
Do not hold the XidGenLock while obtaining an XID from the GTM
This was an oversight when on-demand GXID work was committed. Mason reported
that this patch significantly improves performance on his tests and I can
also confirm that with my own tests.
Report and patch by Mason Sharp, with some changes from me.
Pallavi Sontakke [Mon, 1 Feb 2016 08:18:19 +0000 (13:48 +0530)]
Test output and sql changes
Fix 2 tests. Partial fix for xc_copy diffs.
Pavan Deolasee [Thu, 28 Jan 2016 12:50:32 +0000 (18:20 +0530)]
Avoid redefinition of a signal handler signature
Pavan Deolasee [Thu, 28 Jan 2016 10:27:54 +0000 (15:57 +0530)]
Do not override the sequence_range setting in COPY
The default value of this parameter has now been hiked to 1000. So there is no
good reason to override this in COPY, if the user has explicitly set it back to
1. Honor user defined value in all cases.
We can possibly flag a warning if sequences are being incremened too fast and
the current value of sequence_range is set too low. But no compelling need to
do that just now.
Pallavi Sontakke [Fri, 29 Jan 2016 05:41:32 +0000 (11:11 +0530)]
Test output and sql changes
Accept outputs, with some known bugs added.
Pallavi Sontakke [Thu, 28 Jan 2016 06:02:42 +0000 (11:32 +0530)]
Test sql and output changes
Comment out known issues and add them to kown bugs.
Pallavi Sontakke [Wed, 27 Jan 2016 13:45:24 +0000 (19:15 +0530)]
Test output changes
Fix 2 tests.
Pavan Deolasee [Wed, 27 Jan 2016 12:03:07 +0000 (17:33 +0530)]
Change expected output - can't do FQS for a GROUP BY query on a roundrobin
table
Pavan Deolasee [Wed, 27 Jan 2016 11:53:25 +0000 (17:23 +0530)]
Fix a bug where a query was getting incorrectly FQSed when the GROUP BY clause
contains only non-distribution keys.
Also rerun all the xc_groupby tests with enable_fast_query_shipping ON so that
similar issues can be caught more easily
Pavan Deolasee [Wed, 27 Jan 2016 04:17:20 +0000 (09:47 +0530)]
Fix a protocol message to register the GTM proxy
Pavan Deolasee [Wed, 27 Jan 2016 02:41:07 +0000 (08:11 +0530)]
Fix compiler warnings in stormstats, some of which may also cause failures on
other platforms.
Pavan Deolasee [Mon, 25 Jan 2016 16:46:41 +0000 (22:16 +0530)]
Add missing DISTRIBUTE RANDOMLY to the specs in the documentation
Pavan Deolasee [Mon, 25 Jan 2016 14:09:41 +0000 (19:39 +0530)]
Change expected output for select_views test case.
Pavan Deolasee [Mon, 25 Jan 2016 12:11:55 +0000 (17:41 +0530)]
Change some part of expected output file for test case rowsecurity, related to
XL plan changes.
Pavan Deolasee [Mon, 25 Jan 2016 11:41:59 +0000 (17:11 +0530)]
Change expected output for prepared_xacts test case to accept newer changes
from PG
Pallavi Sontakke [Mon, 25 Jan 2016 11:14:30 +0000 (16:44 +0530)]
Test output changes
Accept some XL outputs for tests.
Pavan Deolasee [Mon, 25 Jan 2016 10:55:16 +0000 (16:25 +0530)]
Avoid using EXPLAIN VERBOSE when temp tables are involved in a test case.
In XL, the temporary schema may change in different regression runs. Hence we
must not print the schema in expected output. Change the sql as well as
expected output file for the 'join' test case.
Pavan Deolasee [Mon, 25 Jan 2016 10:34:33 +0000 (16:04 +0530)]
Change expected output for test case xc_alter_table which matches current
behaviour
Pavan Deolasee [Mon, 25 Jan 2016 10:22:51 +0000 (15:52 +0530)]
Change expected output for test case xc_FQS_join now that queries are properly
FQSed to the remote (via
1083af3fa)
Pavan Deolasee [Mon, 25 Jan 2016 10:18:08 +0000 (15:48 +0530)]
Change expected output for test case xc_having now that we support
enable_fast_query_shipping GUC
Pavan Deolasee [Mon, 25 Jan 2016 10:09:59 +0000 (15:39 +0530)]
Change expected output for xc_groupby test case now that
enable_fast_query_shipping GUC is supported and the entire test case runs with
the GUC turned off
Pavan Deolasee [Mon, 25 Jan 2016 09:32:34 +0000 (15:02 +0530)]
Fix a bug where we will pick up random nodes for individual replicated tables,
thus reducing the chances of query getting fully shipped to the remote node.
We now remember all nodes that can satify a READ request for a replicated table
and then finally choose a node randomly if no preferred datanode is specified.
This will avoid non-deterministic selection of FQS query plans as well as allow
us to send some more queries to the remote node.
Pavan Deolasee [Mon, 25 Jan 2016 09:31:20 +0000 (15:01 +0530)]
Add enable_fast_query_shipping GUC to control whether to attempt Fast Query
Shipping to the remote node or not
Its primary use is for debugging purposes
Pallavi Sontakke [Mon, 25 Jan 2016 07:34:38 +0000 (13:04 +0530)]
Test output and sql changes
Fix rowtypes with nodes off in query plan
Simplify diffs seen in ome xc_* tests.
Pallavi Sontakke [Sat, 23 Jan 2016 13:10:58 +0000 (18:40 +0530)]
Test output and sql changes
Fixes 6 tests.
Mainly accepts known limitations and uses 'nodes off'
for query plan.
Pavan Deolasee [Fri, 22 Jan 2016 14:06:38 +0000 (19:36 +0530)]
Further improvements to release notes
Pavan Deolasee [Fri, 22 Jan 2016 11:54:27 +0000 (17:24 +0530)]
The XLOG dirs in the pgxc_ctl conf file are optional
Pavan Deolasee [Fri, 22 Jan 2016 09:14:37 +0000 (14:44 +0530)]
Add a changes missed in the previous commit.
Pavan Deolasee [Fri, 22 Jan 2016 08:35:19 +0000 (14:05 +0530)]
Add support to specify separate XLOG dirs for datanode masters and datanode
slaves in pgxc_ctl.conf file as well as corresponding "add" commands.
Recent releases of Postgres now allow users to specify a separate XLOG dir and
initdb time and we extend the same facility to pgxc_ctl.
Pavan Deolasee [Fri, 22 Jan 2016 04:21:37 +0000 (09:51 +0530)]
Change expected output for updatable_views test case by not printing node
information
This makes test output more deterministic. The test case still does not pass
because of an additional diff that requires further analysis.
Pavan Deolasee [Fri, 22 Jan 2016 03:36:47 +0000 (09:06 +0530)]
Set sequence_range to 1 while initialising nodes for "make check" so that
deterministic output is obtained.
This avoids explicit setting of the GUC in every test case that uses serials or
sequences. For those running "make installcheck" they must set it up correctly
in their postgresql.conf files.
We could revert some of the changes done to the test cases (by adding
sequence_range = 1), but this patch does not do that
Pavan Deolasee [Fri, 22 Jan 2016 03:17:32 +0000 (08:47 +0530)]
Change expected output for create_view test case.
We expect to see a Remote Subquery Scan node in the explain plan.
Pavan Deolasee [Fri, 22 Jan 2016 03:12:04 +0000 (08:42 +0530)]
Change expected output for timestamp/timestamptz tests
Looks like they were mistakenly changed while a bug existed. Now that the bug
is fixed, they are giving the correct output, matching PG's results.
Pavan Deolasee [Fri, 22 Jan 2016 02:49:51 +0000 (08:19 +0530)]
Recheck health of a node before changing its status.
send/recv() errors just give us a hint about something going wrong with a node.
But a mere send/recv failure does not mean that the node is down or
unreachable. So before changing the health status, ping the node once and
confirm its health status.
Pavan Deolasee [Thu, 21 Jan 2016 13:58:27 +0000 (19:28 +0530)]
Assign coordinator local timestamp when transaction timestamp is requested
before or without assigning XID to the transaction.
GTM supplied timestamp is available only when a transaction has started on the
GTM. But for read-only transactions or transactions which are yet to do any
database write activity, we avoid going to GTM for performance reason. For such
cases, use coordinator local timestamp and continue to use the same for rest of
the transaction.
Pavan Deolasee [Thu, 21 Jan 2016 13:56:56 +0000 (19:26 +0530)]
First draft of release notes.
Simon Riggs [Thu, 21 Jan 2016 02:40:44 +0000 (18:40 -0800)]
Speedup 2PC by skipping two phase state files in normal path
2PC state info is written only to WAL at PREPARE, then read back from WAL at
COMMIT PREPARED/ABORT PREPARED. Prepared transactions that live past one bufmgr
checkpoint cycle will be written to disk in the same form as previously. Crash
recovery path is not altered. Measured performance gains of 50-100% for short
2PC transactions by completely avoiding writing files and fsyncing. Other
optimizations still available, further patches in related areas expected.
Stas Kelvich and heavily edited by Simon Riggs
Based upon earlier ideas and patches by Michael Paquier and Heikki Linnakangas,
a concrete example of how Postgres-XC has fed back ideas into PostgreSQL.
Reviewed by Michael Paquier, Jeff Janes and Andres Freund
Performance testing by Jesper Pedersen
Simon Riggs [Thu, 21 Jan 2016 01:18:58 +0000 (17:18 -0800)]
Refactor to create generic WAL page read callback
Previously we didn’t have a generic WAL page read callback function,
surprisingly. Logical decoding has logical_read_local_xlog_page(), which was
actually generic, so move that to xlogfunc.c and rename to
read_local_xlog_page().
Maintain logical_read_local_xlog_page() so existing callers still work.
As requested by Michael Paquier, Alvaro Herrera and Andres Freund
Pavan Deolasee [Wed, 20 Jan 2016 12:41:56 +0000 (18:11 +0530)]
Merge upto commit '
cdd4ed5449bf317cc71b45a8deee0173822e7592' which corresponds
to 9.5.0 release of PostgreSQL