[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Master-slave репликация для SQLite - теоретический вопрос.



Hello!

On Thursday 17 December 2009 15:37:41 Max Kosmach wrote:
> Т.е. опять завершенная транзакция вполне себе в файле и ее откатывать не
> надо, только данные переместить.

Только _не в том_ файле. Завершенная транзакция после сброса буферов обязана быть 
в файле журнала, где ведется diff изменений. А вот когда эта транзакция будет 
перемещена в файлы таблиц, база решает сама, да еще и sync им делаети в разное 
время. Так что приходится брать устаревший дамп и последовательно "накатывать"
на него все изменения, зафиксированные в журнале.

> Вот эту часть я как-то до конца не осознал.
> Мы берем и делаем в момент времени X снапшот файловой системы.
> В нем будут все данные, которые БД записала на диск. (fsync)
> Ничего явно обнулять и тд не надо.

Вы забываете о том, что каждый файл sync-ается по отдельности. И не
существует момента времени, когда можно сделать снапшот базы в 
консистентном состоянии.

> Другое дело, что если допустим какой-то простой, то таки можно
> средствами БД заблокировать доступ и сбросить все данные на диск и вот
> после этого сделать снапшот и разблокировать доступ.
> Тогда после запуска со снапшота и восстанавливать ничего не придется.

_Все_ данные сбросить на диск нельзя при включенном сервере СУБД.
Можно сбросить только промежуточные буферы в промежуточные файлы
(см. выше про журнал), а сами файлы данных одновременно не бывают в 
консистентном состоянии.

> Можно описать методику измерений, настройки и привести таки цифры?
> Потому как я наличие LVM вообще не замечал особо при тестах (ну т.е.
> разница пределах 5% была), хотя специально БД не тестировал, да и нет у
> меня промышленных БД достаточного объема с большой нагрузкой.

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

> Ну или ссылки на места, где "не рекомендуют"?

Документация постгреса, точное место не назову. Документация оракла, где
и вовсе рекомендуют использовать raw devices. Множество блогов разработчиков.


Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: