Erlang 19 and pluggable mnesia storage backends?

168 views
Skip to first unread message

Noah

unread,
Jun 22, 2016, 6:59:12 PM6/22/16
to rabbitmq-users
Hello,

Erlang 19 was recently released, and includes mnesia_ext, which supports pluggable storage backends for mnesia:


I'm curious if anyone has experimented with mnesia_ext, and if there are any known issues with using rabbit with Erlang 19 and swapping out the DETS backend for something like LevelDB?  We've hit significant performance issues with Mnesia and would be very interested if such a drop-in replacement for DETS could be usable with Rabbit without major modification?


-N

Michael Klishin

unread,
Jun 22, 2016, 7:08:24 PM6/22/16
to rabbitm...@googlegroups.com
Release notes say that the API isn't considered to be stable yet. Certainly using eleveldb would
be quite interesting.

--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To post to this group, send email to rabbitm...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
MK

Staff Software Engineer, Pivotal/RabbitMQ

Noah Magram

unread,
Jun 22, 2016, 7:16:55 PM6/22/16
to rabbitm...@googlegroups.com
Indeed.  We have some real issues with scaling Mnesia/DETS right now and the consistent read performance of LevelDB would be very appealing.

I saw some recent commits where rabbit will check for Mnesia API compatibility, are these minimum version checks, where OTP 19 would be be considered compatible?  I assume the API would remain the same regardless of the storage backend, but I'm not sure how much of the Mnesia API rabbit gets into.


-N

--
You received this message because you are subscribed to a topic in the Google Groups "rabbitmq-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rabbitmq-users/n14nn4LqyPE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rabbitmq-user...@googlegroups.com.

Michael Klishin

unread,
Jun 22, 2016, 7:41:07 PM6/22/16
to rabbitm...@googlegroups.com
They are Mnesia *protocol* version checks, not Mnesia checks, and allow you to run mixed Erlang versions
in the cluster as long as Mnesia protocol version doesn't change. We do not advertise this widely, at least not yet,
and it is a requirement specific to some Pivotal projects.

RabbitMQ does not depend on Mnesia storage backends. I don't expect any work to be required
on our end to make sure Mnesia can work e.g. with an eleveldb backend.

I personally have few doubts that an eleveldb backend will emerge this year. DETS API isn't particularly broad.
Reply all
Reply to author
Forward
0 new messages