POSIX和Windows的超时NFS安全的文件锁定
项目描述
NFS安全的文件锁定,带超时,适用于POSIX和Windows。
flufl.lock库提供了一个基于文件的锁定算法,该算法受到GNU/Linux open(2) manpage的启发,在描述O_EXCL选项的部分。
[…] 在NFS文件系统上,O_EXCL是损坏的,依赖它的程序将包含竞争条件。执行原子文件锁定使用锁文件的解决方案是在同一fs上创建一个唯一的文件(例如,包含主机名和pid),使用link(2)创建一个指向锁文件的链接。如果link()返回0,则锁定成功。否则,使用stat(2)在唯一文件上检查其链接数是否增加到2,如果是这样,则锁定也成功。
这里假设没有外部干扰,例如,没有在此代码之外执行link()的代理将链接到特定的锁文件。
锁定对象支持解锁功能,防止进程永久卡住。这在网络环境中尤其有用,但可能不适合所有应用程序。
锁有一个生命周期,这是进程期望保持锁的最大时间长度。在这里选择一个合适的数字很重要,因为其他进程将在预期生命周期到期之前不会破坏现有的锁。时间过长会导致其他进程挂起;时间过短则可能导致你踩在现有进程锁上——并可能损坏数据。在分布式(NFS)环境中,你还需要确保你的时钟正确同步。
项目详情
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于 安装软件包 的信息。
源分布
flufl_lock-8.1.0.tar.gz (32.9 kB 查看哈希值)
构建分布
flufl_lock-8.1.0-py3-none-any.whl (11.1 kB 查看哈希值)
关闭
flufl_lock-8.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d88302005692a63d98b60080158faf089be5ecae6969f706409da8276fdce7cb |
|
MD5 | 03489ca6897b84761a610df91a7c2acd |
|
BLAKE2b-256 | a9fa885c58f9716063e2ac099f773d0420f20bb834b19538066a2e0d5b848ba4 |
关闭
flufl_lock-8.1.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01b2153d1b0cc170a26b1413037debbe94af6a1cd23164b3b2b229f766b164f |
|
MD5 | 10b86a5d2e9aca4ad8714c862e32255e |
|
BLAKE2b-256 | 2036e6b26dc9ace9f4fa30f46b3f69182b6f25c07746e0b71caf3cc3c4d78ed2 |