Могу ли я использовать режим WAL в SQLite3, если я использую дополнительный мьютекс для нескольких писателей?

http://sqlite.org/wal.html

Режим WAL указан для N читателей и одного писателя. Является ли личность писателя взаимозаменяемой? Например, у меня есть N писателей и дополнительный мьютекс. Каждый писатель должен получить этот мьютекс, чтобы иметь возможность писать, поэтому два писателя никогда не пишут одновременно. Это возможно? И если да, то почему это не часть SQLite, поскольку мне кажется, что это естественное расширение режима WAL.


person Fabian    schedule 15.06.2015    source источник


Ответы (1)


В режиме WAL невозможно иметь несколько активных модулей записи. Однако несколько авторов могут попытаться написать. Этот конфликт обрабатывается точно так же, как и в режиме журнала отката, т. е. первый писатель блокирует базу данных, а остальным приходится ждать.

person CL.    schedule 15.06.2015
comment
Просто чтобы уточнить: могу ли я использовать мьютекс для всего ПК для записи? Могу ли я тогда иметь произвольное количество писателей, потому что мьютекс гарантирует отсутствие одновременной записи? - person Fabian; 16.06.2015
comment
Если вы используете собственный мьютекс, он по существу заменяет механизм блокировки SQLite. - person CL.; 16.06.2015