Notes |
|
(0010165)
|
vasketsov
|
07-12-2012 18:19
(edited on: 07-12-2012 18:24) |
|
Возможно связано с тем, что если (без указания MaxConnectToServerCount) натравить сас на многопоточный прокси-сервер типа Handycache, в его логе при перемещении мышкой в режиме кэш+интернет некоторые тайлы скачиваются два раза.
Это уже давно и не зависит от типа кэша, на файловом отлично воспроизводится (включаем интернт+кэш и лог на прокси, прогружается экран нормально, потом смещаем экран так чтобы не полностью уйти из прогруженной области, но чтобы некоторые тайлы остались в области видимости, на 2-3-4 раз отлавливается), на СУБД это отчётливо видно, потому что возникают лишние нарушения первичного ключа при вставке.
Что-то явно не то с раздачей заданий на скачку (((
Таких как правило 1-4 тайлика за один раз, для тестов лучше брать тайлы без exif типа бинга, у них размер меньше и одинаковые легко по размеру в логе даже глазами ищутся среди полста записей, они недалеко друг от друга будут ))
|
|
|
(0010166)
|
vasketsov
|
07-12-2012 19:42
(edited on: 08-12-2012 08:11) |
|
По второму возможно что MemCache или его использование подгаживает.
На прокачанной области на прокачанном зуме изредка бывает запрос к предыдущему зуму (а таблички такой нет, и его сразу видно по ошибке) просто при старте при первом показе окна. Значит ранее возврашается "нет тайла" для оригинального зума. Соответственно если откалючить кэш в памяти хранилища, то запроса к PreZ нет, но она и так довольно редкая, чтобы после нескольких экспериментов утверждать, что однозначно MemCache возвращает не то что надо.
Похоже что с пропаданием тайла в стартовом посте это не связано.
зы. Таки допёр, если сначала был запрос не WithData а пото WithData - второй раз сас работает как будто тайла нет, сделал сохранение в MemCache только WithData - беда из этого поста (второе предложение) пропала, так что предыдущие проблемы с ней не связаны.
|
|
|
|
|
|
|
1.
Обработка файла: bingsat\z18\x81808\y39312.jpg ...
Downloading...
Обработка файла: bingsat\z18\x81808\y39313.jpg ...
Downloading...
(Ok!)
поток то ли подвис то ли вылетел - сказать сложно, но exception-ов не было.
но это ерунда и возможно связано с 2, с паузами в качалке (в других тикетах) и т.п.
2.
если (без указания MaxConnectToServerCount) натравить сас на многопоточный прокси-сервер типа Handycache, в его логе при перемещении мышкой в режиме кэш+интернет некоторые тайлы скачиваются два раза.
более подробно - сообщение от 07-12-2012 20:19.
вот это - уже не ерунда. |
|
|
|
>поток то ли подвис то ли вылетел - сказать сложно, но exception-ов не было.
Не. Скорее всего какая-то ошибка в обработке или что-то в этом духе. Нужно смотреть обработку результатов закачки именно в этом юните. Если бы не пришел результат поток бы просто висел и ждал его. Закачка по области строго последовательная и следующий запрос не отправляется пока не обработан предыдущий. |
|
|
|
>Закачка по области строго последовательная и следующий запрос не отправляется
Ага. Коли там никто не порылся и всё ещё один поток - значит это тогда точно фигня, если просто мессага не выплюнулась. В принципе можно и забить ))
А второе напрягает. Версионные СУБД при update-ах создают новую копию записи, а старую удаляют, это сильно неприятнее чем просто файл лишний раз переписать на диске. |
|
|
|
А для того что бы второго не было, нужно проверять наличие тайла не только перед постановкой запроса в очередь, но и перед выполнением запроса извлеченного из очереди. Но ты же первый будешь бухтеть, что куча лишних обращений к диску. |
|
|
|
>постановкой запроса в очередь, но и перед выполнением запроса извлеченного из очереди
Не-а.
Перед тем как возникает "второе" - имеем полностью выкачанный экран, так что никаких очередей уже нет, всё устаканилось, в статусбаре тайлы не PENDятся.
Постановка запросов в очередь выполняется после сдвигания экрана.
Именно в этом случае (при наличии уже выкачанных тайлов в области экрана) и возникает 2 потока на тайл. То что в скобках - возможно важно: если сдвинуть далеко, и все тайлы нового экрана надо качать - у меня "второго" не было ни разу (хотя возможно это просто случайность).
Другой-то закачки в экран нет. Всё что закачено после сдвига - так или иначе прошло в этот момент через очередь. Очередь, судя по счётчику тайлов в ней в статусбаре, формируется сразу полностью. Значит она банально формируется в этом случае некорректно, если эта сформированная очередь содержит 2 запроса на один тайл. |
|