Search Postgresql Archives

Re: An I/O error occured while sending to the backend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx> 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux