Опция: "Заменять старые файлы - Только при их различии"
Модератор: Tolik
-
rsuan
- Соображающий
- Сообщения: 71
- Зарегистрирован: 18 июн 2011, 17:46
- Благодарил (а): 35 раз
- Поблагодарили: 2 раза
"Заменять старые файлы - Только при их различии"
Если в Операциях с выделенной областью - Загрузить - Заменять старые файлы - отметить опцию Только при их различии, то чтобы узнать, различается ли тайл из инета с тайлом на компе, программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
В теории можно предположить о том, что файл не изменился, если запросить его (файла) размер или дату последней модификации. По идее это приведёт к меньшему трафику, нежели скачивание файла. Но беда в том, что могут быть разные файлы с одинаковым размером, а дату последнего изменения сервер не обязан отправлять.rsuan писал(а):программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?
Кроме того, для некоторых сервисов (например, wiki) в принципе 2 подряд запроса одного тайла исполняются так, так будто файл изменился. Особенность такая.
Также у этого режима скачки (заменять только изменившееся тайлы) есть один огромный косяк, но формально всё корректно, просто особенность программы не позволяет сделать то, что по идее кажется наиболее логичным. Суть вот в чём. Если программа считает, что файлы не меняются, то она не обновляет дату и время последнего изменения файла в кэше. В результате этого если после выкачивания только изменившихся тайлов запустить выкачивание всех, но только модифицированных до некоторой даты, она опять потащит с сервера те же самые тайлы, которые она тащила на предыдущем этапе (с проверкой изменения файла). Хотя по сути программаиспользует дату последнего изменения файла как дату синхронизации файла на сервере и файла в локальном кэше, и если программа убедилась в идентичности файлов, сооответственно дата должна обновляться и в режиме скачки только изменившихся для тех, которые не изменились.
Посему поразмыслив, я вообще перестал пользоваться этим признаком (скачки только изменившихся) при плановом скачивании площадей.
-
rsuan
- Соображающий
- Сообщения: 71
- Зарегистрирован: 18 июн 2011, 17:46
- Благодарил (а): 35 раз
- Поблагодарили: 2 раза
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
Вроде бы где-то читал, что если файл изменился, то 99% что и его размер тоже изменится.vasketsov писал(а):беда в том, что могут быть разные файлы с одинаковым размером
А размер? Если обязан, то этого признака было бы достаточно.vasketsov писал(а):дату последнего изменения сервер не обязан отправлять
И всё-таки, какие признаки программа запрашивает с сервера для определения изменившегося тайла, дату-время или размер файла, или то и другое?
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
Дело в том, что в теории (RFC) для этого используется GET/If-Modified-Since.rsuan писал(а):А размер? Если обязан, то этого признака было бы достаточно
Насколько я знаю, sas это не использует.
А всё остальное - костыли разного качества.
Ну например запросит sas размер и дату через HEAD, решит что надо обновиться - а потом это же будет получать в GET. Не оптимально.
-
Tolik
- Гуру
- Сообщения: 2604
- Зарегистрирован: 28 янв 2011, 10:38
- Благодарил (а): 283 раза
- Поблагодарили: 587 раз
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
Чтобы ответить на вопрос, как работает программа, не надо придумывать, как она могла бы работать. Надо запустить wireshark и посмотреть.
Я запустил и вижу: SAS просто скачивает все тайлы, потом решает, изменились ли они.
Вероятно, решает, только сравнивая размер - об этом говорит сообщение в окне скачки.
Я запустил и вижу: SAS просто скачивает все тайлы, потом решает, изменились ли они.
Вероятно, решает, только сравнивая размер - об этом говорит сообщение в окне скачки.
-
rsuan
- Соображающий
- Сообщения: 71
- Зарегистрирован: 18 июн 2011, 17:46
- Благодарил (а): 35 раз
- Поблагодарили: 2 раза
Опция: "Заменять старые файлы - Только при их различии"
rsuan писал(а):Если в Операциях с выделенной областью - Загрузить - Заменять старые файлы - отметить опцию Только при их различии, то чтобы узнать, различается ли тайл из инета с тайлом на компе, программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?
Программа сообщает: "Данный файл равен по размеру существующему, пропускаем загрузку." Судя по этому сообщению, программа сначала сравнивает размер, а потом решает, загружать тайл или нет. А иначе, если она уже скачала тайл и потом сравнивает размер, то какая разница, заменит она уже существующий тайл, или нет, всё равно тайл останется таким же. Вышеназванное сообщение уже не будет иметь смысла, и вообще опция "только при их различии" (в окне Загрузить) тогда теряет смысл. Хотелось бы комментарий автора программы по этому поводу, он-то уж точно знает, как его программа действует :)Tolik писал(а):SAS просто скачивает все тайлы, потом решает, изменились ли они.
Вероятно, решает, только сравнивая размер - об этом говорит сообщение в окне скачки.
-
Tolik
- Гуру
- Сообщения: 2604
- Зарегистрирован: 28 янв 2011, 10:38
- Благодарил (а): 283 раза
- Поблагодарили: 587 раз
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
И каким образом она сравнивает размер?rsuan писал(а):программа сначала сравнивает размер, а потом решает, загружать тайл или нет. А иначе, если она уже скачала тайл и потом сравнивает размер, то какая разница, заменит она уже существующий тайл, или нет, всё равно тайл останется таким же.
Повторяю: включите wireshark и посмотрите.
А разница, наверно, в том, что дата файла не изменится.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
Это уже миллион раз обсуждалось.rsuan писал(а):Хотелось бы комментарий автора программы по этому поводу, он-то уж точно знает, как его программа действует
Программа скачивает тайл, при совпадении размеров с имеющимся в кэше и соответствующей галочке - перезапись в кэш не происходит, засим всё.
Без факта скачки [на некоторых серверах, не отдающих Content-Length] нет никакой возможности узнать, изменился тайл или нет.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


-
rsuan
- Соображающий
- Сообщения: 71
- Зарегистрирован: 18 июн 2011, 17:46
- Благодарил (а): 35 раз
- Поблагодарили: 2 раза
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
Хорошо, тайл скачивается в любом случае. Почему тогда в сообщении написано "пропускаем загрузку"? Тогда уж правильнее "пропускаем замену". И какой тогда смысл в опции "только при их различии"? Тайл скачивается, если различается, то заменяется. При отключенной опции тоже скачивается и заменяется. Если тайл не различается, то что при включенной опции, что при выключенной, результат тоже одинаковый - тайл скачивается, а от замены или не замены результат не меняется.
Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ
Запрашивается тайл. В момент начала скачки тайла, определятся его размер, если размер совпадает с уже существующим, то закачка тайла прерывается, если он еще не скачался. Если он уже скачался, то и прерывать нечего.