in tsfile-viewer-core/src/main/java/org/apache/iotdb/tool/core/service/TsFileAnalyserV13.java [990:1019]
public List<ChunkOffsetInfo> fetchChunkOffsetListByChunkGroupOffset(long offset)
throws InterruptedException, IOException {
countDownLatch.await();
List<ChunkOffsetInfo> chunkOffsetInfoList = new ArrayList<>();
reader.position(offset);
ChunkGroupHeader chunkGroupHeader = reader.readChunkGroupHeader();
byte marker;
ChunkHeader chunkHeader;
while (((marker = reader.readMarker()) != MetaMarker.CHUNK_GROUP_HEADER)
&& (marker != MetaMarker.OPERATION_INDEX_RANGE)
&& (marker != MetaMarker.SEPARATOR)) {
ChunkOffsetInfo chunkOffsetInfo = new ChunkOffsetInfo();
long chunkOffset = reader.position() - 1;
chunkHeader = reader.readChunkHeader(marker);
// aligned 对齐的时间序列,第一个chunk是VECTOR
if (chunkHeader.getDataType() == TSDataType.VECTOR) {
chunkOffsetInfo.setAligned(true);
}
if (chunkOffsetInfoList.size() != 0) {
chunkOffsetInfo.setAligned(chunkOffsetInfoList.get(0).isAligned());
}
chunkOffsetInfo.setMeasurementId(chunkHeader.getMeasurementID());
chunkOffsetInfo.setOffset(chunkOffset);
chunkOffsetInfoList.add(chunkOffsetInfo);
reader.position(reader.position() + chunkHeader.getDataSize());
}
return chunkOffsetInfoList;
}