Algorithm 用于简单键值存储的互斥算法

Algorithm 用于简单键值存储的互斥算法,algorithm,locking,mutex,key-value-store,Algorithm,Locking,Mutex,Key Value Store,是否有一种算法允许使用仅支持set()和get()操作加上当前时间检查的键值存储来实现可靠的互斥 一些服务API在内存中只提供简单的set(key,value)和get(key)方法。我了解到Redis有一个非常好的分布式锁,它依赖于插入时的NX“不存在”标志。此服务没有该功能-它将始终设置 还有一个实用程序可以以秒的精度获取当前服务器的时间。可以创建在服务器上运行的简单存储过程,所以可以忽略网络延迟 我在考虑推迟实施: 获取密钥以查看它是否存在(或是否存在并包含“free”值) 将密钥设置为当

是否有一种算法允许使用仅支持
set()
get()
操作加上当前时间检查的键值存储来实现可靠的互斥

一些服务API在内存中只提供简单的
set(key,value)
get(key)
方法。我了解到Redis有一个非常好的分布式锁,它依赖于插入时的
NX
“不存在”标志。此服务没有该功能-它将始终设置

还有一个实用程序可以以秒的精度获取当前服务器的时间。可以创建在服务器上运行的简单存储过程,所以可以忽略网络延迟

我在考虑推迟实施:

  • 获取密钥以查看它是否存在(或是否存在并包含“free”值)
  • 将密钥设置为当前时间戳+客户端ID
  • 等待1-2秒
  • 获取密钥以验证它仍然具有此客户端ID和1-2秒前的时间戳 只有考虑到所获得的锁。如果α1或4失败,则考虑其他客户端锁定。
  • 有这样一个著名的算法吗