Re: An I/O error occured while sending to the backend - Mailing list pgsql-general

From gzh
Subject Re: An I/O error occured while sending to the backend
Date
Msg-id 160e6ef1.26e2.18488c4c53d.Coremail.gzhcoder@126.com
Whole thread Raw
In response to Re: An I/O error occured while sending to the backend  (Laurenz Albe <laurenz.albe@cybertec.at>)
List pgsql-general
Hi,  Rob

>Is this true for large numbers of lines in you csv?  Originally you said 
>something like 'adding 1000 lines' broke your app. Are you using 
>CopyManager?
Thank you for your reply. I didn't use CopyManager.
②'s query statement query the data inserted by ①, and a large amount of data inserted will cause performance problem.
I misunderstood, it's not ① that affects ②, it should be that ②'s query statement has a performance problem. 
The Encrypt function is used in ②'s query statement to encrypt the query result, and improper use of this function leads to poor performance. 
Sometimes 2~4 seconds to return the result, sometimes 7~19 seconds to return the result. 
We optimized the query statement to reduce the query time to less than 1 second and now the application works well.







At 2022-11-16 14:57:41, "Laurenz Albe" <laurenz.albe@cybertec.at> wrote: >On Wed, 2022-11-16 at 13:04 +0800, gzh wrote: >> I have developed an application using the jdbc driver and  >> connecting to a postgresql database . >> The application mainly does the following two things: >> ① read data from the CSV file and insert it into the database >> ② perform a database query >> In my application, the above ① and ② are executed asynchronously. >> Everything was working fine until I increase the amount of CSV data to more than 1000. >> Randomly they receive an error, the stack trace of which is below. >>   >> Caused by: java.net.SocketTimeoutException: Read timed out >> at java.base/java.net.SocketInputStream.socketRead0(Native Method) >> at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115) >> at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168) >> at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140) >> at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478) >> at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472) >> at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70) >> at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1454) >> at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1065) >> at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:161) > >Well, set a longer socket timeout if you need to run long SQL statements, or tune >those statements to be faster. > >https://jdbc.postgresql.org/documentation/use/#connection-parameters has more >information about "socketTimeout". > >Yours, >Laurenz Albe

pgsql-general by date:

Previous
From: Ron
Date:
Subject: Re: Drop role cascade ?
Next
From: Andreas Kretschmer
Date:
Subject: Re: Drop role cascade ?