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.
>

Reply via email to