mattcasters opened a new issue, #8863:
URL: https://github.com/apache/hop/issues/8863

   ### Apache Hop version?
   
   2.20.0-SNAPSHOT (main, after #8850, 2026-10-11)
   
   ### Java version?
   
   21
   
   ### Operating system
   
   Linux
   
   ### What happened?
   
   #8850 (fixes #8670) resolves a child execution by searching other execution 
documents at read time. The execution perspective refresh, drill-down, and 
parent lookup all pay for that search. Refresh of a database 
execution-information location became much slower.
   
   The relationship is known when the child starts. It has to be written into 
the execution file (or database row) at that moment. A later read loads that 
one document by id. It does not go looking for the parent.
   
   What #8850 does instead:
   
   - `BaseCachingExecutionInfoLocation.getExecution()` falls back to 
`findCacheEntryWithChild()` when the id is not a top-level cache entry. 
`findParentId()` and `findExecutions(parentId)` use the same fallback.
   - `CachingDatabaseExecutionInfoLocation.loadCacheEntryWithChild()` runs 
`LIKE '%childId%'` against the JSON and state-JSON columns and parses up to 20 
full cache documents.
   - `CachingFileExecutionInfoLocation.loadCacheEntryWithChild()` reads up to 
100 of the newest execution files and searches their text.
   - `WorkflowExecutionViewer.drillDown()` calls `findChildIds()` and then 
`getExecution()` for each child when no execution data is selected.
   
   `ExecutionPerspective.refresh()` calls `findExecutionIds()`, then 
`getExecution()` and `getExecutionState()` per id. With the parents-only filter 
off, child pipeline and workflow ids are part of that flat list. Each child id 
misses the primary-key load and runs the scan above. With the filter on, the 
same scan still runs for drill-down and any other parent/child lookup.
   
   `registerExecution()` already knows the parent. A pipeline or workflow is 
its own cache entry. A transform or action is stored on that parent. Persist 
`parentId` on the child and the child id on the parent document when the child 
is registered, and flush that write. Reads then load the parent or the child by 
id.
   
   Remove `findCacheEntryWithChild()` / `loadCacheEntryWithChild()` and the 
database `LIKE` and file-content scans. #8670 (open the parent execution, view 
the flow data) still has to work from the stored link.
   
   ### Issue Priority
   
   Priority: 2
   
   ### Issue Component
   
   Component: Hop Gui, Component: Infrastructure


-- 
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