Is Mnesia good for storing blobs?
It depends. Erlang has no problem storing Erlang binary data types of arbritary size, however due to the in-memory-database design emphasis of mnesia, storing lots of binary data will eventually hit one of a number of limitations. These are driven by: • Storage type – Both ram_copies and disc_copies tables rely on storing a full copy of the whole table and data in main memory. This will limit total blob storage to the size of available memory. On the other hand disc_only_copies tables do not suffer from this limitation but they are slow (from disk) and the data is stored in dets tables which if not closed properly (e.g. after system crash) can take a long time to repair (this was improved in recent versions but is still not quick). • Replication – if the table has a replica then updating an entry and rebuilding after a restart will copy the data over the network between the two machines. Depending on available bandwidth and the uptime requirements this may or may not be acceptable. As