THPDFSpillStatistics Record
compressed spill stream의 논리·물리 크기, 블록 압축 구성, async writer 동작을 보고합니다
선언
THPDFSpillStatistics= record
LogicalBytes: Int64;
PhysicalBytes: Int64;
BlockCount: Integer;
CompressedBlockCount: Integer;
RawBlockCount: Integer;
AsyncWriteBatchCount: Int64;
AsyncWriteBlockCount: Int64;
ProducerWaitCount: Int64;
PeakQueuedBytes: Int64;
end;
유닛
HPDFObjs
필드
| 필드 | 목적 |
|---|---|
LogicalBytes | stream이 reader에게 보여 주는 비압축 데이터 크기 |
PhysicalBytes | 디스크에 있는 backing spill 파일의 현재 크기 |
BlockCount | 블록 오프셋 테이블이 추적하는 블록 총수 |
CompressedBlockCount | 압축되어 저장된 블록 수 |
RawBlockCount | 압축이 이득이 되지 않아 그대로 저장된 블록 수 |
AsyncWriteBatchCount | background writer 스레드에 넘긴 쓰기 배치 수 |
AsyncWriteBlockCount | background writer가 실제로 쓴 블록 수 |
ProducerWaitCount | 쓰기 큐가 꽉 차서 생산 스레드가 기다려야 했던 횟수 |
PeakQueuedBytes | 비동기 쓰기로 큐에 쌓인 바이트의 최고점 |
사용 참고 사항
- 대기 중 쓰기를 플러시한 뒤
THPDFCompressedSpillStream.GetStatistics가 반환하고, 디스크로 materialize된 stream은THPDFLazyFileStream.GetSpillStatistics가 반환합니다 - loaded stream cache 보고서는 이 값들을
THPDFLoadedStreamCacheInfo의 spill 필드로 집계합니다 ProducerWaitCount와PeakQueuedBytes는 메모리 압박 상황에서 비동기 writer의 backpressure를 보여 줍니다