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

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

Модератор: Tolik

Sant118
Новичок
Сообщения: 13
Зарегистрирован: 18 ноя 2010, 23:53
Поблагодарили: 1 раз

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

Сообщение Sant118 »

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

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

Сообщение DJ VK »

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

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

Сообщение zed »

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

Первый способ самый хардкорный, но и самый быстрый.
Второй способ будет создавать промежуточные файлы на диске для каждого sdb файла.
Третий способ самый юзер-френдли, но и медленнее первых двух. Хотя, если разместить папку env целевого кэша на RAM диске, то всё будет достаточно быстро.
vasketsov
Специалист
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Поблагодарили: 193 раза

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

Сообщение vasketsov »

xromeo писал(а):
используйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!
Не вариант. Цель не оправдывает средства
Как раз оправдывает полностью. Никакой файловый кэш на выделенном сервере не будет на 100+гигах работать так же быстро при ad-hoc доступе, как настроенная СУБД.
xromeo писал(а):надо выбирать какую-то субд
Не какую-то, а специалист по которой есть в доступности. Или в чём самому придётся разбираться. Ну и из списка поддерживаемых, разумеется.
xromeo писал(а):устанавливать на все машины
СУБД состоит из клиентской части и собственно сервера. На все клиентские машины ставится первое. На один сервер - второе. Как правило, на сервер можно не ставить отдельно клиентскую часть, даже если на самом сервере запускать сас.
xromeo писал(а):как-то конвертировать из Беркли в эту СУБД
Это самое простое. Через конвертер кэша, или менеджер кэша, или как он там называется.
xromeo писал(а):А что касается Berkeley-кэша - получается так, что он подходит только для однопользовательского режима. Один компьютер - один кэш - один пользователь.
Вы будете удивлены, но всё ещё хуже: Berkeley это ВСТРАИВАЕМАЯ БД, а они вообще для одного приложения только используются (даже не для двух приложений на одном компе под одним юзером), исключения лишь подтверждают это правило.
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

vasketsov
Как-то ты ну очень оперативно отвечаешь. Всего пол года прошло. :mrgreen:
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Sant118
Новичок
Сообщения: 13
Зарегистрирован: 18 ноя 2010, 23:53
Поблагодарили: 1 раз

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

Сообщение Sant118 »

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

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

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

Еще вопрос: как папку env можно оторвать от папки самой базы? РАМ диск есть, но всего 4 гига. Расписал бы кто-нибудь подробно для непрограммеров, а для простых юзеров, на некоторых форумах шапку темы делают со всей информацией в подробнейшем виде - очень удобно.
Аватара пользователя
Parasite
Администратор
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раза
Поблагодарили: 508 раз

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

Сообщение Parasite »

Sant118 писал(а):как папку env можно оторвать от папки самой базы?
А зачем (учитывая, что "область баз данных для меня тёмный лес"©)? Траха с убитым кэшем Приключений с базами захотелося?
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

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

Сообщение zed »

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, то найдётся много интересного.
sergbrother
Новичок
Сообщения: 24
Зарегистрирован: 13 май 2012, 08:57

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

Сообщение sergbrother »

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

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

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

Сообщение zed »

А папки env не забываете скопировать?
Ответить

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