Details
Description
When a row has more than one DeleteFamily markers, Import tool is not restoring all DeleteFamily markers.
Scenario: Insert entries into hbase in below order
Put Row1 with Value-A
Delete Row1 with DeleteFamily Marker
Put Row1 with Value-B
Delete Row1 with DeleteFamily Marker
Using Export tool export this data and Import it into another table, you will see below entries
Delete Row1 with DeleteFamily Marker
Put Row1 with Value-B
Put Row1 with Value-A
One DeleteFamily marker is missing here... In Import tool, Importer.writeResult() method we are batching all deletes into a single Delete request and pushing into hbase. Here we are pushing only one delete family marker into hbase table.
I tried same with normal HTable.delete command also.
If you pass multiple DeleteFamily markers of a row in a single Delete request to hbase then table is maintaining only one.
If that is the expected behavior of hbase then we should change logic in Import tool to push DeleteFamily markers individually one by one.