org.apache.hadoop.hbase.client
Interface HTableInterface

All Superinterfaces:
Closeable
All Known Implementing Classes:
HTable

@InterfaceAudience.Public
@InterfaceStability.Stable
public interface HTableInterface
extends Closeable

Used to communicate with a single HBase table. Obtain an instance from an HConnection.

Since:
0.21.0

Method Summary
 Result append(Append append)
          Appends values to one or more columns within a single row.
 Object[] batch(List<? extends Row> actions)
          Deprecated. If any exception is thrown by one of the actions, there is no way to retrieve the partially executed results. Use batch(List, Object[]) instead.
 void batch(List<? extends Row> actions, Object[] results)
          Method that does a batch call on Deletes, Gets, Puts, Increments, Appends and RowMutations.
<R> Object[]
batchCallback(List<? extends Row> actions, Batch.Callback<R> callback)
          Deprecated. If any exception is thrown by one of the actions, there is no way to retrieve the partially executed results. Use batchCallback(List, Object[], org.apache.hadoop.hbase.client.coprocessor.Batch.Callback) instead.
<R> void
batchCallback(List<? extends Row> actions, Object[] results, Batch.Callback<R> callback)
          Same as batch(List, Object[]), but with a callback.
<R extends com.google.protobuf.Message>
Map<byte[],R>
batchCoprocessorService(com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor, com.google.protobuf.Message request, byte[] startKey, byte[] endKey, R responsePrototype)
          Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), all the invocations to the same region server will be batched into one call.
<R extends com.google.protobuf.Message>
void
batchCoprocessorService(com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor, com.google.protobuf.Message request, byte[] startKey, byte[] endKey, R responsePrototype, Batch.Callback<R> callback)
          Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), all the invocations to the same region server will be batched into one call.
 boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value, Delete delete)
          Atomically checks if a row/family/qualifier value matches the expected value.
 boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value, RowMutations mutation)
          Atomically checks if a row/family/qualifier value matches the expected val If it does, it performs the row mutations.
 boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put)
          Atomically checks if a row/family/qualifier value matches the expected value.
 void close()
          Releases any resources held or pending changes in internal buffers.
 CoprocessorRpcChannel coprocessorService(byte[] row)
          Creates and returns a RpcChannel instance connected to the table region containing the specified row.
<T extends com.google.protobuf.Service,R>
Map<byte[],R>
coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, Batch.Call<T,R> callable)
          Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), and invokes the passed Batch.Call.call(T) method with each Service instance.
<T extends com.google.protobuf.Service,R>
void
coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, Batch.Call<T,R> callable, Batch.Callback<R> callback)
          Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), and invokes the passed Batch.Call.call(T) method with each Service instance.
 void delete(Delete delete)
          Deletes the specified cells/row.
 void delete(List<Delete> deletes)
          Deletes the specified cells/rows in bulk.
 boolean exists(Get get)
          Test for the existence of columns in the table, as specified by the Get.
 Boolean[] exists(List<Get> gets)
          Test for the existence of columns in the table, as specified by the Gets.
 void flushCommits()
          Executes all the buffered Put operations.
 Result get(Get get)
          Extracts certain cells from a given row.
 Result[] get(List<Get> gets)
          Extracts certain cells from the given rows, in batch.
 org.apache.hadoop.conf.Configuration getConfiguration()
          Returns the Configuration object used by this instance.
 TableName getName()
          Gets the fully qualified table name instance of this table.
 Result getRowOrBefore(byte[] row, byte[] family)
          Deprecated. As of version 0.92 this method is deprecated without replacement. getRowOrBefore is used internally to find entries in hbase:meta and makes various assumptions about the table (which are true for hbase:meta but not in general) to be efficient.
 ResultScanner getScanner(byte[] family)
          Gets a scanner on the current table for the given family.
 ResultScanner getScanner(byte[] family, byte[] qualifier)
          Gets a scanner on the current table for the given family and qualifier.
 ResultScanner getScanner(Scan scan)
          Returns a scanner on the current table as specified by the Scan object.
 HTableDescriptor getTableDescriptor()
          Gets the table descriptor for this table.
 byte[] getTableName()
          Gets the name of this table.
 long getWriteBufferSize()
          Returns the maximum size in bytes of the write buffer for this HTable.
 Result increment(Increment increment)
          Increments one or more columns within a single row.
 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)
          See incrementColumnValue(byte[], byte[], byte[], long, Durability)
 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, boolean writeToWAL)
          Deprecated. Use incrementColumnValue(byte[], byte[], byte[], long, Durability)
 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability)
          Atomically increments a column value.
 boolean isAutoFlush()
          Tells whether or not 'auto-flush' is turned on.
 void mutateRow(RowMutations rm)
          Performs multiple mutations atomically on a single row.
 void put(List<Put> puts)
          Puts some data in the table, in batch.
 void put(Put put)
          Puts some data in the table.
 void setAutoFlush(boolean autoFlush)
          Deprecated. in 0.96. When called with setAutoFlush(false), this function also set clearBufferOnFail to true, which is unexpected but kept for historical reasons. Replace it with setAutoFlush(false, false) if this is exactly what you want, or by setAutoFlushTo(boolean) for all other cases.
 void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail)
          Turns 'auto-flush' on or off.
 void setAutoFlushTo(boolean autoFlush)
          Set the autoFlush behavior, without changing the value of clearBufferOnFail
 void setWriteBufferSize(long writeBufferSize)
          Sets the size of the buffer in bytes.
 

Method Detail

getTableName

byte[] getTableName()
Gets the name of this table.

Returns:
the table name.

getName

TableName getName()
Gets the fully qualified table name instance of this table.


getConfiguration

org.apache.hadoop.conf.Configuration getConfiguration()
Returns the Configuration object used by this instance.

The reference returned is not a copy, so any change made to it will affect this instance.


getTableDescriptor

HTableDescriptor getTableDescriptor()
                                    throws IOException
Gets the table descriptor for this table.

Throws:
IOException - if a remote or network exception occurs.

exists

boolean exists(Get get)
               throws IOException
Test for the existence of columns in the table, as specified by the Get.

This will return true if the Get matches one or more keys, false if not.

This is a server-side call so it prevents any data from being transfered to the client.

Parameters:
get - the Get
Returns:
true if the specified Get matches one or more keys, false if not
Throws:
IOException - e

exists

Boolean[] exists(List<Get> gets)
                 throws IOException
Test for the existence of columns in the table, as specified by the Gets.

This will return an array of booleans. Each value will be true if the related Get matches one or more keys, false if not.

This is a server-side call so it prevents any data from being transfered to the client.

Parameters:
gets - the Gets
Returns:
Array of Boolean true if the specified Get matches one or more keys, false if not
Throws:
IOException - e

batch

void batch(List<? extends Row> actions,
           Object[] results)
           throws IOException,
                  InterruptedException
Method that does a batch call on Deletes, Gets, Puts, Increments, Appends and RowMutations. The ordering of execution of the actions is not defined. Meaning if you do a Put and a Get in the same batch(java.util.List, java.lang.Object[]) call, you will not necessarily be guaranteed that the Get returns what the Put had put.

Parameters:
actions - list of Get, Put, Delete, Increment, Append, RowMutations objects
results - Empty Object[], same size as actions. Provides access to partial results, in case an exception is thrown. A null in the result array means that the call for that action failed, even after retries
Throws:
IOException
InterruptedException
Since:
0.90.0

batch

Object[] batch(List<? extends Row> actions)
               throws IOException,
                      InterruptedException
Deprecated. If any exception is thrown by one of the actions, there is no way to retrieve the partially executed results. Use batch(List, Object[]) instead.

Same as batch(List, Object[]), but returns an array of results instead of using a results parameter reference.

Parameters:
actions - list of Get, Put, Delete, Increment, Append, RowMutations objects
Returns:
the results from the actions. A null in the return array means that the call for that action failed, even after retries
Throws:
IOException
InterruptedException
Since:
0.90.0

batchCallback

<R> void batchCallback(List<? extends Row> actions,
                       Object[] results,
                       Batch.Callback<R> callback)
                   throws IOException,
                          InterruptedException
Same as batch(List, Object[]), but with a callback.

Throws:
IOException
InterruptedException
Since:
0.96.0

batchCallback

<R> Object[] batchCallback(List<? extends Row> actions,
                           Batch.Callback<R> callback)
                       throws IOException,
                              InterruptedException
Deprecated. If any exception is thrown by one of the actions, there is no way to retrieve the partially executed results. Use batchCallback(List, Object[], org.apache.hadoop.hbase.client.coprocessor.Batch.Callback) instead.

Same as batch(List), but with a callback.

Throws:
IOException
InterruptedException
Since:
0.96.0

get

Result get(Get get)
           throws IOException
Extracts certain cells from a given row.

Parameters:
get - The object that specifies what data to fetch and from which row.
Returns:
The data coming from the specified row, if it exists. If the row specified doesn't exist, the Result instance returned won't contain any KeyValue, as indicated by Result.isEmpty().
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

get

Result[] get(List<Get> gets)
             throws IOException
Extracts certain cells from the given rows, in batch.

Parameters:
gets - The objects that specify what data to fetch and from which rows.
Returns:
The data coming from the specified rows, if it exists. If the row specified doesn't exist, the Result instance returned won't contain any KeyValue, as indicated by Result.isEmpty(). If there are any failures even after retries, there will be a null in the results array for those Gets, AND an exception will be thrown.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.90.0

getRowOrBefore

Result getRowOrBefore(byte[] row,
                      byte[] family)
                      throws IOException
Deprecated. As of version 0.92 this method is deprecated without replacement. getRowOrBefore is used internally to find entries in hbase:meta and makes various assumptions about the table (which are true for hbase:meta but not in general) to be efficient.

Return the row that matches row exactly, or the one that immediately precedes it.

Parameters:
row - A row key.
family - Column family to include in the Result.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

getScanner

ResultScanner getScanner(Scan scan)
                         throws IOException
Returns a scanner on the current table as specified by the Scan object. Note that the passed Scan's start row and caching properties maybe changed.

Parameters:
scan - A configured Scan object.
Returns:
A scanner.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

getScanner

ResultScanner getScanner(byte[] family)
                         throws IOException
Gets a scanner on the current table for the given family.

Parameters:
family - The column family to scan.
Returns:
A scanner.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

getScanner

ResultScanner getScanner(byte[] family,
                         byte[] qualifier)
                         throws IOException
Gets a scanner on the current table for the given family and qualifier.

Parameters:
family - The column family to scan.
qualifier - The column qualifier to scan.
Returns:
A scanner.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

put

void put(Put put)
         throws IOException
Puts some data in the table.

If isAutoFlush is false, the update is buffered until the internal buffer is full.

Parameters:
put - The data to put.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

put

void put(List<Put> puts)
         throws IOException
Puts some data in the table, in batch.

If isAutoFlush is false, the update is buffered until the internal buffer is full.

This can be used for group commit, or for submitting user defined batches. The writeBuffer will be periodically inspected while the List is processed, so depending on the List size the writeBuffer may flush not at all, or more than once.

Parameters:
puts - The list of mutations to apply. The batch put is done by aggregating the iteration of the Puts over the write buffer at the client-side for a single RPC call.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

checkAndPut

boolean checkAndPut(byte[] row,
                    byte[] family,
                    byte[] qualifier,
                    byte[] value,
                    Put put)
                    throws IOException
Atomically checks if a row/family/qualifier value matches the expected value. If it does, it adds the put. If the passed value is null, the check is for the lack of column (ie: non-existance)

Parameters:
row - to check
family - column family to check
qualifier - column qualifier to check
value - the expected value
put - data to put if check succeeds
Returns:
true if the new put was executed, false otherwise
Throws:
IOException - e

delete

void delete(Delete delete)
            throws IOException
Deletes the specified cells/row.

Parameters:
delete - The object that specifies what to delete.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

delete

void delete(List<Delete> deletes)
            throws IOException
Deletes the specified cells/rows in bulk.

Parameters:
deletes - List of things to delete. List gets modified by this method (in particular it gets re-ordered, so the order in which the elements are inserted in the list gives no guarantee as to the order in which the Deletes are executed).
Throws:
IOException - if a remote or network exception occurs. In that case the deletes argument will contain the Delete instances that have not be successfully applied.
Since:
0.20.1

checkAndDelete

boolean checkAndDelete(byte[] row,
                       byte[] family,
                       byte[] qualifier,
                       byte[] value,
                       Delete delete)
                       throws IOException
Atomically checks if a row/family/qualifier value matches the expected value. If it does, it adds the delete. If the passed value is null, the check is for the lack of column (ie: non-existance)

Parameters:
row - to check
family - column family to check
qualifier - column qualifier to check
value - the expected value
delete - data to delete if check succeeds
Returns:
true if the new delete was executed, false otherwise
Throws:
IOException - e

mutateRow

void mutateRow(RowMutations rm)
               throws IOException
Performs multiple mutations atomically on a single row. Currently Put and Delete are supported.

Parameters:
rm - object that specifies the set of mutations to perform atomically
Throws:
IOException

append

Result append(Append append)
              throws IOException
Appends values to one or more columns within a single row.

This operation does not appear atomic to readers. Appends are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.

Parameters:
append - object that specifies the columns and amounts to be used for the increment operations
Returns:
values of columns after the append operation (maybe null)
Throws:
IOException - e

increment

Result increment(Increment increment)
                 throws IOException
Increments one or more columns within a single row.

This operation does not appear atomic to readers. Increments are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.

Parameters:
increment - object that specifies the columns and amounts to be used for the increment operations
Returns:
values of columns after the increment
Throws:
IOException - e

incrementColumnValue

long incrementColumnValue(byte[] row,
                          byte[] family,
                          byte[] qualifier,
                          long amount)
                          throws IOException
See incrementColumnValue(byte[], byte[], byte[], long, Durability)

The Durability is defaulted to Durability.SYNC_WAL.

Parameters:
row - The row that contains the cell to increment.
family - The column family of the cell to increment.
qualifier - The column qualifier of the cell to increment.
amount - The amount to increment the cell with (or decrement, if the amount is negative).
Returns:
The new value, post increment.
Throws:
IOException - if a remote or network exception occurs.

incrementColumnValue

long incrementColumnValue(byte[] row,
                          byte[] family,
                          byte[] qualifier,
                          long amount,
                          Durability durability)
                          throws IOException
Atomically increments a column value. If the column value already exists and is not a big-endian long, this could throw an exception. If the column value does not yet exist it is initialized to amount and written to the specified column.

Setting durability to Durability.SKIP_WAL means that in a fail scenario you will lose any increments that have not been flushed.

Parameters:
row - The row that contains the cell to increment.
family - The column family of the cell to increment.
qualifier - The column qualifier of the cell to increment.
amount - The amount to increment the cell with (or decrement, if the amount is negative).
durability - The persistence guarantee for this increment.
Returns:
The new value, post increment.
Throws:
IOException - if a remote or network exception occurs.

incrementColumnValue

@Deprecated
long incrementColumnValue(byte[] row,
                                     byte[] family,
                                     byte[] qualifier,
                                     long amount,
                                     boolean writeToWAL)
                          throws IOException
Deprecated. Use incrementColumnValue(byte[], byte[], byte[], long, Durability)

Throws:
IOException

isAutoFlush

boolean isAutoFlush()
Tells whether or not 'auto-flush' is turned on.

Returns:
true if 'auto-flush' is enabled (default), meaning Put operations don't get buffered/delayed and are immediately executed.

flushCommits

void flushCommits()
                  throws IOException
Executes all the buffered Put operations.

This method gets called once automatically for every Put or batch of Puts (when put(List) is used) when isAutoFlush() is true.

Throws:
IOException - if a remote or network exception occurs.

close

void close()
           throws IOException
Releases any resources held or pending changes in internal buffers.

Specified by:
close in interface Closeable
Throws:
IOException - if a remote or network exception occurs.

coprocessorService

CoprocessorRpcChannel coprocessorService(byte[] row)
Creates and returns a RpcChannel instance connected to the table region containing the specified row. The row given does not actually have to exist. Whichever region would contain the row based on start and end keys will be used. Note that the row parameter is also not passed to the coprocessor handler registered for this protocol, unless the row is separately passed as an argument in the service request. The parameter here is only used to locate the region used to handle the call.

The obtained RpcChannel instance can be used to access a published coprocessor Service using standard protobuf service invocations:

 CoprocessorRpcChannel channel = myTable.coprocessorService(rowkey);
 MyService.BlockingInterface service = MyService.newBlockingStub(channel);
 MyCallRequest request = MyCallRequest.newBuilder()
     ...
     .build();
 MyCallResponse response = service.myCall(null, request);
 

Parameters:
row - The row key used to identify the remote region location
Returns:
A CoprocessorRpcChannel instance

coprocessorService

<T extends com.google.protobuf.Service,R> Map<byte[],R> coprocessorService(Class<T> service,
                                                                           byte[] startKey,
                                                                           byte[] endKey,
                                                                           Batch.Call<T,R> callable)
                                 throws com.google.protobuf.ServiceException,
                                        Throwable
Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), and invokes the passed Batch.Call.call(T) method with each Service instance.

Type Parameters:
T - the Service subclass to connect to
R - Return type for the callable parameter's Batch.Call.call(T) method
Parameters:
service - the protocol buffer Service implementation to call
startKey - start region selection with region containing this row. If null, the selection will start with the first table region.
endKey - select regions up to and including the region containing this row. If null, selection will continue through the last table region.
callable - this instance's Batch.Call.call(T) method will be invoked once per table region, using the Service instance connected to that region.
Returns:
a map of result values keyed by region name
Throws:
com.google.protobuf.ServiceException
Throwable

coprocessorService

<T extends com.google.protobuf.Service,R> void coprocessorService(Class<T> service,
                                                                  byte[] startKey,
                                                                  byte[] endKey,
                                                                  Batch.Call<T,R> callable,
                                                                  Batch.Callback<R> callback)
                        throws com.google.protobuf.ServiceException,
                               Throwable
Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), and invokes the passed Batch.Call.call(T) method with each Service instance.

The given Batch.Callback.update(byte[], byte[], Object) method will be called with the return value from each region's Batch.Call.call(T) invocation.

Type Parameters:
T - the Service subclass to connect to
R - Return type for the callable parameter's Batch.Call.call(T) method
Parameters:
service - the protocol buffer Service implementation to call
startKey - start region selection with region containing this row. If null, the selection will start with the first table region.
endKey - select regions up to and including the region containing this row. If null, selection will continue through the last table region.
callable - this instance's Batch.Call.call(T) method will be invoked once per table region, using the Service instance connected to that region.
callback -
Throws:
com.google.protobuf.ServiceException
Throwable

setAutoFlush

@Deprecated
void setAutoFlush(boolean autoFlush)
Deprecated. in 0.96. When called with setAutoFlush(false), this function also set clearBufferOnFail to true, which is unexpected but kept for historical reasons. Replace it with setAutoFlush(false, false) if this is exactly what you want, or by setAutoFlushTo(boolean) for all other cases.

See setAutoFlush(boolean, boolean)

Parameters:
autoFlush - Whether or not to enable 'auto-flush'.

setAutoFlush

void setAutoFlush(boolean autoFlush,
                  boolean clearBufferOnFail)
Turns 'auto-flush' on or off.

When enabled (default), Put operations don't get buffered/delayed and are immediately executed. Failed operations are not retried. This is slower but safer.

Turning off #autoFlush means that multiple Puts will be accepted before any RPC is actually sent to do the write operations. If the application dies before pending writes get flushed to HBase, data will be lost.

When you turn #autoFlush off, you should also consider the #clearBufferOnFail option. By default, asynchronous Put requests will be retried on failure until successful. However, this can pollute the writeBuffer and slow down batching performance. Additionally, you may want to issue a number of Put requests and call flushCommits() as a barrier. In both use cases, consider setting clearBufferOnFail to true to erase the buffer after flushCommits() has been called, regardless of success.

In other words, if you call #setAutoFlush(false); HBase will retry N time for each flushCommit, including the last one when closing the table. This is NOT recommended, most of the time you want to call #setAutoFlush(false, true).

Parameters:
autoFlush - Whether or not to enable 'auto-flush'.
clearBufferOnFail - Whether to keep Put failures in the writeBuffer. If autoFlush is true, then the value of this parameter is ignored and clearBufferOnFail is set to true. Setting clearBufferOnFail to false is deprecated since 0.96.
See Also:
flushCommits()

setAutoFlushTo

void setAutoFlushTo(boolean autoFlush)
Set the autoFlush behavior, without changing the value of clearBufferOnFail


getWriteBufferSize

long getWriteBufferSize()
Returns the maximum size in bytes of the write buffer for this HTable.

The default value comes from the configuration parameter hbase.client.write.buffer.

Returns:
The size of the write buffer in bytes.

setWriteBufferSize

void setWriteBufferSize(long writeBufferSize)
                        throws IOException
Sets the size of the buffer in bytes.

If the new size is less than the current amount of data in the write buffer, the buffer gets flushed.

Parameters:
writeBufferSize - The new write buffer size, in bytes.
Throws:
IOException - if a remote or network exception occurs.

batchCoprocessorService

<R extends com.google.protobuf.Message> Map<byte[],R> batchCoprocessorService(com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor,
                                                                              com.google.protobuf.Message request,
                                                                              byte[] startKey,
                                                                              byte[] endKey,
                                                                              R responsePrototype)
                                                                          throws com.google.protobuf.ServiceException,
                                                                                 Throwable
Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), all the invocations to the same region server will be batched into one call. The coprocessor service is invoked according to the service instance, method name and parameters.

Type Parameters:
R - the response type for the coprocessor Service method
Parameters:
methodDescriptor - the descriptor for the protobuf service method to call.
request - the method call parameters
startKey - start region selection with region containing this row. If null, the selection will start with the first table region.
endKey - select regions up to and including the region containing this row. If null, selection will continue through the last table region.
responsePrototype - the proto type of the response of the method in Service.
Returns:
a map of result values keyed by region name
Throws:
com.google.protobuf.ServiceException
Throwable

batchCoprocessorService

<R extends com.google.protobuf.Message> void batchCoprocessorService(com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor,
                                                                     com.google.protobuf.Message request,
                                                                     byte[] startKey,
                                                                     byte[] endKey,
                                                                     R responsePrototype,
                                                                     Batch.Callback<R> callback)
                             throws com.google.protobuf.ServiceException,
                                    Throwable
Creates an instance of the given Service subclass for each table region spanning the range from the startKey row to endKey row (inclusive), all the invocations to the same region server will be batched into one call. The coprocessor service is invoked according to the service instance, method name and parameters.

The given Batch.Callback.update(byte[],byte[],Object) method will be called with the return value from each region's invocation.

Type Parameters:
R - the response type for the coprocessor Service method
Parameters:
methodDescriptor - the descriptor for the protobuf service method to call.
request - the method call parameters
startKey - start region selection with region containing this row. If null, the selection will start with the first table region.
endKey - select regions up to and including the region containing this row. If null, selection will continue through the last table region.
responsePrototype - the proto type of the response of the method in Service.
callback - callback to invoke with the response for each region
Throws:
com.google.protobuf.ServiceException
Throwable

checkAndMutate

boolean checkAndMutate(byte[] row,
                       byte[] family,
                       byte[] qualifier,
                       CompareFilter.CompareOp compareOp,
                       byte[] value,
                       RowMutations mutation)
                       throws IOException
Atomically checks if a row/family/qualifier value matches the expected val If it does, it performs the row mutations. If the passed value is null, t is for the lack of column (ie: non-existence)

Parameters:
row - to check
family - column family to check
qualifier - column qualifier to check
compareOp - the comparison operator
value - the expected value
mutation - mutations to perform if check succeeds
Returns:
true if the new put was executed, false otherwise
Throws:
IOException - e


Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.