[pgjdbc/pgjdbc] e2623d: perf: fix 1ms per async CopyAPI (regressionsince ... - Mailing list pgsql-jdbc

From Vladimir Sitnikov
Subject [pgjdbc/pgjdbc] e2623d: perf: fix 1ms per async CopyAPI (regressionsince ...
Date
Msg-id 5bd16ca23a94f_47d62ac01b96e5782083f@hookshot-fe-d252ca1.cp1-iad.github.net.mail
Whole thread Raw
List pgsql-jdbc
Branch: refs/heads/master
  Home:   https://github.com/pgjdbc/pgjdbc
  Commit: e2623d63d4b6fad0b12fb9ace842475e4a9134dc
      https://github.com/pgjdbc/pgjdbc/commit/e2623d63d4b6fad0b12fb9ace842475e4a9134dc
  Author: Vladimir Sitnikov <sitnikov.vladimir@gmail.com>
  Date:   2018-10-25 (Thu, 25 Oct 2018)

  Changed paths:
    M CHANGELOG.md
    M docs/_posts/2018-08-27-42.2.5-release.md
    M pgjdbc/src/main/java/org/postgresql/core/PGStream.java
    M pgjdbc/src/main/java/org/postgresql/core/v3/CopyDualImpl.java
    M pgjdbc/src/main/java/org/postgresql/core/v3/replication/V3ReplicationProtocol.java

  Log Message:
  -----------
  perf: fix 1ms per async CopyAPI (regression since 42.2.5) (#1314)

The problem is SSL sockets use buffers for input, and `stream#available()` might easily return 0 even though the data
isavailable in the downstream socket. The only viable WA is to perform `read` calls, however it might impact
performance(e.g. for async copy operations). The resolution is to throttle read calls for copy api, and keep 1ms reads
forreplication api.
 

fixes #1312



      **NOTE:** This service has been marked for deprecation:
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: Query related to postgresql jdbc 42.2.5
Next
From: Alexander Kjäll
Date:
Subject: Maybe time for an alpha release of the pgsql2 project