Hi,
I have seen some discussion related to pushing/loading coprocessors in the 
regions dynamically from the SQL client side when Trafodion is started or when 
a table is opened.  The motivation here is to be able to install Trafodion 
without having to stop/restart HBase where a customer might have a previous 
HBase installation.

I want to point out that Trafodion uses a TrxRegionEndpoint and a 
TrxRegionObserver coprocessor.  These two coprocessors work in tandem to ensure 
region split, region rebalance, and region recovery are possible for 
multi-table transactions.  These two coprocessors ensure data consistency and 
form the basis of our ACID transaction implementation.  We currently mandate 
that these two coprocessors have entries in the hbase-site.xml file.

While I have no problem loading other coprocessors dynamically, I do not think 
it is a good idea to load these two on the fly without stopping/restarting 
HBase, at least not in the current design.

The issue is that other components in the DTM may have code changes that assume 
the corresponding versions of these coprocessors are loaded and running.  If 
the DTM components are not compatible with the coprocessors, unpredictable 
results could occur, including system hangs, process failures, and data 
corruption.  Furthermore, if the coprocessors are loaded dynamically and the 
entries are not in the hbase-site.xml file, then Trafodion recovery would 
effectively be abandoned before the regions are started and there would be no 
way to correct the inconsistencies short of dropping and recreating the tables.

So the 2 main points I hope the readers of this discussion will take away based 
on the current Trafodion design are:
1) The TrxRegionEndpoint and TrxRegionObserver coprocessors must remain in the 
hbase-site.xml file to ensure recovery occurs before the regions are started 
and open for HBase activity.
2) Trafodion and the above coprocessors must run compatible versions of 
software to ensure proper function.  These two coprocessors are not static, so 
it is likely that if Trafodion code has changed, so have the coprocessors.

Thanks,
Sean

Reply via email to