Docker for Mac 当使用 :cached 绑定挂载时,延迟是在主机上还是在容器上?
With Docker for Mac when using :cached bind mounts, are the delays on the host or the container?
The osxfs caching page,第 delegated
节内容为:
For directories mounted with delegated
the container’s view of the file system is authoritative, and writes performed by containers may not be immediately reflected on the host file system.
第 cached
部分内容如下:
For directories mounted with cached
, the host’s view of the file system is authoritative; writes performed by containers are immediately visible to the host, but there may be a delay before writes performed on the host are visible within containers.
我不清楚。如果,使用 cached
,主机对系统的看法是权威的,那不就意味着如果主机上发生了什么变化,它会立即反映到容器中吗?为什么延迟在"authoritative"这边?
在:cached
模式下,文件属性和文件内容的读取由具有较长生命周期的容器缓存。当主机上的内容发生变化时,缓存失效消息会立即发送到容器以使缓存条目过期——这很快但不是即时的。文档正在谈论这种延迟。
权威数据源始终提供规范的最新数据。每当出现数据损坏时,我们都信任权威数据源。
DNS 协议就是一个很好的例子:
- 您的电脑缓存了一个域名解析。
- 中间名称服务器缓存从其权威名称服务器检索到的该域名的 DNS 记录。
- 名称服务器 A 保留此域名的规范记录。
这就是为什么我们称Nameserver A为该域的权威域名服务器。更新名称服务器 A 中的记录时,您的计算机可能需要数小时才能看到更改。
回到你的问题。 cached
这个名字已经告诉我们它提供了什么。它为我们提供了相对更好的读取性能,但代价是数据不一致。
The osxfs caching page,第 delegated
节内容为:
For directories mounted with
delegated
the container’s view of the file system is authoritative, and writes performed by containers may not be immediately reflected on the host file system.
第 cached
部分内容如下:
For directories mounted with
cached
, the host’s view of the file system is authoritative; writes performed by containers are immediately visible to the host, but there may be a delay before writes performed on the host are visible within containers.
我不清楚。如果,使用 cached
,主机对系统的看法是权威的,那不就意味着如果主机上发生了什么变化,它会立即反映到容器中吗?为什么延迟在"authoritative"这边?
在:cached
模式下,文件属性和文件内容的读取由具有较长生命周期的容器缓存。当主机上的内容发生变化时,缓存失效消息会立即发送到容器以使缓存条目过期——这很快但不是即时的。文档正在谈论这种延迟。
权威数据源始终提供规范的最新数据。每当出现数据损坏时,我们都信任权威数据源。
DNS 协议就是一个很好的例子:
- 您的电脑缓存了一个域名解析。
- 中间名称服务器缓存从其权威名称服务器检索到的该域名的 DNS 记录。
- 名称服务器 A 保留此域名的规范记录。
这就是为什么我们称Nameserver A为该域的权威域名服务器。更新名称服务器 A 中的记录时,您的计算机可能需要数小时才能看到更改。
回到你的问题。 cached
这个名字已经告诉我们它提供了什么。它为我们提供了相对更好的读取性能,但代价是数据不一致。