Toshihiro Kitagawa [Wed, 21 Jul 2010 05:31:39 +0000 (05:31 +0000)]
Add function parse_before_bind() which is used in Load balance mode.
Add function overwrite_map_for_deallocate() which is used to overwrite
where_ot_send map by a specified query context.
Add length and contents arguments to private functions that process message.
Remove pending_function variable.
Change ReadyForQuery() so that it does not destroy a query context in
extended query protocol.
Refactor following functions.
- Parse()
- Execute()
- ProcessFrontendResponse()
Add private functions that process message.
- Bind()
- Describe()
- Close()
- FunctionCall3()
- ParseComplete()
- BindComplete()
- CloseComplete()
- CommandComplete()
- ErrorResponse3()
Toshihiro Kitagawa [Wed, 21 Jul 2010 05:16:30 +0000 (05:16 +0000)]
Divide a part of pool_process_query() into ProcessBackend().
Divide SimpleForwardToFrontend() into private functions.
Divide SimpleForwardToBackend() into private functions.
send_sync_to_recover() is not used now.
Toshihiro Kitagawa [Wed, 21 Jul 2010 05:06:42 +0000 (05:06 +0000)]
Fix bug that did not clear a list at pool_clear_prepared_statement_list().
Fix bug that change state of query_in_progres flag at
pool_remove_prepared_statement_by_pstmt_name().
Change variables of list so that they are not pointer.
Change pool_create_prepared_statement() so that it does not copy a query context.
Remove pending_function variable.
Move static functions to the end.
Add length variable and contents variable to PreparedStatement structure.
These variables hold the contents of Parse message.
Add following flags.
- doing_extended_query_message
- ignore_till_sync
- pool_status_stmt
Toshihiro Kitagawa [Wed, 21 Jul 2010 04:33:59 +0000 (04:33 +0000)]
Add memory_context variable.
Add query_state variable that represent state of extended query.
Add function pool_set_query_state().
Add support for "NO LOAD BALANCE" comment.
Remove unused variables.
Tatsuo Ishii [Wed, 21 Jul 2010 02:59:44 +0000 (02:59 +0000)]
Fix send_to_where so that all transaction commands are sent to primary.
Tatsuo Ishii [Wed, 21 Jul 2010 00:41:04 +0000 (00:41 +0000)]
Fix ProcessFrontendResponse so that Function call request
to be processed properly in master/slave mode.
Tatsuo Ishii [Tue, 20 Jul 2010 14:08:39 +0000 (14:08 +0000)]
Do not start internal transaction if taget backend is only one.
If SAVEPOINT/ROLLBACK TO/RELEASE SAVEPOINT, send to primary only.
Tatsuo Ishii [Tue, 20 Jul 2010 08:52:28 +0000 (08:52 +0000)]
Support 9.0's new VACUUM syntax.
Tatsuo Ishii [Tue, 20 Jul 2010 08:07:50 +0000 (08:07 +0000)]
Support 9.0's new VACUUM syntax.
Tatsuo Ishii [Tue, 20 Jul 2010 08:04:48 +0000 (08:04 +0000)]
Fix is_internal_transaction_needed. Add lots of missing query type
appeared in 9.0 (still our parser does not parse some of them).
Tatsuo Ishii [Tue, 20 Jul 2010 08:03:28 +0000 (08:03 +0000)]
Fix where_to_send so that DEALLOCATE ALL case works properly.
Tatsuo Ishii [Mon, 19 Jul 2010 12:02:33 +0000 (12:02 +0000)]
Add modules to handle where to send map for SQL level
PREPARE/EXECUTE/DEALLOCATE. This is used for non-extended protocol
only.
Tatsuo Ishii [Mon, 19 Jul 2010 05:46:13 +0000 (05:46 +0000)]
Add char *query parameter to is_2pc_transaction_query and
send_to_where. For now, it is not used, but soon we need to take care
about SQL comments.
Tatsuo Ishii [Sun, 18 Jul 2010 06:11:39 +0000 (06:11 +0000)]
Fix SimpleQuery so that statements our parser does not understand
are sent to all nodes(in replication mode) or primary/master node.
Tatsuo Ishii [Sun, 18 Jul 2010 06:09:32 +0000 (06:09 +0000)]
Fix where_to_send. DISCARD statement should be sent to all DB nodes.
Tatsuo Ishii [Thu, 15 Jul 2010 05:06:46 +0000 (05:06 +0000)]
Fix ReadyForQuery so that it does not crush when some of DB nodes
goes down.
Tatsuo Ishii [Wed, 14 Jul 2010 08:58:24 +0000 (08:58 +0000)]
Remove unnecessary variable.
Fix pool_process_query() so that it checks healthy backend when
executing reset_query.
Tatsuo Ishii [Wed, 14 Jul 2010 08:10:55 +0000 (08:10 +0000)]
Fix pool_start_query and pool_virtual_master_db_node_id
so that they use REAL_MASTER_NODE_ID, rather than 0.
This is neccessary when primary node (0) goes down.
Tatsuo Ishii [Wed, 14 Jul 2010 07:40:22 +0000 (07:40 +0000)]
pgpool links shared memory version of pool_config.l
On the other hand pg_md5 links private memory version of
pool_config.l.
This commit does some dirty tricks by creating a fake source file.
Tatsuo Ishii [Wed, 14 Jul 2010 07:37:39 +0000 (07:37 +0000)]
Check health DB nodes before doing delay checking.
Tatsuo Ishii [Wed, 14 Jul 2010 04:53:09 +0000 (04:53 +0000)]
Add new meta character "%H" which represents the host name of the new
master node to failover/failback command.
Tatsuo Ishii [Wed, 14 Jul 2010 04:51:42 +0000 (04:51 +0000)]
Fix typo in comment.
Tatsuo Ishii [Tue, 13 Jul 2010 08:41:13 +0000 (08:41 +0000)]
Support 2PC commands in SR+HS mode.
Import read/write query map from PostgreSQL 9.0. Although our parser
does not support:
T_AlterDefaultPrivilegesStmt
T_DoStmt
T_AlterTableSpaceOptionsStmt
Tatsuo Ishii [Tue, 13 Jul 2010 08:36:45 +0000 (08:36 +0000)]
Fix end_internal_transaction: Use INTERNAL_TRANSACTION_STARTED macro
at proper position.
Tatsuo Ishii [Tue, 13 Jul 2010 08:34:28 +0000 (08:34 +0000)]
Try to recover from temporary connection failure.
Tatsuo Ishii [Tue, 13 Jul 2010 08:33:17 +0000 (08:33 +0000)]
Fix typo in debug message
Toshihiro Kitagawa [Tue, 13 Jul 2010 01:00:17 +0000 (01:00 +0000)]
Fix SimpleQuery(). Now it execute EXECUTE and DEALLOCATE statement correctly.
Tatsuo Ishii [Mon, 12 Jul 2010 02:37:21 +0000 (02:37 +0000)]
Fix typo.
Tatsuo Ishii [Sun, 11 Jul 2010 13:53:28 +0000 (13:53 +0000)]
Allow load balancing even in an explicit trasaction.
Tatsuo Ishii [Sun, 11 Jul 2010 13:52:10 +0000 (13:52 +0000)]
Fix main so that pool_config debug out is enabled by command line
optioin -d.
Tatsuo Ishii [Sun, 11 Jul 2010 04:09:06 +0000 (04:09 +0000)]
Now transaction state is managed per backend.
Tatsuo Ishii [Sat, 10 Jul 2010 11:18:28 +0000 (11:18 +0000)]
Now transaction state is per backend.
Change TSTATE macro.
Add new INTERNAL_TRANSACTION_STARTED macro.
Made appropreate changes to other modules.
Tatsuo Ishii [Sat, 10 Jul 2010 11:13:21 +0000 (11:13 +0000)]
Add ifdef not to declare unnessary variable(int dist_num;).
Tatsuo Ishii [Sat, 10 Jul 2010 11:10:35 +0000 (11:10 +0000)]
Add md5 checking in pool_hba.conf.
Also add description about pg_md5's md5 support.
Toshihiro Kitagawa [Fri, 9 Jul 2010 01:14:28 +0000 (01:14 +0000)]
Fix rewrite_timestamp() so that it use PreparedStatement instead of Portal.
Toshihiro Kitagawa [Fri, 9 Jul 2010 01:08:51 +0000 (01:08 +0000)]
Change pool_process_query.c, pool_proto_modules.c and child.c so that
they use session_context and query_context.
Toshihiro Kitagawa [Wed, 30 Jun 2010 00:31:55 +0000 (00:31 +0000)]
Add structures: PreparedStatement, Portal, PreparedStatementList and PortalList.
Add functions to operate these structures.
Toshihiro Kitagawa [Wed, 30 Jun 2010 00:12:11 +0000 (00:12 +0000)]
Add extended query protocol support to pool_send_and_wait().
Toshihiro Kitagawa [Mon, 28 Jun 2010 10:15:33 +0000 (10:15 +0000)]
Fix description about immediate mode of --help.
Toshihiro Kitagawa [Mon, 28 Jun 2010 10:08:58 +0000 (10:08 +0000)]
Forgot to add README.online-recovery.
Tatsuo Ishii [Mon, 28 Jun 2010 09:14:36 +0000 (09:14 +0000)]
Fix bug with session context initialization. To reproduce the bug:
num_init_children = 1
connect as a user
connect as another user and you get a segfault.
Tatsuo Ishii [Sun, 27 Jun 2010 23:18:11 +0000 (23:18 +0000)]
Forgot to add pool_passwd.c pool_passwd.h.
Modulaize pool_passwd update function.
Tatsuo Ishii [Sun, 27 Jun 2010 22:39:34 +0000 (22:39 +0000)]
Add missing header file.
Tatsuo Ishii [Sun, 27 Jun 2010 13:02:57 +0000 (13:02 +0000)]
Implement md5 authentication using pool_passwd.
Still need to rewrite documents and pgpool.config samples.
Tatsuo Ishii [Mon, 21 Jun 2010 05:54:22 +0000 (05:54 +0000)]
Forgot to add new files.
Tatsuo Ishii [Mon, 21 Jun 2010 05:46:57 +0000 (05:46 +0000)]
First cut of standby server lag checking in streaming replication
mode. New directive delay_threshold and log_standby_delay added.
See docs for more details.
Tatsuo Ishii [Sun, 20 Jun 2010 10:31:03 +0000 (10:31 +0000)]
Fix pool_where_to_send in case of SELECT+transaction case.
Tatsuo Ishii [Sun, 20 Jun 2010 07:41:14 +0000 (07:41 +0000)]
Add pool_worker_child.c which implements new worker process
for checking standby lagging in streaming replication.
Also remove unnecessary variables in child.c.
Tatsuo Ishii [Sat, 19 Jun 2010 01:56:11 +0000 (01:56 +0000)]
Remove unnecessary variable.
Tweak comments.
Tatsuo Ishii [Thu, 17 Jun 2010 09:11:17 +0000 (09:11 +0000)]
Add proper header comments.
Use getopt_long, rather than homebrew command analysis routine.
Add --md5auth argument(just a mock up)
Tatsuo Ishii [Mon, 14 Jun 2010 05:29:54 +0000 (05:29 +0000)]
Change next version no. from 2.4-current to 3.0-dev.
Tatsuo Ishii [Sun, 13 Jun 2010 23:53:25 +0000 (23:53 +0000)]
Add description of client_idle_limit_in_recover = -1 case.
Tatsuo Ishii [Fri, 11 Jun 2010 09:24:23 +0000 (09:24 +0000)]
Master/slave + Streaming Replicaton first cut.
Tatsuo Ishii [Fri, 11 Jun 2010 07:07:16 +0000 (07:07 +0000)]
Call pool_query_context_destroy instead of
pool_unset_query_in_progress in ReadyForQuery.
Tatsuo Ishii [Fri, 11 Jun 2010 07:05:11 +0000 (07:05 +0000)]
Make start_load_balance and end_load_balance to empty functions.
Tatsuo Ishii [Fri, 11 Jun 2010 03:46:16 +0000 (03:46 +0000)]
Remove unnessary global variables.
Tatsuo Ishii [Thu, 10 Jun 2010 10:05:32 +0000 (10:05 +0000)]
Fix MASTER* macros not to use global variable in_load_balance.
Tatsuo Ishii [Thu, 10 Jun 2010 06:47:26 +0000 (06:47 +0000)]
Forgot to commit delivered files.
Tatsuo Ishii [Thu, 10 Jun 2010 06:46:37 +0000 (06:46 +0000)]
Unbrake SimpleQuery(). Now it handles master/slave mode correctly.
Tatsuo Ishii [Thu, 10 Jun 2010 06:45:57 +0000 (06:45 +0000)]
Remove unnessary statement. It's now in VALIAD_BACKEND macro.
Tatsuo Ishii [Thu, 10 Jun 2010 06:44:03 +0000 (06:44 +0000)]
Change definition of REPLICATION/MASTER_SLAVE
Do not refer to pool_config->replication_enabled, master_slave_enabled
Tatsuo Ishii [Thu, 10 Jun 2010 06:42:31 +0000 (06:42 +0000)]
Change definition of REPLICATION/MASTER_SLAVE
Do not refer to pool_config->replication_enabled, master_slave_enabled
Tatsuo Ishii [Thu, 10 Jun 2010 01:54:42 +0000 (01:54 +0000)]
Fix comment: pool_status -> pgpool_status
Tatsuo Ishii [Wed, 9 Jun 2010 11:33:48 +0000 (11:33 +0000)]
Fix typo in help message from main program.
Add description about --discard-status to docs.
Fix description about replication_stop_on_mismatch.
Tatsuo Ishii [Wed, 9 Jun 2010 02:03:15 +0000 (02:03 +0000)]
Add -D (--discard-status) argument not to restore previous down status.
Toshihiro Kitagawa [Tue, 8 Jun 2010 08:34:26 +0000 (08:34 +0000)]
Refactor pool_proto_modules.c.
Now it is divided into pool_proto_modules.c and pool_proto2.c.
pool_proto2.c has functions that correspond to protocol 2.0.
Toshihiro Kitagawa [Tue, 8 Jun 2010 05:39:22 +0000 (05:39 +0000)]
Fix pgpool.conf boolean variables to take the same range of string
values as postgresql.conf.
Tatsuo Ishii [Mon, 7 Jun 2010 08:29:44 +0000 (08:29 +0000)]
Add master_slave_sub_mode
Tatsuo Ishii [Sun, 6 Jun 2010 11:14:18 +0000 (11:14 +0000)]
Remove in_progress global variable.
Tatsuo Ishii [Sun, 6 Jun 2010 10:17:32 +0000 (10:17 +0000)]
To avoid direct access to stream buffer from abstraction point of
view, add two macros:
#define pool_read_buffer_is_empty(connection)
#define pool_discard_read_buffer(connection)
Tatsuo Ishii [Fri, 4 Jun 2010 07:39:42 +0000 (07:39 +0000)]
Add query context module.
Tatsuo Ishii [Thu, 3 Jun 2010 05:48:46 +0000 (05:48 +0000)]
MAX_CONNECTION_SLOTS should be equal to MAX_NUM_BACKENDS.
Tatsuo Ishii [Wed, 2 Jun 2010 10:06:51 +0000 (10:06 +0000)]
Refactoring simpleQuery part 1. Move some parallel query processing
to pool_rewrite_query.c.
Also fix sloppy coding (no "#ifdef...") of pool_rewrite_query.h.
Tatsuo Ishii [Wed, 2 Jun 2010 10:04:37 +0000 (10:04 +0000)]
Fix typo.
Tatsuo Ishii [Wed, 2 Jun 2010 09:23:22 +0000 (09:23 +0000)]
Remove LocalSessionId, which is not neccessary any more.
Tatsuo Ishii [Wed, 2 Jun 2010 08:51:19 +0000 (08:51 +0000)]
Add session context module.
Tatsuo Ishii [Wed, 2 Jun 2010 06:52:34 +0000 (06:52 +0000)]
Introduce process context module
Tatsuo Ishii [Wed, 2 Jun 2010 02:05:48 +0000 (02:05 +0000)]
Make system DB connection initialize process to static function.
Refactoring effort.
Tatsuo Ishii [Tue, 1 Jun 2010 09:25:37 +0000 (09:25 +0000)]
Change ProcessInfo pids -> ProcessInfo process_info.
The former name was too generic.
Tatsuo Ishii [Tue, 1 Jun 2010 09:03:00 +0000 (09:03 +0000)]
Create pool_config.h and move pool_config.l related declarations there.
Tatsuo Ishii [Mon, 31 May 2010 07:08:30 +0000 (07:08 +0000)]
Add pool_stream,h
Move function declarations of pool_stream.c to pool_stream.h
Tatsuo Ishii [Mon, 31 May 2010 06:58:29 +0000 (06:58 +0000)]
Fix to add linking neccesary libraries when SSL enabled.
Tatsuo Ishii [Sun, 30 May 2010 03:42:25 +0000 (03:42 +0000)]
Fix to add linking neccesary libraries when SSL enabled.
Tatsuo Ishii [Thu, 27 May 2010 06:17:56 +0000 (06:17 +0000)]
Add C test program
Tatsuo Ishii [Wed, 26 May 2010 07:59:58 +0000 (07:59 +0000)]
Remove following unsed entry.
int current_slot; /* current backend slot # */
Tatsuo Ishii [Wed, 26 May 2010 06:32:34 +0000 (06:32 +0000)]
Improve documentation about num_init_children.
Tatsuo Ishii [Wed, 26 May 2010 06:21:25 +0000 (06:21 +0000)]
Refactoring pool.h
- Remove long standing comment out lines
- Move pool_relcache.c pool_lobj extern declarations to separate
header files
Tatsuo Ishii [Mon, 24 May 2010 07:25:35 +0000 (07:25 +0000)]
Fix bug with pcp_check_fd()'s timeout handling.
Per erboles.
Subject: [Pgpool-general] question about pcp_check_fd
Date: Sun, 23 May 2010 18:21:41 -0500
To: pgpool <pgpool-general@pgfoundry.org>
Tatsuo Ishii [Wed, 19 May 2010 19:08:43 +0000 (19:08 +0000)]
Fix SSL connection sometimes hung if lots of data read from backend.
This is caused by the buffering in OpenSSL layer. To fix the problem,
we check the buffer has any pending data by using SSL_pending() before
calling select(2).
See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for
more details.
Guillaume Lelarge [Sun, 16 May 2010 12:37:53 +0000 (12:37 +0000)]
Add support for long options.
Tatsuo Ishii [Sun, 16 May 2010 08:38:16 +0000 (08:38 +0000)]
Subject: Re: [Pgpool-general] pg_terminate_backend triggers failover on pgpool when used as standalone pool
From: Tatsuo Ishii
Date: Wed, 12 May 2010 22:08:31 +0900 (JST)
It seems the problem occurs when there's only one DB node.
1) it tries to failover to non existing node
2) it makes the node into down status which might not what you want.
#1 is purely a bug. I fix this and for #2 I'm leaning to change
existing behavior.
- In row mode and if there's only one DB node, if a problem occurs
with the DB node, it will be brought to down status. However if the
DB node goes into good condition again, you can use the DB node
without restarting pgpool.
- In other mode the behavior is not changed.
Tatsuo Ishii [Wed, 12 May 2010 09:02:22 +0000 (09:02 +0000)]
Fix typo for supporting debug_level
Tatsuo Ishii [Wed, 12 May 2010 04:58:13 +0000 (04:58 +0000)]
Add new directive "debug_level" to be able to turn on/off debug
messages on the fly. Although it is possible to assign 1 more integer
to specify vervosity, currently there is no infrastracture to make it
reality. Probably we will add new api pool_debug2, pool_debug3... for
this purpose later on.
Also I make the debug message control global variable "debug" for pcp
commands only. This means pgpool -d does not show debug messages from
pcp anymore. This is neccessary to prevengt from generating
meaningless, annoying debug messages by pcp when health checking is
turned on. It might be worth to add another command option to pgpool
so that pcp generates debug messages, but I'm not sure.
Toshihiro Kitagawa [Mon, 10 May 2010 09:35:45 +0000 (09:35 +0000)]
Fix SimpleForwardToFrontend() so that it reset select_in_transaction flag
and execute_select flag when bind error occurred while executing SELECT.
Tatsuo Ishii [Fri, 23 Apr 2010 06:53:19 +0000 (06:53 +0000)]
Add missing file
Tatsuo Ishii [Thu, 22 Apr 2010 08:10:38 +0000 (08:10 +0000)]
Fix compiler warnings. Patch contributed by Takahiro Itagaki.
Tatsuo Ishii [Tue, 20 Apr 2010 04:43:13 +0000 (04:43 +0000)]
Prepare 2.3.3
Tatsuo Ishii [Sun, 18 Apr 2010 13:43:36 +0000 (13:43 +0000)]
Allow to use -1 for client_idle_limit_in_recovery. This forces to
immediately disconnect clients even if they are not idle before
entering online recovery second stage. This is usefull for busy
systems.
Tatsuo Ishii [Sat, 17 Apr 2010 08:56:57 +0000 (08:56 +0000)]
Version 2.4-CURRENT
Toshihiro Kitagawa [Fri, 16 Apr 2010 04:16:44 +0000 (04:16 +0000)]
parallel_mode requires replication_mode or load_balance_mode turned on.
This fix is consistent with the description of manual.