tanmayrauth commented on issue #2339:
URL: https://github.com/apache/iceberg-go/issues/2339#issuecomment-6475120235

   I'm +1 on the direction. One thing I think the design has to cover 
explicitly:                                                                     
                                                                                
                                                                                
       
                                                                                
                                                                                
                                                                                
                                                                               
     PostCommit has to see the replanned update. Transaction.Commit runs 
PostCommit over the staged meta.updates with t.tbl as preTable. The rebuilt 
updates never leave doCommit. removeSnapshotsUpdate.PostCommit deletes each 
listed snapshot's manifest list without checking it against postTable; only 
data and stats  files get that check. Today the pins keep staged and committed 
IDs identical, so this is safe. With replanning, if a peer's branch makes us 
keep snapshot S, a stale PostCommit deletes S's manifest list while S is still 
live. I think doCommit needs to return the final updates and the metadata they 
were planned  against, and PostCommit should run on those, as Java's cleanup 
does with the base it re-reads in internalApply.                                
                                                                                
                                                                                
           
                                                                                
                                                                                
                                                                                
                                                                               
     To confirm: the rebuild hook would also regenerate the expiry's 
AssertRefSnapshotID requirements, right? Non-commit-branch assertions are 
validated as-is after a refresh, so dropping the pins alone wouldn't let a 
moved branch through.                                                           
                     
                                                                                
                                                                                
                                                                                
                                                                               
     @laskoviymishka @zeroshade, any thoughts on the approach?


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