SASGIS

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

SAS.Wiki

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

Инструменты пользователя

Инструменты сайта


чистка_кэша_беркли

Это старая версия документа.


Главная страница

Чистка кэша Беркли

Добавляя файлы в кэш Беркли путём скачивания или формирования, мы увеличиваем размеры файлов базы данных. Удаляя файлы из базы данных путём «стирания» лишних тайлов, уменьшения размеров файлов БД не добиться, так как ранее занятое файлами место так и остаётся занятым. Со временем накапливается весьма приличное количество таких удалённых тайлов, которые зря занимают место на диске.

Используя набор утилит для кэша Беркли, можно очистить кэш от удалённых файлов. Самый надёжный метод - использовать утилиту sdb_util.exe. В списке действий, которые данная утилита выполняет, есть Restore broken files from *.bad. То есть восстановление повреждённых файлов из файла *.bad.

Файлы *.bad появляются путём добавления «второго» расширения bad к названиям файлов базы данных (*.sdb или *.sdbv) в результате верификации (проверки) кэша утилитой db_verify.exe или действия Verify cache (find broken files) утилиты sdb_util.exe.

Файлы БД, содержащие удалённые тайлы, не считаются повреждёнными, поэтому их проверка утилитами не приведёт к добавлению расширения bad. Но никто не мешает нам добавить это расширение вручную.

Выбрав из списка действий утилиты sdb_util.exe Restore broken files from *.bad и указав папку, содержащую файлы *.bad, можно восстановить из повреждённого файла БД его неповреждённую часть, получив нормальный файл БД. Автоматически делаются следующие процедуры - 1) делается дамп (составляется список неповреждённых файлов). 2) из полученного дампа создаются новые файлы БД, содержащие только неповреждённые данные. 3) файлы БД проверяются на наличие повреждённых данных, если всё нормально, файл дампа и файлы *.bad удаляются, остаётся нормальный файл БД. Если в указанной папке имеется несколько файлов *.bad, они все окажутся удалёнными.

План действий:
1) Определяем масштаб желаемого сокращения кэша, например «удалить зумы с 12 по 13»
2) Открываем папку /cache_db (обычный кеш Беркли) или /cache_dbv (версионный кеш Бекли)
3) В удаляемых зумах переименовываем все *.sdb в *.sdb.bad (для версионного кеша - *.sdbv в *.sdbv.bad )
Подсказка: переименовать нужные файлы sdb(v) в требуемых папках можно быстрее, если запустить поиск на «sdb(v)» и отсортировать результаты по столбцу пути.
4) Запускаем утилиту sdb_util.exe из корня директории SAS.Planet
5) Выбираем папку с кешем (можно выбрать всю папку /cache_db(v))
6) Выбираем действие Restore broken files from *.bad и нажимаем Run
7) По окончании работы утилиты все *.bad файлы окажутся удалёнными

Если нужно почистить не весь кэш, а лишь определённую местность, то из всех имеющихся файлов БД следует выбрать только те, которые содержат тайлы этой местности. Для этого в SASПланете устанавливаем масштаб, равный масштабу, который нужно почистить, минус 8. Должно быть включено отображение границ тайлов. Смотрим на обозначения тайлов, попадающих на нужную местность. Цифры, указанные в виде x=XXX, y=YYY, будут входить в названия нужных нам файлов БД. Например, если мы хотим почистить карту Черногории на z15, находим Черногорию и устанавливаем масштаб 15-8=7. Карта попадает в тайл с x=35 и y=23. Значит, файл БД, содержащий эту карту, должен называться 35.23.sdb (ну, или 35.23.sdbv, если кэш версионный). Поиском находим этот файл и обрабатываем его.

Перевод этой страницы: