Resolution: Some details on the working of the browse operation.
The browse processing for timescope SNAPSHOT is as follows.
- Send the query to all seeders. The prefetch count is divided by the number of available seeders.
- On the seeders, the matching tuples are identified (index is used if available and a response is sent back to the client with the id’s for all
the matching tuples. In addition to the id’s, the whole tuple is sent
back if prefetch is specified. Without prefetch, only the ID’s are sent
back.
- The client would first consume the results with the whole tuple.
- The
client then issues a “get” to retrieve all the fields for the results
where only the id has been returned. The client would issue “batch get”
of size prefetch. This way, the client does not have to issue a “get”
for every row.
- The browse operation finishes once all the ids are processed.
The browse processing for timescope CURRENT is as follows.
- Send the query to all seeders. The prefetch count is divided by the number of available seeders.
- On
the seeders, the matching tuples are identified (index is used if
available). Once the prefetch count is satisfied, the seeder stops
processing and sends back the matching tuples (all fields). No ID’s are
sent back.
- The client consumes the results.
- The client
then “re-issues” the query to all the seeders. The seeders “continues"
to scan for more matching tuples from where the processing was
previously stopped.
- The browse operation finishes once the scanning completes on all the seeders.