liurenjie1024 commented on issue #1382: URL: https://github.com/apache/iceberg-rust/issues/1382#issuecomment-2939457814
> > Using a lock doesn't mean it can't do optimistic concurrency control > > [@liurenjie1024](https://github.com/liurenjie1024) I don't think it makes sense for multiple MemoryCatalogs to be working on the same table. If thats the case, then all updates to a given table should be serialized by the lock in the MemoryCatalog, so there should be no need to retry because the table metadata cannot have changed after the requirements have been checked once under the lock. Hi, @hsingh574 What do you mean by multiple MemoryCatalogs to be working on the same table? Concurrency control is used detect conflicts on same table in same catalog. Here is the case which may happen concurrently: ``` -- thread 1 let table = catalog.load_table("a.b"); //do updates to table catalog.update_table(); ``` ``` ---thread 2 let table = catalog.load_table("a.b"); // do updates to table catalog.update_table(); ``` Here if thread 1 and thread 2 load table with same version, the a conflict may happen, and we need conflict detection. -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org