anchor.diff:  %% disk are modified.
   -ifdef(TEST).
   %% Use values so that test compile doesn't give 'unused vars' warning.
  --define(INDEX(A,B,C), _=element(1,{A,B,C}), ok).
  +-define(INDEX(A,B,C), _=element(1,{{_A1, _A2} = A,B,C}), ok).
   -define(INDEX_BIN(A,B,C,D,E), _=element(1,{A,B,C,D,E}), ok).
   -define(IS_SEARCH_ENABLED_FOR_BUCKET(BProps), _=element(1, {BProps}), false).
   -else.
  --define(INDEX(Obj, Reason, Partition), yz_kv:index(Obj, Reason, Partition)).
  +-define(INDEX(Objects, Reason, Partition), yz_kv:index(Objects, Reason, Partition)).
   -define(INDEX_BIN(Bucket, Key, Obj, Reason, Partition), yz_kv:index_binary(Bucket, Key, Obj, Reason, Partition)).
   -define(IS_SEARCH_ENABLED_FOR_BUCKET(BProps), yz_kv:is_search_enabled_for_bucket(BProps)).
   -endif.
  
positive.code:     %% old object to know how the indexes have changed.
      IndexBackend = is_indexed_backend(Mod, Bucket, ModState),
      IsSearchable = ?IS_SEARCH_ENABLED_FOR_BUCKET(BProps),
      RequiresReadBeforeWrite = LWW andalso (not IndexBackend) andalso (not IsSearchable),
      case RequiresReadBeforeWrite of
          true ->
              prepare_blind_put(Coord, RObj, VId, StartTime, PutArgs, State);
          false ->
  
negative.code:                             update_hashtree(Bucket, Key, AMObj, StateData),
                              update_index_write_stats(IndexBackend, IndexSpecs),
                              update_vnode_stats(vnode_put, Idx, StartTS),
                              ?INDEX({AMObj, OldObj}, handoff, Idx),
                              InnerRes;
                          {InnerRes, _EncodedVal} ->
                              InnerRes
  