yuqi1129 commented on issue #11027:
URL: https://github.com/apache/gravitino/issues/11027#issuecomment-4439129049

   > Proposed fix: Override loadTable() in LanceTableOperations to implement a 
self-healing mechanism: when lance.create-empty=true is detected, read the 
actual schema from the Lance dataset on S3, update the Gravitino entity store 
with the
   correct columns, and clear the lance.create-empty flag. This is a one-time 
self-heal — subsequent loadTable() calls return the correct metadata via the 
normal path.
   
   This may be a workaround for this problem, and I believe this is the design 
flaw of lance-spark and the lance namespace spec
   - I do not see any deletion operations when `createEmpty` succeeds, and 
creating a real Lance table fails. In such a case, the orphan table will remain 
in the Gravitino table.
   - The Lance Spark and Lance namespace spec does not design a metadata 
write-back mechanism to make sure the schema in the namespace implementation 
and the Lance location are consistent. 
   
   In all, we may try to optimize the API design of Lance space and 
Lance-spark. If this can't be achieved in a short time, the workaround is also 
acceptable for me. 
   @FANNG1 do you have any thought on it? 


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