Affects Version/s: None
Fix Version/s: None
The following areas have been identified where there is an unnecessary conversion between chunked and unchunked iterators. In several cases, this pattern has emerged due to the evolution of APIs. However, the SAIL/SPARQL query evaluation code paths no longer require this pattern and the QueryEngine no longer has any reliance on IAsynchronousIterator, which was another source of these conversions.
Resolution of this issue might require that we rework BlockingBuffer to use a poison pill pattern rather than a spin loop since that class is another source of the IAsynchronousIterator pattern.
Also, look for all uses of the Dechunkerator. That class is typically used to support this pattern.
The ChunkConsumerIterator class can be used to turn an ICloseableIterator vising some array type into an IChunkedOrderedIterator for that element type without dechunking and rechunking.