powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Надежность SQLite
9 сообщений из 9, страница 1 из 1
Надежность SQLite
    #38178383
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо сделать нативное приложение работающее с локальной базой по нескольким потоком. Выбрал SQLite. Вроде-бы все препоны с блокировками обошел, настроил приложение, запустил... через пару часов база рухнула, точнее рухнула одна из записей - при попытке редактирования или удаления этой записи навигатор дает ошибку " the database disk image is malformed sqlite ". Редактирование прочих записей выполняется нормально.
Вопрос, насколько часто встречается такое разрушение? Как его избежать? Можно-ли использовать SQLite в системах требующих надежной работы.
...
Рейтинг: 0 / 0
Надежность SQLite
    #38180807
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Ч,

Разрушения встречаются.
но не думаю, что это не связано с блокировками и многопточностью
я в приложении FlylinkDC++ достаточно долго использую эту базу для хранения ключевой информации
иногда от пользователей приходят жалобы, но сам я на это никогда не наступал
http://www.flylinkdc.ru/2010/10/flylinkdcsqlite.html

У вас какого плана приложение?
много читателей или писателей?

Почитайте про
1. PRAGMA journal_mode=WAL + PRAGMA wal_checkpoint
2. PRAGMA synchronous = FULL


а что за перепоны с блокировками и как обошли?
вы в приложении используете свою синхронизацию между потоками и отключили внутреннюю синхронизацию sqlite через SQLITE_THREADSAFE ?
...
Рейтинг: 0 / 0
Надежность SQLite
    #38181329
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сути это многопоточный TCP сервис. Читателей и писателей может быт несколько. В базе хранятся настройки работы с каналами (один поток, один канал), общий лог и таблица сообщений отправленных/полученных по каналу. Собственно все.
...
Рейтинг: 0 / 0
Надежность SQLite
    #38181369
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PPAИгорь Ч,
а что за перепоны с блокировками и как обошли?
вы в приложении используете свою синхронизацию между потоками и отключили внутреннюю синхронизацию sqlite через SQLITE_THREADSAFE ?

обходил через критические секции потока и ожиданием разлочки.
...
Рейтинг: 0 / 0
Надежность SQLite
    #38182153
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И этот сервис не вешался и не падал при работе?
с диском тоже проблем не было по eventlog-у винды?
Какие прагмы используете при коннекте к базе
журнал транзакций / синхронизация?
...
Рейтинг: 0 / 0
Надежность SQLite
    #38183265
economistalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из опыта без/с WAL и сетевым доступом по SMB в Windows-сети с AD, 1Gbit.

При активной одновременной работе 3-х клиентов с одной базой 2 Гб (запись простым INSERT-ом, чтение сложными SELECT-ами, индексы на 90% полей, занимающими 5-10 секунд, ежеминутно каждым клиентом, таймаут был выставлен на 10000 миллисекунд) - без WAL 2 года работали ОК.

Включил WAL (как только появился в релизах) - через полгода база намертво разрушилась.

После этого WAL отключили, пока 1 год без фокусов.
...
Рейтинг: 0 / 0
Надежность SQLite
    #38183674
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
economistalex,

SMB?
хм.
http://www.sqlite.org/wal.html
All processes using a database must be on the same host computer; WAL does not work over a network filesystem.
...
Рейтинг: 0 / 0
Надежность SQLite
    #38185804
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приложение активно пишет/читает данные в базе из разных потоков с
PRAGMA synchronous = OFF;
Глюков не замечено
...
Рейтинг: 0 / 0
Надежность SQLite
    #38213110
economistalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PPA, не так выразился: вместе с сетевым доступом - был и локальный доступ к той же самой базе, т.к. за файловым "сервером" работает пользователь - один через SQLite Manager, фоновые задачи/потоки - порождались через ADODBAPI - из Python. WAL работал, журнал создавался однозначно. Но иногда база сыпалась.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Надежность SQLite
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]