plusplusjiajia opened a new pull request, #9034:
URL: https://github.com/apache/paimon/pull/9034

     ### Purpose
   
     Three `FileIO` wrappers delegate every primitive to an underlying FileIO, 
but not
     `tryToWriteAtomic`. Callers therefore run the interface default — write a 
temp file, then
     `rename` — even when the underlying FileIO overrides the method with 
something genuinely atomic:
     `OSSFileIO` implements it as a server-side conditional put 
(`x-oss-forbid-overwrite`), and OSS
     rename is copy-and-delete, so the default is a non-atomic check-then-act 
there.
   
     The wrappers, each dropped into real deployments by configuration:
   
     - `RESTTokenFileIO` — every REST-catalog table's data FileIO;
     - `CachingFileIO` — wraps the above when `local-cache.enabled=true`;
     - `ResolvingFileIO` — when `resolving-file-io.enabled=true`.
   
     Every atomicity-sensitive caller is affected wherever one of these sits on 
top of such a store:
     `RenamingSnapshotCommit` (snapshot commit), `SchemaManager` (schema file 
commit), and
     `IcebergCommitCallback` (Iceberg-compatible metadata publication).
   
     The fourth wrapper, `PluginFileIO`, already delegates this method; this 
brings the remaining
     three in line, each following its class's existing delegation shape.


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