When is ViewMutationStage ever used? I am trying to have a test that will result in tasks getting executed in this stage to verify metrics for ViewMutuationStage.
I been going through the code and see in StorageProxy::mutateMV it will call: asyncWriteBatchedMutations(wrappers, localDataCenter, Stage.VIEW_MUTATION); if the MV endpoint is not this endpoint. This ends up leading to call to StorageProxy::sendToHintedReplicas But it will only use that stage if performing locally. I haven't come up with situation where its ever going to perform locally here. So I never get a single task on ViewMutationStage as it will send messages with verb MUTATION_REQ that are handled on MutationStage. Considering local MV mutations are executed on MUTATION stage and anything non local in sendToHintedReplicas also will end up on MUTATION stage, what is the purpose of this ViewMutationStage ? Even if it got to execute something on that stage its very specific conditions. Seems like this stage should be removed.. or everything in StorageProxy::mutateMV should be using the stage as the name implies.