Ну по логике режим явного обьявления транзакции работает в любом случае. А автомат обрамляет вообще все телодвижения.
те для ускорения автомат нужно убрать, а критические части защитить транзакцией.
И еще.. точно беркли не смотрел, но теоретически база накапливается и отдельно должны вестись лог транзакций и индексы.
При разрушении/потере
- файла данных... потери неизбежны
- файла лога восстановима последняя версия
- файла индексов восстановимо - нужна переиндексация
Вот и возникает вопрос: в данной системе так ли уж необходимы транзакции? Мое имхо, что имеет смысл создать инструмент реиндексации, что позволит работать быстее без лога, а в случае сбоя потратить достаточно много времени на восстановление БД.
Использование в Sas.Планета кеша в формате Berkeley
Модератор: Tolik
-
SergeyKa
- Постигающий Дао
- Сообщения: 108
- Зарегистрирован: 04 мар 2009, 01:03
- Откуда: Москва
- Благодарил (а): 110 раз
- Поблагодарили: 21 раз
- Контактная информация:
Re: Использование в Sas.Планета кеша в формате Berkely
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/
А какой использует САС.планета?
Цитата отсюда http ://www.osp.ru/os/2000/11/178318/
-
Tolik
- Гуру
- Сообщения: 2604
- Зарегистрирован: 28 янв 2011, 10:38
- Благодарил (а): 283 раза
- Поблагодарили: 587 раз
Re: Использование в Sas.Планета кеша в формате Berkely
Без транзакций уже работали, очень скоро получилось много битых файлов, восстанавливать их мы не умели. Вы знаете как?SergeyKa писал(а): Вот и возникает вопрос: в данной системе так ли уж необходимы транзакции? Мое имхо, что имеет смысл создать инструмент реиндексации, что позволит работать быстее без лога, а в случае сбоя потратить достаточно много времени на восстановление БД.
Кроме того, приходилось периодически проверять все файлы, чтобы найти битые.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkely
Btree.SergeyKa писал(а):А какой использует САС.планета?
В версии 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.
-
SergeyKa
- Постигающий Дао
- Сообщения: 108
- Зарегистрирован: 04 мар 2009, 01:03
- Откуда: Москва
- Благодарил (а): 110 раз
- Поблагодарили: 21 раз
- Контактная информация:
Re: Использование в Sas.Планета кеша в формате Berkely
Как восстановить битые в беркли незнаю. Но мое имхо, что отсутствие транзакций никак не должно приводить к разрушению БД. Может дело было в другом?Tolik писал(а):Без транзакций уже работали, очень скоро получилось много битых файлов, восстанавливать их мы не умели. Вы знаете как?SergeyKa писал(а): Вот и возникает вопрос: в данной системе так ли уж необходимы транзакции? Мое имхо, что имеет смысл создать инструмент реиндексации, что позволит работать быстее без лога, а в случае сбоя потратить достаточно много времени на восстановление БД.
Кроме того, приходилось периодически проверять все файлы, чтобы найти битые.
-
Tolik
- Гуру
- Сообщения: 2604
- Зарегистрирован: 28 янв 2011, 10:38
- Благодарил (а): 283 раза
- Поблагодарили: 587 раз
Re: Использование в Sas.Планета кеша в формате Berkely
Конечно, само по себе не должно. Но если, например, программа зависла и была убита, не успела завершить запись в БД, она и покорраптилась. Если включены транзакции, то программа сначала записывает в лог, потом уже в БД, и если последняя операция не завершилась, при следующем запуске программы данные будут восстановлены из лога. Незаметно для пользователя. По крайней мере, я так это себе представляюSergeyKa писал(а): отсутствие транзакций никак не должно приводить к разрушению БД. Может дело было в другом?
-
guf
- Новичок
- Сообщения: 33
- Зарегистрирован: 10 авг 2011, 03:19
- Благодарил (а): 15 раз
- Поблагодарили: 6 раз
Re: Использование в Sas.Планета кеша в формате Berkely
А что, если использовать в программе не беркли? А например SQLite?
Или БД с клиент-серверной архитектурой? Для примера: выдернуть их XAMPP мобильную версию MySQL и прикрутить ее к программе, с тем, чтоб при каждом старте программа в паре мест меняла ini мускуля и стартовала процесс - безпроблемно совершенно. Запакованый в 7z он весит 11,5 мегов (без баз), распакованый 250. Это как вариант. Как другой вариант - добавить драйвер работы с мускулем.
Просто сдается мне, там проблем с транзакциями и скоростью будет при правильной организации структуры баз в разы меньше. В идеале для каждого слоя свои параметры коннекта прописывать чтоб можно было разные базы юзать, настроить MyISAM и ляпота будет...
Или БД с клиент-серверной архитектурой? Для примера: выдернуть их XAMPP мобильную версию MySQL и прикрутить ее к программе, с тем, чтоб при каждом старте программа в паре мест меняла ini мускуля и стартовала процесс - безпроблемно совершенно. Запакованый в 7z он весит 11,5 мегов (без баз), распакованый 250. Это как вариант. Как другой вариант - добавить драйвер работы с мускулем.
Просто сдается мне, там проблем с транзакциями и скоростью будет при правильной организации структуры баз в разы меньше. В идеале для каждого слоя свои параметры коннекта прописывать чтоб можно было разные базы юзать, настроить MyISAM и ляпота будет...
Молния - это вспышка от большого фотоаппарата, которым Google фотографирует Землю.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkely
Так ведь нет никаких принципиальных ограничений - можно использовать и SQLite и что угодно ещё. И наличие или отсутствие Беркли, как таковое, вообще к этому имеет малое отношение. Появится энтузиаст, с желанием прикрутить ещё один тип кэша - появится и тот или иной кэш. Другими словами, любой тип кэша, какой только можно придумать, имеет право на жизнь. Было бы кому разрабатывать и поддерживать оный.
По поводу MySQL - в этом направлении так же идёт разработка (vasketsov ковыряет).
По поводу MySQL - в этом направлении так же идёт разработка (vasketsov ковыряет).
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkely
Сегодня предпринял некоторые шаги по оптимизации Беркли. Должно заработать немного быстрее.
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Использование в Sas.Планета кеша в формате Berkely
пережимать кеш не придется?zed писал(а):Сегодня предпринял некоторые шаги по оптимизации Беркли. Должно заработать немного быстрее.