anchor.diff:              ets:delete_object(CacheName, {FileId, old_file_size}),
               ets:insert(CacheName, {{FileId, file_size}, NewSizeTuple}),
               fslogic_events:on_file_size_update(FileId, 0, NewSize);
  -        [{_,{_, OldSize}}] when OldSize =/= NewSize ->
  +        [{_, {_, OldSize}}] when OldSize =/= NewSize ->
               ets:delete_object(CacheName, {FileId, old_file_size}),
               ets:insert(CacheName, {{FileId, file_size}, NewSizeTuple}),
               fslogic_events:on_file_size_update(FileId, OldSize, NewSize);
  
positive.code: 
  get_size_from_cache(CacheName, FileId) ->
      case ets:lookup(CacheName, {FileId, file_size}) of
          [{_,{_, Size}}] -> Size;
          [] -> undefined
      end.
  
  get_docs_from_cache(CacheName, FileId) ->
      case ets:lookup(CacheName, {FileId, all_docs}) of
          [{_,{_, Docs}}] -> Docs;
          [] -> undefined
      end.
  
  
negative.code:     end,
      ets:insert(CacheName, {{FileId, file_size}, NewSize}).
  
  update_docs_cache(CacheName, FileId, Docs) when is_list(Docs) ->
      ets:insert(CacheName, {{FileId, all_docs}, Docs}).
  
  clear_size_cache(CacheName, FileId) ->
      case ets:lookup(CacheName, {FileId, file_size}) of
          [{_, OldSize = {_,_}}] ->
              ets:insert(CacheName, {{FileId, old_file_size}, OldSize}),
              ets:delete_object(CacheName, {FileId, file_size}),
              OldSize;
          [] ->
              ets:delete_object(CacheName, {FileId, old_file_size}),
              ets:delete_object(CacheName, {FileId, file_size}),
              undefined
  