Конференция "Базы" » Можно ли заставить SQLite сбросить кеш на диск?
 
  • Дмитрий С © (03.06.12 05:31) [0]
    Чтобы и свой кеш и системный. Т.е. после некого вызова данные гарантированно были на жестком диске. Можно так?
  • sniknik © (03.06.12 12:38) [1]
    SQLite точно сбросит, при закрытии коннекта, если нет специальных функций.  а вот на системный гарантий нет.
  • sniknik © (03.06.12 12:39) [2]
    даже если на системный тоже есть функция сброса, есть еще кеш собственно диска...
  • Дмитрий С © (03.06.12 14:02) [3]
    Т.е. заставить ее выполнить FlushFileBuffers (или никсовый аналог) нельзя?
  • sniknik © (03.06.12 14:45) [4]
    почему нельзя? найдешь аналог - выполняй. что в справке?
  • Дмитрий С © (03.06.12 14:52) [5]

    > что в справке?

    Я не очень по английски понимаю и не совсем могу отличить где речь идет о сбросе кеша на диск (просто запись), а где сброс именно дискового кеша.

    А как выполнить, если файловый указатель недоступен?
  • sniknik © (03.06.12 15:06) [6]
    при чем тут файловый? он думаешь прямо в файл пишет? а индексы, а транзакции? изменения прямо в файле приведут к множественным перезаписям всего файла.
    т.что либо у самого SQLite/компонента есть функция сброса, либо нет, к файлам не лезь.
    помедитируй лучше над первым ответом
    > SQLite точно сбросит, при закрытии коннекта, если нет специальных функций.
  • Дмитрий С © (03.06.12 15:21) [7]

    > при чем тут файловый?

    При том, что если я запишу данные в файл и передам сообщение о том что записал, а в этот момент, например, отключится свет и получится, что я сообщение передал, а в файле данных не будет, т.к. они были в кеше (sqlite или файловом) - это будет очень плохо.
  • Дмитрий С © (03.06.12 15:32) [8]
    Посмотрел исходник sqlite. Вызовы, интересующие меня в нем есть, потом разберусь при каких условиях они происходят.
  • sniknik © (03.06.12 16:12) [9]
    > отключится свет
    UPS
  • Дмитрий С © (03.06.12 18:29) [10]

    > отключится свет

    ну это частный случай. мало ли что может с компом случится.
  • sniknik © (03.06.12 19:14) [11]
    пытаясь избежать чужих ошибок, не наделай своих... случится что то скорее с твоим "умным" кодом по "предотвращению".

    только с компом проблема будет с вероятностью одна на тысячу, еще и в маловероятных событиях, а в твоем коде в одном из ста при том на каждый запуск.
  • Дмитрий С © (03.06.12 22:15) [12]
    Это точно. Спасибо за совет.
 
Конференция "Базы" » Можно ли заставить SQLite сбросить кеш на диск?
Есть новые Нет новых   [119558   +73][b:0][p:0]