[
https://issues.apache.org/jira/browse/IOTDB-527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17059543#comment-17059543
]
DaweiLiu commented on IOTDB-527:
--------------------------------
We modified the way of using seriesReader, no longer use hasNextChunk
reentrant, requiring that hasNextPage be used to complete the current
overlapped data and then to switch to next chunk
{code:java}
/*
* consume page data firstly
*/
while (seriesReader.hasNextPage()) {
batchData = seriesReader.nextPage();
// do something
}
/*
* consume next chunk finally
*/
while (seriesReader.hasNextChunk()) {
while (seriesReader.hasNextPage()) {
batchData = seriesReader.nextPage();
// do something
}
}
{code}
> SeriesReader bug when mergeReader has data and overlappedPageReaders isEmpty
> ----------------------------------------------------------------------------
>
> Key: IOTDB-527
> URL: https://issues.apache.org/jira/browse/IOTDB-527
> Project: Apache IoTDB
> Issue Type: Bug
> Components: Core/Engine
> Reporter: DaweiLiu
> Priority: Critical
> Labels: pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> In the SeriesReader, we use the mergeReader to read to the end of the
> directly overlapped page (assumed time is A) when the data overlaps, and fill
> in the pages that overlap again as we read.
> 在SeriesReader中,当数据发生相交时我们会使用mergeReader读到直接重叠的page结尾(A时间点),同时会在读的过程中不断填充再次相交的page。
> When the time in mergeReader is greater than the time A, the loop ends and A
> batchData is cut. The problem is, we don't know how many chunks are filled
> in, so when you reenter using hasNextPage(), the chunk referred to in
> firstChunkMetaData is the wrong chunk, causing the data to be re-read.
> 当mergeReader中的时间点大于A时间点时,会结束循环,切分开一个batchData。但问题是,我们并不知道中间Fill了多少chunk,所以当使用hasNextPage()重入的时候,firstChunkMetaData
> 所指的chunk就是错误的,它会导致数据重读。
>
> It looks something like this:
> 1 [1537401604557-1537984270773]
> 2 [1537401786489-1538006396048]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)