blob: 44e69ba0a5d8137c520440c76e359a517a92f3a8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace java org.apache.accumulo.core.tabletserver.thrift
namespace cpp org.apache.accumulo.core.tabletserver.thrift
include "data.thrift"
include "security.thrift"
include "client.thrift"
include "master.thrift"
include "trace.thrift"
exception NotServingTabletException {
1:data.TKeyExtent extent
}
exception TooManyFilesException {
1:data.TKeyExtent extent
}
exception TSampleNotPresentException {
1:data.TKeyExtent extent
}
exception NoSuchScanIDException {
}
exception ConstraintViolationException {
1:list<data.TConstraintViolationSummary> violationSummaries
}
struct ActionStats {
1:i32 status
2:double elapsed
3:i32 num
4:i64 count
5:double sumDev // sum of the square of the elapsed time
6:i32 fail
7:double queueTime
8:double queueSumDev // sum of the square of the queue time
}
struct TabletStats {
1:data.TKeyExtent extent
2:ActionStats majors
3:ActionStats minors
4:ActionStats splits
5:i64 numEntries
6:double ingestRate
7:double queryRate
// zero if loaded by the master, currentTimeMillis when the split was created
8:i64 splitCreationTime
}
enum ScanType {
SINGLE,
BATCH
}
enum ScanState {
IDLE,
RUNNING,
QUEUED
}
struct ActiveScan {
2:string client
3:string user
4:string tableId
5:i64 age
6:i64 idleTime
7:ScanType type
8:ScanState state
9:data.TKeyExtent extent
10:list<data.TColumn> columns
11:list<data.IterInfo> ssiList
12:map<string, map<string, string>> ssio /* Server Side Iterator Options */
13:list<binary> authorizations
14:optional i64 scanId
15:string classLoaderContext /* name of the classloader context */
}
enum CompactionType {
MINOR,
MERGE,
MAJOR,
FULL
}
enum CompactionReason {
USER,
SYSTEM,
CHOP,
IDLE,
CLOSE
}
enum TDurability {
DEFAULT = 0,
SYNC = 1,
FLUSH = 2,
LOG = 3,
NONE = 4
}
struct ActiveCompaction {
1:data.TKeyExtent extent
2:i64 age
3:list<string> inputFiles
4:string outputFile
5:CompactionType type
6:CompactionReason reason
7:string localityGroup
8:i64 entriesRead
9:i64 entriesWritten
10:list<data.IterInfo> ssiList
11:map<string, map<string, string>> ssio
}
struct TIteratorSetting {
1:i32 priority;
2:string name;
3:string iteratorClass;
4:map<string,string> properties;
}
struct IteratorConfig {
1:list<TIteratorSetting> iterators;
}
struct TSamplerConfiguration {
1:string className
2:map<string, string> options
}
enum TUnloadTabletGoal {
UNKNOWN,
UNASSIGNED,
SUSPENDED,
DELETED
}
service TabletClientService extends client.ClientService {
// scan a range of keys
data.InitialScan startScan(11:trace.TInfo tinfo,
1:security.TCredentials credentials,
2:data.TKeyExtent extent,
3:data.TRange range,
4:list<data.TColumn> columns,
5:i32 batchSize,
6:list<data.IterInfo> ssiList,
7:map<string, map<string, string>> ssio,
8:list<binary> authorizations
9:bool waitForWrites,
10:bool isolated,
12:i64 readaheadThreshold,
13:TSamplerConfiguration samplerConfig,
14:i64 batchTimeOut,
15:string classLoaderContext, /* name of the classloader context */
16:map<string,string> executionHints) throws (1:client.ThriftSecurityException sec, 2:NotServingTabletException nste, 3:TooManyFilesException tmfe, 4:TSampleNotPresentException tsnpe),
data.ScanResult continueScan(2:trace.TInfo tinfo, 1:data.ScanID scanID) throws (1:NoSuchScanIDException nssi, 2:NotServingTabletException nste, 3:TooManyFilesException tmfe, 4:TSampleNotPresentException tsnpe),
oneway void closeScan(2:trace.TInfo tinfo, 1:data.ScanID scanID),
// scan over a series of ranges
data.InitialMultiScan startMultiScan(8:trace.TInfo tinfo,
1:security.TCredentials credentials,
2:data.ScanBatch batch,
3:list<data.TColumn> columns,
4:list<data.IterInfo> ssiList,
5:map<string, map<string, string>> ssio,
6:list<binary> authorizations,
7:bool waitForWrites,
9:TSamplerConfiguration samplerConfig,
10:i64 batchTimeOut,
11:string classLoaderContext, /* name of the classloader context */
12:map<string, string> executionHints) throws (1:client.ThriftSecurityException sec, 2:TSampleNotPresentException tsnpe),
data.MultiScanResult continueMultiScan(2:trace.TInfo tinfo, 1:data.ScanID scanID) throws (1:NoSuchScanIDException nssi, 2:TSampleNotPresentException tsnpe),
void closeMultiScan(2:trace.TInfo tinfo, 1:data.ScanID scanID) throws (1:NoSuchScanIDException nssi),
//the following calls support a batch update to multiple tablets on a tablet server
data.UpdateID startUpdate(2:trace.TInfo tinfo, 1:security.TCredentials credentials, 3:TDurability durability) throws (1:client.ThriftSecurityException sec),
oneway void applyUpdates(1:trace.TInfo tinfo, 2:data.UpdateID updateID, 3:data.TKeyExtent keyExtent, 4:list<data.TMutation> mutations),
data.UpdateErrors closeUpdate(2:trace.TInfo tinfo, 1:data.UpdateID updateID) throws (1:NoSuchScanIDException nssi),
//the following call supports making a single update to a tablet
void update(4:trace.TInfo tinfo, 1:security.TCredentials credentials, 2:data.TKeyExtent keyExtent, 3:data.TMutation mutation, 5:TDurability durability)
throws (1:client.ThriftSecurityException sec,
2:NotServingTabletException nste,
3:ConstraintViolationException cve),
data.TConditionalSession startConditionalUpdate(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:list<binary> authorizations, 4:string tableID, 5:TDurability durability, 6:string classLoaderContext)
throws (1:client.ThriftSecurityException sec);
list<data.TCMResult> conditionalUpdate(1:trace.TInfo tinfo, 2:data.UpdateID sessID, 3:data.CMBatch mutations, 4:list<string> symbols)
throws (1:NoSuchScanIDException nssi);
void invalidateConditionalUpdate(1:trace.TInfo tinfo, 2:data.UpdateID sessID);
oneway void closeConditionalUpdate(1:trace.TInfo tinfo, 2:data.UpdateID sessID);
// on success, returns an empty list
list<data.TKeyExtent> bulkImport(3:trace.TInfo tinfo, 1:security.TCredentials credentials, 4:i64 tid, 2:data.TabletFiles files, 5:bool setTime) throws (1:client.ThriftSecurityException sec),
oneway void loadFiles(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:i64 tid, 4:data.TKeyExtent keyExtent, 5:string dir, 6:map<string, data.MapFileInfo> files, 7:bool setTime);
void splitTablet(4:trace.TInfo tinfo, 1:security.TCredentials credentials, 2:data.TKeyExtent extent, 3:binary splitPoint) throws (1:client.ThriftSecurityException sec, 2:NotServingTabletException nste)
oneway void loadTablet(5:trace.TInfo tinfo, 1:security.TCredentials credentials, 4:string lock, 2:data.TKeyExtent extent),
oneway void unloadTablet(5:trace.TInfo tinfo, 1:security.TCredentials credentials, 4:string lock, 2:data.TKeyExtent extent, 6:TUnloadTabletGoal goal, 7:i64 requestTime),
oneway void flush(4:trace.TInfo tinfo, 1:security.TCredentials credentials, 3:string lock, 2:string tableId, 5:binary startRow, 6:binary endRow),
oneway void flushTablet(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:string lock, 4:data.TKeyExtent extent),
oneway void chop(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:string lock, 4:data.TKeyExtent extent),
oneway void compact(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:string lock, 4:string tableId, 5:binary startRow, 6:binary endRow),
master.TabletServerStatus getTabletServerStatus(3:trace.TInfo tinfo, 1:security.TCredentials credentials) throws (1:client.ThriftSecurityException sec)
list<TabletStats> getTabletStats(3:trace.TInfo tinfo, 1:security.TCredentials credentials, 2:string tableId) throws (1:client.ThriftSecurityException sec)
TabletStats getHistoricalStats(2:trace.TInfo tinfo, 1:security.TCredentials credentials) throws (1:client.ThriftSecurityException sec)
void halt(3:trace.TInfo tinfo, 1:security.TCredentials credentials, 2:string lock) throws (1:client.ThriftSecurityException sec)
oneway void fastHalt(3:trace.TInfo tinfo, 1:security.TCredentials credentials, 2:string lock);
list<ActiveScan> getActiveScans(2:trace.TInfo tinfo, 1:security.TCredentials credentials) throws (1:client.ThriftSecurityException sec)
list<ActiveCompaction> getActiveCompactions(2:trace.TInfo tinfo, 1:security.TCredentials credentials) throws (1:client.ThriftSecurityException sec)
oneway void removeLogs(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:list<string> filenames)
list<string> getActiveLogs(1:trace.TInfo tinfo, 2:security.TCredentials credentials)
data.TSummaries startGetSummaries(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:data.TSummaryRequest request) throws (1:client.ThriftSecurityException sec, 2:client.ThriftTableOperationException tope)
data.TSummaries startGetSummariesForPartition(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:data.TSummaryRequest request, 4:i32 modulus, 5:i32 remainder) throws (1:client.ThriftSecurityException sec)
data.TSummaries startGetSummariesFromFiles(1:trace.TInfo tinfo, 2:security.TCredentials credentials, 3:data.TSummaryRequest request, 4:map<string,list<data.TRowRange>> files) throws (1:client.ThriftSecurityException sec)
data.TSummaries contiuneGetSummaries(1:trace.TInfo tinfo, 2:i64 sessionId) throws (1:NoSuchScanIDException nssi)
}
typedef i32 TabletID