org.apache.hadoop.hbase.coprocessor.example
Class BulkDeleteEndpoint

java.lang.Object
  extended by org.apache.hadoop.hbase.coprocessor.example.generated.BulkDeleteProtos.BulkDeleteService
      extended by org.apache.hadoop.hbase.coprocessor.example.BulkDeleteEndpoint
All Implemented Interfaces:
com.google.protobuf.Service, Coprocessor, CoprocessorService

public class BulkDeleteEndpoint
extends BulkDeleteProtos.BulkDeleteService
implements CoprocessorService, Coprocessor

Defines a protocol to delete data in bulk based on a scan. The scan can be range scan or with conditions(filters) etc.This can be used to delete rows, column family(s), column qualifier(s) or version(s) of columns.When delete type is FAMILY or COLUMN, which all family(s) or column(s) getting deleted will be determined by the Scan. Scan need to select all the families/qualifiers which need to be deleted.When delete type is VERSION, Which column(s) and version(s) to be deleted will be determined by the Scan. Scan need to select all the qualifiers and its versions which needs to be deleted.When a timestamp is passed only one version at that timestamp will be deleted(even if Scan fetches many versions). When timestamp passed as null, all the versions which the Scan selects will get deleted.
Example:

 Scan scan = new Scan();
 // set scan properties(rowkey range, filters, timerange etc).
 HTable ht = ...;
 long noOfDeletedRows = 0L;
 Batch.Call<BulkDeleteService, BulkDeleteResponse> callable = 
     new Batch.Call<BulkDeleteService, BulkDeleteResponse>() {
   ServerRpcController controller = new ServerRpcController();
   BlockingRpcCallback<BulkDeleteResponse> rpcCallback = 
     new BlockingRpcCallback<BulkDeleteResponse>();

   public BulkDeleteResponse call(BulkDeleteService service) throws IOException {
     Builder builder = BulkDeleteRequest.newBuilder();
     builder.setScan(ProtobufUtil.toScan(scan));
     builder.setDeleteType(DeleteType.VERSION);
     builder.setRowBatchSize(rowBatchSize);
     // Set optional timestamp if needed
     builder.setTimestamp(timeStamp);
     service.delete(controller, builder.build(), rpcCallback);
     return rpcCallback.get();
   }
 };
 Map<byte[], BulkDeleteResponse> result = ht.coprocessorService(BulkDeleteService.class, scan
     .getStartRow(), scan.getStopRow(), callable);
 for (BulkDeleteResponse response : result.values()) {
   noOfDeletedRows += response.getRowsDeleted();
 }
 


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.hadoop.hbase.coprocessor.example.generated.BulkDeleteProtos.BulkDeleteService
BulkDeleteProtos.BulkDeleteService.BlockingInterface, BulkDeleteProtos.BulkDeleteService.Interface, BulkDeleteProtos.BulkDeleteService.Stub
 
Nested classes/interfaces inherited from interface org.apache.hadoop.hbase.Coprocessor
Coprocessor.State
 
Field Summary
 
Fields inherited from interface org.apache.hadoop.hbase.Coprocessor
PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION
 
Constructor Summary
BulkDeleteEndpoint()
           
 
Method Summary
 void delete(com.google.protobuf.RpcController controller, BulkDeleteProtos.BulkDeleteRequest request, com.google.protobuf.RpcCallback<BulkDeleteProtos.BulkDeleteResponse> done)
          rpc delete(.BulkDeleteRequest) returns (.BulkDeleteResponse);
 com.google.protobuf.Service getService()
           
 void start(CoprocessorEnvironment env)
           
 void stop(CoprocessorEnvironment env)
           
 
Methods inherited from class org.apache.hadoop.hbase.coprocessor.example.generated.BulkDeleteProtos.BulkDeleteService
callMethod, getDescriptor, getDescriptorForType, getRequestPrototype, getResponsePrototype, newBlockingStub, newReflectiveBlockingService, newReflectiveService, newStub
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BulkDeleteEndpoint

public BulkDeleteEndpoint()
Method Detail

getService

public com.google.protobuf.Service getService()
Specified by:
getService in interface CoprocessorService

delete

public void delete(com.google.protobuf.RpcController controller,
                   BulkDeleteProtos.BulkDeleteRequest request,
                   com.google.protobuf.RpcCallback<BulkDeleteProtos.BulkDeleteResponse> done)
Description copied from class: BulkDeleteProtos.BulkDeleteService
rpc delete(.BulkDeleteRequest) returns (.BulkDeleteResponse);

Specified by:
delete in class BulkDeleteProtos.BulkDeleteService

start

public void start(CoprocessorEnvironment env)
           throws IOException
Specified by:
start in interface Coprocessor
Throws:
IOException

stop

public void stop(CoprocessorEnvironment env)
          throws IOException
Specified by:
stop in interface Coprocessor
Throws:
IOException


Copyright © 2015 The Apache Software Foundation. All rights reserved.