[erlang-questions] Mnesia is overloaded

Hakan Mattsson hakan@REDACTED
Wed Aug 8 09:43:39 CEST 2007


On Tue, 7 Aug 2007, David King wrote:

DK> I have an application that uses mnesia (through erlydb) that, at the  
DK> moment, gets very little traffic, except occasionally it has a few  
DK> tens of thousand records inserted all at once (well, two or three at  
DK> a time, but several thousand in a row). When this happens, I get the  
DK> following:
DK> 
DK> =ERROR REPORT==== 7-Aug-2007::10:48:50 ===
DK> Mnesia('hostname'): ** WARNING ** Mnesia is overloaded: {dump_log,
DK> write_threshold}
DK> 
DK> The data makes it into the database just fine, but I get that message  
DK> quite a few times. According to <http://www.erlang.org/pipermail/ 
DK> erlang-questions/2000-July/001477.html>, that message "is generated  
DK> when a log dump has been triggered before the previous one  
DK> completed". Is there any way that I can temporary lengthen the amount  
DK> of time between log dumps? Or is it possible to make the database- 
DK> saves synchronous, to keep from overloading mnesia?

No, there is no such function in the API. The setting
is read at the startup of Mnesia.

A small burst of overload warnings is nothing to bother
about. But as it will clutter the Erlang log, it is
probably a good idea to implement an Mnesia event
callback module in order to supress the printout. See
the event_module parameter in the Mnesia documentation
for more details:

  http://www.erlang.org/doc/apps/mnesia/Mnesia_chap5.html#5.7

The original idea of issuing these overload events was
to enable the Mnesia user to implement some clever
overload protection algorithm. But i don't know if
anyone has succeeded in doing that.

/Håkan


More information about the erlang-questions mailing list