eabebac6f2
This trim race is (as far as I can tell) fine -- I see no correctness problem with CORFU, on the client side or the server side. However, this race with a trim causes a model problem that I believe can be solved this way: 1. We must keep track of the fact that the page write is happening: someone can notice the write via read-repair or even a regular read by the tail. We do this in basically the way that all other writes are handled in the ValuesR relation. 2. Add new code to client-side writer: if there's a trim race, *and* if we're using PULSE, then return a special error code that says that the write was ok *and* that we raced with trim. 2b. If we aren't using pulse, just return {ok, LPN}. 3. For the transition check property, treat the new return code as if it is a w_tt. Actually, we use a special marker atom, w_special_trimmed for that purpose, but it is later treated the same way that w_tt is by the filter_transition_trimfill_suffixes() filter. |
||
---|---|---|
.. | ||
corfurl |