yuqi1129 opened a new issue, #13179: URL: https://github.com/apache/gravitino/issues/13179
### Describe the subtask Fileset drop is already row-first (`store.deleteAndGet` wins the CAS, then storage is removed inside the transaction). What is left: create runs `mkdirs` before the store decision, so a losing create leaves a directory; a multi-location delete is not atomic, so a rollback after a partial delete restores a live row over half-missing data; a crash after physical deletion leaves the same gap; and slow I/O holds a pooled connection inside the transaction. Proposed change: - Add a `state` column to `fileset_meta`: create inserts `CREATING`, does the storage work, then CAS to `ACTIVE`; drop CAS to `DELETING`, deletes storage idempotently, then soft-deletes. - A background pass finishes `DELETING` rows and removes `CREATING` rows older than a grace period. - Document that physical data already deleted cannot be restored by metadata rollback. Design: implementation design Part 4 (S2). Gate G4. ### Parent issue https://github.com/apache/gravitino/issues/10238 -- 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]
