You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by Teruyoshi Zenmyo <ze...@cyberagent.co.jp> on 2011/12/26 13:35:16 UTC

Deletes are not replicated correctly

Hi,

We have an issue on HBase cluster replication that delete operations
between stop_replication and start_replication are not replicated correctly.
We are using CDH3u2 and testing the cluster replication on coexisting
clusters (each has 1 master and 5 regionservers).

Example:
hbase(main):001:0> stop_replication
hbase(main):002:0> put 'test', 'r1', 't:c1', 1
hbase(main):003:0> put 'test', 'r2', 't:', 2
hbase(main):004:0> delete 'test', 'r1', 't:c1'
hbase(main):005:0> delete 'test', 'r2', 't:'
hbase(main):006:0> start_replication

After executing above commands in master cluster's hbase shell,
scan returns empty results.

hbase(main):007:0> scan 'test'
ROW		   COLUMN+CELL
0 row(s) in 0.0180 seconds

However, we have one cell in our slave cluster

hbase(main):001:0> scan 'test'
ROW		   COLUMN+CELL
r1		   column=t:c1, timestamp=1324893943268, value=1
1 row(s) in 0.3580 seconds

In addition, we can resolve the issue either one of the below:
1. Modifying ReplicationSink.replicateEntries() not to batch puts
(replicate wal one by one).
2. Changing the delete method in ReplicationSink.replicateEntries() from
Delete.deleteColumn() to Delete.deleteColumns().

However, I'm not sure these modifications are correct and does not
affect other parts.

We appreciate any comments on this issue.

Regards


-- 
Teruyoshi Zenmyo <ze...@cyberagent.co.jp>