Обновление файлов больше, чем 1 ГБ? - PullRequest
3 голосов
/ 02 ноября 2010

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

Наше приложение написано на C #, а наш веб-сервер работает на Linux с apache httpd.

Использование новых исправлений xdelta сокращает разницу в размерах между старым и новым файлом, поэтому обновления различаютсяот 10 МБ до 500 МБ, избегая необходимости перезагружать эти 1 ГБ каждый раз, когда мы что-то меняем.

  1. Какие еще есть варианты, которые вы могли бы мне порекомендовать?
  2. Что еще следуетЯ рассматриваю в этом случае?

PS: я действительно в недоумении, если честно, это первое приложение для обновления, которое я сделал, и я действительно не знаю, правильно ли я это делаю.


если возможно, рекомендуем использовать открытые или некоммерческие приложения

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

С минимальным количеством предоставленной информации, я не вижу проблемы с вашим подходом. Если вам нужно пропатчить файл размером 1 ГБ, вам нужно пропатчить файл размером 1 ГБ. Я предполагаю, что это файл данных и, следовательно, должен быть такого размера? Можно ли как-нибудь разбить его на файлы, которые не часто изменяются, чтобы еще больше уменьшить размер вашего патча?

0 голосов
/ 02 марта 2011

Вы можете попробовать bsdiff. Это то же самое, что и xdelta, с несколько другим алгоритмом.

Начало работы под Windows было не таким уж и простым, когда я впервые попробовал (теперь это может измениться, я давно не смотрел), но как только все заработало, все заработало.
Мой пробег заключается в том, что сжатие работает В 10 раз медленнее, чем xdiff (но кого это волнует ...), и генерирует патчи, которые обычно примерно вдвое меньше. Очевидно, ваш пробег будет во многом зависеть от ваших данных, но для меня это большая победа. Если у вас есть свободное время, вы всегда можете попробовать.

Бедственное время сжатия может быть сдерживающим фактором в некоторых ситуациях, но для моей ситуации тот факт, что патчи - половина размера, оправдывает все, мне было бы все равно, если генерация патча будет выполняться в течение всех выходных, если только это уменьшил размер снова.

...