JBoss Community

Re: Remote txinflow: XID changes

created by Jonathan Halliday in JBoss Transactions Development - View the full discussion

> But I'm not sure what you mean by "orphans" exactly - aren't all branches normally recovered by the root?  If so, does the subordinate path actually matter?

 

An orphan is a prepared RM whose immediate parent has died without writing a log. Under presumed abort it has got to be rolled back. Only the immediate parent can do that - NOT the root (unless they are the same). The reason is simple: only the immediate parent can recognize the orphan status, as it's a function of the absence of a log record at that location. Also, in some deployments only the immediate parent may have the driver and connection details to reach that orphan - they are not guaranteed to be available at the root.  Part of the reason that nodes need a uniq id is that encoding it into the Xid allows them to recognize their own orphaned branches and likewise avoid tampering with ones they don't own.  You can actually eliminate the need for globally uniq id by writing to the log twice - once before and once after preparing the RM, in which case you don't get orphans any more. The cure is worse than the disease though - those log writes to disk drop your performance to unacceptable levels.

Reply to this message by going to Community

Start a new discussion in JBoss Transactions Development at Community