> >> My naïve patch looks like this (can be optimized further): > > >IIUC, your patch does not handle write requests because write > >journaling is not implemented yet, yes? I think it is not easy to > >implement journaling across nodes. Do you have any ideas to implement > >it simply? > > The idea is to simply discard those write request. We can do that, because > there is at least one node which has data locally, and that node applies all > writes (we sync data from that node later). > > The only problem is a race condition, because gateway node does not update > all copies at the same time. But we can solve that by other means. After review the patch, I can see that we can't simple return SD_RES_OBJ_RECOVERING, because the gateway would retry the request (which is not needed). Instead, we should return SUCCESS when oid_in_recovery() but object is not recovered yet (or something similar, so that gateway does not retry request). |