SASGIS

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

Использование в Sas.Планета кеша в формате Berkeley

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

Модератор: Tolik

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Sant118 » 03 мар 2015, 17:02

Коллеги, есть у меня сильно распухший кэш в БерклиДБ, из которого я удалил через САСПланету очень немалую кучу тайлов, но размер занимаемый на винте не изменился. А вопрос в следующем - что надо запустить из управления БД и с какими ключами, чтобы ничего не запороть, и таки ужать освободившийся кэш до адекватных размеров?
Sant118
Новичок
 
Сообщения: 13
Зарегистрирован: 18 ноя 2010, 23:53
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение DJ VK » 03 мар 2015, 20:14

Sant118 писал(а):я удалил через САСПланету очень немалую кучу тайлов, но размер занимаемый на винте не изменился

Невнимательно читаешь. В этой самой теме раза 2-3 минимум это уже обсуждалось. Рекомендую полистать прошлые сообщения годика за 2 с половиной (когда накопился опыт эксплуатации Беркли). первую половину то есть можно не читать.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение zed » 03 мар 2015, 22:56

Есть 3 способа:
- использовать консольные утилиты db_dump и db_load, перенаправив вывод первой на ввод второй
- переименовать *.sdb в *.bad и натравить на кэш sdb_util с включённой опцией восстановления из bad файлов
- в управлении кэшем просто скопировать весь кэш в новую папку

Первый способ самый хардкорный, но и самый быстрый.
Второй способ будет создавать промежуточные файлы на диске для каждого sdb файла.
Третий способ самый юзер-френдли, но и медленнее первых двух. Хотя, если разместить папку env целевого кэша на RAM диске, то всё будет достаточно быстро.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение vasketsov » 04 мар 2015, 01:03

xromeo писал(а):
используйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!

Не вариант. Цель не оправдывает средства

Как раз оправдывает полностью. Никакой файловый кэш на выделенном сервере не будет на 100+гигах работать так же быстро при ad-hoc доступе, как настроенная СУБД.

xromeo писал(а):надо выбирать какую-то субд

Не какую-то, а специалист по которой есть в доступности. Или в чём самому придётся разбираться. Ну и из списка поддерживаемых, разумеется.

xromeo писал(а):устанавливать на все машины

СУБД состоит из клиентской части и собственно сервера. На все клиентские машины ставится первое. На один сервер - второе. Как правило, на сервер можно не ставить отдельно клиентскую часть, даже если на самом сервере запускать сас.

xromeo писал(а):как-то конвертировать из Беркли в эту СУБД

Это самое простое. Через конвертер кэша, или менеджер кэша, или как он там называется.

xromeo писал(а):А что касается Berkeley-кэша - получается так, что он подходит только для однопользовательского режима. Один компьютер - один кэш - один пользователь.

Вы будете удивлены, но всё ещё хуже: Berkeley это ВСТРАИВАЕМАЯ БД, а они вообще для одного приложения только используются (даже не для двух приложений на одном компе под одним юзером), исключения лишь подтверждают это правило.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение vdemidov » 04 мар 2015, 01:28

vasketsov
Как-то ты ну очень оперативно отвечаешь. Всего пол года прошло. :mrgreen:
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Sant118 » 04 мар 2015, 03:18

zed писал(а):Есть 3 способа:
- использовать консольные утилиты db_dump и db_load, перенаправив вывод первой на ввод второй
- переименовать *.sdb в *.bad и натравить на кэш sdb_util с включённой опцией восстановления из bad файлов

Третий способ самый юзер-френдли, но и медленнее первых двух. Хотя, если разместить папку env целевого кэша на RAM диске, то всё будет достаточно быстро.


Читал, потому и спросил что и с какими ключами запустить, так как область баз данных для меня тёмный лес, а там лишь написано "использовать дб_дамп и дб_лоад", что не очень информативно. Понятия не имею с какими ключами и тем более как перенаправить вывод первой на ввод второй.

Видимо придется вторым способом...

Еще вопрос: как папку env можно оторвать от папки самой базы? РАМ диск есть, но всего 4 гига. Расписал бы кто-нибудь подробно для непрограммеров, а для простых юзеров, на некоторых форумах шапку темы делают со всей информацией в подробнейшем виде - очень удобно.
Sant118
Новичок
 
Сообщения: 13
Зарегистрирован: 18 ноя 2010, 23:53
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Parasite » 04 мар 2015, 11:34

Sant118 писал(а):как папку env можно оторвать от папки самой базы?

А зачем (учитывая, что "область баз данных для меня тёмный лес"©)? Траха с убитым кэшем Приключений с базами захотелося?
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение zed » 04 мар 2015, 13:26

Sant118 писал(а):Читал, потому и спросил что и с какими ключами запустить

В первоначальном вопросе про "ключи" и слова небыло. А команды очень простые (предполагается что утилиты лежат в корне с папкой SAS):
Код: Выделить всё
db_recover -h cache_db\sat\env\ -v

Код: Выделить всё
db_dump cache_db\sat\z19\137\83\550.335.sdb | db_load cache_db\sat\z19\137\83\550.335.sdb.new

Первая команда "чистит" env, вторая делает новый файл кэша, без всего лишнего. Первую команду нужно выполнить один раз, перед началом всего процесса. Вторая команда выполняется N раз для N файлов, а затем нужно переименовать старые файлы в sdb.old (или просто удалить их), а у новых оторвать приставку .new. Внимание: делайте бэкап всего кэша (включая папку env), перед своими экспериментами.
Sant118 писал(а):Еще вопрос: как папку env можно оторвать от папки самой базы?

Я создаю папку env на RAM диске, а в папке с кэшем создаю символьную ссылку на ту папку. После завершения копирования, удаляю ссылку и переношу папку env на её законное место. В новых виндах (начиная с Vista) для создания ссылок есть команда mklink. Far Manager умеет их создавать из коробки (Alt+F6), для TotalCommander нужен плагин. Если погуглить по вопросу NTFS Link, то найдётся много интересного.

За это сообщение автора zed поблагодарил:
VMatveev (05 июн 2017, 17:23)
Рейтинг: 5.26%
 
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение sergbrother » 02 июл 2015, 21:34

Доброго.
В течении последних 5 лет собирал базу всего что мог по Центральному региону РФ (Москва, область, Тула, Калуга, Орел, Тверь, Питер, Коломна и т.д.) в Sasplanet.
Сначала уперся года три назад в 50 миллионов файлов тайлов под Windows XP (это когда ее Berkely DB не использовал).
Потом после консультаций с Zed'ом перешел на Berkely DB.
Вроде все неплохо.Объем базы около 600 ГБайт.
Но есть одна беда - база работает только на одном отдельно взятом ноутбуке Panasonic. Перетащить ее на другие компы с помощью простого копирования всех файлов типа Sascache/*.* с последующим использованием в другом экземпляре Sasplanet не получается - он все эти файлы не показывает вообще (никакие), а через пару минут сваливается и подкрушивает базу.
При этом все имена файлов и пути к ним пишет в строке статуса правильно, просто ни хрена не кажет.

Что же я делаю неправильно?
Или скопировать и указать путь недостаточно?
sergbrother
Новичок
 
Сообщения: 24
Зарегистрирован: 13 май 2012, 08:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение zed » 02 июл 2015, 21:37

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

Пред.След.

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

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

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