Опция: "Заменять старые файлы - Только при их различии"

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

rsuan
Соображающий
Сообщения: 71
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 35 раз
Поблагодарили: 2 раза

"Заменять старые файлы - Только при их различии"

Сообщение rsuan »

Если в Операциях с выделенной областью - Загрузить - Заменять старые файлы - отметить опцию Только при их различии, то чтобы узнать, различается ли тайл из инета с тайлом на компе, программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?
vasketsov
Специалист
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Поблагодарили: 193 раза

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение vasketsov »

rsuan писал(а):программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?

В теории можно предположить о том, что файл не изменился, если запросить его (файла) размер или дату последней модификации. По идее это приведёт к меньшему трафику, нежели скачивание файла. Но беда в том, что могут быть разные файлы с одинаковым размером, а дату последнего изменения сервер не обязан отправлять.
Кроме того, для некоторых сервисов (например, wiki) в принципе 2 подряд запроса одного тайла исполняются так, так будто файл изменился. Особенность такая.
Также у этого режима скачки (заменять только изменившееся тайлы) есть один огромный косяк, но формально всё корректно, просто особенность программы не позволяет сделать то, что по идее кажется наиболее логичным. Суть вот в чём. Если программа считает, что файлы не меняются, то она не обновляет дату и время последнего изменения файла в кэше. В результате этого если после выкачивания только изменившихся тайлов запустить выкачивание всех, но только модифицированных до некоторой даты, она опять потащит с сервера те же самые тайлы, которые она тащила на предыдущем этапе (с проверкой изменения файла). Хотя по сути программаиспользует дату последнего изменения файла как дату синхронизации файла на сервере и файла в локальном кэше, и если программа убедилась в идентичности файлов, сооответственно дата должна обновляться и в режиме скачки только изменившихся для тех, которые не изменились.
Посему поразмыслив, я вообще перестал пользоваться этим признаком (скачки только изменившихся) при плановом скачивании площадей.
rsuan
Соображающий
Сообщения: 71
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 35 раз
Поблагодарили: 2 раза

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение rsuan »

vasketsov писал(а):беда в том, что могут быть разные файлы с одинаковым размером

Вроде бы где-то читал, что если файл изменился, то 99% что и его размер тоже изменится.
vasketsov писал(а):дату последнего изменения сервер не обязан отправлять

А размер? Если обязан, то этого признака было бы достаточно.
И всё-таки, какие признаки программа запрашивает с сервера для определения изменившегося тайла, дату-время или размер файла, или то и другое?
vasketsov
Специалист
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Поблагодарили: 193 раза

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение vasketsov »

rsuan писал(а):А размер? Если обязан, то этого признака было бы достаточно

Дело в том, что в теории (RFC) для этого используется GET/If-Modified-Since.
Насколько я знаю, sas это не использует.
А всё остальное - костыли разного качества.
Ну например запросит sas размер и дату через HEAD, решит что надо обновиться - а потом это же будет получать в GET. Не оптимально.
Tolik
Гуру
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 283 раза
Поблагодарили: 587 раз

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Tolik »

Чтобы ответить на вопрос, как работает программа, не надо придумывать, как она могла бы работать. Надо запустить wireshark и посмотреть.

Я запустил и вижу: SAS просто скачивает все тайлы, потом решает, изменились ли они.
Вероятно, решает, только сравнивая размер - об этом говорит сообщение в окне скачки.
rsuan
Соображающий
Сообщения: 71
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 35 раз
Поблагодарили: 2 раза

Опция: "Заменять старые файлы - Только при их различии"

Сообщение rsuan »

rsuan писал(а):Если в Операциях с выделенной областью - Загрузить - Заменять старые файлы - отметить опцию Только при их различии, то чтобы узнать, различается ли тайл из инета с тайлом на компе, программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?

Tolik писал(а):SAS просто скачивает все тайлы, потом решает, изменились ли они.
Вероятно, решает, только сравнивая размер - об этом говорит сообщение в окне скачки.

Программа сообщает: "Данный файл равен по размеру существующему, пропускаем загрузку." Судя по этому сообщению, программа сначала сравнивает размер, а потом решает, загружать тайл или нет. А иначе, если она уже скачала тайл и потом сравнивает размер, то какая разница, заменит она уже существующий тайл, или нет, всё равно тайл останется таким же. Вышеназванное сообщение уже не будет иметь смысла, и вообще опция "только при их различии" (в окне Загрузить) тогда теряет смысл. Хотелось бы комментарий автора программы по этому поводу, он-то уж точно знает, как его программа действует :)
Tolik
Гуру
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 283 раза
Поблагодарили: 587 раз

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Tolik »

rsuan писал(а):программа сначала сравнивает размер, а потом решает, загружать тайл или нет. А иначе, если она уже скачала тайл и потом сравнивает размер, то какая разница, заменит она уже существующий тайл, или нет, всё равно тайл останется таким же.

И каким образом она сравнивает размер?

Повторяю: включите wireshark и посмотрите.

А разница, наверно, в том, что дата файла не изменится.
Аватара пользователя
Parasite
Администратор
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раза
Поблагодарили: 508 раз

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Parasite »

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: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение rsuan »

Хорошо, тайл скачивается в любом случае. Почему тогда в сообщении написано "пропускаем загрузку"? Тогда уж правильнее "пропускаем замену". И какой тогда смысл в опции "только при их различии"? Тайл скачивается, если различается, то заменяется. При отключенной опции тоже скачивается и заменяется. Если тайл не различается, то что при включенной опции, что при выключенной, результат тоже одинаковый - тайл скачивается, а от замены или не замены результат не меняется.
divinets
Новичок
Сообщения: 18
Зарегистрирован: 14 май 2011, 14:52
Поблагодарили: 7 раз

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение divinets »

Запрашивается тайл. В момент начала скачки тайла, определятся его размер, если размер совпадает с уже существующим, то закачка тайла прерывается, если он еще не скачался. Если он уже скачался, то и прерывать нечего.
Ответить

Вернуться в «SAS.Планета»