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

Ted Yu edited comment on HBASE-21246 at 11/2/18 12:27 AM:
----------------------------------------------------------

wal-providers.png is diagram for class hierarchy between WALProvider interface 
and implementing WAL Provider classes.

wal-factory-providers.png is diagram involving WALProvider related classes and 
WALFactory class. It also shows WALIdentity (and FSWALIdentity) which replaces 
Path in the existing WAL APIs.

In the center of the upper half of the diagram is WALFactory whose 
functionality is to create WALProvider instances.
WALSplitter uses the WALProvider instance created by WALFactory to access WAL.
WALSplitter previously refers to the file being split using FileStatus. Now it 
uses WALIdentity to refer to the entity being split.
Below WALIdentity is FSWALIdentity which implements WALIdentity and represents 
distributed FileSystem based identity (with Path field).
To the left of WALFactory is the WALProvider interface. The interface is 
implemented by the following classes:
* RegionGroupingProvider
* AbstractFSWALProvider
* SyncReplicationWALProvider
* DisabledWALProvider

The AsyncFSWALProvider and FSHLogProvider classes build on top of (extends) 
AbstractFSWALProvider.

The refactored WAL API, as shown in these diagrams, illustrate how we abstract 
from distributed FileSystem-centric concepts.


was (Author: yuzhih...@gmail.com):
wal-providers.png is diagram for class hierarchy between WALProvider interface 
and implementing WAL Provider classes.

wal-factory-providers.png is diagram involving WALProvider related classes and 
WALFactory class. It also shows WALIdentity (and FSWALIdentity) which replaces 
Path in the existing WAL APIs.

In the center of the upper half of the diagram is WALFactory whose 
functionality is to create WALProvider instances.
WALSplitter uses the WALProvider instance created by WALFactory to access WAL.
WALSplitter previously refers to the file being split using FileStatus. Now it 
uses WALIdentity to refer to the entity being split.
Below WALIdentity is FSWALIdentity which implements WALIdentity and represents 
distributed FileSystem based identity (with Path field).
To the left of WALFactory is the WALProvider interface. The interface is 
implemented by the following classes:
* RegionGroupingProvider
* AbstractFSWALProvider
* SyncReplicationWALProvider
* DisabledWALProvider

The AsyncFSWALProvider class builds on top of (extends) AbstractFSWALProvider.

The refactored WAL API, as shown in these diagrams, illustrate how we abstract 
from distributed FileSystem-centric concepts.

> Introduce WALIdentity interface
> -------------------------------
>
>                 Key: HBASE-21246
>                 URL: https://issues.apache.org/jira/browse/HBASE-21246
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Major
>             Fix For: HBASE-20952
>
>         Attachments: 21246.003.patch, 21246.20.txt, 21246.21.txt, 
> 21246.23.txt, 21246.HBASE-20952.001.patch, 21246.HBASE-20952.002.patch, 
> 21246.HBASE-20952.004.patch, 21246.HBASE-20952.005.patch, 
> 21246.HBASE-20952.007.patch, 21246.HBASE-20952.008.patch, 
> wal-factory-providers.png, wal-providers.png
>
>
> We are introducing WALIdentity interface so that the WAL representation can 
> be decoupled from distributed filesystem.
> The interface provides getName method whose return value can represent 
> filename in distributed filesystem environment or, the name of the stream 
> when the WAL is backed by log stream.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to