Subject | Re: Data paging question |
---|---|
Author | pablosanchezuy |
Post date | 2002-08-01T22:48:14Z |
Jason, thanks for the input. It´s clear that records are sent over
the wire as the client (gds32.dll) requests it.
I thought you could specify the gds32.dll to request "n" records at
a time. It just "fills" its buffers.
Any ideas how big it that buffer and if there is any parameter to
control it?
Pablo Sánchez
pablos@...
the wire as the client (gds32.dll) requests it.
I thought you could specify the gds32.dll to request "n" records at
a time. It just "fills" its buffers.
Any ideas how big it that buffer and if there is any parameter to
control it?
Pablo Sánchez
pablos@...
> Just to clarify,her
>
> You open a query and request the first record:
> 1) The server works out whether it needs to go and get all of the records=
> now and store the results on the server or whether it can get them as
> required.
> 2) The server _FILLS_ a buffer to be sent over the wire to the client. I=
> think this is 4 packets (TCP/IP), but don't quote me on that unless it is=
> correct.
> 3) These are sent to the client.
> 4) The gds32.dll (FB's DLL you need to access FB) stores these packets in=
> memory and makes the data available to the client.
> 5) Your client SW says fetch each time it wants a new record.
> 6) When gds32.dll notices that it's buffer is half depleted it makes anot=
> request to the server to top up its buffer.ess
>
> This mechanism has the advantages of nagle (aggregation of rows meaning l=
> packets over the wire) and also the "look ahead" buffer means that if you=
> are reading hte rows sequencially and slowly, you don't have to wait for
> requests as there is always a half full (minimum) buffer.
>
> BTW The BDE doesn't always fetch all rows, it does when you go into edit
> mode, but if you were just browsing then not alway.
>
> Just re-read, not the answer required for the original question, but
> hopefully helpful to someone :-)
>
> HIH
>
> JAC.
>