Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
None
-
Normal
Description
The SplitCallable.call method in AbstractColumnFamilyInputFormat has the following code for building ColumnFamilySplits:
for (TokenRange subSplit : subSplits.keySet()) { List<TokenRange> ranges = subSplit.unwrap(); for (TokenRange subrange : ranges) { ColumnFamilySplit split = new ColumnFamilySplit( subrange.getStart().toString().substring(2), subrange.getEnd().toString().substring(2), subSplits.get(subSplit), endpoints); logger.debug("adding {}", split); splits.add(split); } }
The subrange.getStart().toString().substring(2) works for the OrderPreservingPartitioner because the toString for the OPPToken in the java driver returns a hex value preceded by 0x. It doesn't work for the Murmur3Partitioner because the toString for the M3PToken returns Long.toString.
As a result the tokens lose their first 2 digits.