[rabbitmq-discuss] Erlang R12B and new persister

Matthew Sackman matthew at lshift.net
Wed Jan 6 12:02:30 GMT 2010


On Tue, Jan 05, 2010 at 04:20:02PM -0600, tsuraan wrote:
> > There was a post to the list about 6 weeks ago talking about how much
> > better the R13 garbage collector works with the new persister. I am
> > pretty sure the devs are going to make R13 a requirement for that code
> > so that it runs and behaves well.
> 
> Yeah, I read the discussion (and the commits where a ton of explicit
> gc:collect calls were removed).  I was hoping R12 would still work,
> since I have it on about 1200 machines that I'll otherwise have to
> upgrade :)

Thanks for that report. I need to check with Matthias on this one.
Personally, ets:update_element is so useful (mainly because it's atomic
which helps massively with concurrent access to ets tables) that I would
argue in favour of requiring R13, and indeed I'm planning on adding more
ets:update_element calls this afternoon!

Having checked the code, the update_element calls in msg_store and
msg_store_gc could be worked around. The update_element in
msg_store_ets_index can't be, but if you use the rabbitmq-toke plugin
then that avoids that.

ets:update_element appeared in R12B2, according to
http://www.erlang.org/download/otp_src_R12B-2.readme . The last time we
had this discussion in the office, I _think_ we maybe settled on saying
that we would support back to Debian stable (currently lenny), which is
R12B3. Given that Debian testing (squeeze) is already on R13B2, and our
release cycle is probably slower than Debian's, I would be surprised if
the new persister is released before the squeeze goes stable! Thus you
may well find that by the time it's released, we require R13.

Matthew




More information about the rabbitmq-discuss mailing list