HBASE-23936 : Thrift support for Online SlowLog APIs (#1317)

Signed-off-by: ramkrish86 <ramkrishna@apache.org>
This commit is contained in:
Viraj Jasani 2020-03-23 23:29:55 +05:30
parent f16cf1dd8d
commit 94c06bd8f8
No known key found for this signature in database
GPG Key ID: E906DFF511D3E5DB
42 changed files with 5158 additions and 74 deletions

View File

@ -51,6 +51,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
@ -59,10 +60,13 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.DoNotRetryIOException;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.RegionLocator;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.SlowLogQueryFilter;
import org.apache.hadoop.hbase.client.SlowLogRecord;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.security.UserProvider;
@ -82,6 +86,9 @@ import org.apache.hadoop.hbase.thrift2.generated.TPut;
import org.apache.hadoop.hbase.thrift2.generated.TResult;
import org.apache.hadoop.hbase.thrift2.generated.TRowMutations;
import org.apache.hadoop.hbase.thrift2.generated.TScan;
import org.apache.hadoop.hbase.thrift2.generated.TServerName;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogQueryFilter;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogRecord;
import org.apache.hadoop.hbase.thrift2.generated.TTableDescriptor;
import org.apache.hadoop.hbase.thrift2.generated.TTableName;
import org.apache.hadoop.hbase.thrift2.generated.TThriftServerType;
@ -818,6 +825,32 @@ public class ThriftHBaseServiceHandler extends HBaseServiceHandler implements TH
return TThriftServerType.TWO;
}
@Override
public List<TSlowLogRecord> getSlowLogResponses(Set<TServerName> tServerNames,
TSlowLogQueryFilter tSlowLogQueryFilter) throws TIOError, TException {
try {
Set<ServerName> serverNames = ThriftUtilities.getServerNamesFromThrift(tServerNames);
SlowLogQueryFilter slowLogQueryFilter =
ThriftUtilities.getSlowLogQueryFromThrift(tSlowLogQueryFilter);
List<SlowLogRecord> slowLogRecords =
connectionCache.getAdmin().getSlowLogResponses(serverNames, slowLogQueryFilter);
return ThriftUtilities.getSlowLogRecordsFromHBase(slowLogRecords);
} catch (IOException e) {
throw getTIOError(e);
}
}
@Override
public List<Boolean> clearSlowLogResponses(Set<TServerName> tServerNames)
throws TIOError, TException {
Set<ServerName> serverNames = ThriftUtilities.getServerNamesFromThrift(tServerNames);
try {
return connectionCache.getAdmin().clearSlowLogResponses(serverNames);
} catch (IOException e) {
throw getTIOError(e);
}
}
@Override
public List<TNamespaceDescriptor> listNamespaceDescriptors() throws TIOError, TException {
try {

View File

@ -23,9 +23,12 @@ import static org.apache.hadoop.hbase.util.Bytes.getBytes;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.NavigableSet;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellBuilderFactory;
@ -58,6 +61,8 @@ import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.RowMutations;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Scan.ReadType;
import org.apache.hadoop.hbase.client.SlowLogQueryFilter;
import org.apache.hadoop.hbase.client.SlowLogRecord;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
@ -97,10 +102,13 @@ import org.apache.hadoop.hbase.thrift2.generated.TResult;
import org.apache.hadoop.hbase.thrift2.generated.TRowMutations;
import org.apache.hadoop.hbase.thrift2.generated.TScan;
import org.apache.hadoop.hbase.thrift2.generated.TServerName;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogQueryFilter;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogRecord;
import org.apache.hadoop.hbase.thrift2.generated.TTableDescriptor;
import org.apache.hadoop.hbase.thrift2.generated.TTableName;
import org.apache.hadoop.hbase.thrift2.generated.TTimeRange;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hbase.thirdparty.org.apache.commons.collections4.CollectionUtils;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.hbase.thirdparty.org.apache.commons.collections4.MapUtils;
@ -1467,4 +1475,101 @@ public class ThriftUtilities {
return out;
}
public static Set<TServerName> getServerNamesFromHBase(Set<ServerName> serverNames) {
if (CollectionUtils.isEmpty(serverNames)) {
return Collections.emptySet();
}
return serverNames.stream().map(serverName -> {
TServerName tServerName = new TServerName();
tServerName.setHostName(serverName.getHostname());
tServerName.setPort(serverName.getPort());
tServerName.setStartCode(serverName.getStartcode());
return tServerName;
}).collect(Collectors.toSet());
}
public static Set<ServerName> getServerNamesFromThrift(Set<TServerName> tServerNames) {
if (CollectionUtils.isEmpty(tServerNames)) {
return Collections.emptySet();
}
return tServerNames.stream().map(tServerName ->
ServerName.valueOf(tServerName.getHostName(),
tServerName.getPort(),
tServerName.getStartCode()))
.collect(Collectors.toSet());
}
public static TSlowLogQueryFilter getSlowLogQueryFromHBase(
SlowLogQueryFilter slowLogQueryFilter) {
TSlowLogQueryFilter tSlowLogQueryFilter = new TSlowLogQueryFilter();
tSlowLogQueryFilter.setRegionName(slowLogQueryFilter.getRegionName());
tSlowLogQueryFilter.setClientAddress(slowLogQueryFilter.getClientAddress());
tSlowLogQueryFilter.setTableName(slowLogQueryFilter.getTableName());
tSlowLogQueryFilter.setUserName(slowLogQueryFilter.getUserName());
tSlowLogQueryFilter.setLimit(slowLogQueryFilter.getLimit());
return tSlowLogQueryFilter;
}
public static SlowLogQueryFilter getSlowLogQueryFromThrift(
TSlowLogQueryFilter tSlowLogQueryFilter) {
SlowLogQueryFilter slowLogQueryFilter = new SlowLogQueryFilter();
slowLogQueryFilter.setRegionName(tSlowLogQueryFilter.getRegionName());
slowLogQueryFilter.setClientAddress(tSlowLogQueryFilter.getClientAddress());
slowLogQueryFilter.setTableName(tSlowLogQueryFilter.getTableName());
slowLogQueryFilter.setUserName(tSlowLogQueryFilter.getUserName());
slowLogQueryFilter.setLimit(tSlowLogQueryFilter.getLimit());
return slowLogQueryFilter;
}
public static List<TSlowLogRecord> getSlowLogRecordsFromHBase(
List<SlowLogRecord> slowLogRecords) {
if (CollectionUtils.isEmpty(slowLogRecords)) {
return Collections.emptyList();
}
return slowLogRecords.stream()
.map(slowLogRecord -> {
TSlowLogRecord tSlowLogRecord = new TSlowLogRecord();
tSlowLogRecord.setCallDetails(slowLogRecord.getCallDetails());
tSlowLogRecord.setClientAddress(slowLogRecord.getClientAddress());
tSlowLogRecord.setMethodName(slowLogRecord.getMethodName());
tSlowLogRecord.setMultiGetsCount(slowLogRecord.getMultiGetsCount());
tSlowLogRecord.setMultiMutationsCount(slowLogRecord.getMultiMutationsCount());
tSlowLogRecord.setMultiServiceCalls(slowLogRecord.getMultiServiceCalls());
tSlowLogRecord.setParam(slowLogRecord.getParam());
tSlowLogRecord.setProcessingTime(slowLogRecord.getProcessingTime());
tSlowLogRecord.setQueueTime(slowLogRecord.getQueueTime());
tSlowLogRecord.setRegionName(slowLogRecord.getRegionName());
tSlowLogRecord.setResponseSize(slowLogRecord.getResponseSize());
tSlowLogRecord.setServerClass(slowLogRecord.getServerClass());
tSlowLogRecord.setStartTime(slowLogRecord.getStartTime());
tSlowLogRecord.setUserName(slowLogRecord.getUserName());
return tSlowLogRecord;
}).collect(Collectors.toList());
}
public static List<SlowLogRecord> getSlowLogRecordsFromThrift(
List<TSlowLogRecord> tSlowLogRecords) {
if (CollectionUtils.isEmpty(tSlowLogRecords)) {
return Collections.emptyList();
}
return tSlowLogRecords.stream()
.map(tSlowLogRecord -> new SlowLogRecord.SlowLogRecordBuilder()
.setCallDetails(tSlowLogRecord.getCallDetails())
.setClientAddress(tSlowLogRecord.getClientAddress())
.setMethodName(tSlowLogRecord.getMethodName())
.setMultiGetsCount(tSlowLogRecord.getMultiGetsCount())
.setMultiMutationsCount(tSlowLogRecord.getMultiMutationsCount())
.setMultiServiceCalls(tSlowLogRecord.getMultiServiceCalls())
.setParam(tSlowLogRecord.getParam())
.setProcessingTime(tSlowLogRecord.getProcessingTime())
.setQueueTime(tSlowLogRecord.getQueueTime())
.setRegionName(tSlowLogRecord.getRegionName())
.setResponseSize(tSlowLogRecord.getResponseSize())
.setServerClass(tSlowLogRecord.getServerClass())
.setStartTime(tSlowLogRecord.getStartTime())
.setUserName(tSlowLogRecord.getUserName())
.build())
.collect(Collectors.toList());
}
}

View File

@ -68,6 +68,9 @@ import org.apache.hadoop.hbase.thrift2.ThriftUtilities;
import org.apache.hadoop.hbase.thrift2.generated.TColumnFamilyDescriptor;
import org.apache.hadoop.hbase.thrift2.generated.THBaseService;
import org.apache.hadoop.hbase.thrift2.generated.TNamespaceDescriptor;
import org.apache.hadoop.hbase.thrift2.generated.TServerName;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogQueryFilter;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogRecord;
import org.apache.hadoop.hbase.thrift2.generated.TTableDescriptor;
import org.apache.hadoop.hbase.thrift2.generated.TTableName;
import org.apache.hadoop.hbase.util.Bytes;
@ -1396,13 +1399,28 @@ public class ThriftAdmin implements Admin {
@Override
public List<SlowLogRecord> getSlowLogResponses(final Set<ServerName> serverNames,
final SlowLogQueryFilter slowLogQueryFilter) {
throw new NotImplementedException("getSlowLogResponses not supported in ThriftAdmin");
final SlowLogQueryFilter slowLogQueryFilter) throws IOException {
Set<TServerName> tServerNames = ThriftUtilities.getServerNamesFromHBase(serverNames);
TSlowLogQueryFilter tSlowLogQueryFilter =
ThriftUtilities.getSlowLogQueryFromHBase(slowLogQueryFilter);
try {
List<TSlowLogRecord> tSlowLogRecords =
client.getSlowLogResponses(tServerNames, tSlowLogQueryFilter);
return ThriftUtilities.getSlowLogRecordsFromThrift(tSlowLogRecords);
} catch (TException e) {
throw new IOException(e);
}
}
@Override
public List<Boolean> clearSlowLogResponses(final Set<ServerName> serverNames) {
throw new NotImplementedException("clearSlowLogsResponses not supported in ThriftAdmin");
public List<Boolean> clearSlowLogResponses(final Set<ServerName> serverNames)
throws IOException {
Set<TServerName> tServerNames = ThriftUtilities.getServerNamesFromHBase(serverNames);
try {
return client.clearSlowLogResponses(tServerNames);
} catch (TException e) {
throw new IOException(e);
}
}
@Override

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TAppend implements org.apache.thrift.TBase<TAppend, TAppend._Fields>, java.io.Serializable, Cloneable, Comparable<TAppend> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TAppend");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TAuthorization implements org.apache.thrift.TBase<TAuthorization, TAuthorization._Fields>, java.io.Serializable, Cloneable, Comparable<TAuthorization> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TAuthorization");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.regionserver.BloomType
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TBloomFilterType implements org.apache.thrift.TEnum {
/**
* Bloomfilters disabled

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TCellVisibility implements org.apache.thrift.TBase<TCellVisibility, TCellVisibility._Fields>, java.io.Serializable, Cloneable, Comparable<TCellVisibility> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TCellVisibility");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* in a HBase table by column family and optionally
* a column qualifier and timestamp
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TColumn implements org.apache.thrift.TBase<TColumn, TColumn._Fields>, java.io.Serializable, Cloneable, Comparable<TColumn> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TColumn");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.client.ColumnFamilyDescriptor
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TColumnFamilyDescriptor implements org.apache.thrift.TBase<TColumnFamilyDescriptor, TColumnFamilyDescriptor._Fields>, java.io.Serializable, Cloneable, Comparable<TColumnFamilyDescriptor> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TColumnFamilyDescriptor");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
/**
* Represents a single cell and the amount to increment it by
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TColumnIncrement implements org.apache.thrift.TBase<TColumnIncrement, TColumnIncrement._Fields>, java.io.Serializable, Cloneable, Comparable<TColumnIncrement> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TColumnIncrement");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
/**
* Represents a single cell and its value.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TColumnValue implements org.apache.thrift.TBase<TColumnValue, TColumnValue._Fields>, java.io.Serializable, Cloneable, Comparable<TColumnValue> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TColumnValue");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.filter.CompareFilter$CompareOp.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TCompareOp implements org.apache.thrift.TEnum {
LESS(0),
LESS_OR_EQUAL(1),

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.io.compress.Algorithm
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TCompressionAlgorithm implements org.apache.thrift.TEnum {
LZO(0),
GZ(1),

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* - STRONG means reads only from primary region
* - TIMELINE means reads might return values from secondary region replicas
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TConsistency implements org.apache.thrift.TEnum {
STRONG(1),
TIMELINE(2);

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.io.encoding.DataBlockEncoding
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TDataBlockEncoding implements org.apache.thrift.TEnum {
/**
* Disable data block encoding.

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -33,7 +33,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* by changing the durability. If you don't provide durability, it defaults to
* column family's default setting for durability.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TDelete implements org.apache.thrift.TBase<TDelete, TDelete._Fields>, java.io.Serializable, Cloneable, Comparable<TDelete> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TDelete");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* - DELETE_COLUMN means exactly one version will be removed,
* - DELETE_COLUMNS means previous versions will also be removed.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TDeleteType implements org.apache.thrift.TEnum {
DELETE_COLUMN(0),
DELETE_COLUMNS(1),

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -14,7 +14,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* - SYNC_WAL means write the Mutation to the WAL synchronously,
* - FSYNC_WAL means Write the Mutation to the WAL synchronously and force the entries to disk.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TDurability implements org.apache.thrift.TEnum {
USE_DEFAULT(0),
SKIP_WAL(1),

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -20,7 +20,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* If you specify a time range and a timestamp the range is ignored.
* Timestamps on TColumns are ignored.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TGet implements org.apache.thrift.TBase<TGet, TGet._Fields>, java.io.Serializable, Cloneable, Comparable<TGet> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TGet");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class THRegionInfo implements org.apache.thrift.TBase<THRegionInfo, THRegionInfo._Fields>, java.io.Serializable, Cloneable, Comparable<THRegionInfo> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("THRegionInfo");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class THRegionLocation implements org.apache.thrift.TBase<THRegionLocation, THRegionLocation._Fields>, java.io.Serializable, Cloneable, Comparable<THRegionLocation> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("THRegionLocation");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* to the HBase master or a HBase region server. Also used to return
* more general HBase error conditions.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TIOError extends org.apache.thrift.TException implements org.apache.thrift.TBase<TIOError, TIOError._Fields>, java.io.Serializable, Cloneable, Comparable<TIOError> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TIOError");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* A TIllegalArgument exception indicates an illegal or invalid
* argument was passed into a procedure.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TIllegalArgument extends org.apache.thrift.TException implements org.apache.thrift.TBase<TIllegalArgument, TIllegalArgument._Fields>, java.io.Serializable, Cloneable, Comparable<TIllegalArgument> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TIllegalArgument");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -14,7 +14,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* by changing the durability. If you don't provide durability, it defaults to
* column family's default setting for durability.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TIncrement implements org.apache.thrift.TBase<TIncrement, TIncrement._Fields>, java.io.Serializable, Cloneable, Comparable<TIncrement> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TIncrement");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.KeepDeletedCells
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TKeepDeletedCells implements org.apache.thrift.TEnum {
/**
* Deleted Cells are not retained.

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
/**
* Atomic mutation for the specified row. It can be either Put or Delete.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TMutation extends org.apache.thrift.TUnion<TMutation, TMutation._Fields> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TMutation");
private static final org.apache.thrift.protocol.TField PUT_FIELD_DESC = new org.apache.thrift.protocol.TField("put", org.apache.thrift.protocol.TType.STRUCT, (short)1);

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.NamespaceDescriptor
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TNamespaceDescriptor implements org.apache.thrift.TBase<TNamespaceDescriptor, TNamespaceDescriptor._Fields>, java.io.Serializable, Cloneable, Comparable<TNamespaceDescriptor> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TNamespaceDescriptor");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -19,7 +19,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* by changing the durability. If you don't provide durability, it defaults to
* column family's default setting for durability.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TPut implements org.apache.thrift.TBase<TPut, TPut._Fields>, java.io.Serializable, Cloneable, Comparable<TPut> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TPut");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TReadType implements org.apache.thrift.TEnum {
DEFAULT(1),
STREAM(2),

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
/**
* if no Result is found, row and columnValues will not be set.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TResult implements org.apache.thrift.TBase<TResult, TResult._Fields>, java.io.Serializable, Cloneable, Comparable<TResult> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TResult");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
/**
* A TRowMutations object is used to apply a number of Mutations to a single row.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TRowMutations implements org.apache.thrift.TBase<TRowMutations, TRowMutations._Fields>, java.io.Serializable, Cloneable, Comparable<TRowMutations> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TRowMutations");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Any timestamps in the columns are ignored but the colFamTimeRangeMap included, use timeRange to select by timestamp.
* Max versions defaults to 1.
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TScan implements org.apache.thrift.TBase<TScan, TScan._Fields>, java.io.Serializable, Cloneable, Comparable<TScan> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TScan");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TServerName implements org.apache.thrift.TBase<TServerName, TServerName._Fields>, java.io.Serializable, Cloneable, Comparable<TServerName> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TServerName");

View File

@ -0,0 +1,805 @@
/**
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
*/
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
/**
* Thrift wrapper around
* org.apache.hadoop.hbase.client.SlowLogQueryFilter
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TSlowLogQueryFilter implements org.apache.thrift.TBase<TSlowLogQueryFilter, TSlowLogQueryFilter._Fields>, java.io.Serializable, Cloneable, Comparable<TSlowLogQueryFilter> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TSlowLogQueryFilter");
private static final org.apache.thrift.protocol.TField REGION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("regionName", org.apache.thrift.protocol.TType.STRING, (short)1);
private static final org.apache.thrift.protocol.TField CLIENT_ADDRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("clientAddress", org.apache.thrift.protocol.TType.STRING, (short)2);
private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)3);
private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)4);
private static final org.apache.thrift.protocol.TField LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("limit", org.apache.thrift.protocol.TType.I32, (short)5);
private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TSlowLogQueryFilterStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TSlowLogQueryFilterTupleSchemeFactory();
public @org.apache.thrift.annotation.Nullable java.lang.String regionName; // optional
public @org.apache.thrift.annotation.Nullable java.lang.String clientAddress; // optional
public @org.apache.thrift.annotation.Nullable java.lang.String tableName; // optional
public @org.apache.thrift.annotation.Nullable java.lang.String userName; // optional
public int limit; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
REGION_NAME((short)1, "regionName"),
CLIENT_ADDRESS((short)2, "clientAddress"),
TABLE_NAME((short)3, "tableName"),
USER_NAME((short)4, "userName"),
LIMIT((short)5, "limit");
private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
static {
for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
byName.put(field.getFieldName(), field);
}
}
/**
* Find the _Fields constant that matches fieldId, or null if its not found.
*/
@org.apache.thrift.annotation.Nullable
public static _Fields findByThriftId(int fieldId) {
switch(fieldId) {
case 1: // REGION_NAME
return REGION_NAME;
case 2: // CLIENT_ADDRESS
return CLIENT_ADDRESS;
case 3: // TABLE_NAME
return TABLE_NAME;
case 4: // USER_NAME
return USER_NAME;
case 5: // LIMIT
return LIMIT;
default:
return null;
}
}
/**
* Find the _Fields constant that matches fieldId, throwing an exception
* if it is not found.
*/
public static _Fields findByThriftIdOrThrow(int fieldId) {
_Fields fields = findByThriftId(fieldId);
if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
return fields;
}
/**
* Find the _Fields constant that matches name, or null if its not found.
*/
@org.apache.thrift.annotation.Nullable
public static _Fields findByName(java.lang.String name) {
return byName.get(name);
}
private final short _thriftId;
private final java.lang.String _fieldName;
_Fields(short thriftId, java.lang.String fieldName) {
_thriftId = thriftId;
_fieldName = fieldName;
}
public short getThriftFieldId() {
return _thriftId;
}
public java.lang.String getFieldName() {
return _fieldName;
}
}
// isset id assignments
private static final int __LIMIT_ISSET_ID = 0;
private byte __isset_bitfield = 0;
private static final _Fields optionals[] = {_Fields.REGION_NAME,_Fields.CLIENT_ADDRESS,_Fields.TABLE_NAME,_Fields.USER_NAME,_Fields.LIMIT};
public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
tmpMap.put(_Fields.REGION_NAME, new org.apache.thrift.meta_data.FieldMetaData("regionName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.CLIENT_ADDRESS, new org.apache.thrift.meta_data.FieldMetaData("clientAddress", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.LIMIT, new org.apache.thrift.meta_data.FieldMetaData("limit", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TSlowLogQueryFilter.class, metaDataMap);
}
public TSlowLogQueryFilter() {
this.limit = 10;
}
/**
* Performs a deep copy on <i>other</i>.
*/
public TSlowLogQueryFilter(TSlowLogQueryFilter other) {
__isset_bitfield = other.__isset_bitfield;
if (other.isSetRegionName()) {
this.regionName = other.regionName;
}
if (other.isSetClientAddress()) {
this.clientAddress = other.clientAddress;
}
if (other.isSetTableName()) {
this.tableName = other.tableName;
}
if (other.isSetUserName()) {
this.userName = other.userName;
}
this.limit = other.limit;
}
public TSlowLogQueryFilter deepCopy() {
return new TSlowLogQueryFilter(this);
}
@Override
public void clear() {
this.regionName = null;
this.clientAddress = null;
this.tableName = null;
this.userName = null;
this.limit = 10;
}
@org.apache.thrift.annotation.Nullable
public java.lang.String getRegionName() {
return this.regionName;
}
public TSlowLogQueryFilter setRegionName(@org.apache.thrift.annotation.Nullable java.lang.String regionName) {
this.regionName = regionName;
return this;
}
public void unsetRegionName() {
this.regionName = null;
}
/** Returns true if field regionName is set (has been assigned a value) and false otherwise */
public boolean isSetRegionName() {
return this.regionName != null;
}
public void setRegionNameIsSet(boolean value) {
if (!value) {
this.regionName = null;
}
}
@org.apache.thrift.annotation.Nullable
public java.lang.String getClientAddress() {
return this.clientAddress;
}
public TSlowLogQueryFilter setClientAddress(@org.apache.thrift.annotation.Nullable java.lang.String clientAddress) {
this.clientAddress = clientAddress;
return this;
}
public void unsetClientAddress() {
this.clientAddress = null;
}
/** Returns true if field clientAddress is set (has been assigned a value) and false otherwise */
public boolean isSetClientAddress() {
return this.clientAddress != null;
}
public void setClientAddressIsSet(boolean value) {
if (!value) {
this.clientAddress = null;
}
}
@org.apache.thrift.annotation.Nullable
public java.lang.String getTableName() {
return this.tableName;
}
public TSlowLogQueryFilter setTableName(@org.apache.thrift.annotation.Nullable java.lang.String tableName) {
this.tableName = tableName;
return this;
}
public void unsetTableName() {
this.tableName = null;
}
/** Returns true if field tableName is set (has been assigned a value) and false otherwise */
public boolean isSetTableName() {
return this.tableName != null;
}
public void setTableNameIsSet(boolean value) {
if (!value) {
this.tableName = null;
}
}
@org.apache.thrift.annotation.Nullable
public java.lang.String getUserName() {
return this.userName;
}
public TSlowLogQueryFilter setUserName(@org.apache.thrift.annotation.Nullable java.lang.String userName) {
this.userName = userName;
return this;
}
public void unsetUserName() {
this.userName = null;
}
/** Returns true if field userName is set (has been assigned a value) and false otherwise */
public boolean isSetUserName() {
return this.userName != null;
}
public void setUserNameIsSet(boolean value) {
if (!value) {
this.userName = null;
}
}
public int getLimit() {
return this.limit;
}
public TSlowLogQueryFilter setLimit(int limit) {
this.limit = limit;
setLimitIsSet(true);
return this;
}
public void unsetLimit() {
__isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __LIMIT_ISSET_ID);
}
/** Returns true if field limit is set (has been assigned a value) and false otherwise */
public boolean isSetLimit() {
return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __LIMIT_ISSET_ID);
}
public void setLimitIsSet(boolean value) {
__isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __LIMIT_ISSET_ID, value);
}
public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
switch (field) {
case REGION_NAME:
if (value == null) {
unsetRegionName();
} else {
setRegionName((java.lang.String)value);
}
break;
case CLIENT_ADDRESS:
if (value == null) {
unsetClientAddress();
} else {
setClientAddress((java.lang.String)value);
}
break;
case TABLE_NAME:
if (value == null) {
unsetTableName();
} else {
setTableName((java.lang.String)value);
}
break;
case USER_NAME:
if (value == null) {
unsetUserName();
} else {
setUserName((java.lang.String)value);
}
break;
case LIMIT:
if (value == null) {
unsetLimit();
} else {
setLimit((java.lang.Integer)value);
}
break;
}
}
@org.apache.thrift.annotation.Nullable
public java.lang.Object getFieldValue(_Fields field) {
switch (field) {
case REGION_NAME:
return getRegionName();
case CLIENT_ADDRESS:
return getClientAddress();
case TABLE_NAME:
return getTableName();
case USER_NAME:
return getUserName();
case LIMIT:
return getLimit();
}
throw new java.lang.IllegalStateException();
}
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
public boolean isSet(_Fields field) {
if (field == null) {
throw new java.lang.IllegalArgumentException();
}
switch (field) {
case REGION_NAME:
return isSetRegionName();
case CLIENT_ADDRESS:
return isSetClientAddress();
case TABLE_NAME:
return isSetTableName();
case USER_NAME:
return isSetUserName();
case LIMIT:
return isSetLimit();
}
throw new java.lang.IllegalStateException();
}
@Override
public boolean equals(java.lang.Object that) {
if (that == null)
return false;
if (that instanceof TSlowLogQueryFilter)
return this.equals((TSlowLogQueryFilter)that);
return false;
}
public boolean equals(TSlowLogQueryFilter that) {
if (that == null)
return false;
if (this == that)
return true;
boolean this_present_regionName = true && this.isSetRegionName();
boolean that_present_regionName = true && that.isSetRegionName();
if (this_present_regionName || that_present_regionName) {
if (!(this_present_regionName && that_present_regionName))
return false;
if (!this.regionName.equals(that.regionName))
return false;
}
boolean this_present_clientAddress = true && this.isSetClientAddress();
boolean that_present_clientAddress = true && that.isSetClientAddress();
if (this_present_clientAddress || that_present_clientAddress) {
if (!(this_present_clientAddress && that_present_clientAddress))
return false;
if (!this.clientAddress.equals(that.clientAddress))
return false;
}
boolean this_present_tableName = true && this.isSetTableName();
boolean that_present_tableName = true && that.isSetTableName();
if (this_present_tableName || that_present_tableName) {
if (!(this_present_tableName && that_present_tableName))
return false;
if (!this.tableName.equals(that.tableName))
return false;
}
boolean this_present_userName = true && this.isSetUserName();
boolean that_present_userName = true && that.isSetUserName();
if (this_present_userName || that_present_userName) {
if (!(this_present_userName && that_present_userName))
return false;
if (!this.userName.equals(that.userName))
return false;
}
boolean this_present_limit = true && this.isSetLimit();
boolean that_present_limit = true && that.isSetLimit();
if (this_present_limit || that_present_limit) {
if (!(this_present_limit && that_present_limit))
return false;
if (this.limit != that.limit)
return false;
}
return true;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = hashCode * 8191 + ((isSetRegionName()) ? 131071 : 524287);
if (isSetRegionName())
hashCode = hashCode * 8191 + regionName.hashCode();
hashCode = hashCode * 8191 + ((isSetClientAddress()) ? 131071 : 524287);
if (isSetClientAddress())
hashCode = hashCode * 8191 + clientAddress.hashCode();
hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
if (isSetTableName())
hashCode = hashCode * 8191 + tableName.hashCode();
hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
if (isSetUserName())
hashCode = hashCode * 8191 + userName.hashCode();
hashCode = hashCode * 8191 + ((isSetLimit()) ? 131071 : 524287);
if (isSetLimit())
hashCode = hashCode * 8191 + limit;
return hashCode;
}
@Override
public int compareTo(TSlowLogQueryFilter other) {
if (!getClass().equals(other.getClass())) {
return getClass().getName().compareTo(other.getClass().getName());
}
int lastComparison = 0;
lastComparison = java.lang.Boolean.valueOf(isSetRegionName()).compareTo(other.isSetRegionName());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetRegionName()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.regionName, other.regionName);
if (lastComparison != 0) {
return lastComparison;
}
}
lastComparison = java.lang.Boolean.valueOf(isSetClientAddress()).compareTo(other.isSetClientAddress());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetClientAddress()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.clientAddress, other.clientAddress);
if (lastComparison != 0) {
return lastComparison;
}
}
lastComparison = java.lang.Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetTableName()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
if (lastComparison != 0) {
return lastComparison;
}
}
lastComparison = java.lang.Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetUserName()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
if (lastComparison != 0) {
return lastComparison;
}
}
lastComparison = java.lang.Boolean.valueOf(isSetLimit()).compareTo(other.isSetLimit());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetLimit()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.limit, other.limit);
if (lastComparison != 0) {
return lastComparison;
}
}
return 0;
}
@org.apache.thrift.annotation.Nullable
public _Fields fieldForId(int fieldId) {
return _Fields.findByThriftId(fieldId);
}
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
scheme(iprot).read(iprot, this);
}
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
scheme(oprot).write(oprot, this);
}
@Override
public java.lang.String toString() {
java.lang.StringBuilder sb = new java.lang.StringBuilder("TSlowLogQueryFilter(");
boolean first = true;
if (isSetRegionName()) {
sb.append("regionName:");
if (this.regionName == null) {
sb.append("null");
} else {
sb.append(this.regionName);
}
first = false;
}
if (isSetClientAddress()) {
if (!first) sb.append(", ");
sb.append("clientAddress:");
if (this.clientAddress == null) {
sb.append("null");
} else {
sb.append(this.clientAddress);
}
first = false;
}
if (isSetTableName()) {
if (!first) sb.append(", ");
sb.append("tableName:");
if (this.tableName == null) {
sb.append("null");
} else {
sb.append(this.tableName);
}
first = false;
}
if (isSetUserName()) {
if (!first) sb.append(", ");
sb.append("userName:");
if (this.userName == null) {
sb.append("null");
} else {
sb.append(this.userName);
}
first = false;
}
if (isSetLimit()) {
if (!first) sb.append(", ");
sb.append("limit:");
sb.append(this.limit);
first = false;
}
sb.append(")");
return sb.toString();
}
public void validate() throws org.apache.thrift.TException {
// check for required fields
// check for sub-struct validity
}
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
try {
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
try {
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
__isset_bitfield = 0;
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private static class TSlowLogQueryFilterStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public TSlowLogQueryFilterStandardScheme getScheme() {
return new TSlowLogQueryFilterStandardScheme();
}
}
private static class TSlowLogQueryFilterStandardScheme extends org.apache.thrift.scheme.StandardScheme<TSlowLogQueryFilter> {
public void read(org.apache.thrift.protocol.TProtocol iprot, TSlowLogQueryFilter struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TField schemeField;
iprot.readStructBegin();
while (true)
{
schemeField = iprot.readFieldBegin();
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
break;
}
switch (schemeField.id) {
case 1: // REGION_NAME
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
struct.regionName = iprot.readString();
struct.setRegionNameIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
case 2: // CLIENT_ADDRESS
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
struct.clientAddress = iprot.readString();
struct.setClientAddressIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
case 3: // TABLE_NAME
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
struct.tableName = iprot.readString();
struct.setTableNameIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
case 4: // USER_NAME
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
struct.userName = iprot.readString();
struct.setUserNameIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
case 5: // LIMIT
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
struct.limit = iprot.readI32();
struct.setLimitIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
// check for required fields of primitive type, which can't be checked in the validate method
struct.validate();
}
public void write(org.apache.thrift.protocol.TProtocol oprot, TSlowLogQueryFilter struct) throws org.apache.thrift.TException {
struct.validate();
oprot.writeStructBegin(STRUCT_DESC);
if (struct.regionName != null) {
if (struct.isSetRegionName()) {
oprot.writeFieldBegin(REGION_NAME_FIELD_DESC);
oprot.writeString(struct.regionName);
oprot.writeFieldEnd();
}
}
if (struct.clientAddress != null) {
if (struct.isSetClientAddress()) {
oprot.writeFieldBegin(CLIENT_ADDRESS_FIELD_DESC);
oprot.writeString(struct.clientAddress);
oprot.writeFieldEnd();
}
}
if (struct.tableName != null) {
if (struct.isSetTableName()) {
oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
oprot.writeString(struct.tableName);
oprot.writeFieldEnd();
}
}
if (struct.userName != null) {
if (struct.isSetUserName()) {
oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
oprot.writeString(struct.userName);
oprot.writeFieldEnd();
}
}
if (struct.isSetLimit()) {
oprot.writeFieldBegin(LIMIT_FIELD_DESC);
oprot.writeI32(struct.limit);
oprot.writeFieldEnd();
}
oprot.writeFieldStop();
oprot.writeStructEnd();
}
}
private static class TSlowLogQueryFilterTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public TSlowLogQueryFilterTupleScheme getScheme() {
return new TSlowLogQueryFilterTupleScheme();
}
}
private static class TSlowLogQueryFilterTupleScheme extends org.apache.thrift.scheme.TupleScheme<TSlowLogQueryFilter> {
@Override
public void write(org.apache.thrift.protocol.TProtocol prot, TSlowLogQueryFilter struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet optionals = new java.util.BitSet();
if (struct.isSetRegionName()) {
optionals.set(0);
}
if (struct.isSetClientAddress()) {
optionals.set(1);
}
if (struct.isSetTableName()) {
optionals.set(2);
}
if (struct.isSetUserName()) {
optionals.set(3);
}
if (struct.isSetLimit()) {
optionals.set(4);
}
oprot.writeBitSet(optionals, 5);
if (struct.isSetRegionName()) {
oprot.writeString(struct.regionName);
}
if (struct.isSetClientAddress()) {
oprot.writeString(struct.clientAddress);
}
if (struct.isSetTableName()) {
oprot.writeString(struct.tableName);
}
if (struct.isSetUserName()) {
oprot.writeString(struct.userName);
}
if (struct.isSetLimit()) {
oprot.writeI32(struct.limit);
}
}
@Override
public void read(org.apache.thrift.protocol.TProtocol prot, TSlowLogQueryFilter struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet incoming = iprot.readBitSet(5);
if (incoming.get(0)) {
struct.regionName = iprot.readString();
struct.setRegionNameIsSet(true);
}
if (incoming.get(1)) {
struct.clientAddress = iprot.readString();
struct.setClientAddressIsSet(true);
}
if (incoming.get(2)) {
struct.tableName = iprot.readString();
struct.setTableNameIsSet(true);
}
if (incoming.get(3)) {
struct.userName = iprot.readString();
struct.setUserNameIsSet(true);
}
if (incoming.get(4)) {
struct.limit = iprot.readI32();
struct.setLimitIsSet(true);
}
}
}
private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
}
}

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.client.TableDescriptor
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TTableDescriptor implements org.apache.thrift.TBase<TTableDescriptor, TTableDescriptor._Fields>, java.io.Serializable, Cloneable, Comparable<TTableDescriptor> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TTableDescriptor");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
* Thrift wrapper around
* org.apache.hadoop.hbase.TableName
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TTableName implements org.apache.thrift.TBase<TTableName, TTableName._Fields>, java.io.Serializable, Cloneable, Comparable<TTableName> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TTableName");

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
/**
* Specify type of thrift server: thrift and thrift2
*/
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public enum TThriftServerType implements org.apache.thrift.TEnum {
ONE(1),
TWO(2);

View File

@ -1,5 +1,5 @@
/**
* Autogenerated by Thrift Compiler (0.12.0)
* Autogenerated by Thrift Compiler (0.13.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@ -7,7 +7,7 @@
package org.apache.hadoop.hbase.thrift2.generated;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-11-26")
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2020-03-23")
public class TTimeRange implements org.apache.thrift.TBase<TTimeRange, TTimeRange._Fields>, java.io.Serializable, Cloneable, Comparable<TTimeRange> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TTimeRange");

View File

@ -455,6 +455,39 @@ struct TNamespaceDescriptor {
}
/**
* Thrift wrapper around
* org.apache.hadoop.hbase.client.SlowLogQueryFilter
*/
struct TSlowLogQueryFilter {
1: optional string regionName
2: optional string clientAddress
3: optional string tableName
4: optional string userName
5: optional i32 limit = 10
}
/**
* Thrift wrapper around
* org.apache.hadoop.hbase.client.SlowLogRecord
*/
struct TSlowLogRecord {
1: required i64 startTime
2: required i32 processingTime
3: required i32 queueTime
4: required i64 responseSize
5: required string clientAddress
6: required string serverClass
7: required string methodName
8: required string callDetails
9: required string param
10: required string userName
11: required i32 multiGetsCount
12: required i32 multiMutationsCount
13: required i32 multiServiceCalls
14: optional string regionName
}
//
// Exceptions
//
@ -1053,4 +1086,32 @@ service THBaseService {
* @return the type of this thrift server
*/
TThriftServerType getThriftServerType()
/**
* Retrieves online slow RPC logs from the provided list of
* RegionServers
*
* @return online slowlog response list
* @throws TIOError if a remote or network exception occurs
*/
list<TSlowLogRecord> getSlowLogResponses(
/** @param serverNames Server names to get slowlog responses from */
1: set<TServerName> serverNames
/** @param slowLogQueryFilter filter to be used if provided */
2: TSlowLogQueryFilter slowLogQueryFilter
) throws (1: TIOError io)
/**
* Clears online slow RPC logs from the provided list of
* RegionServers
*
* @return List of booleans representing if online slowlog response buffer is cleaned
* from each RegionServer
* @throws TIOError if a remote or network exception occurs
*/
list<bool> clearSlowLogResponses(
/** @param serverNames Set of Server names to clean slowlog responses from */
1: set<TServerName> serverNames
) throws (1: TIOError io)
}

View File

@ -38,12 +38,15 @@ import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
@ -53,6 +56,7 @@ import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Consistency;
@ -101,6 +105,9 @@ import org.apache.hadoop.hbase.thrift2.generated.TReadType;
import org.apache.hadoop.hbase.thrift2.generated.TResult;
import org.apache.hadoop.hbase.thrift2.generated.TRowMutations;
import org.apache.hadoop.hbase.thrift2.generated.TScan;
import org.apache.hadoop.hbase.thrift2.generated.TServerName;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogQueryFilter;
import org.apache.hadoop.hbase.thrift2.generated.TSlowLogRecord;
import org.apache.hadoop.hbase.thrift2.generated.TTableDescriptor;
import org.apache.hadoop.hbase.thrift2.generated.TTableName;
import org.apache.hadoop.hbase.thrift2.generated.TThriftServerType;
@ -112,6 +119,7 @@ import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
@ -1725,6 +1733,31 @@ public class TestThriftHBaseServiceHandler {
}
}
@Test
public void testSlowLogResponses() throws Exception {
// start a thrift server
HBaseThriftTestingUtility THRIFT_TEST_UTIL = new HBaseThriftTestingUtility();
Configuration configuration = UTIL.getConfiguration();
configuration.setBoolean("hbase.regionserver.slowlog.buffer.enabled", true);
THRIFT_TEST_UTIL.startThriftServer(configuration, ThriftServerType.ONE);
ThriftHBaseServiceHandler thriftHBaseServiceHandler =
new ThriftHBaseServiceHandler(configuration,
UserProvider.instantiate(configuration));
Collection<ServerName> serverNames = UTIL.getAdmin().getRegionServers();
Set<TServerName> tServerNames =
ThriftUtilities.getServerNamesFromHBase(new HashSet<>(serverNames));
List<Boolean> clearedResponses =
thriftHBaseServiceHandler.clearSlowLogResponses(tServerNames);
clearedResponses.forEach(Assert::assertTrue);
TSlowLogQueryFilter tSlowLogQueryFilter = new TSlowLogQueryFilter();
tSlowLogQueryFilter.setLimit(15);
List<TSlowLogRecord> tSlowLogRecords =
thriftHBaseServiceHandler.getSlowLogResponses(tServerNames, tSlowLogQueryFilter);
assertEquals(tSlowLogRecords.size(), 0);
}
public static class DelayingRegionObserver implements RegionCoprocessor, RegionObserver {
private static final Logger LOG = LoggerFactory.getLogger(DelayingRegionObserver.class);
// sleep time in msec