-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.hbase.org/r/76/
-----------------------------------------------------------

(Updated 2010-05-28 16:02:44.219338)


Review request for hbase.


Changes
-------

The remaining issues and some resolutions:

ReplicationSink.java
- I think it would be good to document the fact that this method will typically 
be called from another thread than the thread that executes `run' so that other 
people reading the code will quickly get a good grasp of what are the 
concurrency / locking requirements.

I chatted with Benoit on this issue, the problem with ReplicationSink at the 
moment is it's a mix of two solutions: sync and async. It's sync'ed because the 
thread that writes the log file has to wait for the ReplicationSink to apply 
it… but instead it could work like the ReplicationSource and leave it up to 
ZK-based management of log files. It currently work as is, but it's not 
efficient. I can fix this in the scope of this jira, which is still named 
"Handle 10min+ network partitions between clusters", or in a later one. 

- So Delete operations are "unbuffered" unlike Put operations, which you 
"buffer" in the `puts' list.  Does that mean that a Delete can be executed 
before the Put that was creating the data in the first place, and that the 
Delete will fail first and the Put will survive second?

Created a test that inserts 2 rows, deletes the second one, and adds two more. 
I expect to see the row as deleted, and it works (yeah!). Included in this patch

// Should we log rejected edits in a file for replay?
- I vote yes

This will be in HBASE-2626.

ReplicationSource.java
- This `try' block is massive, would it be possible to refactor it using a 
private method to make the code a bit more readable?

Did some refactoring, but still not satisfied.


Summary
-------

This is HBASE-2223 AKA Replication 2.0, it is currently only a "preview patch" 
as it's pretty much feature complete, works on a cluster, has unit tests and 
whatnot, but it could use a lot more testing and cleaning and ideas from others.


This addresses bug HBASE-2223.
    http://issues.apache.org/jira/browse/HBASE-2223


Diffs (updated)
-----

  bin/replication/add_peer.rb PRE-CREATION 
  bin/replication/copy_tables_desc.rb PRE-CREATION 
  pom.xml 0a009cf 
  src/main/java/org/apache/hadoop/hbase/HConstants.java 13aff26 
  src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 4cbe52a 
  src/main/java/org/apache/hadoop/hbase/master/ServerManager.java a197b8f 
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b5ff43a 
  src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java 12a3cd8 
  src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogKey.java 7c1184c 
  
src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeperHelper.java
 PRE-CREATION 
  
src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
 PRE-CREATION 
  src/main/java/org/apache/hadoop/hbase/replication/package.html PRE-CREATION 
  
src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
 PRE-CREATION 
  
src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
 PRE-CREATION 
  
src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java
 PRE-CREATION 
  
src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
 PRE-CREATION 
  src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java ed8709f 
  src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java 
PRE-CREATION 
  src/test/java/org/apache/hadoop/hbase/replication/TestReplication.java 
PRE-CREATION 
  src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java 
PRE-CREATION 
  
src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
 PRE-CREATION 
  
src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
 PRE-CREATION 

Diff: http://review.hbase.org/r/76/diff


Testing
-------


Thanks,

Jean-Daniel

Reply via email to