Задний план
Сейчас я использую LShift Меркуриальный сервер разместить несколько ртутных репозиториев. Похоже, что количество репозиториев, а также их размер, как ожидается, значительно вырастут.
Чтобы бороться с этим, я планирую разместить репозитории в кластере файловых серверов отдельно от машины, на которой размещено приложение mercurial-server.
Вопрос
Меня больше всего беспокоит то, как приложение mercurial-server обрабатывает запросы от клиентов? Возьмем запрос типа «hg clone ssh: // hg @ server / repo». Я знаю, что он проверяет ключ и гарантирует, что пользователю разрешено клонировать это репо, но обрабатывает ли он туннелирование запроса или перенаправляет его на файловый сервер?
В принципе, нужна ли машине с ртутным сервером емкость для передачи гигабайт данных или достаточно емкости для анализа запросов?
редактировать
Привет, Пол, я понимаю, что моя просьба была непонятной, поэтому делаю еще одну попытку. Я действительно хочу знать, как будет работать mercurial-server, когда репозитории физически разделены. Будет ли mercurial-server обрабатывать пропускную способность фактических репозиториев, проходящих через него?
Первоначальный запрос:
Возможная реализация 1
Файл передается через mercurial-server:
Возможная реализация 2
Файл отправляется напрямую запрашивающей стороне (без использования пропускной способности сервера):
Итак, протокол, соединяющий хост mercurial-server с хостами файлового сервера, - это сам Mercurial. В этом случае этому хосту потребуется как большая пропускная способность, так и много места для хранения.
Ваш вопрос на самом деле не имеет отношения к mercurial-server - применяются точно такие же соображения, как если бы вы просто использовали Mercurial поверх ssh без него. Боюсь, что на этом я остановлюсь - у меня сейчас не так много времени - надеюсь, вы сможете найти решение своей проблемы!
Как хост mercurial-server будет общаться с файловыми серверами? Через NFS или какой-либо другой протокол удаленной файловой системы?
mercurial-server ожидает, что каталог репозиториев будет выглядеть как файловая система и (через Mercurial) использует обычные операции файловой системы для их чтения и записи, но ему все равно, настоящий ли это локальный диск или, например, монтирование NFS.