SASGIS

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

Принцип хранения кеша

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

Модератор: Tolik

Re: Принцип хранения кеша

Сообщение zed » 07 мар 2009, 09:52

А интересно, как Вы обошлись без использования dll для доступа к базе: компоненты или самописная "обертка"?

Есть для делфи компонент: DISQLite3 (Delphi Inspiration) - обходится без dll-ок.

Интересно откуда могут быть такие тормоза на рабочем компе?

Если в тестах запись шла сразу на веник, то различная загруженность HDD сторонними процессами могла повлиять на результаты.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Принцип хранения кеша

Сообщение relictus » 10 мар 2009, 10:41

Все записи в одной транзакции или для каждой записи своя?

В одной.
Интересно, а насколько отказо-устойчива база SQLite к случайным повреждениям? Cкажем, при переносе кэша на DVD, треть базы случайным образом затёрлась нулями... остальное, неповреждённое мы сможем увидеть/извлечь или всему капец?

Попробовал. Заполнил случайные области нулями. При просмотре ругань насчет поврежденной базы.
relictus
Новичок
 
Сообщения: 10
Зарегистрирован: 26 фев 2009, 15:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Принцип хранения кеша

Сообщение zed » 10 мар 2009, 22:01

relictus писал(а):Попробовал. Заполнил случайные области нулями. При просмотре ругань насчет поврежденной базы.

Фигово. А я уж только думал кэш делать на SQLite... видимо, придётся думать другой вариант. Надёга должна быть во главе угла.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Принцип хранения кеша

Сообщение Parasite » 11 мар 2009, 07:33

relictus писал(а):
Интересно, а насколько отказо-устойчива база SQLite к случайным повреждениям? Cкажем, при переносе кэша на DVD, треть базы случайным образом затёрлась нулями... остальное, неповреждённое мы сможем увидеть/извлечь или всему капец?

Попробовал. Заполнил случайные области нулями. При просмотре ругань насчет поврежденной базы.

При массовой закачке областей где НЕТ тайлов (при установленной галочке "сохранять информацию о недоступных тайлах") и последующей попытке просмотра этой "пустой" области из кэша - Ваша программа валится с Memory exception.
Мне так и не удалось НОРМАЛЬНО выкачать и просмотреть 10й уровень для теста (там много дырок в картах) - качается ОК, но даже при переключении потом в 10й уровень (без собственно езды по карте туда-сюда) получаем еррор.
1..8 уровни качаются и просматриваются без проблем.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 460 раз.

Re: Принцип хранения кеша

Сообщение Cowa » 12 мар 2009, 00:15

zed писал(а):
relictus писал(а):Попробовал. Заполнил случайные области нулями. При просмотре ругань насчет поврежденной базы.

Фигово. А я уж только думал кэш делать на SQLite... видимо, придётся думать другой вариант. Надёга должна быть во главе угла.

Ну и зря. По-моему, достаточно удачная база. А насчет прочесть частично испорченную базу - backup никто не отменял. А затерев треть базы, уверен, что даже монстр MS SQL тоже обвалится. Есть сомнения?
Cowa
Постигающий Дао
 
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Принцип хранения кеша

Сообщение zed » 12 мар 2009, 01:09

Сомнений нет :)
Но есть 100% уверенность, что обычный самописный контейнер, когда тайлы просто лепятся в конец друг к другу (кэш GoogleEarth именно по этому принципу построен), при любом повреждении не "обвалится", и неповреждённые тайлы можно юзать без каких бы то нибыло проблем.
Мне казалось, что такая "умная" БД (SQLite) должна бы уметь справляться с проблемой повреждения, или может утилиты какие должны быть, по вытаскиванию целых данных из повреждённых баз. Ведь если перейти на бинарный уровень, то БД - тот же самый контейнер, который хранит данные и никаких принципиальных ограничений по вытаскиванию данных быть не может. Взять к примеру, файловую систему - то же по сути БД, и тем не менее, частичное повреждение оной не означает полную потерю данных. Неповреждённые данные имеют свойство успешно восстанавливаться всякими утилитами.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Принцип хранения кеша

Сообщение Vasya » 12 мар 2009, 01:35

А кто мешает почитать умную литературу и написать утилиту, которая будет восстанавливать данные при таком крушении базы ?
Например для ФС народ на это не плохое бабло поднимает.
Мне кажется, что всё это переходит в поиск блох.
Аватара пользователя
Vasya
Советчик
 
Сообщения: 266
ICQ: 137791
Зарегистрирован: 14 июл 2008, 13:06
Откуда: Одесса
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Принцип хранения кеша

Сообщение zed » 12 мар 2009, 02:07

Vasya писал(а):А кто мешает почитать умную литературу и написать утилиту, которая будет восстанавливать данные при таком крушении базы ?

Мешает отсутствие времени на чтение и написание всяких утилит (к тому же нужно быть шибко умным). В таком случае, если нет готовых решений, гораздо проще и быстрее сделать свой контейнер изначально не подверженный крушениям.

Vasya писал(а):Мне кажется, что всё это переходит в поиск блох.

Ну если вопросы оптимального и надёжного хранения данных, для вас - мелочь, то может быть.
SQLite подходит под определение - оптимальный, но раз нельзя из него восстановить данные, то он явно ненадёжен. А значит в топку его.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Принцип хранения кеша

Сообщение Cowa » 12 мар 2009, 09:11

zed писал(а):В таком случае, если нет готовых решений, гораздо проще и быстрее сделать свой контейнер изначально не подверженный крушениям.

Если бы было это так просто и быстро, то все существующие на данный момент базы были ли просто "несокрушимы". Можно заложить в базу и избыточность информации для восстановления и дублировать описание полей таблиц где-нибудь в конце файла-базы (и все это за счет производительности и объема), но все равно найдется несколько байтиков, затерев которые база рухнет.
Так что действительно нужны внешние утилиты, позволяющие восстановить структуру базы (если это возможно) и затем уже смотреть какие данные повреждены. А в простоте, повторюсь - делаем backup. Меня он спасал не один раз.
zed писал(а):А значит в топку его.

Категорически против. Мне база очень понравилась.
Cowa
Постигающий Дао
 
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Принцип хранения кеша

Сообщение Vasya » 12 мар 2009, 10:20

Я что-то живя на этом глобусе не один десяток лет пока не видел полностью отказоустойчивой системы.
Думаю, что каждый из нас встречался с таким монстром как Fat12, Fat16 и Fat32 - о какой надёжности можно говорить ? и ничего - сколько лет то проработала.....
Так что может идти другим путём : делиться картами, и случае горя с тобой поделятся ?
Аватара пользователя
Vasya
Советчик
 
Сообщения: 266
ICQ: 137791
Зарегистрирован: 14 июл 2008, 13:06
Откуда: Одесса
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.След.

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

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

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