liurenjie1024 commented on issue #1314:
URL: https://github.com/apache/iceberg-rust/issues/1314#issuecomment-2892773303

   Hi, sorry for being late for this party, and thanks @tustvold for the 
summary of the discussions.
   
   > 1. Should implementations pass around Arc<dyn FileIO or something else - 
https://github.com/apache/iceberg-rust/issues/172#issuecomment-2473145048 
https://github.com/apache/iceberg-rust/issues/172#issuecomment-2473675530
   
   While we could abstract out underlying implementation using different 
providers/implemtations, I still recommend wrapping it in a struct when passing 
around in the crate. This helps to eliminate limitations of object safety in 
rust.
   
   > 2. How important is preserving compatibility with iceberg-java - 
https://github.com/apache/iceberg-rust/issues/172#issuecomment-2473277943 
https://github.com/apache/iceberg-rust/issues/172#issuecomment-2474390321
   
   I believe it's important to keep the abstractions/functionality required by 
java api, such as InputFile/OutputFile/delete, as these are required by other 
components. But it doesn't have be exactly same as, and should be idiomatic for 
rust developers.
   
   > 3. Can we make breaking changes to iceberg-rust - 
https://github.com/apache/iceberg-rust/issues/172#issuecomment-2481267603
   
   I think it's fine to make breaking changes if we can't avoid.
   
   
   > 4. How should the interface differ from ObjectStore - 
https://github.com/apache/iceberg-rust/issues/172#issuecomment-2473365948
   
   The reason we should keep `FileIO` trait rather than using `ObjectStore` 
trait directly is that we need to keep consistent as much as java 
implementation(reference implementation). For example, java's `FileIO` has 
following extensions recently:
   
   
https://github.com/apache/iceberg/blob/f06c4f7dfc98cc944a0e1d3a7b38ade0aaa52ce3/api/src/main/java/org/apache/iceberg/io/SupportsPrefixOperations.java#L25
   
https://github.com/apache/iceberg/blob/f06c4f7dfc98cc944a0e1d3a7b38ade0aaa52ce3/api/src/main/java/org/apache/iceberg/io/SupportsBulkOperations.java#L21
   
https://github.com/apache/iceberg/blob/50d310aef17908f03f595d520cd751527483752a/api/src/main/java/org/apache/iceberg/encryption/EncryptingFileIO.java#L37
   
https://github.com/apache/iceberg/blob/e9364faabcc67eef6c61af2ecdf7bcf9a3fef602/api/src/main/java/org/apache/iceberg/io/SupportsRecoveryOperations.java#L27
   
https://github.com/apache/iceberg/blob/817dc35a924b403716d2eb899aba46f3398a5ca9/core/src/main/java/org/apache/iceberg/io/SupportsStorageCredentials.java#L27
   
   I believe keeping a `FileIO` trait rather than using `object_store` would 
make evolving easier.
   
   


-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to