HBASE-24483 Add repeated prefix logging for MultipleColumnPrefixFilter (#1822)

Signed-off-by: clarax
Signed-off-by: Viraj Jasani <vjasani@apache.org>
This commit is contained in:
bsglz 2020-06-08 18:48:33 +08:00 committed by GitHub
parent fbf033735b
commit 9d0baa91b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 3 deletions

View File

@ -32,6 +32,8 @@ import org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferExce
import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
import org.apache.hadoop.hbase.shaded.protobuf.generated.FilterProtos;
import org.apache.hadoop.hbase.util.Bytes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* This filter is used for selecting only those keys with columns that matches
@ -40,15 +42,18 @@ import org.apache.hadoop.hbase.util.Bytes;
*/
@InterfaceAudience.Public
public class MultipleColumnPrefixFilter extends FilterBase {
private static final Logger LOG = LoggerFactory.getLogger(MultipleColumnPrefixFilter.class);
protected byte [] hint = null;
protected TreeSet<byte []> sortedPrefixes = createTreeSet();
private final static int MAX_LOG_PREFIXES = 5;
public MultipleColumnPrefixFilter(final byte [][] prefixes) {
if (prefixes != null) {
for (int i = 0; i < prefixes.length; i++) {
if (!sortedPrefixes.add(prefixes[i]))
throw new IllegalArgumentException ("prefixes must be distinct");
for (byte[] prefix : prefixes) {
if (!sortedPrefixes.add(prefix)) {
LOG.error("prefix {} is repeated", Bytes.toString(prefix));
throw new IllegalArgumentException("prefixes must be distinct");
}
}
}
}