y2ksayed opened a new issue, #20335:
URL: https://github.com/apache/hudi/issues/20335

   ## Problem
   
   If `.hoodie/hoodie.properties` is corrupted (disk issue, partial write, bad 
manual edit), the entire Hudi table becomes unreadable — every read, write, and 
time-travel query fails because `HoodieTableMetaClient` cannot be built. There 
is currently no supported recovery path; users must restore the file from an 
external backup or rebuild the table from scratch.
   
   The timeline (`.hoodie/*.commit`, `.hoodie/*.deltacommit`, archived 
timeline) still holds the ground truth of the table's history even when the 
properties file is damaged, so recovery should be possible.
   
   ## Proposal
   
   Add a supported, user-invoked recovery path. Options:
   
   1. A repair command/procedure (e.g. `CALL repair_table_properties(...)` or a 
CLI tool) that rebuilds `hoodie.properties` from recoverable sources, or
   2. A read-only "safe mode" that reconstructs the minimal table config needed 
for reads (including time travel) when the properties file is unreadable.
   
   ## Design considerations
   
   Recoverable with high confidence:
   - Table name: from the table base path
   - Table type (COW vs MOR): inferred from file layout (presence of log files 
/ deltacommit instants)
   - Timeline layout version: from the `.hoodie` directory structure
   
   Needs care / explicit user confirmation:
   - Table version: infer from layout, but must never silently downgrade
   - Custom table properties (key generator class, partition fields, etc.): 
partially recoverable from commit metadata and data-file schemas; anything 
unrecoverable must fail loudly rather than guess
   
   Non-goals:
   - Silently guessing write-critical config. Recovery must be explicit 
(user-invoked) and must validate the rebuilt config before persisting it.
   
   ## Motivation
   
   Operational robustness: a single small corrupted file should not mean total 
table loss. This is also a Delta Lake parity gap that matters to teams 
evaluating the two formats.


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