1

У меня есть огромный кусок данных (11G) в хранилище Subversion, которое я использую rsync для миграции на Alfresco, который lucene индексирует новые файлы, когда они попадают в файловую систему. Я использую dav mount в качестве прокси, чтобы позволить мне rsync.

Проблема, с которой я сталкиваюсь, заключается в том, что индексирование post-rsync - довольно дорогая операция для такого огромного куска данных, поэтому мне было интересно, есть ли способ логически разделить rsync на пакеты одинакового размера (скажем, по 500 МБ каждая), так что Я мог бы запланировать их в хрон.

В данный момент я перебираю папки верхнего уровня и сначала перебираю самые маленькие из них, но как только я закончу с ними, гораздо большие подкаталоги будут довольно проблематичными.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Заранее спасибо.

1 ответ1

2

Прежде чем я попробую ответить, ознакомьтесь с экскурсией: VCS довольно хорошо синхронизирует данные между компьютерами. Возможно, лучшим решением было бы оформить репозиторий Subversion для его миграции. Если Subversion по какой-то причине не подходит, взгляните на Git. Git чрезвычайно эффективен, когда дело доходит до синхронизации, потому что он может вычислить разницу один раз. Синхронизация сама по себе немного больше, чем передача минимального объема данных.

Тем не менее, rsync не имеет "предела" (ни по количеству файлов, ни по количеству передаваемых данных).

У вас есть два варианта:

  1. Запустите команду rsync через небольшую конвейерную команду, которая после определенного количества разрывает соединение.

  2. Несколько раз запустите rsync с разными фильтрами (один раз для каждого подкаталога или один раз для всех маленьких файлов, а затем снова для каждого огромного файла)

# 1 имеет очевидный недостаток, заключающийся в том, что он может вызвать копирование большого файла дважды (скажем, у вас был маленький файл + 90% большой файл -> предел попадания -> большой файл передается 1,9 раза)

Недостатком # 2 является то, что фильтр может быть слишком грубым для ваших целей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .