Details
-
Bug
-
Resolution: Won't Fix
-
Critical
-
4.0.0
-
Security Level: Public
-
Untriaged
-
No
Description
Can be seen in all Sherlock builds.
Scenario
--------
1. C1 —> C2
2. Load 100 keys on C1.default (size: 256bytes)
3. C2 —> C1
4. Delete 20 keys from C1.default
Now I would expect that C2 does getMeta() on all 100 keys before deciding to send set/del_with_meta()s back to C2. ep_num_ops_del_meta_res_fail and ep_num_ops_set_meta_res_fail on C1 must be 0
On the contrary this is what I see.
All these stats correspond to what operation the cluster receives.
C1:
ep_num_ops_del_meta: 0
ep_num_ops_del_meta_res_fail: 20 (an indication that docs were sent over)
ep_num_ops_get_meta: 80
ep_num_ops_get_meta_on_set_meta: 0
ep_num_ops_set_meta: 0
ep_num_ops_set_meta_res_fail: 0
C2:
ep_num_ops_set_meta: 100
ep_num_ops_set_meta_res_fail: 0
ep_num_ops_get_meta: 100
ep_num_ops_get_meta_on_set_meta: 0
ep_num_ops_del_meta: 20
ep_num_ops_del_meta_res_fail: 0
Per Xiaomei:
" From my understanding, this ep_engine stats only reflects successful getMeta calls. since 20 deleted docs are not in C1, so ep_engine would return ENOENT, which isn’t considered as successful. Our logic is sending the documents if getMeta doesn’t return SUCCESS, doesn’t take operation (delete or set) into the account. I think we should."
Pls let me know if you need logs.