LPS-52223

Shuyang suggested using a ClusterInvokeThreadLocal pattern, which differs from all the previous implementations. For consistency, I changed all the previous implementations to use the same pattern. Let me know if there are any questions.