Mnesia transform_table with multiple disc_copies nodes
Fredrik Thulin
ft@REDACTED
Thu Dec 22 08:23:42 CET 2005
On Wednesday 21 December 2005 16.36, Fredrik Thulin wrote:
> On Wednesday 21 December 2005 16.29, Dan Gudmundsson wrote:
> > Hmm
> >
> > The fun have to be known on every node, load the module
> > on every node (exact the same version on all nodes).
>
> Thanks for your fsat response, as always.
>
> How do I load the (changed) code then without using hot code swap of
> running code in all my servers?
>
> At the first node I upgrade to say a new version of my software,
> which requires a transform_table, I get this error :
>
> {aborted,{not_active,"All replicas on diskfull nodes are not active
> yet",
> regexproute,
> ['incomingproxy@REDACTED']}}
>
> ... or am I missing something else?
This issue might need a bit more explaining from my side.
I thought it obvious that I would want to do the transform_table in the
startup process of my application running on the nodes with the
disc_copies, but later realised that perhaps it wasn't so obvious.
I then figure that my two options to introduce a change in the table
layout is either to
1) (hot) load a new version of my table_update module into all servers
and then invoke the transformation function in some way. I guess
this is what I would get if I used proper OTP release handling.
2) stop all my nodes (during a service window), upgrading them and
then starting them again.
The second alternative is much more within reach for me at the moment,
but does lead to one of two show-stoppers. Either the new code is not
available on all the nodes, or the update can't be performed because
not all nodes are running. My question is therefor if there is a way
around these show-stoppers?
/Fredrik
More information about the erlang-questions
mailing list