Comparing Cells in hbase2 takes almost 3x the CPU.
In hbase1, its a keyValue backed by a byte array caching a few important values.. In hbase2, its a NoTagByteBufferChunkKeyValue deserializing the row/family/qualifier lengths repeatedly.
I tried making a purposed comparator – one that was not generic – and it seemed to have a nicer profile coming close to hbase1 in percentage used (I'll post graphs) when I ran it in my perpetual memstore filler (See scripts attached to
HBASE-20483). It doesn't work when I try to run it on cluster. Let me run unit tests to see if it can figure what I have wrong.