• Vincent Pelletier's avatar
    Allow multiple conflict resolutions for a single object and transaction. · fc514154
    Vincent Pelletier authored
    As we don't (and must not, otherwise it would deadlock) take a write lock
    on a storage node when detecting a conflict, it is possible that multiple
    conflicts get successively reported for a single object in a single
    transaction. To solve this, client must tolerate multiple conflict for a
    single object. The last resolved conflict being sent to all storage nodes,
    transaction data will be consistent at tpc_finish.
    
    - conflict_serial_dict and resolved_conflict_serial_dict become
      multivalued (sets instead of scalar)
    - each resolution only resolve conflict with highest serial if greater
      than previous resolutions for the same object
      NOTE: this assumes that ("r" being conflict resolution method, "Tn"
      being the TID on which object is based, and "Cn" being a conflict with
      transaction n) when r(T0, C1) generates T1 but triggers C2,
        r(T0, C1) + r(T1, C2) == r(T0, C2)
    
    git-svn-id: https://svn.erp5.org/repos/neo/trunk@2108 71dcc9de-d417-0410-9af5-da40c76e7ee4
    fc514154
Name
Last commit
Last update
neo Loading commit data...
tools Loading commit data...
README Loading commit data...
TODO Loading commit data...
neo.conf Loading commit data...
neoadmin Loading commit data...
neoctl Loading commit data...
neomaster Loading commit data...
neomigrate Loading commit data...
neostorage Loading commit data...