[pgpool-hackers: 3201] Re: COPY performance
Tatsuo Ishii
ishii at sraoss.co.jp
Wed Dec 26 15:06:35 JST 2018
The change was committed to master branch for 4.1.
Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
> I found "COPY xxx TO STDOUT"'s performance is pretty bad if Pgpool-II
> is involved. You can check this by using pg_dump.
> (I tested it on my loptop)
>
> Direct PostgreSQL: 4.7sec
> Via Pgpool-II 4.0: 19.8sec
>
> Almost Pgpool-II is x5 slower than PostgreSQL direct.
>
> Digging into this a little bit, I found followings in
> SimpleForwardToFrontend().
>
> /*
> * Optimization for "Data Row" message. Since it is too often to receive
> * and forward "Data Row" message, we do not flush the message to frontend
> * now. We expect that "Command Complete" message (or "Error response" or
> * "Notice response" message) follows the stream of data row message
> * anyway, so flushing will be done at that time.
> */
> if (kind == 'D')
> {
> pool_write(frontend, p1, len1);
> }
> else
> {
> pool_write_and_flush(frontend, p1, len1);
> }
>
> To optimize DataRow case, for each DataRow message
> SimpleForwardToFrontend() does not flush message. But this
> optimization is not done for CopyData. I think because a lot of
> CopyData messages generated like DataDow, this optimization should be
> applied to CopyData as well. Actually if I just change following:
>
> if (kind == 'D')
>
> to:
>
> if (kind == 'D' || kind == 'd')
>
> 19.8sec reduces to 7.8sec (x2.5 improvement).
>
> Comments?
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese:http://www.sraoss.co.jp
> _______________________________________________
> pgpool-hackers mailing list
> pgpool-hackers at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-hackers
More information about the pgpool-hackers
mailing list