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

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

Модератор: Tolik

Tolik
Гуру
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 283 раза
Поблагодарили: 587 раз

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

Сообщение Tolik »

Parasite писал(а):
Tolik писал(а):Кэш Беркли - это не какая-то абстрактная БД в вакууме. Это неотъемлемая часть САС.Планеты, и она (Планета) прекрасно знает, как достать оттуда нужный тайл.
На самом же деле - это таки абстрактный базовод libdb51.dll в вакууме в папке САСа, производства одной малоизвестной шарашки "Oracle".
Неееет, это базовод Беркли - абстрактный и отъемлемый и производства шарашки. А кэш Беркли - уже часть САСа.
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

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

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

Сообщение Parasite »

Tolik писал(а):
Parasite писал(а):На самом же деле - это таки абстрактный базовод libdb51.dll в вакууме в папке САСа, производства одной малоизвестной шарашки "Oracle".
Неееет, это базовод Беркли - абстрактный и отъемлемый и производства шарашки. А кэш Беркли - уже часть САСа.
Я про базовод и говорил, это во-первых.
А во-вторых - базоводу без разницы, что хранить: кэш САСа или ключи от пентагоновского сервера. Что сказано - то и хранит. КАК КОНКРЕТНО хранит (выше я не зря указал строчку "байтовые смещения итд") - вопрос для базовода, а не саса. Посему контейнер базы принадлежит базоводу, а не сасу. Просто для САСа тот базовод некоторым образом "прозрачен", если можно так выразиться - что ничуть не отменяет его, абстрактного, наличия и безусловной необходимости в работе. САСу принадлежат (и от него и приходят) цифирки хранимого контента, а сама созданная база (как набор .DB-файлов) принадлежит базоводу. А мы тут, насколько я понял - именно за "беркли-кэш САСа" как набор файлов базы данных, не так ли?

САС+голая база с кэшем, если нет "абстрактного" базовода - настолько же неюзабельны, как и вообще без оного кэша. САС (без базовода) будет смотреть на этот "принадлежащий ему кэш" как ламер - на плиточный интерфейс: немного подозрительно и вместе с тем удивленно. Другими словами, тайловый кэш САСа настолько же "не принадлежит" ФС, как и кэш беркли - базоводу (несмотря на то что первое всё-таки хранится во втором, а третье - в четвертом). Для проверки - изымаем "промежуточный слой" в виде ФС из первой пары, и в виде libdb51.dll - из второй, и внимательно наблюдаем - как голый САС сумеет поработать с голым кэшем "без посредников". А никак, мягко говоря. Так кто кому принадлежит, и почему САС находится лишь на конце этой цепочки? :)
Надеюсь, так понятнее.

Если еще нет - пускай кто-нибудь мне скажет (не спрашивая базовод), по какому конкретно смещению, сколько штук и от начала какого конкретно файла (из многих) взять байты из базы, если я знаю XYZ нужного мне тайла - и мне нужен контент этого тайла. Ну или в какие байты базы писАть новый\заменяемый тайл.
vdemidov писал(а):Базовод беркли понятия не имеет как искать конкретный тайл.
Т.е. ты хочешь сказать, что базовод самостоятельно (без САСа) не сможет найти и отдать набор байтов ХХХ, если я кину в тот базовод необходимые тому ключи (запрос равный САСовому - но без САСа как такового)? Странно, штатный оракловский дампер дампит сасову беркли-базу (без САСа) на раз-два.
vdemidov писал(а):реализация тайлохранилища написанная Zed-ом с использованием базовода беркли
Ничуть не оспариваю заслуг zeda на этом поприще - вещь архиполезная и просимая многими еще с самого начала проекта, за что и спасибо ему.
Мы просто тут обсуждаем уровень вопроса на один ниже от "преобразуется тайловый кэш в формат сас или нет", а именно - [не]знание тонкой структуры контейнера приложением при наличии промежуточного базовода как драйвера того самого контейнера, и соответственно абстрактную принадлежность того контейнера "тому кто его породил и больше про него знает" (т.е.базоводу). По факту-то - созданные Васей файлы принадлежат Васе, базовод - Ораклу, а укачанный с сервера контент - копирайтеру... :)

А вообще - все-таки не совсем понятно, зачем это всё нужно было вопросившему. "Работает? Не трогай!"© :)
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 »

А мы тут, насколько я понял - именно за "беркли-кэш САСа" как набор файлов базы данных, не так ли?
Однако, простой набор файлов *.sdb ещё не есть кэш Беркли. Кэш - более высокий абстрактный уровень, который реализован уже именно в САСе, а не в той dll.
Parasite писал(а):Т.е. ты хочешь сказать, что базовод самостоятельно (без САСа) не сможет найти и отдать набор байтов ХХХ, если я кину в тот базовод необходимые тому ключи (запрос равный САСовому - но без САСа как такового)?
Вот именно что - набор байтов, но чтобы правильно интерпретировать эти данные тебе придётся попотеть и повторить код САСа, ответственный за работу с кэшем Беркли. И ни сам базавод, ни стандартные утилиты тут тебе не помогут.
Аватара пользователя
Parasite
Администратор
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раза
Поблагодарили: 508 раз

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

Сообщение Parasite »

zed писал(а):
А мы тут, насколько я понял - именно за "беркли-кэш САСа" как набор файлов базы данных, не так ли?
Однако, простой набор файлов *.sdb ещё не есть кэш Беркли. Кэш - более высокий абстрактный уровень, который реализован уже именно в САСе, а не в той dll.
Что есть "кэш Беркли", как (после всех "транспортных" обработок) не набор тех же цифирок контента, просто хранимых в другой форме (вплоть до системной инфы типа XYZ, размера и проч - она есть в обоих вариантах)?

Вот, допустим, на ФАТ32 есть тайл x0\0\y0\0.jpg размером 12345, создание\изменение файла 01.01.2001 (далее - 12345 байт бинари по указателям в ФАТе) - и есть где-то там в базе 12345 байт бинари, описываемой такими же ключиками. Бинарь (=тайл) одинаков и там и там, по большому счету САСу нужен только он (все остальное - служебка), и именно это и есть "кэш САСа" как таковой.

Всей разницы - лишь в виде хранения этих ноликов\единичек на физ.носителе, ну и прочие сопутствующие вкусности типа быстрого доступа etc. Контент - все тот же, и на этом уровне вопроса разницы-то, получается, и нет - она ниже, на "транспортном". Коим заведует уже не САС, а ФС|базовод - и соответственно это уже не кэш, а та или иная форма хранения оного, отданная на откуп тому или иному "транспортному посреднику" (т.е. не контролируемая САСом напрямую). "Кэш САСа" - вон он, остался уровнем выше - и там разницы в зависимости от формы хранения не обнаружилось. Что я и хотел сказать ранее. Я неправ?
zed писал(а):чтобы правильно интерпретировать эти данные тебе придётся попотеть и повторить код САСа
Я не спрашивал про интерпретацию результатов - я спрашивал про выдачу (базоводом) результата при получении на вход запроса, идентичного САСовому.
Что делать с выхлопом - уже задача САСа, разумеется. Он может его хоть в /dev/null сливать - базовода это уже не касается. С этим никто и не спорит, см.слова "САСу принадлежат (и от него и приходят) цифирки хранимого контента". Я тут обсуждаю лишь контейнер, хранящий эти цифирки (какими бы они ни были).

Кстати, чтобы два раза не вставать: можно ли безопасно удалять папку 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 »

Parasite писал(а):Кстати, чтобы два раза не вставать: можно ли безопасно удалять папку env из уже созданного, проверенного и не предполагаемого к изменению кэша (при раздаче по торрентам например)? Чем вообще грозит ее удаление? Где-то пару месяцев назад этот вопрос пробегал уже, но сейчас что-то не ищется...
Чисто для себя, её нет смысла удалять, т.к. она будет автоматически воссоздана при следующем запуске САСа и обращении к этому кэшу, пусть и на чтение. А при раздаче на торрентах - можно, но только сперва нужно запустить sdb_util и "отлинковать" файлы sdb от папки env:

Код: Выделить всё

Reset LSN [cmd: db_load -r lsn]
В опциях там даже можно поставить галочку Delete env on finish и папка env будет удалена автоматически.
Аватара пользователя
DJ VK
Гуру
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 80 раз
Поблагодарили: 314 раз

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

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

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

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

Сообщение Parasite »

zed писал(а):она будет автоматически воссоздана при следующем запуске САСа и обращении к этому кэшу, пусть и на чтение
"отлинковать" файлы sdb от папки env
При создании этой папки заново - эти файлы прилинкуются туда автоматом, или надо делать еще какие-то доп.телодвижения ручками?

PS: на торрентах раздаю просто архивированные папки zXX (не включая общую для всех зумов папку env. И отлинковку не делал). Надеюсь, ничего криминального - и скачанный другими кэш таки будет работоспособен, коль скоро папка пересоздастся? Архивировал зумы при закрытом САСе, разумеется.
DJ VK писал(а):
Parasite писал(а):А у меня, при проработке бага 1592 (так до конца и не прибитого на больших выделениях, так что далеесказанное - в силе) база валится - только в путь.
Может размер имеет значение? Я пока 100гб предел не переходил. Релиз 12_1010...
Не, валится даже на свеженачатых - если САС зависнет и снимается по 3м кнопкам. Там вообще мало было - мегов 50-100. Просто на момент зависона была запись в базу, а 3 кнопки - это 3 кнопки...

Впрочем, пару раз было что кэш валился даже при просмотре оного (НЕ при записи). Такое ощущение что оно базу открывает на запись по умолчанию, и если сас крэшится даже при просмотре - то что-то в базе корежится. Потом при попытке качать в нее - закачка стопорится на первом же тайле. Ошибок нет, просто лог в окошечке скачки не бежит. Утили зеда при проверке сыпят рапортами о "Reset LSN", или как-то так...После проверки - работает, но перманентно несколько файлов таки в бэд и приходится ставить САС на прокачку еще раз, чтобы перекачал побитое.
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 »

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

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

Сообщение Parasite »

zed писал(а):Папка-то пересоздаётся, но вот логи в ней - уникальные, хоть внешне имена и одинаковые, поэтому если sdb небыли отлинкованы от твоих логов, юзеру придётся вначале пройтись той утилиткой, чтобы она подчистила линки и только потом можно будет пользоваться.
Может есть смысл автоматом отлинковывать при выходе с САСа (без удаления собственно папки)? При старте саса оно подхватится автоматом...Операция весьма неочевидна при обмене кэшем - но, как я понимаю, критична. А утиль и так в комплекте есть.
При автом.отлинковке - кэш можно будет просто копировать из-под закрытого САСа куда угодно, не парясь об этом...
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Ответить

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