SASGIS

Веб-картография и навигация

Версионный кэш Беркли

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

Модератор: Tolik

Версионный кэш Беркли

Сообщение Papazol » 24 май 2013, 12:12

Так сказать, возвращаясь к истокам... Есть отдельная тема про кэш Беркли, есть также отдельная тема про версионность. Объединим их.

Сначала напишу о том, как, собственно, создать версионный кэш Беркли. Если начинать с нуля, то нужен zmp соответствующего ресурса. По умолчанию zmp создают и затем работают с тайловым кэшем SASПланеты. Чтобы создаваемый кэш был Беркли, следует в файле params.txt указать: CacheType=6. Если же мы желаем создать кэш Беркли, но ещё и версионный, то следует указать CacheType=61. Также для версионного кэша нужно указать номер версии по умолчанию: Version=XX.XX.Y. Можно указать тип кэша и номер версии также и в окне параметров карты. В настройках программы нужно указать путь к кэшу Беркли, чтобы программа знала, где искать этот кэш. Теперь при загрузке тайлов они будут упаковываться в базу данных под номером указанной версии. Если появится новая версия, указываем её в параметрах карты и грузим уже в неё. Программа будет проверять скачанные тайлы на совпадение с существующими в другой/других версии/версиях и, если они совпадают, то тайл сохраняться не будет. Тут всё просто и логично.

Но это только тогда, когда версионный кэш создаётся с нуля. В других случаях появляются вопросы.

1. Имеется ранее хорошо наполненный кэш Беркли, но он не версионный, а обычный. С какого-то момента появилось желание сделать кэш версионным. Будет правильно принять существующий кэш за:
а) неверсионную часть версионного кэша;
б) за некую версию "Old_version"?
2. В зависимости от ответа на вопрос 1.
а) Если мы примем существующий кэш за неверсионную его часть, то при следующей закачке обновлений уже в назначенную версию будет ли проверяться совпадение скачиваемых тайлов с существующими и запрещаться сохранение совпадающих тайлов?
б) Если мы примем существующий кэш за некую версию, как назначить эту версию на данный кэш?
3. Если известно, что некий отдельный снимок появился в версии, например, 5.0.9, возможно ли перенести его из неверсионной части кэша в соответствующую версию?
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Версионный кэш Беркли

Сообщение zed » 25 май 2013, 11:00

Работа над Беркли не завершена и соответственно ответить на все вопросы не представляется возможным, поскольку логика может быть изменена в любой момент (я пока что оставляю за собой такое право, пока тикет на отработан).

Между делом, можете тестировать SQLite кэш в SACS. Он поддерживает версионность, его разработка уже завершена и кэш Беркли планируется сделать похожим на него.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Версионный кэш Беркли

Сообщение Papazol » 25 май 2013, 15:26

Тестировать - это хорошо, но уже сейчас появились новые снимки на Яндексе. Вот и думаю, куда их скачивать. С другой стороны, Беркли меня устраивает более чем, хотелось бы использовать именно его. При появлении каких-либо изменений в ночнушках, касающихся Беркли, не сочтите за труд, пару строчек здесь напишите.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Версионный кэш Беркли

Сообщение Papazol » 15 июн 2013, 21:32

В багтрекере zed писал:
Поскольку сохранить полную совместимость всё-равно не получилось - версионный кэш идёт отдельным типом, то сделал его полностью самостоятельным, со своей папкой в кэше (cache_dbv) и своим расширением файлов БД (sdbv и tnev). Так же, в этом кэше тайлы без версии будут сохраняться аналогично версионным, со всеми вытекающими последствиями.


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

И на основе полученной инфы нужно завести хотелку насчёт копирования в версионный кэш.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Версионный кэш Беркли

Сообщение zed » 15 июн 2013, 22:40

Если в кэше есть неверсионные тайлы, то нужно пойти в Управление кэшем, указать этот кэш как неверсионный и извлечь все тайлы в тайловый кэш (и лучше сразу указать, чтобы паковало в tar). Так же, нужно указать чтобы оно удаляло эти тайлы из исходного кэша, чтобы в итоге небыло дубликатов. Затем нужно закрыть САС и провести процедуру отвязки от env (recover + reset lsn), переместить кэш в папку cache_dbv и переименовать файлы (*.sdb -> *.sdbv; *.tne -> *.tnev). И в завершении, импортировать в него тайлы из tar, через Управление кэшем.

Если в кэше нету неверсионных тайлов или нам они не столь важны, то делаем всё тоже самое, кроме возни с распаковкой/импортированием тайлов из tar.

По-идее, не помешала бы доработка, чтобы в Управлении кэшем можно было указать какую конкретно версию распаковывать и в какую записывать, но пока что там такого нету.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Версионный кэш Беркли

Сообщение zed » 15 июн 2013, 22:55

Теперь могу прояснить вопросы:
Papazol писал(а):1. Имеется ранее хорошо наполненный кэш Беркли, но он не версионный, а обычный. С какого-то момента появилось желание сделать кэш версионным. Будет правильно принять существующий кэш за:
а) неверсионную часть версионного кэша;
б) за некую версию "Old_version"?
2. В зависимости от ответа на вопрос 1.
а) Если мы примем существующий кэш за неверсионную его часть, то при следующей закачке обновлений уже в назначенную версию будет ли проверяться совпадение скачиваемых тайлов с существующими и запрещаться сохранение совпадающих тайлов?
б) Если мы примем существующий кэш за некую версию, как назначить эту версию на данный кэш?
3. Если известно, что некий отдельный снимок появился в версии, например, 5.0.9, возможно ли перенести его из неверсионной части кэша в соответствующую версию?

1. Теперь обычный кэш (Беркли или тайловы, не важно) нужно импортировать в версионный. Поскольку сейчас нету возможности указать версию для импортируемого кэша, то он запишется с пустой версией. Чтобы в дальнейшем была возможность как-то изменить версию этого кэша, нужно вводить новую операцию "Смена версии" для выделенной области. Или не менее глобально дорабатывать менеджера кэша.
2. При следующей закачке, при записи в кэш будет производиться проверка тайлов по CRC в не зависимости от того, с какой версией лежит тайл. Т.е. будет запрет на сохранение одинаковых тайлов и не важно, пустая там версия или нет.
3. Пока что нет. Нужна отдельная доработка менеджера кэша и операции с выделенной областью.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Версионный кэш Беркли

Сообщение zed » 15 июн 2013, 23:39

Подправил вкладку Скопировать, теперь там появится галочка "Make subfolder with map path name" по которой можно будет отключить генерирование вложенного каталога с именем карты (работает только если выбрана одна карта - иначе игнорируется). Насколько мне помнится это было основное неудобство при миграции в версионный кэш. Так что теперь можно пробовать копировать отдельные снимки в версионный кэш с назначением им любых версий.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Версионный кэш Беркли

Сообщение zed » 15 июн 2013, 23:56

zed писал(а):По-идее, не помешала бы доработка, чтобы в Управлении кэшем можно было указать какую конкретно версию распаковывать и в какую записывать, но пока что там такого нету.

Открыл тикет 0001966: В "Управлении кэшем" сделать возможным задавать версию для исходного и целевого кэшей

И да, будьте внимательны - в ночнушке сейчас будет мало-тестированный Беркли (что версионный, что обычный), так что могут быть баги. Поэтому попрошу активно тестировать его со всех сторон и оперативно сообщать обо всех косяках.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Версионный кэш Беркли

Сообщение Papazol » 16 июн 2013, 16:42

Да, вопросов не убавилось, а прибавилось.
Итак, начнём.
1. Управление кэшем пока плохо подходит для работы с версионным кэшем, так как нет возможности указать версии, откуда брать тайлы и куда их переносить. Копирование приспособлено лучше, так как указать версии там возможно. А можно ли скопировать/переместить неверсионную часть кэша в указанную версию этого же кэша.
UPD А не получится так сделать. Прежде чем программа увидит кэш, надо переименовать соответствующие файлы. Иначе можно работать только с предыдущей версией программы.
2. Следующий вопрос, точнее, подозрение. При операции копирования, даже без создания новой папки, всё ли будет обрабатываться правильно? Например, если сначала скопировать в версию 01 один снимок, а потом в неё же - другой. Служебные файлы Беркли будут изменены в нужном соответствии?
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Версионный кэш Беркли

Сообщение zed » 16 июн 2013, 17:56

Papazol писал(а):Например, если сначала скопировать в версию 01 один снимок, а потом в неё же - другой.

Если снимки перекрывают друг друга, то старый перезапишется новым. Если не перекрывают - будут лежать рядышком под одной версией. С чего тут вдруг подозрения возникают?
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

След.

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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 26