LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Ясно. Как вариант, можно сделать специальный процесс, который будет в себе содержать RW-отображенный файл, и к которому все прочие процессы будут обращаться, когда надо что-то записать. Но это все костыли и оверхед.

Если делать отдельный процесс, то это уже не встраиваемая БД (без собственных тредов и процессов). Т.е. имея выделенный процесс можно и нужно делать больше - и в результате получится а-ля Tarantool.

В остальных случаях, без отдельного процесса, проще посредством mprotect() включать/выключать запись. Но такой способ в среднем медленнее чем файловые операции = многократный сброс кеша PTE, плюс msync() для записи на диск (со сканированием PTE всего региона). А делать это только ради OpenBSD я пока не хочу.

Функции для воркераундов каких-то багов на Эльбрусе, интересно…

Это очень специфичные баги, которые были поправлены год-полтора назад. В исходниках это пока осталось (до конца кода выкину, после перепроверки).

А у них открытый багтрекер есть вообще, чтоб об этом узнавать не из чьих-то исходников?

Совсем открытого снаружи вроде-бы нет (не следил в этом году).

Исходная версия Deleted, :

Ясно. Как вариант, можно сделать специальный процесс, который будет в себе содержать RW-отображенный файл, и к которому все прочие процессы будут обращаться, когда надо что-то записать. Но это все костыли и оверхед.

Если делать отдельный процесс, то это уже не встраиваемая БД (без собственных тредов и процессов). Т.е. имея выделенный процесс можно и нужно делать больше - и в результате получится а-ля Tarantool.

В остальных случаях, без отдельного процесса, проще посредством mprotect() включать/выключать запись. Но такой способ в среднем медленнее чем файловые операции = сброс кеша PTE, плюс msync() для записи на диск (со сканированием PTE всего региона). А делать это только ради OpenBSD я пока не хочу.

Функции для воркераундов каких-то багов на Эльбрусе, интересно…

Это очень специфичные баги, которые были поправлены год-полтора назад. В исходниках это пока осталось (до конца кода выкину, после перепроверки).

А у них открытый багтрекер есть вообще, чтоб об этом узнавать не из чьих-то исходников?

Совсем открытого снаружи вроде-бы нет (не следил в этом году).