[ejabberd] Implementing XEP-0059 (question for mnesia gurus)
eric at ohmforce.com
Fri Oct 10 14:11:53 MSD 2008
Thank you for pointing me to mod_archive.
The solution implemented looks quite inefficient (seems like it's
using tail recursion and that's O(n))
After a bit of browsing I feel QLC cursor and next answer are part of
But then again, will it scale ?
Le 10 oct. 08 à 11:31, Alexander Tsvyashchenko a écrit :
> Hello Eric,
> I'm by no means "mnesia guru", but still would like to provide some
> information on that subject.
> On Fri, 10 Oct 2008 11:04:25 +0200, Eric Cestari <eric at ohmforce.com>
>> I am considering implementing Result Set management in ejabberd.
>> (For pubsub and muc browsing via disco).
> I'm not that familiar with ejabberd sources, but there are already
> at least
> two implementations of RSM available there in mod_archive_* family of
> modules: one for mnesia database and another one for SQL ones. I
> the SQL-based implementation available in mod_archive_odbc should be
> most complete of them, but original (mod_archive) implementation,
> containing several bugs, also can be fixed up to the working state.
> However, these implementations are specific to archiving support. It
> be a good idea to generalize them to re-use everywhere where RSM makes
> sense instead of implementing it in every module separately.
>> I'd like to do it, but I have a few questions regarding mnesia
>> performance for paging.
>> From what I saw, there is no OFFSET and LIMIT for limiting a query
>> One can use lists module for doing this, but is it efficient enough ?
>> Wouldn't that involve many things moving around, and potentially very
>> big messages passed between processes ?
> Yes, I've not found OFFSET/LIMIT support in mnesia also, and for
> purposes the performance (in terms of both memory and speed)
> appeared to be
> absolutely unsatisfactory without them - that was the main reason I've
> rewritten mod_archive to switch it from mnesia database to SQL-based
> storage, see the detailed description here:
> However, again - I'm not mnesia guru, probably I might just have
> something ...
>> Let's say I have 100K muc rooms to page through, 50 by 50, will that
>> work or will the server memory consumption be too high ?
> While I cannot directly extrapolate archiving performance on mnesia
> database to your scenario, I doubt it will work OK - archiving
> didn't even
> with much smaller database size.
> Good luck! Alexander
> ejabberd mailing list
> ejabberd at jabber.ru
More information about the ejabberd