Hi Adam, The reason you cannot transfer as you describe is that if the controller fails while actively updating a database, it is not safe for another controller to pick up updates where the failed controller left off. First, the other controller would not know the exact state of requests and hence where to start replaying the recovery log. Second, there are interleavings of transactions such that if you started replay you might end up with different results. For example, the WHERE clause on an UPDATE statement could select different rows. How this happens differs between DBMS implementations according to how faithfully they implement MVCC.
As a result it is only safe to transfer backends between controllers when they are disabled, which is to say that the backend is off-line and has an associated checkpoint from which it is safe to recover. There is in fact a transfer command available in the console, which allows you to do this. There are other conceivable designs that could allow recovery to pick up from any point in the log but they have drawbacks for applications, such as the fact that you might not be able to use transactions or have to accept that transactions would be single-threaded. Cheers, Robert On 7/8/08 11:29 AM, "Adam Purkiss" <[EMAIL PROTECTED]> wrote: Ok so I got clustering up with appia in the end as JGroups failed to be useful with the error messages. My next question though is why can't you share backends. Being unable to share backends means that I loose some of the failover required. For example If C1 talks to DB1 and C2 talks to DB2 and DB2 and C1 go down C2 cannot talk to DB1 and so therefore your server goes down. ________________________________ <http:///><http:///> ________________________________ -- Robert Hodges, CTO, Continuent, Inc. Email: [EMAIL PROTECTED] Mobile: +1-510-501-3728 Skype: hodgesrm
_______________________________________________ Sequoia mailing list [email protected] https://forge.continuent.org/mailman/listinfo/sequoia
