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

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

Модераторы: Tolik, zed

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

Сообщение rsuan » 25 июн 2011, 20:49

Если в Операциях с выделенной областью - Загрузить - Заменять старые файлы - отметить опцию Только при их различии, то чтобы узнать, различается ли тайл из инета с тайлом на компе, программа его сначала скачивает и сравнивает, или она узнаёт о различии не скачивая, т.е. зря не тратя трафик?
rsuan
Новичок
 
Сообщения: 44
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 32 раз.
Поблагодарили: 2 раз.

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

Сообщение vasketsov » 25 июн 2011, 22:28

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

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

За это сообщение автора vasketsov поблагодарил:
rsuan (26 июн 2011, 12:05)
vasketsov
Специалист
 
Сообщения: 727
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 153 раз.

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

Сообщение rsuan » 26 июн 2011, 13:29

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

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

А размер? Если обязан, то этого признака было бы достаточно.
И всё-таки, какие признаки программа запрашивает с сервера для определения изменившегося тайла, дату-время или размер файла, или то и другое?
rsuan
Новичок
 
Сообщения: 44
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 32 раз.
Поблагодарили: 2 раз.

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

Сообщение vasketsov » 26 июн 2011, 14:22

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

Дело в том, что в теории (RFC) для этого используется GET/If-Modified-Since.
Насколько я знаю, sas это не использует.
А всё остальное - костыли разного качества.
Ну например запросит sas размер и дату через HEAD, решит что надо обновиться - а потом это же будет получать в GET. Не оптимально.
vasketsov
Специалист
 
Сообщения: 727
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 153 раз.

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

Сообщение Tolik » 26 июн 2011, 18:08

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

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

За это сообщение автора Tolik поблагодарил:
rsuan (27 июн 2011, 18:09)
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

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

Сообщение rsuan » 02 июл 2011, 06:07

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

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

Программа сообщает: "Данный файл равен по размеру существующему, пропускаем загрузку." Судя по этому сообщению, программа сначала сравнивает размер, а потом решает, загружать тайл или нет. А иначе, если она уже скачала тайл и потом сравнивает размер, то какая разница, заменит она уже существующий тайл, или нет, всё равно тайл останется таким же. Вышеназванное сообщение уже не будет иметь смысла, и вообще опция "только при их различии" (в окне Загрузить) тогда теряет смысл. Хотелось бы комментарий автора программы по этому поводу, он-то уж точно знает, как его программа действует :)
rsuan
Новичок
 
Сообщения: 44
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 32 раз.
Поблагодарили: 2 раз.

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

Сообщение Tolik » 02 июл 2011, 10:01

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

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

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

А разница, наверно, в том, что дата файла не изменится.

За это сообщение автора Tolik поблагодарил:
rsuan (02 июл 2011, 15:18)
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

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

Сообщение Parasite » 02 июл 2011, 11:06

rsuan писал(а):Хотелось бы комментарий автора программы по этому поводу, он-то уж точно знает, как его программа действует :)

Это уже миллион раз обсуждалось.
Программа скачивает тайл, при совпадении размеров с имеющимся в кэше и соответствующей галочке - перезапись в кэш не происходит, засим всё.
Без факта скачки [на некоторых серверах, не отдающих Content-Length] нет никакой возможности узнать, изменился тайл или нет.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/

За это сообщение автора Parasite поблагодарил:
rsuan (02 июл 2011, 15:18)
Аватара пользователя
Parasite
Администратор
 
Сообщения: 4532
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 57 раз.
Поблагодарили: 214 раз.

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

Сообщение rsuan » 02 июл 2011, 15:18

Хорошо, тайл скачивается в любом случае. Почему тогда в сообщении написано "пропускаем загрузку"? Тогда уж правильнее "пропускаем замену". И какой тогда смысл в опции "только при их различии"? Тайл скачивается, если различается, то заменяется. При отключенной опции тоже скачивается и заменяется. Если тайл не различается, то что при включенной опции, что при выключенной, результат тоже одинаковый - тайл скачивается, а от замены или не замены результат не меняется.
rsuan
Новичок
 
Сообщения: 44
Зарегистрирован: 18 июн 2011, 17:46
Благодарил (а): 32 раз.
Поблагодарили: 2 раз.

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

Сообщение divinets » 02 июл 2011, 15:40

Запрашивается тайл. В момент начала скачки тайла, определятся его размер, если размер совпадает с уже существующим, то закачка тайла прерывается, если он еще не скачался. Если он уже скачался, то и прерывать нечего.
divinets
Новичок
 
Сообщения: 16
Зарегистрирован: 14 май 2011, 14:52
Благодарил (а): 0 раз.
Поблагодарили: 7 раз.

След.

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

cron