Size: a a a

2020 October 22

ИИ

Иванов Иванов... in ErlangRus
S B
не, там проблема в том, что в WAL пишутся байты, но Мнесия не ждет синхронизации, т.е. ядро байты приянло, но на диск они еще могли и не попасть. а транзакция уже закомичена.
обычно такие вещи опциональны
источник

SB

S B in ErlangRus
Иванов Иванов
обычно такие вещи опциональны
в каком смысле? без WAL как восстановиться?
источник

ИИ

Иванов Иванов... in ErlangRus
S B
в каком смысле? без WAL как восстановиться?
я имею ввиду дожидаться или не дожидаться синка
источник

SB

S B in ErlangRus
Иванов Иванов
я имею ввиду дожидаться или не дожидаться синка
ааа. не знаю, в Мнесии даже синхронный метод, судя по той ссылке, не дожидается.
источник

ИИ

Иванов Иванов... in ErlangRus
S B
ааа. не знаю, в Мнесии даже синхронный метод, судя по той ссылке, не дожидается.
тогда надо смореть код. так то вроде если sync_transaction , то пишут что ок. насколько я понимаю mnesia ипользует disk_log, а тот должен делать синки если синхронно. но вообще у диска тоже кеш может быть.
источник
2020 October 23

SB

S B in ErlangRus
Иванов Иванов
тогда надо смореть код. так то вроде если sync_transaction , то пишут что ок. насколько я понимаю mnesia ипользует disk_log, а тот должен делать синки если синхронно. но вообще у диска тоже кеш может быть.
Неа, там явно вызывать синк надо.
источник

SB

S B in ErlangRus
disk_log:log() гарантирует только что в ядро байты подхватило.
источник

ИИ

Иванов Иванов... in ErlangRus
S B
Неа, там явно вызывать синк надо.
т.е sync_trasaction != transaction + sync?
источник

SB

S B in ErlangRus
Иванов Иванов
т.е sync_trasaction != transaction + sync?
Я боюсь соврать и запутать тебя, но вот про явный вызов sync это точно.
источник

AP

Alexander Petrovsky in ErlangRus
S B
ведь fsync очень дорогой вызов
fsync не гарантирует запись на диск
источник

AP

Alexander Petrovsky in ErlangRus
Драйвер может решить что и не хочет ничего писать на диск
источник

SB

S B in ErlangRus
Alexander Petrovsky
Драйвер может решить что и не хочет ничего писать на диск
Это уже исключительная ситуация, насколько я могу судить. ОС-то ничего сделать не может, а юзерспецс с драйвером не общается.
источник

MK

Matwey Kornilov in ErlangRus
Тогда бы WAL ни у одной базы данных не работал
источник

AP

Alexander Petrovsky in ErlangRus
Ну вот на вскидку вот тут есть упоминания https://wiki.postgresql.org/wiki/Fsync_Errors
источник

ИИ

Иванов Иванов... in ErlangRus
Alexander Petrovsky
Ну вот на вскидку вот тут есть упоминания https://wiki.postgresql.org/wiki/Fsync_Errors
я думал ТС о том, что fsync не вызвается у транзакций. и заставить их это делать нет возможности
источник

ИИ

Иванов Иванов... in ErlangRus
S B
Это уже исключительная ситуация, насколько я могу судить. ОС-то ничего сделать не может, а юзерспецс с драйвером не общается.
насколько я понял из api мнезии - просто транзакция асинхронная (не дожидается wal), а синхронная - дожидается. сам лог не может не вызывать fsync (по идее) иначе никакого смысла в нем нет
источник

SB

S B in ErlangRus
Иванов Иванов
насколько я понял из api мнезии - просто транзакция асинхронная (не дожидается wal), а синхронная - дожидается. сам лог не может не вызывать fsync (по идее) иначе никакого смысла в нем нет
источник

SB

S B in ErlangRus
> Hence, it is not guaranteed that the term is written to disk, it can linger in the operating system kernel for a while. To ensure that the item is written to disk, function sync/1 must be called.
источник

SB

S B in ErlangRus
и смысла в этом с точки зрения 2pc действительно ноль, что и стало поводом написать об этом
источник

SB

S B in ErlangRus
но я думаю, что дело в перфомансе. Мнезия позиционируется как софтреалтайм БД, но при этом транзакционная.
источник