Hi there,
We run a big chat implementation with ejabberd, the storage engine we're using is mnesia, but since it uses DETS as a storage backend. The problem is a few weeks ago our server was reaching 1.8GBs on one of its tables (offline_messages) and the problem is that a few weeks ago I checked again and the table (file) was 600MBs big. Anyone know what happens when you reach the limit? does the table recycle itself and starts from scratch, does it crash? does it do some sort of cleaning or maintenance? I appreciate any insight you have on what may have happened.
the second part to this question is I was hoping to migrate to MySQL as the backend database so we can store more messages, but we dont want to lose any any messages in the process is this even something we could accomplish? Thanks for any help you can give me.
cheers,
Leo
ragelink wrote: The problem
The problem is a few weeks ago our server was reaching 1.8GBs on one of its tables (offline_messages) and the problem is that a few weeks ago I checked again and the table (file) was 600MBs big. Anyone know what happens when you reach the limit? does the table recycle itself and starts from scratch, does it crash? does it do some sort of cleaning or maintenance? I appreciate any insight you have on what may have happened.
There may be some limits in Erlang, but probably your machine will run out of RAM and virtual RAM before those software limits are reached. The erlang node crashes and leaves a big erl_crash.dump
We run a big chat implementation with ejabberd, the storage engine we're using is mnesia
Mnesia is acceptable for small deployments, but it isn't suitable for big ones. Switch your data to MySQL or PostgreSQL.
the second part to this question is I was hoping to migrate to MySQL as the backend database so we can store more messages, but we dont want to lose any any messages in the process
Install mod_admin_extra, then run the ejabberdctl command export2odbc. It generates SQL files of some of your existing Mnesia tables.