История изменений
Исправление Deleted, (текущая версия) :
Ясно. Как вариант, можно сделать специальный процесс, который будет в себе содержать RW-отображенный файл, и к которому все прочие процессы будут обращаться, когда надо что-то записать. Но это все костыли и оверхед.
Если делать отдельный процесс, то это уже не встраиваемая БД (без собственных тредов и процессов). Т.е. имея выделенный процесс можно и нужно делать больше - и в результате получится а-ля Tarantool.
В остальных случаях, без отдельного процесса, проще посредством mprotect()
включать/выключать запись. Но такой способ в среднем медленнее чем файловые операции = многократный сброс кеша PTE, плюс msync() для записи на диск (со сканированием PTE всего региона). А делать это только ради OpenBSD я пока не хочу.
Функции для воркераундов каких-то багов на Эльбрусе, интересно…
Это очень специфичные баги, которые были поправлены год-полтора назад. В исходниках это пока осталось (до конца кода выкину, после перепроверки).
А у них открытый багтрекер есть вообще, чтоб об этом узнавать не из чьих-то исходников?
Совсем открытого снаружи вроде-бы нет (не следил в этом году).
Исходная версия Deleted, :
Ясно. Как вариант, можно сделать специальный процесс, который будет в себе содержать RW-отображенный файл, и к которому все прочие процессы будут обращаться, когда надо что-то записать. Но это все костыли и оверхед.
Если делать отдельный процесс, то это уже не встраиваемая БД (без собственных тредов и процессов). Т.е. имея выделенный процесс можно и нужно делать больше - и в результате получится а-ля Tarantool.
В остальных случаях, без отдельного процесса, проще посредством mprotect()
включать/выключать запись. Но такой способ в среднем медленнее чем файловые операции = сброс кеша PTE, плюс msync() для записи на диск (со сканированием PTE всего региона). А делать это только ради OpenBSD я пока не хочу.
Функции для воркераундов каких-то багов на Эльбрусе, интересно…
Это очень специфичные баги, которые были поправлены год-полтора назад. В исходниках это пока осталось (до конца кода выкину, после перепроверки).
А у них открытый багтрекер есть вообще, чтоб об этом узнавать не из чьих-то исходников?
Совсем открытого снаружи вроде-бы нет (не следил в этом году).