Re: [RFC] How about changing the default value of defaultRowFetchSize? - Mailing list pgsql-jdbc

From Vladimir Sitnikov
Subject Re: [RFC] How about changing the default value of defaultRowFetchSize?
Date
Msg-id CAB=Je-GS1xewXds4d4pj-OtfshrJdVpwbQE+vd9CMCB99s8iOQ@mail.gmail.com
Whole thread Raw
In response to Re: [RFC] How about changing the default value of defaultRowFetchSize?  (Jorge Solórzano <jorsol@gmail.com>)
Responses Re: [RFC] How about changing the default value of defaultRowFetchSize?  (Jorge Solórzano <jorsol@gmail.com>)
Re: [RFC] How about changing the default value of defaultRowFetchSize?  (Jorge Solórzano <jorsol@gmail.com>)
List pgsql-jdbc
Jorge>The value of 0 should be used to fetch all rows, if we ​leave the default at 0 and handle internally that as 100 (and reporting it as 0) it is a wrong behavior.

Note that "unset" and "set to 0" might have different meanings for a good (or bad?) reason.

There's non-zero overhead when using low fetch sizes for narrow tables: https://github.com/pgjdbc/pgjdbc/issues/292#issuecomment-107249028
E.g. 1.7 times difference for fetchsize 1000 and 100 for fetching 2000 rows of 4 int4 over localhost connection.

Ideally, I would like the backend to support "fetch at most 10000 rows and at most 1MiB" kind of requests.

Unfortunately, PG does not yet support "byte size limited" fetches, so we might implement some "machine learning" trick: "fetch 100 rows, calculate average row size, then adjust fetch size so subsequent fetch would be close to the desired "fetch byte length"


Anyway, I think it makes sense to switch to some non-zero value for defaultRowFetchSize, then implement "fetch size autoscaling".

Vladimir

pgsql-jdbc by date:

Previous
From: Jorge Solórzano
Date:
Subject: Re: [RFC] How about changing the default value of defaultRowFetchSize?
Next
From: Jorge Solórzano
Date:
Subject: Re: [RFC] How about changing the default value of defaultRowFetchSize?