LuciferYang opened a new issue, #10235:
URL: https://github.com/apache/paimon/issues/10235

   ### Search before asking
   
   - [X] I searched in the [issues](https://github.com/apache/paimon/issues) 
and found nothing similar.
   
   ### Paimon version
   
   master
   
   ### Compute Engine
   
   Flink
   
   ### Minimal reproduce step
   
   When a table stores data on external paths with entropy injection and 
changelog pre-commit compaction is enabled, reading the compacted changelog 
fails with a file-not-found error.
   
   `ChangelogCompactTask` writes the compacted changelog real file and its fake 
entries into the same directory as the source changelog file, which under 
entropy injection is a hash directory such as 
`<ext>/.../bucket-0/1001/1001/1001/10011001/`. On read, 
`CompactedChangelogPathResolver.decodePath` rebuilds the real path as 
`<grandparent>/bucket-<bid>/<realName>`, so it points at 
`<ext>/.../bucket-0/1001/1001/1001/bucket-0/<realName>`, a directory that does 
not exist.
   
   ### What doesn't meet your expectations?
   
   The read of the compacted changelog should find the real file. The 
grandparent-plus-bucket rebuild is only correct for in-table layout, where the 
fake entry lives in its own `bucket-<bid2>` directory and the real file lives 
in `bucket-<bid1>`. For external paths the fake entry and the real file are 
siblings in the same directory, so the real path must be resolved next to the 
fake entry.
   
   ### Anything else?
   
   _No response_
   
   ### Are you willing to submit a PR?
   
   - [X] I'm willing to submit a PR!
   


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