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]