Здесь показаны различия между двумя версиями данной страницы.
версионный_кэш [26/06/2013 21:34] 91.203.67.165 |
версионный_кэш [04/03/2014 05:15] (текущий) |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
====== Тайловый версионный кэш ====== | ====== Тайловый версионный кэш ====== | ||
+ | Здесь пока ничего не написано... | ||
====== Версионный кэш Беркли ====== | ====== Версионный кэш Беркли ====== | ||
- | Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков. Для создания версионного кэша Беркли необходимо воспользоваться функцией **Управления кэшем**. Возможны следующие варианты: | + | Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков. |
+ | ====Создание версионного кэша "с нуля"==== | ||
+ | Если мы хотим создать новый версионный кэш, который будем наполнять путём скачивания, нужно всего лишь указать в zmp параметры **CacheType=61** и **Version=//Название версии по умолчанию//**. Для хранения версионного кэша Беркли в программе предусмотрена папка cache_dbv, поэтому по умолчанию новый кэш будет создан в этой папке. Однако нет проблем поместить этот кэш и в основную папку cache, нужно лишь указать соответствующий путь в настройках программы. | ||
+ | Перед скачиванием снимков нужно указать название версии, в которую будут помещаться тайлы. Это можно сделать в окне "Параметры карты". Обычно название версии представляет собой её номер в соответствии с нумерацией картсервиса. Скачав снимки указанной версии, мы будем иметь возможность в дальнейшем проверять идентичность скачиваемых тайлов тайлам, уже имеющимся в кэше, и в случае их совпадения не сохранять дублирующиеся тайлы. | ||
+ | ====Работа с версионным кэшем Беркли==== | ||
+ | При выборе из списка карты с версионным кэшем Беркли будет автоматически установлена версия по умолчанию, указанная в zmp. В дальнейшем можно будет изменить "рабочую" версию, введя её название в поле **Версия** окна **Параметры карты**. В "рабочую" версию сохраняются скачиваемые тайлы, поэтому будьте внимательны и проверяйте URL перед тем, как начать скачивание. Для "рабочей" версии строится карта заполнения. | ||
+ | |||
+ | При наличии в кэше нескольких версий снимков можно выбирать, тайлы какой из версий будут отображаться на экране. Для этого вызываем контекстное меню и выбираем пункт **Версия**. Если для данного места экрана существует несколько версий тайлов, их список будет виден в меню. Установив галку на нужной версии, мы будем видеть только тайлы этой версии. Чтобы видеть тайлы всех возможных версий для данного места, следует установить галку на опции **Отображать предыдущие версии**. Однако следует учитывать, что в данном случае карта заполнения будет строиться для всех доступных версий кэша. Если кликнуть на опции **Сбросить**, то ни одна из версий не будет "рабочей". | ||
+ | |||
+ | При скачивании каждый тайл проверяется на идентичность существующему, причём проверяются все доступные версии. Если тайла, идентичного скачанному, не существует, то скачанный тайл сохраняется, в противном случае - пропускается. Поэтому версия, скачанная первой, будет иметь наибольшее количество тайлов, а последующие версии - гораздо меньше (для одной и той же выделенной области, конечно). | ||
+ | ====Создание версионного кэша из ранее скачанного==== | ||
+ | Целью данной операции является возможность дополнять имеющийся кэш новыми версиями. Для этого необходимо воспользоваться функцией **Управления кэшем**. Напомню, что данная функция обрабатывает весь кэш (или всю версию) целиком, в отличие от **Копирования**, при котором обрабатывается содержимое выделенной области. Возможны следующие варианты: | ||
+ | |||
+ | ==== Исходный кэш неверсионный (Беркли или любой другой) ==== | ||
+ | Заполняем опции **Управления кэшем**, указывая в верхней части окна параметры исходного кэша, опцию **Process only tiles with version:** (Обрабатывать только тайлы версии:) и поле с названием версии оставляем пустыми, так как наш исходный кэш неверсионный. В нижней части окна указываем параметры целевого кэша, формат выбираем **BerkeleyDB (версионный)**, ставим галку на опции **Set same version for all processed tiles:** (Установить единую версию для всех обрабатываемых тайлов:) и записываем в соответствующее поле название версии. Папка целевого кэша должна быть создана заранее. Нажимаем "Начать" и ждём окончания процесса. Для нового кэша необходимо создать zmp, в котором должна быть запись **CacheType=61**. | ||
+ | |||
+ | ==== Исходный кэш версионный Беркли "старого образца" ==== | ||
+ | Здесь процесс несколько сложнее. Версионный кэш "старого образца", как правило, содержит неверсионную часть, которая была скачана до появления возможности сохранять версии, и скачанные позднее версионные части. В зависимости от размеров каждой из частей наши действия могут быть разными. | ||
+ | |||
+ | ====Неверсионная часть кэша велика, а версионная часть мала либо её вообще нет==== | ||
+ | |||
+ | В этом случае проще и быстрее будет перенести все части по очереди в новое версионное хранилище. При этом для неверсионной части опцию **Process only tiles with version:** и поле с названием версии оставляем пустыми, а в целевом кэше, наоборот, включаем опцию **Set same version for all processed tiles:** и вписываем название версии. Для версионных частей требуется указать как версию источника, так и версию назначения. Для нового версионного кэша необходимо создать zmp. | ||
- | ===== Исходный кэш неверсионный (Беркли или любой другой) ===== | + | ====Версионная часть кэша велика==== |
- | Заполняем опции **Управления кэшем**, указывая в верхней части окна параметры исходного кэша, опцию "Process only tiles with version" и поле с названием версии оставляем пустыми, так как наш исходный кэш неверсионный. В нижней части окна указываем параметры целевого кэша, формат указываем "BerkeleyDB (версионный)", ставим галку на опции "Set same version for all processed tiles" и записываем в соответствующее поле название версии. Папка целевого кэша должна быть создана заранее. Нажимаем "Начать" и ждём окончания процесса. Для нового кэша необходимо создать zmp, в котором должна быть запись "CacheType=61". | + | |
- | ===== Исходный кэш версионный Беркли "старого образца" ===== | + | В этом случае быстрее будет её не переносить в новое хранилище, а оставить в старом, преобразовав его в версионное нового образца. При этом неверсионную часть необходимо сначала переместить в другое хранилище, а затем из другого хранилища переместить в версионное, задав название версии. |
- | Здесь процесс несколько сложнее. Версионный кэш "старого образца" может содержать неверсионную часть, а может и не содержать. Если неверсионная часть есть и она важна, придётся немного повозиться. | + | |
Операция состоит из следующих этапов: | Операция состоит из следующих этапов: | ||
- | ====== Выделение неверсионной части кэша в отдельный кэш ====== | + | ===== Выделение неверсионной части кэша в отдельный кэш ===== |
- | Нам нужно извлечь неверсионную часть кэша и сохранить её на время. Удобнее воспользоваться целевым форматом SAS.Планета. Важно, чтобы тайлы **перемещались**, а не копировались, иначе не избежать дублирования. | + | Нам нужно извлечь неверсионную часть кэша и сохранить её на время. Удобнее воспользоваться целевым форматом SAS.Планета. Важно, чтобы тайлы **перемещались**, а не копировались, иначе невозможно будет вставить ранее неверсионную часть обратно. |
- | ====== Обработка оставшегося версионного кэша ====== | + | ===== Обработка оставшегося версионного кэша ===== |
- | Далее нам понадобятся утилиты для работы с Беркли. Запускаем sdb_util, указываем наш исходный кэш и проводим над ним две операции: Recover environment и Prepare cache for backup (reset LSN). Затем перемещаем кэш в папку cache_dbv (если необходимо) и меняем расширения всех файлов *.sdb на *.sdbv, а всех файлов *.tne - на *.tnev. | + | Далее нам понадобятся утилиты для работы с Беркли. Запускаем **sdb_util.exe**, указываем наш исходный кэш и проводим над ним две операции: **Recover environment** и **Prepare cache for backup (reset LSN)**. Затем перемещаем кэш в папку cache_dbv (если необходимо) и меняем расширения всех файлов *.sdb на *.sdbv, а всех файлов *.tne - на *.tnev. |
- | ====== Вставляем выделенную неверсионную часть кэша обратно, но уже с обозначенной версией ====== | + | ===== Вставляем выделенную неверсионную часть кэша обратно, но уже с обозначенной версией ===== |
Это сделать просто, см. **Исходный кэш неверсионный (Беркли или любой другой)**. | Это сделать просто, см. **Исходный кэш неверсионный (Беркли или любой другой)**. | ||
+ | ====Копирование в версионный кэш Беркли==== | ||
+ | Усовершенствованная операция копирования позволяет указывать название версии, в которую будут скопированы или перемещены тайлы. Кроме того, опция **Make subfolder with map path name** (Создать вложенную папку с названием карты) может быть отключена, что позволяет копировать в один и тот же кэш отдельные снимки под одной (если они не накладываются друг на друга) или под разными версиями. | ||
+ | ===Внимание!=== | ||
+ | Нельзя применять операцию **перемещения** данных из одной версии кэша в другую версию **этого же** кэша. Это ведёт к невозвратимой потере данных, так как каждый перемещаемый тайл проверяется на идентичность существующему, то есть самому себе. Так как идентичность налицо, "вновь прибывший" тайл не сохраняется, а старый удаляется, потому что задано перемещение. В случае, когда задано копирование, кэш никак не изменится, но будет впустую потеряно время. | ||
+ | Чтобы переместить часть информации в другую версию того же кэша, следует сначала переместить её в отдельный кэш, а уже из него вернуть в первоначальный под другой версией. |