首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么锁在SMB上共享的文件只需3微秒?

问为什么锁在SMB上共享的文件只需3微秒?
EN

Server Fault用户
提问于 2022-07-01 06:47:55
回答 1查看 120关注 0票数 1

我使用以下C++函数锁定服务器通过SMB共享的文件的1字节:

在Windows上:

代码语言:javascript
复制
LockFileEx (h, LOCKFILE_FAIL_IMMEDIATELY | LOCKFILE_EXCLUSIVE_LOCK, 0, 1,0, &overlapped)

在Linux和Mac上:

代码语言:javascript
复制
fcntl (fd, F_SETLK, &flockdesc)

对于本地共享的文件和在SMB上共享的文件,我在3微秒内获得了成功的锁,而对于通过NFS共享的文件,我在26毫秒内成功地锁定了文件。

我无法理解进程如何通过网络在3微秒内获得锁,因为要与服务器通信至少需要几毫秒的时间,在NFS上共享文件的情况下可以观察到这一点。

有人能帮我弄清楚为什么会发生这种事吗?

EN

回答 1

Server Fault用户

发布于 2023-04-17 20:54:00

之所以发生这种情况,是因为Windows使用oplocks锁定-> https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/oplock-overview

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1104556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档