【问题标题】:How to understand the path to obtain data in a distributed environment如何理解分布式环境下获取数据的路径
【发布时间】:2022-11-15 18:41:38
【问题描述】:
这个问题可能非常基础。在使用别人的框架时,发现它会使用NFS技术共享指定的文件夹,然后再进行分布式计算。例如,该文件夹中有两部分 part1 和 part2。那么如果我的机器1读取part1,机器2读取part2,如果机器1要获取part2的内容,那么应该直接向机器2发起请求,还是直接读取本地的part2文件呢?在我的理解中,NFS可以同步每台机器对应的文件夹下,文件会存放在每台机器上,而不是指向某台机器对应位置的链接。 (不知道这个理解对不对)
【问题讨论】:
标签:
distribution
distributed-computing
【解决方案1】:
NFS 使文件在网络上可用。使用您的示例,如果机器 1 和机器 2 是 NFS 服务器的客户端,则它们在尝试检索数据时不会相互引用。因此,当机器 1 需要“part2”时,它将向 NFS 服务器而不是机器 2 发出请求(尽管“part2”已读取“part2”)。
这样做的原因是 NFS 服务器上存在的“part2”版本可能在机器 2 读取“part2”之间的时间发生了变化,从而使机器 2 的“part2”副本已过时。通过向 NFS 服务器发出所有请求,客户端可以确保他们在任何给定时间获得最新版本的文件。
您描述的行为更类似于 BitTorrent (https://en.wikipedia.org/wiki/BitTorrent) 的行为。 BitTorrent 通过不允许文件更改和分发文件的哈希值来解决过时文件问题。了解这一点后,您的 Torrent 客户端可以向“群”中的任何人请求文件夹或文件的部分内容,并独立验证您收到的部分内容是否正确。