Caideyipi opened a new pull request, #18419:
URL: https://github.com/apache/iotdb/pull/18419

   ## Description
   
   ### Problem
   Load reuses TsFile insertion parsers, whose tablet, chunk, page, and 
modifications blocks were hard-coded to PipeDataNodeResourceManager.memory(). A 
large Pipe tablet backlog could therefore consume the Pipe pool and prevent 
Load from acquiring query memory.
   
   ### Fix
   - Inject a parser memory owner through 
TsFileInsertionEventParserMemoryManager.
   - Keep existing parser constructors on the Pipe pool for Pipe callers.
   - Route Load tree scan/query and table parsing through 
LoadTsFileParserMemoryManager, backed by LoadTsFileMemoryManager and the query 
operator pool.
   - Propagate LoadRuntimeOutOfMemoryException during parser initialization 
instead of treating it as TsFile corruption and falling back.
   
   ### Tests
   - LoadTsFileParserPipeMemoryIsolationTest: 
PipeDataNodeResourceManager.memory() throws if accessed; the real Load scan 
parser still reads the TsFile, records query-pool usage, and releases it.
   - 
LoadTreeStatementDataTypeConvertExecutionVisitorTest#testLoadScanParserUsesQueryMemoryPoolInsteadOfPipeMemory:
 query-pool usage increases while Pipe usage is unchanged.
   - LoadTsFileMemoryManagerTest and TsFileInsertionEventParserTest pass; 
Spotless/checkstyle pass.
   - The latest incremental compile is additionally blocked by pre-existing 
stale cross-module Subscription/Thrift generated APIs, unrelated to this change.
   
   ### Scope note
   The existing Load conversion semaphore only reads Pipe capacity to size 
permits; this change removes parser working-memory allocations from the Pipe 
pool.
   
   <hr>
   
   This PR has:
   - [x] been self-reviewed.
   - [x] added comments explaining the ownership boundary.
   - [x] added or updated unit tests for the new code paths.
   - [ ] added integration tests (not applicable to this unit-level memory 
ownership fix).
   
   <hr>
   
   ##### Key changed/added classes
   - TsFileInsertionEventParserMemoryBlock / 
TsFileInsertionEventParserMemoryManager
   - LoadTsFileParserMemoryManager
   - TsFileInsertionEventParser, scan/query/table parser implementations
   - LoadTreeTsFileTabletIterator and 
LoadTableStatementDataTypeConvertExecutionVisitor
   - Load memory/parser isolation tests


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to