mercurial-server 如何处理请求

mercurial-server 如何处理请求

背景

我目前正在使用 LShift 的mercurial 服务器托管一些 mercurial 存储库。看起来存储库的数量和大小预计会大幅增长。

为了解决这个问题,我计划将存储库托管在与托管 mercurial-server 应用程序的机器分开的文件服务器集群上。

问题

我最关心的是 mercurial-server 应用程序如何处理来自客户端的请求?以“hg clone ssh://hg@server/repo”这样的请求为例。我知道它会验证密钥并确保用户有权克隆该存储库,但它会处理请求的隧道还是将其分流到文件服务器?

基本上,mercurial-server 机器是否需要传输 GB 数据的容量或仅需要足够的容量来解析请求?

编辑

嗨,Paul,我意识到我的请求不是很清楚,所以我想再试一次。我真的很想知道当存储库在物理上分开时,mercurial-server 将如何工作。mercurial-server 是否需要处理流经它的实际存储库的带宽?

初始请求:

要求

潜在实施方案1

文件通过 mercurial-server 传递:

回应1

潜在实施方案2

文件直接发送给请求者(不使用 mercurial-server 带宽):

响应2

答案1

好的,所以将 mercurial 服务器主机连接到文件服务器主机的协议是 Mercurial 本身。在这种情况下,该主机将需要大量带宽和大量存储空间。

您的问题实际上与 mercurial-server 无关 - 这与您在没有 mercurial 的情况下通过 ssh 使用 Mercurial 时的情况完全相同。恐怕我要在这里停下来了 - 我现在没有太多时间 - 我希望您能够找到解决问题的方法!

答案2

mercurial-server 主机如何与文件服务器通信?通过 NFS 还是其他远程文件系统协议?

mercurial-server 希望存储库目录看起来像一个文件系统,并且(通过 Mercurial)使用普通的文件系统操作来读取和写入它们,但它并不关心它是否是一个真正的本地磁盘或例如 NFS 挂载。

相关内容