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

Reply via email to