我有一个关于红锁算法效率的设计问题。
让我们看一下获取锁需要执行的两个步骤:
客户端尝试按顺序锁定所有节点
如果客户端未成功锁定至少n/2+1个节点,则获取锁定的尝试已失败,它将解锁以前锁定的所有节点。
如果我们假设一个客户端至少不能锁定n/2个节点,这意味着不能再锁定n/2+1个节点了
这是否意味着客户机可以提前失败,即不需要在获取n/2个节点失败后请求所有节点?这可以大大加快进程,因为它减少了客户端需要执行的锁定和解锁请求的数量。
我不明白为什么需要尝试锁定所有节点,即使无法再实现锁定n/2+1的要求。这背后有什么道理吗?
暂无答案!
目前还没有任何答案,快来回答吧!