[erlang-questions] mnesia sync_transactions not fsynced?

Dan Gudmundsson <>
Sun Oct 30 11:59:47 CET 2011


As far as mnesia is concerned it is logged to disc. It have left
mnesia call chain and it's nothing
more mnesia can do, except sync the disk.
Which is a performance penalty that is not acceptable per transaction.

I have been reminded why the disc_log cache was implemented, when you
push transactions
in a short loop, you are pushing more transaction then what can be
pushed to disc.
So that everything was stuck in disc_logs message queue.
The way to improve that was to write larger chunks to the disc.
So removing the timeout in disc_log will probably not change the
situation only that message
will be stuck on message queue instead. It will still not be written
to the disc fast enough.

/Dan

On Sun, Oct 30, 2011 at 2:24 AM, Jon Watte <> wrote:
>
>
> On Fri, Oct 28, 2011 at 12:18 AM, Dan Gudmundsson <> wrote:
>>
>> Disk log cashes writes as well so you can loose many writes when
>> halting the process.
>>
>> /Dan
>>
>>
>
>
> This means that the implementation does not match the documentation. I think
> one or the other should change :-)
> Or the documentation writers have another understanding of the words "logged
> to disk" than I do :-)
> Sincerely,
> jw
>
>



More information about the erlang-questions mailing list