use consistent hash