Mnesia and additional indexes: a cautionary tale

Ulf Wiger (AL/EAB) ulf.wiger@REDACTED
Thu Mar 30 11:23:31 CEST 2006

The indexes in rdbms are first-class tables, and all index updates are
performed within a transaction context. Thus, solving the partitioned
network problem will be done in roughly the same way (I assume you mean
setting master nodes?)
There is (more or less) also a rebuild_indexes(Tab) function, using a
mnesia_recover. It's mainly used for adding indexes to existing tables
and populating them within the scope of a schema transaction.
One can also, of course, break the abstraction and simply clobber the
rdbms indexes and rebuild them by hand (by bypassing the wrapper
functions in rdbms). I could make this a bit simpler and clearly
documented, if it's deemed necessary.
Ulf W


	From: chandru [mailto:chandrashekhar.mullaparthi@REDACTED] 
	Sent: den 30 mars 2006 10:48
	To: Ulf Wiger (AL/EAB)
	Cc: erlang-questions@REDACTED
	Subject: Re: Mnesia and additional indexes: a cautionary tale
	On 30/03/06, Ulf Wiger (AL/EAB) <ulf.wiger@REDACTED> wrote: 

		Enter the 'rdbms' contrib...
		I see a couple of traits of the additional indexing
		support in rdbms that could help in this
		particular situation:
		- You can have disc_copy indexes, which are not rebuilt 
		  every time mnesia is restarted

	Is the case where mnesia recovers from a partitioned network
taken care of? The index tables will have to be rebuilt in this case.
I'm sure you would've but I thought I'll ask anyway. 
	PS: haven't used rdbms (yet)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the erlang-questions mailing list