[ 
https://issues.apache.org/jira/browse/HBASE-10378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14216706#comment-14216706
 ] 

Hudson commented on HBASE-10378:
--------------------------------

FAILURE: Integrated in HBase-TRUNK #5786 (See 
[https://builds.apache.org/job/HBase-TRUNK/5786/])
HBASE-10378 Refactor write-ahead-log implementation (stack: rev 
f5e05eb836a807e418ebcf432fb0f481b40277ac)
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogSplitter.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DefaultWALProvider.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALInputFormat.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestWALRecordReader.java
* 
hbase-hadoop-compat/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestProtobufLog.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALMethods.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALKey.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationWALReaderManager.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestDefaultWALProviderWithHLogKey.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFiltering.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/InstrumentedLogWriter.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/wal/FaultyFSLog.java
* hbase-shell/src/main/ruby/shell/commands/wal_roll.rb
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALPrettyPrinter.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestDefaultWALProvider.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WAL.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFactory.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/WALSplitterHandler.java
* 
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplitCompressed.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/io/WALLink.java
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALUtil.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java


> Divide HLog interface into User and Implementor specific interfaces
> -------------------------------------------------------------------
>
>                 Key: HBASE-10378
>                 URL: https://issues.apache.org/jira/browse/HBASE-10378
>             Project: HBase
>          Issue Type: Sub-task
>          Components: wal
>            Reporter: Himanshu Vashishtha
>            Assignee: Sean Busbey
>             Fix For: 2.0.0
>
>         Attachments: 10378-1.patch, 10378-2.patch, HBASE-10378.3.patch.txt, 
> HBASE-10378.4.patch.txt, HBASE-10378.5.patch.txt
>
>
> HBASE-5937 introduces the HLog interface as a first step to support multiple 
> WAL implementations. This interface is a good start, but has some 
> limitations/drawbacks in its current state, such as:
> 1) There is no clear distinction b/w User and Implementor APIs, and it 
> provides APIs both for WAL users (append, sync, etc) and also WAL 
> implementors (Reader/Writer interfaces, etc). There are APIs which are very 
> much implementation specific (getFileNum, etc) and a user such as a 
> RegionServer shouldn't know about it.
> 2) There are about 14 methods in FSHLog which are not present in HLog 
> interface but are used at several places in the unit test code. These tests 
> typecast HLog to FSHLog, which makes it very difficult to test multiple WAL 
> implementations without doing some ugly checks.
> I'd like to propose some changes in HLog interface that would ease the multi 
> WAL story:
> 1) Have two interfaces WAL and WALService. WAL provides APIs for 
> implementors. WALService provides APIs for users (such as RegionServer).
> 2) A skeleton implementation of the above two interface as the base class for 
> other WAL implementations (AbstractWAL). It provides required fields for all 
> subclasses (fs, conf, log dir, etc). Make a minimal set of test only methods 
> and add this set in AbstractWAL.
> 3) HLogFactory returns a WALService reference when creating a WAL instance; 
> if a user need to access impl specific APIs (there are unit tests which get 
> WAL from a HRegionServer and then call impl specific APIs), use AbstractWAL 
> type casting,
> 4) Make TestHLog abstract and let all implementors provide their respective 
> test class which extends TestHLog (TestFSHLog, for example).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to