Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Запись данных в БД

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

ZeroWave

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Нужен совет или помощь.
 
Во время закрытия чека происходит запись чека с товарами в БД (sqlLite)
Каждая операция записи чека с товарами в БД происходит в рамках транзакции.  
На уровне программы все происходит как атомарная операция, на системном уровне данные проходят два буфера: системный буфер операционной системы и буфер жесткого диска.  
С помощью системной функции FlushFileBuffers можно сбросить буфер ОС, но нет возможности управлять буфером жесткого диска.  
При коммите транзакции SQLite, БД сама вызывает системную функцию сброса буфера ОС.  
Когда на уровне ОС все работает как нужно, часто происходит так, что диск отвечает, что данные достигли магнитного накопителя, хотя на самом деле, данные ещё находятся в буфере диска (оптимизация записи данных на диск)
 
Проблема случается когда отключается UPS, либо кто то долбанет по питанию,  
 
Вопрос в следующем, можно ли как то оптимизировать данную цепочку, чтобы данные гарантированно писались на диск.

Всего записей: 10 | Зарегистр. 27-07-2009 | Отправлено: 15:36 29-10-2019
qwertEHOK

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1. пишите помимо базы в txt
2. как настроен SQlite?
3. купите хороший УПС
4. штрафуйте за выключение питания
 

Всего записей: 450 | Зарегистр. 13-09-2006 | Отправлено: 22:05 05-11-2019
grindig

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как вариант - отключить кэширования диска.
Как это сделать можно посмотреть здесь:
https://support.microsoft.com/ru-ru/help/324805
Если у вас аппаратный RAID, то отключить можно через утилиту от RAID.
 
Но учтите, что вы потеряете в скорости записи на диск, а это может (но не факт!) повлиять на производительность не только записи в БД, но и другого софта, включая саму ОС.  
 

Всего записей: 1 | Зарегистр. 20-11-2019 | Отправлено: 12:54 20-11-2019
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Запись данных в БД


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru