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

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

Модераторы: Tolik, zed

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

Сообщение SergeyKa » 26 апр 2012, 11:28

Ну по логике режим явного обьявления транзакции работает в любом случае. А автомат обрамляет вообще все телодвижения.
те для ускорения автомат нужно убрать, а критические части защитить транзакцией.
И еще.. точно беркли не смотрел, но теоретически база накапливается и отдельно должны вестись лог транзакций и индексы.
При разрушении/потере
- файла данных... потери неизбежны
- файла лога восстановима последняя версия
- файла индексов восстановимо - нужна переиндексация
Вот и возникает вопрос: в данной системе так ли уж необходимы транзакции? Мое имхо, что имеет смысл создать инструмент реиндексации, что позволит работать быстее без лога, а в случае сбоя потратить достаточно много времени на восстановление БД.
SergeyKa
Соображающий
 
Сообщения: 57
ICQ: 7417559
Зарегистрирован: 04 мар 2009, 01:03
Откуда: Москва
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

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

Сообщение SergeyKa » 26 апр 2012, 11:37

Berkeley DB поддерживает четыре метода доступа: B+tree, Persistent Queues (Queue), Extended Linear Hashing (Hash) и Fixed- or Variable-length Records (Recno). В методах B+tree и Hash ключи могут иметь произвольную структуру. В методах доступа Queue и Recno каждой записи присваивается номер, который и служит ключом. Во всех методах доступа значение может иметь произвольную структуру. Если программист подставляет собственные функции сравнения или хэширования, Berkeley DB хранит и извлекает значения, не интерпретируя их.

А какой использует САС.планета?
Цитата отсюда http ://www.osp.ru/os/2000/11/178318/
SergeyKa
Соображающий
 
Сообщения: 57
ICQ: 7417559
Зарегистрирован: 04 мар 2009, 01:03
Откуда: Москва
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

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

Сообщение Tolik » 26 апр 2012, 13:44

SergeyKa писал(а):Вот и возникает вопрос: в данной системе так ли уж необходимы транзакции? Мое имхо, что имеет смысл создать инструмент реиндексации, что позволит работать быстее без лога, а в случае сбоя потратить достаточно много времени на восстановление БД.

Без транзакций уже работали, очень скоро получилось много битых файлов, восстанавливать их мы не умели. Вы знаете как?
Кроме того, приходилось периодически проверять все файлы, чтобы найти битые.
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

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

Сообщение zed » 26 апр 2012, 15:06

SergeyKa писал(а):А какой использует САС.планета?

Btree.

В версии 5.3, кстати появился пятый метод доступа - Heap:
The Heap access method stores records in a heap file. Records are referenced solely by
the page and offset at which they are written. Because records are written in a heap file,
compaction is not necessary when deleting records, which allows for more efficient use
of space than if Btree is in use. The Heap access method is intended for platforms with
constrained disk space, especially if those systems are performing a great many record
creation and deletions.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение SergeyKa » 27 апр 2012, 15:40

Tolik писал(а):
SergeyKa писал(а):Вот и возникает вопрос: в данной системе так ли уж необходимы транзакции? Мое имхо, что имеет смысл создать инструмент реиндексации, что позволит работать быстее без лога, а в случае сбоя потратить достаточно много времени на восстановление БД.

Без транзакций уже работали, очень скоро получилось много битых файлов, восстанавливать их мы не умели. Вы знаете как?
Кроме того, приходилось периодически проверять все файлы, чтобы найти битые.

Как восстановить битые в беркли незнаю. Но мое имхо, что отсутствие транзакций никак не должно приводить к разрушению БД. Может дело было в другом?
SergeyKa
Соображающий
 
Сообщения: 57
ICQ: 7417559
Зарегистрирован: 04 мар 2009, 01:03
Откуда: Москва
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

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

Сообщение Tolik » 27 апр 2012, 16:13

SergeyKa писал(а): отсутствие транзакций никак не должно приводить к разрушению БД. Может дело было в другом?

Конечно, само по себе не должно. Но если, например, программа зависла и была убита, не успела завершить запись в БД, она и покорраптилась. Если включены транзакции, то программа сначала записывает в лог, потом уже в БД, и если последняя операция не завершилась, при следующем запуске программы данные будут восстановлены из лога. Незаметно для пользователя. По крайней мере, я так это себе представляю :)
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

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

Сообщение guf » 04 июн 2012, 00:11

А что, если использовать в программе не беркли? А например SQLite?
Или БД с клиент-серверной архитектурой? Для примера: выдернуть их XAMPP мобильную версию MySQL и прикрутить ее к программе, с тем, чтоб при каждом старте программа в паре мест меняла ini мускуля и стартовала процесс - безпроблемно совершенно. Запакованый в 7z он весит 11,5 мегов (без баз), распакованый 250. Это как вариант. Как другой вариант - добавить драйвер работы с мускулем.
Просто сдается мне, там проблем с транзакциями и скоростью будет при правильной организации структуры баз в разы меньше. В идеале для каждого слоя свои параметры коннекта прописывать чтоб можно было разные базы юзать, настроить MyISAM и ляпота будет...
Молния - это вспышка от большого фотоаппарата, которым Google фотографирует Землю.
guf
Новичок
 
Сообщения: 33
Зарегистрирован: 10 авг 2011, 03:19
Благодарил (а): 14 раз.
Поблагодарили: 5 раз.

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

Сообщение zed » 04 июн 2012, 00:27

Так ведь нет никаких принципиальных ограничений - можно использовать и SQLite и что угодно ещё. И наличие или отсутствие Беркли, как таковое, вообще к этому имеет малое отношение. Появится энтузиаст, с желанием прикрутить ещё один тип кэша - появится и тот или иной кэш. Другими словами, любой тип кэша, какой только можно придумать, имеет право на жизнь. Было бы кому разрабатывать и поддерживать оный.

По поводу MySQL - в этом направлении так же идёт разработка (vasketsov ковыряет).
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение zed » 04 июн 2012, 00:29

Сегодня предпринял некоторые шаги по оптимизации Беркли. Должно заработать немного быстрее.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение DJ VK » 04 июн 2012, 18:01

zed писал(а):Сегодня предпринял некоторые шаги по оптимизации Беркли. Должно заработать немного быстрее.

пережимать кеш не придется? :?
Аватара пользователя
DJ VK
Специалист
 
Сообщения: 821
Зарегистрирован: 16 апр 2009, 13:57
Благодарил (а): 51 раз.
Поблагодарили: 80 раз.

Пред.След.

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

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

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

cron