[pgpool-hackers: 3287] Re: New feature proposal: statement_level_load_balancing
Bo Peng
pengbo at sraoss.co.jp
Fri Mar 29 17:23:36 JST 2019
Ishii-san,
Thank you for reviewing my patch.
On Fri, 29 Mar 2019 09:12:24 +0900 (JST)
Tatsuo Ishii <ishii at sraoss.co.jp> wrote:
> > Hi All
> >
> > Here is a patch for new feature "statement_level_load_balancing".
> > This feature enables selecting load balancing node per statement.
> >
> > The current feature for load balancing, the load balancing node is decided
> > at the session start time and will not be changed until the session ends.
> >
> > When set to statement_level_load_balancing = on, the load balancing node
> > is decided for each read query.
> >
> > For example, in applications that use connection pooling remain connections
> > open to the backend server, because the session may be held for a long time,
> > the load balancing node does not change until the session ends.
> > In such applications, when statement_level_load_balance is enabled,
> > it is possible to decide load balancing node per query, not per session.
> >
> > The default is off.
>
> Great!
>
> Here are some comments on the patch.
>
> (1) There are some unnecessary spaces in the patch.
>
> t-ishii$ git apply ~/statement_level_load_balancing_v1.patch
> /home/t-ishii/statement_level_load_balancing_v1.patch:22: trailing whitespace.
> When set to off, load balancing node is decided at the session start time
> /home/t-ishii/statement_level_load_balancing_v1.patch:23: trailing whitespace.
> and will not be changed until the session ends.
> /home/t-ishii/statement_level_load_balancing_v1.patch:24: trailing whitespace.
> For example, in applications that use connection pooling remain connections
> /home/t-ishii/statement_level_load_balancing_v1.patch:25: trailing whitespace.
> open to the backend server, because the session may be held for a long time,
> /home/t-ishii/statement_level_load_balancing_v1.patch:27: trailing whitespace.
> In such applications, When <varname>statement_level_load_balance</varname> is enabled,
> warning: squelched 10 whitespace errors
> warning: 15 lines add whitespace errors.
I fixed these unnecessary spaces.
> (2) I encountered errors while executing extended-query-test.
> :
> :
> testing query-cache.data ... ok.
> testing select-multi-rows.data ... ok.
> testing sql-error.data ... ok.
> testing unable_to_bind.data ... ok.
> ./test.sh: line 226: cd: tests_n3: No such file or directory
> creating test database with 3 nodes...done.
> testing README ... grep: /home/t-ishii/work/Pgpool-II/current/pgpool2/src/test/extended-query-test/tests_n3/README: No such file or directory
> sed: can't read /home/t-ishii/work/Pgpool-II/current/pgpool2/src/test/extended-query-test/expected/README: No such file or directory
> failed.
> testing expected ... grep: /home/t-ishii/work/Pgpool-II/current/pgpool2/src/test/extended-query-test/tests_n3/expected: No such file or directory
I forgot to add these new files.
I added these file to this new patch.
> (3) It is stated that "This parameter can be changed by reloading the
> <productname>Pgpool-II</> configurations." in the manual, but actually
> it only can be changed when Pgpool-II restarts.
I changed this parameter to CFGCXT_RELOAD.
> (4) Now that QUERT_CONTEXT->where_to_send and
> POOL_PENDING_MESSAGE->node_ids are in the same type bool and the node
> ids in those data are in the same order, why can't we replace following:
>
> void
> pool_pending_message_dest_set(POOL_PENDING_MESSAGE * message, POOL_QUERY_CONTEXT * query_context)
> {
> int i;
>
> for (i = 0; i < MAX_NUM_BACKENDS; i++)
> {
> if (query_context->where_to_send[i])
> message->node_ids[i] = true;
> }
>
> to something like;
>
> memcpy(message->node_ids, query_context->where_to_send, sizeof(message->node_ids));
>
> I think this is much faster than iterating over where_to_send.
Thank you.
Yes. Now node_ids is same like where_to_send,
so we can use memcpy.
I fixed this in new patch.
>
> Best regards,
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese:http://www.sraoss.co.jp
>
--
Bo Peng <pengbo at sraoss.co.jp>
SRA OSS, Inc. Japan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: statement_level_load_balancing_v2.patch
Type: application/octet-stream
Size: 30888 bytes
Desc: not available
URL: <http://www.sraoss.jp/pipermail/pgpool-hackers/attachments/20190329/ad6baae5/attachment-0001.obj>
More information about the pgpool-hackers
mailing list