You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2015/09/21 15:51:29 UTC

[4/7] accumulo git commit: ACCUMULO-3913 Added per table sampling

http://git-wip-us.apache.org/repos/asf/accumulo/blob/45f18c17/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java b/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java
index bd0f79c..f453788 100644
--- a/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java
+++ b/core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java
@@ -52,15 +52,15 @@ import org.slf4j.LoggerFactory;
 
   public interface Iface extends org.apache.accumulo.core.client.impl.thrift.ClientService.Iface {
 
-    public org.apache.accumulo.core.data.thrift.InitialScan startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException;
+    public org.apache.accumulo.core.data.thrift.InitialScan startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException;
 
-    public org.apache.accumulo.core.data.thrift.ScanResult continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException;
+    public org.apache.accumulo.core.data.thrift.ScanResult continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException;
 
     public void closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws org.apache.thrift.TException;
 
-    public org.apache.accumulo.core.data.thrift.InitialMultiScan startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, org.apache.thrift.TException;
+    public org.apache.accumulo.core.data.thrift.InitialMultiScan startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, TSampleNotPresentException, org.apache.thrift.TException;
 
-    public org.apache.accumulo.core.data.thrift.MultiScanResult continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, org.apache.thrift.TException;
+    public org.apache.accumulo.core.data.thrift.MultiScanResult continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, TSampleNotPresentException, org.apache.thrift.TException;
 
     public void closeMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, org.apache.thrift.TException;
 
@@ -118,13 +118,13 @@ import org.slf4j.LoggerFactory;
 
   public interface AsyncIface extends org.apache.accumulo.core.client.impl.thrift.ClientService .AsyncIface {
 
-    public void startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void closeScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
@@ -202,13 +202,13 @@ import org.slf4j.LoggerFactory;
       super(iprot, oprot);
     }
 
-    public org.apache.accumulo.core.data.thrift.InitialScan startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.InitialScan startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException
     {
-      send_startScan(tinfo, credentials, extent, range, columns, batchSize, ssiList, ssio, authorizations, waitForWrites, isolated, readaheadThreshold, batchTimeOut);
+      send_startScan(tinfo, credentials, extent, range, columns, batchSize, ssiList, ssio, authorizations, waitForWrites, isolated, readaheadThreshold, samplerConfig, batchTimeOut);
       return recv_startScan();
     }
 
-    public void send_startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, long batchTimeOut) throws org.apache.thrift.TException
+    public void send_startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut) throws org.apache.thrift.TException
     {
       startScan_args args = new startScan_args();
       args.setTinfo(tinfo);
@@ -223,11 +223,12 @@ import org.slf4j.LoggerFactory;
       args.setWaitForWrites(waitForWrites);
       args.setIsolated(isolated);
       args.setReadaheadThreshold(readaheadThreshold);
+      args.setSamplerConfig(samplerConfig);
       args.setBatchTimeOut(batchTimeOut);
       sendBase("startScan", args);
     }
 
-    public org.apache.accumulo.core.data.thrift.InitialScan recv_startScan() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.InitialScan recv_startScan() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException
     {
       startScan_result result = new startScan_result();
       receiveBase(result, "startScan");
@@ -243,10 +244,13 @@ import org.slf4j.LoggerFactory;
       if (result.tmfe != null) {
         throw result.tmfe;
       }
+      if (result.tsnpe != null) {
+        throw result.tsnpe;
+      }
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "startScan failed: unknown result");
     }
 
-    public org.apache.accumulo.core.data.thrift.ScanResult continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.ScanResult continueScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException
     {
       send_continueScan(tinfo, scanID);
       return recv_continueScan();
@@ -260,7 +264,7 @@ import org.slf4j.LoggerFactory;
       sendBase("continueScan", args);
     }
 
-    public org.apache.accumulo.core.data.thrift.ScanResult recv_continueScan() throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.ScanResult recv_continueScan() throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException
     {
       continueScan_result result = new continueScan_result();
       receiveBase(result, "continueScan");
@@ -276,6 +280,9 @@ import org.slf4j.LoggerFactory;
       if (result.tmfe != null) {
         throw result.tmfe;
       }
+      if (result.tsnpe != null) {
+        throw result.tsnpe;
+      }
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "continueScan failed: unknown result");
     }
 
@@ -292,13 +299,13 @@ import org.slf4j.LoggerFactory;
       sendBase("closeScan", args);
     }
 
-    public org.apache.accumulo.core.data.thrift.InitialMultiScan startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.InitialMultiScan startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut) throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, TSampleNotPresentException, org.apache.thrift.TException
     {
-      send_startMultiScan(tinfo, credentials, batch, columns, ssiList, ssio, authorizations, waitForWrites, batchTimeOut);
+      send_startMultiScan(tinfo, credentials, batch, columns, ssiList, ssio, authorizations, waitForWrites, samplerConfig, batchTimeOut);
       return recv_startMultiScan();
     }
 
-    public void send_startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, long batchTimeOut) throws org.apache.thrift.TException
+    public void send_startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut) throws org.apache.thrift.TException
     {
       startMultiScan_args args = new startMultiScan_args();
       args.setTinfo(tinfo);
@@ -309,11 +316,12 @@ import org.slf4j.LoggerFactory;
       args.setSsio(ssio);
       args.setAuthorizations(authorizations);
       args.setWaitForWrites(waitForWrites);
+      args.setSamplerConfig(samplerConfig);
       args.setBatchTimeOut(batchTimeOut);
       sendBase("startMultiScan", args);
     }
 
-    public org.apache.accumulo.core.data.thrift.InitialMultiScan recv_startMultiScan() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.InitialMultiScan recv_startMultiScan() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, TSampleNotPresentException, org.apache.thrift.TException
     {
       startMultiScan_result result = new startMultiScan_result();
       receiveBase(result, "startMultiScan");
@@ -323,10 +331,13 @@ import org.slf4j.LoggerFactory;
       if (result.sec != null) {
         throw result.sec;
       }
+      if (result.tsnpe != null) {
+        throw result.tsnpe;
+      }
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "startMultiScan failed: unknown result");
     }
 
-    public org.apache.accumulo.core.data.thrift.MultiScanResult continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.MultiScanResult continueMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, long scanID) throws NoSuchScanIDException, TSampleNotPresentException, org.apache.thrift.TException
     {
       send_continueMultiScan(tinfo, scanID);
       return recv_continueMultiScan();
@@ -340,7 +351,7 @@ import org.slf4j.LoggerFactory;
       sendBase("continueMultiScan", args);
     }
 
-    public org.apache.accumulo.core.data.thrift.MultiScanResult recv_continueMultiScan() throws NoSuchScanIDException, org.apache.thrift.TException
+    public org.apache.accumulo.core.data.thrift.MultiScanResult recv_continueMultiScan() throws NoSuchScanIDException, TSampleNotPresentException, org.apache.thrift.TException
     {
       continueMultiScan_result result = new continueMultiScan_result();
       receiveBase(result, "continueMultiScan");
@@ -350,6 +361,9 @@ import org.slf4j.LoggerFactory;
       if (result.nssi != null) {
         throw result.nssi;
       }
+      if (result.tsnpe != null) {
+        throw result.tsnpe;
+      }
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "continueMultiScan failed: unknown result");
     }
 
@@ -958,9 +972,9 @@ import org.slf4j.LoggerFactory;
       super(protocolFactory, clientManager, transport);
     }
 
-    public void startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void startScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      startScan_call method_call = new startScan_call(tinfo, credentials, extent, range, columns, batchSize, ssiList, ssio, authorizations, waitForWrites, isolated, readaheadThreshold, batchTimeOut, resultHandler, this, ___protocolFactory, ___transport);
+      startScan_call method_call = new startScan_call(tinfo, credentials, extent, range, columns, batchSize, ssiList, ssio, authorizations, waitForWrites, isolated, readaheadThreshold, samplerConfig, batchTimeOut, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -978,8 +992,9 @@ import org.slf4j.LoggerFactory;
       private boolean waitForWrites;
       private boolean isolated;
       private long readaheadThreshold;
+      private TSamplerConfiguration samplerConfig;
       private long batchTimeOut;
-      public startScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public startScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, org.apache.accumulo.core.data.thrift.TKeyExtent extent, org.apache.accumulo.core.data.thrift.TRange range, List<org.apache.accumulo.core.data.thrift.TColumn> columns, int batchSize, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, boolean isolated, long readaheadThreshold, TSamplerConfiguration samplerConfig, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tinfo = tinfo;
         this.credentials = credentials;
@@ -993,6 +1008,7 @@ import org.slf4j.LoggerFactory;
         this.waitForWrites = waitForWrites;
         this.isolated = isolated;
         this.readaheadThreshold = readaheadThreshold;
+        this.samplerConfig = samplerConfig;
         this.batchTimeOut = batchTimeOut;
       }
 
@@ -1011,12 +1027,13 @@ import org.slf4j.LoggerFactory;
         args.setWaitForWrites(waitForWrites);
         args.setIsolated(isolated);
         args.setReadaheadThreshold(readaheadThreshold);
+        args.setSamplerConfig(samplerConfig);
         args.setBatchTimeOut(batchTimeOut);
         args.write(prot);
         prot.writeMessageEnd();
       }
 
-      public org.apache.accumulo.core.data.thrift.InitialScan getResult() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException {
+      public org.apache.accumulo.core.data.thrift.InitialScan getResult() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1051,7 +1068,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.accumulo.core.data.thrift.ScanResult getResult() throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, org.apache.thrift.TException {
+      public org.apache.accumulo.core.data.thrift.ScanResult getResult() throws NoSuchScanIDException, NotServingTabletException, TooManyFilesException, TSampleNotPresentException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1095,9 +1112,9 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void startMultiScan(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      startMultiScan_call method_call = new startMultiScan_call(tinfo, credentials, batch, columns, ssiList, ssio, authorizations, waitForWrites, batchTimeOut, resultHandler, this, ___protocolFactory, ___transport);
+      startMultiScan_call method_call = new startMultiScan_call(tinfo, credentials, batch, columns, ssiList, ssio, authorizations, waitForWrites, samplerConfig, batchTimeOut, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -1111,8 +1128,9 @@ import org.slf4j.LoggerFactory;
       private Map<String,Map<String,String>> ssio;
       private List<ByteBuffer> authorizations;
       private boolean waitForWrites;
+      private TSamplerConfiguration samplerConfig;
       private long batchTimeOut;
-      public startMultiScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public startMultiScan_call(org.apache.accumulo.core.trace.thrift.TInfo tinfo, org.apache.accumulo.core.security.thrift.TCredentials credentials, Map<org.apache.accumulo.core.data.thrift.TKeyExtent,List<org.apache.accumulo.core.data.thrift.TRange>> batch, List<org.apache.accumulo.core.data.thrift.TColumn> columns, List<org.apache.accumulo.core.data.thrift.IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations, boolean waitForWrites, TSamplerConfiguration samplerConfig, long batchTimeOut, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tinfo = tinfo;
         this.credentials = credentials;
@@ -1122,6 +1140,7 @@ import org.slf4j.LoggerFactory;
         this.ssio = ssio;
         this.authorizations = authorizations;
         this.waitForWrites = waitForWrites;
+        this.samplerConfig = samplerConfig;
         this.batchTimeOut = batchTimeOut;
       }
 
@@ -1136,12 +1155,13 @@ import org.slf4j.LoggerFactory;
         args.setSsio(ssio);
         args.setAuthorizations(authorizations);
         args.setWaitForWrites(waitForWrites);
+        args.setSamplerConfig(samplerConfig);
         args.setBatchTimeOut(batchTimeOut);
         args.write(prot);
         prot.writeMessageEnd();
       }
 
-      public org.apache.accumulo.core.data.thrift.InitialMultiScan getResult() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, org.apache.thrift.TException {
+      public org.apache.accumulo.core.data.thrift.InitialMultiScan getResult() throws org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException, TSampleNotPresentException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1176,7 +1196,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.accumulo.core.data.thrift.MultiScanResult getResult() throws NoSuchScanIDException, org.apache.thrift.TException {
+      public org.apache.accumulo.core.data.thrift.MultiScanResult getResult() throws NoSuchScanIDException, TSampleNotPresentException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -2260,13 +2280,15 @@ import org.slf4j.LoggerFactory;
       public startScan_result getResult(I iface, startScan_args args) throws org.apache.thrift.TException {
         startScan_result result = new startScan_result();
         try {
-          result.success = iface.startScan(args.tinfo, args.credentials, args.extent, args.range, args.columns, args.batchSize, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.isolated, args.readaheadThreshold, args.batchTimeOut);
+          result.success = iface.startScan(args.tinfo, args.credentials, args.extent, args.range, args.columns, args.batchSize, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.isolated, args.readaheadThreshold, args.samplerConfig, args.batchTimeOut);
         } catch (org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException sec) {
           result.sec = sec;
         } catch (NotServingTabletException nste) {
           result.nste = nste;
         } catch (TooManyFilesException tmfe) {
           result.tmfe = tmfe;
+        } catch (TSampleNotPresentException tsnpe) {
+          result.tsnpe = tsnpe;
         }
         return result;
       }
@@ -2295,6 +2317,8 @@ import org.slf4j.LoggerFactory;
           result.nste = nste;
         } catch (TooManyFilesException tmfe) {
           result.tmfe = tmfe;
+        } catch (TSampleNotPresentException tsnpe) {
+          result.tsnpe = tsnpe;
         }
         return result;
       }
@@ -2335,9 +2359,11 @@ import org.slf4j.LoggerFactory;
       public startMultiScan_result getResult(I iface, startMultiScan_args args) throws org.apache.thrift.TException {
         startMultiScan_result result = new startMultiScan_result();
         try {
-          result.success = iface.startMultiScan(args.tinfo, args.credentials, args.batch, args.columns, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.batchTimeOut);
+          result.success = iface.startMultiScan(args.tinfo, args.credentials, args.batch, args.columns, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.samplerConfig, args.batchTimeOut);
         } catch (org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException sec) {
           result.sec = sec;
+        } catch (TSampleNotPresentException tsnpe) {
+          result.tsnpe = tsnpe;
         }
         return result;
       }
@@ -2362,6 +2388,8 @@ import org.slf4j.LoggerFactory;
           result.success = iface.continueMultiScan(args.tinfo, args.scanID);
         } catch (NoSuchScanIDException nssi) {
           result.nssi = nssi;
+        } catch (TSampleNotPresentException tsnpe) {
+          result.tsnpe = tsnpe;
         }
         return result;
       }
@@ -3029,6 +3057,11 @@ import org.slf4j.LoggerFactory;
                         result.setTmfeIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof TSampleNotPresentException) {
+                        result.tsnpe = (TSampleNotPresentException) e;
+                        result.setTsnpeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -3050,7 +3083,7 @@ import org.slf4j.LoggerFactory;
       }
 
       public void start(I iface, startScan_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.data.thrift.InitialScan> resultHandler) throws TException {
-        iface.startScan(args.tinfo, args.credentials, args.extent, args.range, args.columns, args.batchSize, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.isolated, args.readaheadThreshold, args.batchTimeOut,resultHandler);
+        iface.startScan(args.tinfo, args.credentials, args.extent, args.range, args.columns, args.batchSize, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.isolated, args.readaheadThreshold, args.samplerConfig, args.batchTimeOut,resultHandler);
       }
     }
 
@@ -3096,6 +3129,11 @@ import org.slf4j.LoggerFactory;
                         result.setTmfeIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof TSampleNotPresentException) {
+                        result.tsnpe = (TSampleNotPresentException) e;
+                        result.setTsnpeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -3181,6 +3219,11 @@ import org.slf4j.LoggerFactory;
                         result.setSecIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof TSampleNotPresentException) {
+                        result.tsnpe = (TSampleNotPresentException) e;
+                        result.setTsnpeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -3202,7 +3245,7 @@ import org.slf4j.LoggerFactory;
       }
 
       public void start(I iface, startMultiScan_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.accumulo.core.data.thrift.InitialMultiScan> resultHandler) throws TException {
-        iface.startMultiScan(args.tinfo, args.credentials, args.batch, args.columns, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.batchTimeOut,resultHandler);
+        iface.startMultiScan(args.tinfo, args.credentials, args.batch, args.columns, args.ssiList, args.ssio, args.authorizations, args.waitForWrites, args.samplerConfig, args.batchTimeOut,resultHandler);
       }
     }
 
@@ -3238,6 +3281,11 @@ import org.slf4j.LoggerFactory;
                         result.setNssiIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof TSampleNotPresentException) {
+                        result.tsnpe = (TSampleNotPresentException) e;
+                        result.setTsnpeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -4471,7 +4519,8 @@ import org.slf4j.LoggerFactory;
     private static final org.apache.thrift.protocol.TField WAIT_FOR_WRITES_FIELD_DESC = new org.apache.thrift.protocol.TField("waitForWrites", org.apache.thrift.protocol.TType.BOOL, (short)9);
     private static final org.apache.thrift.protocol.TField ISOLATED_FIELD_DESC = new org.apache.thrift.protocol.TField("isolated", org.apache.thrift.protocol.TType.BOOL, (short)10);
     private static final org.apache.thrift.protocol.TField READAHEAD_THRESHOLD_FIELD_DESC = new org.apache.thrift.protocol.TField("readaheadThreshold", org.apache.thrift.protocol.TType.I64, (short)12);
-    private static final org.apache.thrift.protocol.TField BATCH_TIME_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("batchTimeOut", org.apache.thrift.protocol.TType.I64, (short)13);
+    private static final org.apache.thrift.protocol.TField SAMPLER_CONFIG_FIELD_DESC = new org.apache.thrift.protocol.TField("samplerConfig", org.apache.thrift.protocol.TType.STRUCT, (short)13);
+    private static final org.apache.thrift.protocol.TField BATCH_TIME_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("batchTimeOut", org.apache.thrift.protocol.TType.I64, (short)14);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -4491,6 +4540,7 @@ import org.slf4j.LoggerFactory;
     public boolean waitForWrites; // required
     public boolean isolated; // required
     public long readaheadThreshold; // required
+    public TSamplerConfiguration samplerConfig; // required
     public long batchTimeOut; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -4507,7 +4557,8 @@ import org.slf4j.LoggerFactory;
       WAIT_FOR_WRITES((short)9, "waitForWrites"),
       ISOLATED((short)10, "isolated"),
       READAHEAD_THRESHOLD((short)12, "readaheadThreshold"),
-      BATCH_TIME_OUT((short)13, "batchTimeOut");
+      SAMPLER_CONFIG((short)13, "samplerConfig"),
+      BATCH_TIME_OUT((short)14, "batchTimeOut");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -4546,7 +4597,9 @@ import org.slf4j.LoggerFactory;
             return ISOLATED;
           case 12: // READAHEAD_THRESHOLD
             return READAHEAD_THRESHOLD;
-          case 13: // BATCH_TIME_OUT
+          case 13: // SAMPLER_CONFIG
+            return SAMPLER_CONFIG;
+          case 14: // BATCH_TIME_OUT
             return BATCH_TIME_OUT;
           default:
             return null;
@@ -4628,6 +4681,8 @@ import org.slf4j.LoggerFactory;
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       tmpMap.put(_Fields.READAHEAD_THRESHOLD, new org.apache.thrift.meta_data.FieldMetaData("readaheadThreshold", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+      tmpMap.put(_Fields.SAMPLER_CONFIG, new org.apache.thrift.meta_data.FieldMetaData("samplerConfig", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSamplerConfiguration.class)));
       tmpMap.put(_Fields.BATCH_TIME_OUT, new org.apache.thrift.meta_data.FieldMetaData("batchTimeOut", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -4650,6 +4705,7 @@ import org.slf4j.LoggerFactory;
       boolean waitForWrites,
       boolean isolated,
       long readaheadThreshold,
+      TSamplerConfiguration samplerConfig,
       long batchTimeOut)
     {
       this();
@@ -4669,6 +4725,7 @@ import org.slf4j.LoggerFactory;
       setIsolatedIsSet(true);
       this.readaheadThreshold = readaheadThreshold;
       setReadaheadThresholdIsSet(true);
+      this.samplerConfig = samplerConfig;
       this.batchTimeOut = batchTimeOut;
       setBatchTimeOutIsSet(true);
     }
@@ -4727,6 +4784,9 @@ import org.slf4j.LoggerFactory;
       this.waitForWrites = other.waitForWrites;
       this.isolated = other.isolated;
       this.readaheadThreshold = other.readaheadThreshold;
+      if (other.isSetSamplerConfig()) {
+        this.samplerConfig = new TSamplerConfiguration(other.samplerConfig);
+      }
       this.batchTimeOut = other.batchTimeOut;
     }
 
@@ -4752,6 +4812,7 @@ import org.slf4j.LoggerFactory;
       this.isolated = false;
       setReadaheadThresholdIsSet(false);
       this.readaheadThreshold = 0;
+      this.samplerConfig = null;
       setBatchTimeOutIsSet(false);
       this.batchTimeOut = 0;
     }
@@ -5096,6 +5157,30 @@ import org.slf4j.LoggerFactory;
       __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __READAHEADTHRESHOLD_ISSET_ID, value);
     }
 
+    public TSamplerConfiguration getSamplerConfig() {
+      return this.samplerConfig;
+    }
+
+    public startScan_args setSamplerConfig(TSamplerConfiguration samplerConfig) {
+      this.samplerConfig = samplerConfig;
+      return this;
+    }
+
+    public void unsetSamplerConfig() {
+      this.samplerConfig = null;
+    }
+
+    /** Returns true if field samplerConfig is set (has been assigned a value) and false otherwise */
+    public boolean isSetSamplerConfig() {
+      return this.samplerConfig != null;
+    }
+
+    public void setSamplerConfigIsSet(boolean value) {
+      if (!value) {
+        this.samplerConfig = null;
+      }
+    }
+
     public long getBatchTimeOut() {
       return this.batchTimeOut;
     }
@@ -5217,6 +5302,14 @@ import org.slf4j.LoggerFactory;
         }
         break;
 
+      case SAMPLER_CONFIG:
+        if (value == null) {
+          unsetSamplerConfig();
+        } else {
+          setSamplerConfig((TSamplerConfiguration)value);
+        }
+        break;
+
       case BATCH_TIME_OUT:
         if (value == null) {
           unsetBatchTimeOut();
@@ -5266,6 +5359,9 @@ import org.slf4j.LoggerFactory;
       case READAHEAD_THRESHOLD:
         return Long.valueOf(getReadaheadThreshold());
 
+      case SAMPLER_CONFIG:
+        return getSamplerConfig();
+
       case BATCH_TIME_OUT:
         return Long.valueOf(getBatchTimeOut());
 
@@ -5304,6 +5400,8 @@ import org.slf4j.LoggerFactory;
         return isSetIsolated();
       case READAHEAD_THRESHOLD:
         return isSetReadaheadThreshold();
+      case SAMPLER_CONFIG:
+        return isSetSamplerConfig();
       case BATCH_TIME_OUT:
         return isSetBatchTimeOut();
       }
@@ -5431,6 +5529,15 @@ import org.slf4j.LoggerFactory;
           return false;
       }
 
+      boolean this_present_samplerConfig = true && this.isSetSamplerConfig();
+      boolean that_present_samplerConfig = true && that.isSetSamplerConfig();
+      if (this_present_samplerConfig || that_present_samplerConfig) {
+        if (!(this_present_samplerConfig && that_present_samplerConfig))
+          return false;
+        if (!this.samplerConfig.equals(that.samplerConfig))
+          return false;
+      }
+
       boolean this_present_batchTimeOut = true;
       boolean that_present_batchTimeOut = true;
       if (this_present_batchTimeOut || that_present_batchTimeOut) {
@@ -5576,6 +5683,16 @@ import org.slf4j.LoggerFactory;
           return lastComparison;
         }
       }
+      lastComparison = Boolean.valueOf(isSetSamplerConfig()).compareTo(other.isSetSamplerConfig());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSamplerConfig()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.samplerConfig, other.samplerConfig);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = Boolean.valueOf(isSetBatchTimeOut()).compareTo(other.isSetBatchTimeOut());
       if (lastComparison != 0) {
         return lastComparison;
@@ -5686,6 +5803,14 @@ import org.slf4j.LoggerFactory;
       sb.append(this.readaheadThreshold);
       first = false;
       if (!first) sb.append(", ");
+      sb.append("samplerConfig:");
+      if (this.samplerConfig == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.samplerConfig);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("batchTimeOut:");
       sb.append(this.batchTimeOut);
       first = false;
@@ -5708,6 +5833,9 @@ import org.slf4j.LoggerFactory;
       if (range != null) {
         range.validate();
       }
+      if (samplerConfig != null) {
+        samplerConfig.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -5785,14 +5913,14 @@ import org.slf4j.LoggerFactory;
             case 4: // COLUMNS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list106 = iprot.readListBegin();
-                  struct.columns = new ArrayList<org.apache.accumulo.core.data.thrift.TColumn>(_list106.size);
-                  for (int _i107 = 0; _i107 < _list106.size; ++_i107)
+                  org.apache.thrift.protocol.TList _list116 = iprot.readListBegin();
+                  struct.columns = new ArrayList<org.apache.accumulo.core.data.thrift.TColumn>(_list116.size);
+                  for (int _i117 = 0; _i117 < _list116.size; ++_i117)
                   {
-                    org.apache.accumulo.core.data.thrift.TColumn _elem108;
-                    _elem108 = new org.apache.accumulo.core.data.thrift.TColumn();
-                    _elem108.read(iprot);
-                    struct.columns.add(_elem108);
+                    org.apache.accumulo.core.data.thrift.TColumn _elem118;
+                    _elem118 = new org.apache.accumulo.core.data.thrift.TColumn();
+                    _elem118.read(iprot);
+                    struct.columns.add(_elem118);
                   }
                   iprot.readListEnd();
                 }
@@ -5812,14 +5940,14 @@ import org.slf4j.LoggerFactory;
             case 6: // SSI_LIST
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list109 = iprot.readListBegin();
-                  struct.ssiList = new ArrayList<org.apache.accumulo.core.data.thrift.IterInfo>(_list109.size);
-                  for (int _i110 = 0; _i110 < _list109.size; ++_i110)
+                  org.apache.thrift.protocol.TList _list119 = iprot.readListBegin();
+                  struct.ssiList = new ArrayList<org.apache.accumulo.core.data.thrift.IterInfo>(_list119.size);
+                  for (int _i120 = 0; _i120 < _list119.size; ++_i120)
                   {
-                    org.apache.accumulo.core.data.thrift.IterInfo _elem111;
-                    _elem111 = new org.apache.accumulo.core.data.thrift.IterInfo();
-                    _elem111.read(iprot);
-                    struct.ssiList.add(_elem111);
+                    org.apache.accumulo.core.data.thrift.IterInfo _elem121;
+                    _elem121 = new org.apache.accumulo.core.data.thrift.IterInfo();
+                    _elem121.read(iprot);
+                    struct.ssiList.add(_elem121);
                   }
                   iprot.readListEnd();
                 }
@@ -5831,27 +5959,27 @@ import org.slf4j.LoggerFactory;
             case 7: // SSIO
               if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                 {
-                  org.apache.thrift.protocol.TMap _map112 = iprot.readMapBegin();
-                  struct.ssio = new HashMap<String,Map<String,String>>(2*_map112.size);
-                  for (int _i113 = 0; _i113 < _map112.size; ++_i113)
+                  org.apache.thrift.protocol.TMap _map122 = iprot.readMapBegin();
+                  struct.ssio = new HashMap<String,Map<String,String>>(2*_map122.size);
+                  for (int _i123 = 0; _i123 < _map122.size; ++_i123)
                   {
-                    String _key114;
-                    Map<String,String> _val115;
-                    _key114 = iprot.readString();
+                    String _key124;
+                    Map<String,String> _val125;
+                    _key124 = iprot.readString();
                     {
-                      org.apache.thrift.protocol.TMap _map116 = iprot.readMapBegin();
-                      _val115 = new HashMap<String,String>(2*_map116.size);
-                      for (int _i117 = 0; _i117 < _map116.size; ++_i117)
+                      org.apache.thrift.protocol.TMap _map126 = iprot.readMapBegin();
+                      _val125 = new HashMap<String,String>(2*_map126.size);
+                      for (int _i127 = 0; _i127 < _map126.size; ++_i127)
                       {
-                        String _key118;
-                        String _val119;
-                        _key118 = iprot.readString();
-                        _val119 = iprot.readString();
-                        _val115.put(_key118, _val119);
+                        String _key128;
+                        String _val129;
+                        _key128 = iprot.readString();
+                        _val129 = iprot.readString();
+                        _val125.put(_key128, _val129);
                       }
                       iprot.readMapEnd();
                     }
-                    struct.ssio.put(_key114, _val115);
+                    struct.ssio.put(_key124, _val125);
                   }
                   iprot.readMapEnd();
                 }
@@ -5863,13 +5991,13 @@ import org.slf4j.LoggerFactory;
             case 8: // AUTHORIZATIONS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list120 = iprot.readListBegin();
-                  struct.authorizations = new ArrayList<ByteBuffer>(_list120.size);
-                  for (int _i121 = 0; _i121 < _list120.size; ++_i121)
+                  org.apache.thrift.protocol.TList _list130 = iprot.readListBegin();
+                  struct.authorizations = new ArrayList<ByteBuffer>(_list130.size);
+                  for (int _i131 = 0; _i131 < _list130.size; ++_i131)
                   {
-                    ByteBuffer _elem122;
-                    _elem122 = iprot.readBinary();
-                    struct.authorizations.add(_elem122);
+                    ByteBuffer _elem132;
+                    _elem132 = iprot.readBinary();
+                    struct.authorizations.add(_elem132);
                   }
                   iprot.readListEnd();
                 }
@@ -5902,7 +6030,16 @@ import org.slf4j.LoggerFactory;
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 13: // BATCH_TIME_OUT
+            case 13: // SAMPLER_CONFIG
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.samplerConfig = new TSamplerConfiguration();
+                struct.samplerConfig.read(iprot);
+                struct.setSamplerConfigIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 14: // BATCH_TIME_OUT
               if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                 struct.batchTimeOut = iprot.readI64();
                 struct.setBatchTimeOutIsSet(true);
@@ -5944,9 +6081,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.columns.size()));
-            for (org.apache.accumulo.core.data.thrift.TColumn _iter123 : struct.columns)
+            for (org.apache.accumulo.core.data.thrift.TColumn _iter133 : struct.columns)
             {
-              _iter123.write(oprot);
+              _iter133.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -5959,9 +6096,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(SSI_LIST_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.ssiList.size()));
-            for (org.apache.accumulo.core.data.thrift.IterInfo _iter124 : struct.ssiList)
+            for (org.apache.accumulo.core.data.thrift.IterInfo _iter134 : struct.ssiList)
             {
-              _iter124.write(oprot);
+              _iter134.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -5971,15 +6108,15 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(SSIO_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.ssio.size()));
-            for (Map.Entry<String, Map<String,String>> _iter125 : struct.ssio.entrySet())
+            for (Map.Entry<String, Map<String,String>> _iter135 : struct.ssio.entrySet())
             {
-              oprot.writeString(_iter125.getKey());
+              oprot.writeString(_iter135.getKey());
               {
-                oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter125.getValue().size()));
-                for (Map.Entry<String, String> _iter126 : _iter125.getValue().entrySet())
+                oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter135.getValue().size()));
+                for (Map.Entry<String, String> _iter136 : _iter135.getValue().entrySet())
                 {
-                  oprot.writeString(_iter126.getKey());
-                  oprot.writeString(_iter126.getValue());
+                  oprot.writeString(_iter136.getKey());
+                  oprot.writeString(_iter136.getValue());
                 }
                 oprot.writeMapEnd();
               }
@@ -5992,9 +6129,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(AUTHORIZATIONS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.authorizations.size()));
-            for (ByteBuffer _iter127 : struct.authorizations)
+            for (ByteBuffer _iter137 : struct.authorizations)
             {
-              oprot.writeBinary(_iter127);
+              oprot.writeBinary(_iter137);
             }
             oprot.writeListEnd();
           }
@@ -6014,6 +6151,11 @@ import org.slf4j.LoggerFactory;
         oprot.writeFieldBegin(READAHEAD_THRESHOLD_FIELD_DESC);
         oprot.writeI64(struct.readaheadThreshold);
         oprot.writeFieldEnd();
+        if (struct.samplerConfig != null) {
+          oprot.writeFieldBegin(SAMPLER_CONFIG_FIELD_DESC);
+          struct.samplerConfig.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldBegin(BATCH_TIME_OUT_FIELD_DESC);
         oprot.writeI64(struct.batchTimeOut);
         oprot.writeFieldEnd();
@@ -6071,10 +6213,13 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetReadaheadThreshold()) {
           optionals.set(11);
         }
-        if (struct.isSetBatchTimeOut()) {
+        if (struct.isSetSamplerConfig()) {
           optionals.set(12);
         }
-        oprot.writeBitSet(optionals, 13);
+        if (struct.isSetBatchTimeOut()) {
+          optionals.set(13);
+        }
+        oprot.writeBitSet(optionals, 14);
         if (struct.isSetTinfo()) {
           struct.tinfo.write(oprot);
         }
@@ -6090,9 +6235,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetColumns()) {
           {
             oprot.writeI32(struct.columns.size());
-            for (org.apache.accumulo.core.data.thrift.TColumn _iter128 : struct.columns)
+            for (org.apache.accumulo.core.data.thrift.TColumn _iter138 : struct.columns)
             {
-              _iter128.write(oprot);
+              _iter138.write(oprot);
             }
           }
         }
@@ -6102,24 +6247,24 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetSsiList()) {
           {
             oprot.writeI32(struct.ssiList.size());
-            for (org.apache.accumulo.core.data.thrift.IterInfo _iter129 : struct.ssiList)
+            for (org.apache.accumulo.core.data.thrift.IterInfo _iter139 : struct.ssiList)
             {
-              _iter129.write(oprot);
+              _iter139.write(oprot);
             }
           }
         }
         if (struct.isSetSsio()) {
           {
             oprot.writeI32(struct.ssio.size());
-            for (Map.Entry<String, Map<String,String>> _iter130 : struct.ssio.entrySet())
+            for (Map.Entry<String, Map<String,String>> _iter140 : struct.ssio.entrySet())
             {
-              oprot.writeString(_iter130.getKey());
+              oprot.writeString(_iter140.getKey());
               {
-                oprot.writeI32(_iter130.getValue().size());
-                for (Map.Entry<String, String> _iter131 : _iter130.getValue().entrySet())
+                oprot.writeI32(_iter140.getValue().size());
+                for (Map.Entry<String, String> _iter141 : _iter140.getValue().entrySet())
                 {
-                  oprot.writeString(_iter131.getKey());
-                  oprot.writeString(_iter131.getValue());
+                  oprot.writeString(_iter141.getKey());
+                  oprot.writeString(_iter141.getValue());
                 }
               }
             }
@@ -6128,9 +6273,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetAuthorizations()) {
           {
             oprot.writeI32(struct.authorizations.size());
-            for (ByteBuffer _iter132 : struct.authorizations)
+            for (ByteBuffer _iter142 : struct.authorizations)
             {
-              oprot.writeBinary(_iter132);
+              oprot.writeBinary(_iter142);
             }
           }
         }
@@ -6143,6 +6288,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetReadaheadThreshold()) {
           oprot.writeI64(struct.readaheadThreshold);
         }
+        if (struct.isSetSamplerConfig()) {
+          struct.samplerConfig.write(oprot);
+        }
         if (struct.isSetBatchTimeOut()) {
           oprot.writeI64(struct.batchTimeOut);
         }
@@ -6151,7 +6299,7 @@ import org.slf4j.LoggerFactory;
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, startScan_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(13);
+        BitSet incoming = iprot.readBitSet(14);
         if (incoming.get(0)) {
           struct.tinfo = new org.apache.accumulo.core.trace.thrift.TInfo();
           struct.tinfo.read(iprot);
@@ -6174,14 +6322,14 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(4)) {
           {
-            org.apache.thrift.protocol.TList _list133 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.columns = new ArrayList<org.apache.accumulo.core.data.thrift.TColumn>(_list133.size);
-            for (int _i134 = 0; _i134 < _list133.size; ++_i134)
+            org.apache.thrift.protocol.TList _list143 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.columns = new ArrayList<org.apache.accumulo.core.data.thrift.TColumn>(_list143.size);
+            for (int _i144 = 0; _i144 < _list143.size; ++_i144)
             {
-              org.apache.accumulo.core.data.thrift.TColumn _elem135;
-              _elem135 = new org.apache.accumulo.core.data.thrift.TColumn();
-              _elem135.read(iprot);
-              struct.columns.add(_elem135);
+              org.apache.accumulo.core.data.thrift.TColumn _elem145;
+              _elem145 = new org.apache.accumulo.core.data.thrift.TColumn();
+              _elem145.read(iprot);
+              struct.columns.add(_elem145);
             }
           }
           struct.setColumnsIsSet(true);
@@ -6192,53 +6340,53 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(6)) {
           {
-            org.apache.thrift.protocol.TList _list136 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.ssiList = new ArrayList<org.apache.accumulo.core.data.thrift.IterInfo>(_list136.size);
-            for (int _i137 = 0; _i137 < _list136.size; ++_i137)
+            org.apache.thrift.protocol.TList _list146 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.ssiList = new ArrayList<org.apache.accumulo.core.data.thrift.IterInfo>(_list146.size);
+            for (int _i147 = 0; _i147 < _list146.size; ++_i147)
             {
-              org.apache.accumulo.core.data.thrift.IterInfo _elem138;
-              _elem138 = new org.apache.accumulo.core.data.thrift.IterInfo();
-              _elem138.read(iprot);
-              struct.ssiList.add(_elem138);
+              org.apache.accumulo.core.data.thrift.IterInfo _elem148;
+              _elem148 = new org.apache.accumulo.core.data.thrift.IterInfo();
+              _elem148.read(iprot);
+              struct.ssiList.add(_elem148);
             }
           }
           struct.setSsiListIsSet(true);
         }
         if (incoming.get(7)) {
           {
-            org.apache.thrift.protocol.TMap _map139 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
-            struct.ssio = new HashMap<String,Map<String,String>>(2*_map139.size);
-            for (int _i140 = 0; _i140 < _map139.size; ++_i140)
+            org.apache.thrift.protocol.TMap _map149 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
+            struct.ssio = new HashMap<String,Map<String,String>>(2*_map149.size);
+            for (int _i150 = 0; _i150 < _map149.size; ++_i150)
             {
-              String _key141;
-              Map<String,String> _val142;
-              _key141 = iprot.readString();
+              String _key151;
+              Map<String,String> _val152;
+              _key151 = iprot.readString();
               {
-                org.apache.thrift.protocol.TMap _map143 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-                _val142 = new HashMap<String,String>(2*_map143.size);
-                for (int _i144 = 0; _i144 < _map143.size; ++_i144)
+                org.apache.thrift.protocol.TMap _map153 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+                _val152 = new HashMap<String,String>(2*_map153.size);
+                for (int _i154 = 0; _i154 < _map153.size; ++_i154)
                 {
-                  String _key145;
-                  String _val146;
-                  _key145 = iprot.readString();
-                  _val146 = iprot.readString();
-                  _val142.put(_key145, _val146);
+                  String _key155;
+                  String _val156;
+                  _key155 = iprot.readString();
+                  _val156 = iprot.readString();
+                  _val152.put(_key155, _val156);
                 }
               }
-              struct.ssio.put(_key141, _val142);
+              struct.ssio.put(_key151, _val152);
             }
           }
           struct.setSsioIsSet(true);
         }
         if (incoming.get(8)) {
           {
-            org.apache.thrift.protocol.TList _list147 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.authorizations = new ArrayList<ByteBuffer>(_list147.size);
-            for (int _i148 = 0; _i148 < _list147.size; ++_i148)
+            org.apache.thrift.protocol.TList _list157 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.authorizations = new ArrayList<ByteBuffer>(_list157.size);
+            for (int _i158 = 0; _i158 < _list157.size; ++_i158)
             {
-              ByteBuffer _elem149;
-              _elem149 = iprot.readBinary();
-              struct.authorizations.add(_elem149);
+              ByteBuffer _elem159;
+              _elem159 = iprot.readBinary();
+              struct.authorizations.add(_elem159);
             }
           }
           struct.setAuthorizationsIsSet(true);
@@ -6256,6 +6404,11 @@ import org.slf4j.LoggerFactory;
           struct.setReadaheadThresholdIsSet(true);
         }
         if (incoming.get(12)) {
+          struct.samplerConfig = new TSamplerConfiguration();
+          struct.samplerConfig.read(iprot);
+          struct.setSamplerConfigIsSet(true);
+        }
+        if (incoming.get(13)) {
           struct.batchTimeOut = iprot.readI64();
           struct.setBatchTimeOutIsSet(true);
         }
@@ -6271,6 +6424,7 @@ import org.slf4j.LoggerFactory;
     private static final org.apache.thrift.protocol.TField SEC_FIELD_DESC = new org.apache.thrift.protocol.TField("sec", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField NSTE_FIELD_DESC = new org.apache.thrift.protocol.TField("nste", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField TMFE_FIELD_DESC = new org.apache.thrift.protocol.TField("tmfe", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField TSNPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tsnpe", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -6282,13 +6436,15 @@ import org.slf4j.LoggerFactory;
     public org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException sec; // required
     public NotServingTabletException nste; // required
     public TooManyFilesException tmfe; // required
+    public TSampleNotPresentException tsnpe; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       SUCCESS((short)0, "success"),
       SEC((short)1, "sec"),
       NSTE((short)2, "nste"),
-      TMFE((short)3, "tmfe");
+      TMFE((short)3, "tmfe"),
+      TSNPE((short)4, "tsnpe");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -6311,6 +6467,8 @@ import org.slf4j.LoggerFactory;
             return NSTE;
           case 3: // TMFE
             return TMFE;
+          case 4: // TSNPE
+            return TSNPE;
           default:
             return null;
         }
@@ -6362,6 +6520,8 @@ import org.slf4j.LoggerFactory;
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.TMFE, new org.apache.thrift.meta_data.FieldMetaData("tmfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.TSNPE, new org.apache.thrift.meta_data.FieldMetaData("tsnpe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(startScan_result.class, metaDataMap);
     }
@@ -6373,13 +6533,15 @@ import org.slf4j.LoggerFactory;
       org.apache.accumulo.core.data.thrift.InitialScan success,
       org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException sec,
       NotServingTabletException nste,
-      TooManyFilesException tmfe)
+      TooManyFilesException tmfe,
+      TSampleNotPresentException tsnpe)
     {
       this();
       this.success = success;
       this.sec = sec;
       this.nste = nste;
       this.tmfe = tmfe;
+      this.tsnpe = tsnpe;
     }
 
     /**
@@ -6398,6 +6560,9 @@ import org.slf4j.LoggerFactory;
       if (other.isSetTmfe()) {
         this.tmfe = new TooManyFilesException(other.tmfe);
       }
+      if (other.isSetTsnpe()) {
+        this.tsnpe = new TSampleNotPresentException(other.tsnpe);
+      }
     }
 
     public startScan_result deepCopy() {
@@ -6410,6 +6575,7 @@ import org.slf4j.LoggerFactory;
       this.sec = null;
       this.nste = null;
       this.tmfe = null;
+      this.tsnpe = null;
     }
 
     public org.apache.accumulo.core.data.thrift.InitialScan getSuccess() {
@@ -6508,6 +6674,30 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public TSampleNotPresentException getTsnpe() {
+      return this.tsnpe;
+    }
+
+    public startScan_result setTsnpe(TSampleNotPresentException tsnpe) {
+      this.tsnpe = tsnpe;
+      return this;
+    }
+
+    public void unsetTsnpe() {
+      this.tsnpe = null;
+    }
+
+    /** Returns true if field tsnpe is set (has been assigned a value) and false otherwise */
+    public boolean isSetTsnpe() {
+      return this.tsnpe != null;
+    }
+
+    public void setTsnpeIsSet(boolean value) {
+      if (!value) {
+        this.tsnpe = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case SUCCESS:
@@ -6542,6 +6732,14 @@ import org.slf4j.LoggerFactory;
         }
         break;
 
+      case TSNPE:
+        if (value == null) {
+          unsetTsnpe();
+        } else {
+          setTsnpe((TSampleNotPresentException)value);
+        }
+        break;
+
       }
     }
 
@@ -6559,6 +6757,9 @@ import org.slf4j.LoggerFactory;
       case TMFE:
         return getTmfe();
 
+      case TSNPE:
+        return getTsnpe();
+
       }
       throw new IllegalStateException();
     }
@@ -6578,6 +6779,8 @@ import org.slf4j.LoggerFactory;
         return isSetNste();
       case TMFE:
         return isSetTmfe();
+      case TSNPE:
+        return isSetTsnpe();
       }
       throw new IllegalStateException();
     }
@@ -6631,6 +6834,15 @@ import org.slf4j.LoggerFactory;
           return false;
       }
 
+      boolean this_present_tsnpe = true && this.isSetTsnpe();
+      boolean that_present_tsnpe = true && that.isSetTsnpe();
+      if (this_present_tsnpe || that_present_tsnpe) {
+        if (!(this_present_tsnpe && that_present_tsnpe))
+          return false;
+        if (!this.tsnpe.equals(that.tsnpe))
+          return false;
+      }
+
       return true;
     }
 
@@ -6687,6 +6899,16 @@ import org.slf4j.LoggerFactory;
           return lastComparison;
         }
       }
+      lastComparison = Boolean.valueOf(isSetTsnpe()).compareTo(other.isSetTsnpe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetTsnpe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tsnpe, other.tsnpe);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -6738,6 +6960,14 @@ import org.slf4j.LoggerFactory;
         sb.append(this.tmfe);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("tsnpe:");
+      if (this.tsnpe == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tsnpe);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -6820,6 +7050,15 @@ import org.slf4j.LoggerFactory;
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 4: // TSNPE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.tsnpe = new TSampleNotPresentException();
+                struct.tsnpe.read(iprot);
+                struct.setTsnpeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -6855,6 +7094,11 @@ import org.slf4j.LoggerFactory;
           struct.tmfe.write(oprot);
           oprot.writeFieldEnd();
         }
+        if (struct.tsnpe != null) {
+          oprot.writeFieldBegin(TSNPE_FIELD_DESC);
+          struct.tsnpe.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -6885,7 +7129,10 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetTmfe()) {
           optionals.set(3);
         }
-        oprot.writeBitSet(optionals, 4);
+        if (struct.isSetTsnpe()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
           struct.success.write(oprot);
         }
@@ -6898,12 +7145,15 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetTmfe()) {
           struct.tmfe.write(oprot);
         }
+        if (struct.isSetTsnpe()) {
+          struct.tsnpe.write(oprot);
+        }
       }
 
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, startScan_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(4);
+        BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
           struct.success = new org.apache.accumulo.core.data.thrift.InitialScan();
           struct.success.read(iprot);
@@ -6924,6 +7174,11 @@ import org.slf4j.LoggerFactory;
           struct.tmfe.read(iprot);
           struct.setTmfeIsSet(true);
         }
+        if (incoming.get(4)) {
+          struct.tsnpe = new TSampleNotPresentException();
+          struct.tsnpe.read(iprot);
+          struct.setTsnpeIsSet(true);
+        }
       }
     }
 
@@ -7393,6 +7648,7 @@ import org.slf4j.LoggerFactory;
     private static final org.apache.thrift.protocol.TField NSSI_FIELD_DESC = new org.apache.thrift.protocol.TField("nssi", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField NSTE_FIELD_DESC = new org.apache.thrift.protocol.TField("nste", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField TMFE_FIELD_DESC = new org.apache.thrift.protocol.TField("tmfe", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField TSNPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tsnpe", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -7404,13 +7660,15 @@ import org.slf4j.LoggerFactory;
     public NoSuchScanIDException nssi; // required
     public NotServingTabletException nste; // required
     public TooManyFilesException tmfe; // required
+    public TSampleNotPresentException tsnpe; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       SUCCESS((short)0, "success"),
       NSSI((short)1, "nssi"),
       NSTE((short)2, "nste"),
-      TMFE((short)3, "tmfe");
+      TMFE((short)3, "tmfe"),
+      TSNPE((short)4, "tsnpe");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -7433,6 +7691,8 @@ import org.slf4j.LoggerFactory;
             return NSTE;
           case 3: // TMFE
             return TMFE;
+          case 4: // TSNPE
+            return TSNPE;
           default:
             return null;
         }
@@ -7484,6 +7744,8 @@ import org.slf4j.LoggerFactory;
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.TMFE, new org.apache.thrift.meta_data.FieldMetaData("tmfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.TSNPE, new org.apache.thrift.meta_data.FieldMetaData("tsnpe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(continueScan_result.class, metaDataMap);
     }
@@ -7495,13 +7757,15 @@ import org.slf4j.LoggerFactory;
       org.apache.accumulo.core.data.thrift.ScanResult success,
       NoSuchScanIDException nssi,
       NotServingTabletException nste,
-      TooManyFilesException tmfe)
+      TooManyFilesException tmfe,
+      TSampleNotPresentException tsnpe)
     {
       this();
       this.success = success;
       this.nssi = nssi;
       this.nste = nste;
       this.tmfe = tmfe;
+      this.tsnpe = tsnpe;
     }
 
     /**
@@ -7520,6 +7784,9 @@ import org.slf4j.LoggerFactory;
       if (other.isSetTmfe()) {
         this.tmfe = new TooManyFilesException(other.tmfe);
       }
+      if (other.isSetTsnpe()) {
+        this.tsnpe = new TSampleNotPresentException(other.tsnpe);
+      }
     }
 
     public continueScan_result deepCopy() {
@@ -7532,6 +7799,7 @@ import org.slf4j.LoggerFactory;
       this.nssi = null;
       this.nste = null;
       this.tmfe = null;
+      this.tsnpe = null;
     }
 
     public org.apache.accumulo.core.data.thrift.ScanResult getSuccess() {
@@ -7630,6 +7898,30 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public TSampleNotPresentException getTsnpe() {
+      return this.tsnpe;
+    }
+
+    public continueScan_result setTsnpe(TSampleNotPresentException tsnpe) {
+      this.tsnpe = tsnpe;
+      return this;
+    }
+
+    public void unsetTsnpe() {
+      this.tsnpe = null;
+    }
+
+    /** Returns true if field tsnpe is set (has been assigned a value) and false otherwise */
+    public boolean isSetTsnpe() {
+      return this.tsnpe != null;
+    }
+
+    public void setTsnpeIsSet(boolean value) {
+      if (!value) {
+        this.tsnpe = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case SUCCESS:
@@ -7664,6 +7956,14 @@ import org.slf4j.LoggerFactory;
         }
         break;
 
+      case TSNPE:
+        if (value == null) {
+          unsetTsnpe();
+        } else {
+          setTsnpe((TSampleNotPresentException)value);
+        }
+        break;
+
       }
     }
 
@@ -7681,6 +7981,9 @@ import org.slf4j.LoggerFactory;
       case TMFE:
         return getTmfe();
 
+      case TSNPE:
+        return getTsnpe();
+
       }
       throw new IllegalStateException();
     }
@@ -7700,6 +8003,8 @@ import org.slf4j.LoggerFactory;
         return isSetNste();
       case TMFE:
         return isSetTmfe();
+      case TSNPE:
+        return isSetTsnpe();
       }
       throw new IllegalStateException();
     }
@@ -7753,6 +8058,15 @@ import org.slf4j.LoggerFactory;
           return false;
       }
 
+      boolean this_present_tsnpe = true && this.isSetTsnpe();
+      boolean that_present_tsnpe = true && that.isSetTsnpe();
+      if (this_present_tsnpe || that_present_tsnpe) {
+        if (!(this_present_tsnpe && that_present_tsnpe))
+          return false;
+        if (!this.tsnpe.equals(that.tsnpe))
+          return false;
+      }
+
       return true;
     }
 
@@ -7809,6 +8123,16 @@ import org.slf4j.LoggerFactory;
           return lastComparison;
         }
       }
+      lastComparison = Boolean.valueOf(isSetTsnpe()).compareTo(other.isSetTsnpe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetTsnpe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tsnpe, other.tsnpe);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -7860,6 +8184,14 @@ import org.slf4j.LoggerFactory;
         sb.append(this.tmfe);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("tsnpe:");
+      if (this.tsnpe == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tsnpe);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -7942,6 +8274,15 @@ import org.slf4j.LoggerFactory;
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 4: // TSNPE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.tsnpe = new TSampleNotPresentException();
+                struct.tsnpe.read(iprot);
+                struct.setTsnpeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -7977,6 +8318,11 @@ import org.slf4j.LoggerFactory;
           struct.tmfe.write(oprot);
           oprot.writeFieldEnd();
         }
+        if (struct.tsnpe != null) {
+          oprot.writeFieldBegin(TSNPE_FIELD_DESC);
+          struct.tsnpe.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -8007,7 +8353,10 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetTmfe()) {
           optionals.set(3);
         }
-        oprot.writeBitSet(optionals, 4);
+        if (struct.isSetTsnpe()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
           struct.success.write(oprot);
         }
@@ -8020,12 +8369,15 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetTmfe()) {
           struct.tmfe.write(oprot);
         }
+        if (struct.isSetTsnpe()) {
+          struct.tsnpe.write(oprot);
+        }
       }
 
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, continueScan_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(4);
+        BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
           struct.success = new org.apache.accumulo.core.data.thrift.ScanResult();
           struct.success.read(iprot);
@@ -8046,6 +8398,11 @@ import org.slf4j.LoggerFactory;
           struct.tmfe.read(iprot);
           struct.setTmfeIsSet(true);
         }
+        if (incoming.get(4)) {
+          struct.tsnpe = new TSampleNotPresentException();
+          struct.tsnpe.read(iprot);
+          struct.setTsnpeIsSet(true);
+        }
       }
     }
 
@@ -8519,7 +8876,8 @@ import org.slf4j.LoggerFactory;
     private static final org.apache.thrift.protocol.TField SSIO_FIELD_DESC = new org.apache.thrift.protocol.TField("ssio", org.apache.thrift.protocol.TType.MAP, (short)5);
     private static final org.apache.thrift.protocol.TField AUTHORIZATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizations", org.apache.thrift.protocol.TType.LIST, (short)6);
     private static final org.apache.thrift.protocol.TField WAIT_FOR_WRITES_FIELD_DESC = new org.apache.thrift.protocol.TField("waitForWrites", org.apache.thrift.protocol.TType.BOOL, (short)7);
-    private static final org.apache.thrift.protocol.TField BATCH_TIME_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("batchTimeOut", org.apache.thrift.protocol.TType.I64, (short)9);
+    private static final org.apache.thrift.protocol.TField SAMPLER_CONFIG_FIELD_DESC = new org.apache.thrift.protocol.TField("samplerConfig", org.apache.thrift.protocol.TType.STRUCT, (short)9);
+    private static final org.apache.thrift.protocol.TField BATCH_TIME_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("batchTimeOut", org.apache.thrift.protocol.TType.I64, (short)10);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -8535,6 +8893,7 @@ import org.slf4j.LoggerFactory;
     public Map<String,Map<String,String>> ssio; // required
     public List<ByteBuffer> authorizations; // required
     public boolean waitForWrites; // required
+    public TSamplerConfiguration samplerConfig; // required
     public long batchTimeOut; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -8547,7 +8906,8 @@ import org.slf4j.LoggerFactory;
       SSIO((short)5, "ssio"),
       AUTHORIZATIONS((short)6, "authorizations"),
       WAIT_FOR_WRITES((short)7, "waitForWrites"),
-      BATCH_TIME_OUT((short)9, "batchTimeOut");
+      SAMPLER_CONFIG((short)9, "samplerConfig"),
+      BATCH_TIME_OUT((short)10, "batchTimeOut");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -8578,7 +8938,9 @@ import org.slf4j.LoggerFactory;
             return AUTHORIZATIONS;
           case 7: // WAIT_FOR_WRITES
             return WAIT_FOR_WRITES;
-          case 9: // BATCH_TIME_OUT
+          case 9: // SAMPLER_CONFIG
+            return SAMPLER_CONFIG;
+          case 10: // BATCH_TIME_OUT
             return BATCH_TIME_OUT;
           default:
             return null;
@@ -8649,6 +9011,8 @@ import org.slf4j.LoggerFactory;
               new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING              , true))));
       tmpMap.put(_Fields.WAIT_FOR_WRITES, new org.apache.thrift.meta_data.FieldMetaData("waitForWrites", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+      tmpMap.put(_Fields.SAMPLER_CONFIG, new org.apache.thrift.meta_data.FieldMetaData("samplerConfig", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSamplerConfiguration.class)));
       tmpMap.put(

<TRUNCATED>