Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
Reviewed
-
Description
WAL splitting and replication has completely different requirements on WAL reader, the latter one is much comlicated as it wants to tail a WAL file which is currently being written.
I think split them into two classes is better here.
But we exposes two configurations out
'hbase.regionserver.hlog.reader.impl'
'hbase.regionserver.hlog.writer.impl'
which indicates that we only have one implementation for wal reader.
These two configurations are inrtoduced in 0.96, for reading the pre 0.94 sequence file format WAL file. And starting from 2.0.0, we have already dropped the support of reading sequence file format WAL file, so I think the configurations are useless now.
Now we stil require users to specify SecureProtobufLogReader and SecureProtobufLogWriter when enable WAL encryption, but actually they are both the only choice, so just use 'hbase.regionserver.wal.encryption' to determine whether we need to use SecureProtobufLogWriter to write WAL. And for reading, I do not think we should rely on the configuration, we should detect whether the WAL file itself is encrypted(I believe we have already done this in SecureProtobufLogReader.readHeader.
So in general, I prefer we just mark these two configurations deprecated and do not use them in our code base, so we can have different Reader implementations for WAL splitting and replication.
Attachments
Issue Links
- breaks
-
HBASE-27709 Fix UT failures after HBASE-27632 goes in
- Resolved
- contains
-
HBASE-27677 ReplaySyncReplicationWALCallable should consider WAL files which are not closed cleanly
- Resolved
- is related to
-
HBASE-27621 Also clear the Dictionary when resetting when reading compressed WAL file
- Resolved
- relates to
-
HBASE-27702 Remove 'hbase.regionserver.hlog.writer.impl' config
- Resolved
-
HBASE-27722 Update documentation about how to enable encryption on WAL
- Resolved
- links to