djouallah commented on PR #3361:
URL: https://github.com/apache/iceberg-python/pull/3361#issuecomment-6072278482

   We're running this in production now: a build of `4adf237` in the daily 
maintenance of 25 Iceberg tables written by DuckDB to the OneLake (Microsoft 
Fabric) Iceberg REST catalog, right after `expire_snapshots`. The first pass 
deleted 14,563 orphan files (~11.5 GB), with no failed deletes. Our tests 
passed afterwards, and the next pass found only a handful of files that had 
just crossed the 3-day line. Thank you!
   
   A few notes from running it on ADLS:
   
   1. **The fsspec listing drops the ADLS account.** adlfs lists 
`abfss://<container>/...` while the metadata references 
`abfss://<container>@<account-host>/...`. As a result, every table hit the 
prefix-mismatch `ValidationException`. The default `ERROR` mode did exactly the 
right thing there. We worked around it with `equal_authorities({container: 
f"{container}@{host}"})`. #3974's `list_prefix` already puts the netloc back 
for `_ADLS_SCHEMES`, so rebasing this PR on #3974 instead of carrying its own 
copy would fix it. An ADLS case in the tests would catch it.
   2. **`compare_to_file_list` skips the hidden-path filter.** It returns 
before `_is_hidden`, so an inventory that includes `_delta_log/` or `.crc` 
files would delete them. It also reports a size of 0 for every file, so 
`total_bytes` is wrong on that path.
   3. **Deletes run one call per file.** 6,995 files took about 7 minutes on 
ADLS. A bulk path would help a lot when there is a backlog, for example 
`fs.rm(list)` in fsspec, the counterpart of Java's `SupportsBulkOperations`.
   
   Happy to test a new revision against the same tables.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to