update DiskcachedOperation's logic

- add `DiskcachedOperationState`
- set object, operation has duplicate key then cancel