Hi,

We have set up Phoenix with this configuration:

   - Multiple clusters replicating to each other
   - Replication set up for each table (main "0" CF and local index "L#0"
   CF)

As I understand, local index rowkeys are pre-pended by the region start
value of the corresponding data rowkey to ensure co-location in the same
region.  However, if region splits are configured to occur automatically,
it may be possible for different clusters to end up having different split
points.  Even if auto-splitting is disabled and splits are done manually,
there is a period of time when some clusters have different region split
points than other clusters (because region splits are performed
cluster-by-cluster and not coordinated).  Therefore, it is possible for
local index rows to be replicated to a destination and end up in the wrong
region (i.e. whose rowkey prefix does not match the region start value of
the corresponding data row, and is not co-located).

Is this something that Phoenix should handle more gracefully, e.g. hook
into the replication event processor, and translate the local index rowkeys
to be correctly co-located in the same region as the data row?  Otherwise,
I'm not sure how one can reliably replicate local indexes among clusters
with different split points.

Thanks,
-Hieu

Reply via email to