Make sense. Thank you. 张铎(Duo Zhang) <[email protected]> 于2023年2月15日周三 18:24写道:
> We could discuss how to implement BookKeeper based WAL in the future. > > For me, I would like to abstract at a higher level, as we do not need to > have a 'file' when using BookKeeper. But this requires changing the > replication abstraction too. > > Thanks. > > 唐天航 <[email protected]> 于2023年2月15日周三 11:42写道: > > > Can we keep these configs and add a new one for the replication reader? > > > > As @Andrew said, One of the things we are doing is using BookKeeper for > WAL > > storage. This depends on the configuration above. Although we are > > developing based on branch-1, and it is too early to talk about joining > the > > community, I'm not sure what the attitude of the community is, whether it > > is willing to accept implementations based on other storage in the > future. > > > > Thanks. > > > > > > 张铎(Duo Zhang) <[email protected]> 于2023年2月14日周二 21:20写道: > > > > > Thanks Andrew for the feedback. > > > > > > If no other concerns, I will start the refactoring work and deprecated > > > these two configs. > > > > > > Thanks. > > > > > > Andrew Purtell <[email protected]> 于2023年2月10日周五 23:01写道: > > > > > > > As you point out these configuration settings were introduced when we > > > > migrated from SequenceFile based WALs to the protobuf format. We > needed > > > to > > > > give users a way to manually migrate, although, arguably, an auto > > > migration > > > > would have been better. > > > > > > > > In theory these settings allow users to implement their own WAL > readers > > > > and writers. However I do not believe users will do this. The WAL is > > > > critical for performance and correctness. If anyone is contemplating > > such > > > > wizard level changes they can patch the code themselves. It’s fine to > > > > document these settings as deprecated for sure, and I think ok also > to > > > > claim them unsupported and ignored. > > > > > > > > > > > > > > On Feb 10, 2023, at 3:41 AM, 张铎 <[email protected]> wrote: > > > > > > > > > > While discussing how to deal with the problem in HBASE-27621, we > > > > proposed > > > > > to introduce two types of WAL readers, one for WAL splitting, and > the > > > > other > > > > > for WAL replication, as replication needs to tail the WAL file > which > > is > > > > > currently being written, so the logic is much more complicated. We > do > > > not > > > > > want to affect WAL splitting logic and performance while tweaking > the > > > > > replication related things, as all HBase users need WAL splitting > but > > > not > > > > > everyone needs replication. > > > > > > > > > > But when reviewing the related code, I found that we have two > > > > > configurations for specifying the WAL reader class and WAL write > > class, > > > > > which indicates that we could only have one implementation for the > > WAL > > > > > reader. They are 'hbase.regionserver.hlog.reader.impl' and > > > > > 'hbase.regionserver.hlog.writer.impl'. > > > > > > > > > > We mentioned these two configurations several times in our ref > guide. > > > > > > > > > > HBase 2.0+ can no longer read Sequence File based WAL file. > > > > > > > > > > HBase can no longer read the deprecated WAL files written in the > > Apache > > > > >> Hadoop Sequence File format. The > hbase.regionserver.hlog.reader.impl > > > and > > > > >> hbase.regionserver.hlog.writer.impl configuration entries should > be > > > set > > > > to > > > > >> use the Protobuf based WAL reader / writer classes. This > > > implementation > > > > has > > > > >> been the default since HBase 0.96, so legacy WAL files should not > > be a > > > > >> concern for most downstream users. > > > > > > > > > > > > > > > Configure WAL encryption. > > > > > > > > > > Configure WAL encryption in every RegionServer’s hbase-site.xml, by > > > > setting > > > > >> the following properties. You can include these in the HMaster’s > > > > >> hbase-site.xml as well, but the HMaster does not have a WAL and > will > > > not > > > > >> use them. > > > > >> <property> > > > > >> <name>hbase.regionserver.hlog.reader.impl</name> > > > > >> > > > > >> > > > > > > > > > > <value>org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader</value> > > > > >> </property> > > > > >> <property> > > > > >> <name>hbase.regionserver.hlog.writer.impl</name> > > > > >> > > > > >> > > > > > > > > > > <value>org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter</value> > > > > >> </property> > > > > >> <property> > > > > >> <name>hbase.regionserver.wal.encryption</name> > > > > >> <value>true</value> > > > > >> </property> > > > > > > > > > > > > > > > So in fact, do not consider encryption, the configurations are > > useless > > > as > > > > > we do not support reading sequence file format WAL any more, the > only > > > > valid > > > > > options are protobuf based reader and write. And for security, I > > think > > > > the > > > > > configuration is redundant as if encryption is enabled, we should > use > > > > > SecureProtobufLogWriter for writing, no matter what the > configuration > > > > value > > > > > is. And for readers, I do not think we should use a configuration > to > > > > > specify the implementation, we should detect whether the file is > > > > encrypted > > > > > and choose a secure or normal reader to read the file. > > > > > > > > > > So here, I propose we just deprecated these two configurations > > because > > > > they > > > > > are useless now. > > > > > > > > > > Thanks. > > > > > > > > > >
