[ 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:04 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 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. 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. 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)