Class MultiRowMutationEndpoint
java.lang.Object
org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService
org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint
- All Implemented Interfaces:
com.google.protobuf.Service
,Coprocessor
,RegionCoprocessor
@LimitedPrivate("Coprocesssor")
@Evolving
public class MultiRowMutationEndpoint
extends org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService
implements RegionCoprocessor
This class implements atomic multi row transactions using
See
Example:
HRegion.mutateRowsWithLocks(Collection, Collection, long, long)
and Coprocessor
endpoints. We can also specify some conditions to perform conditional update. Defines a protocol
to perform multi row transactions. See MultiRowMutationEndpoint
for the implementation.
See
HRegion.mutateRowsWithLocks(Collection, Collection, long, long)
for details and
limitations. Example:
Put p = new Put(row1);
Delete d = new Delete(row2);
Increment i = new Increment(row3);
Append a = new Append(row4);
...
Mutate m1 = ProtobufUtil.toMutate(MutateType.PUT, p);
Mutate m2 = ProtobufUtil.toMutate(MutateType.DELETE, d);
Mutate m3 = ProtobufUtil.toMutate(MutateType.INCREMENT, i);
Mutate m4 = ProtobufUtil.toMutate(MutateType.Append, a);
MutateRowsRequest.Builder mrmBuilder = MutateRowsRequest.newBuilder();
mrmBuilder.addMutationRequest(m1);
mrmBuilder.addMutationRequest(m2);
mrmBuilder.addMutationRequest(m3);
mrmBuilder.addMutationRequest(m4);
// We can also specify conditions to preform conditional update
mrmBuilder.addCondition(ProtobufUtil.toCondition(row, FAMILY, QUALIFIER,
CompareOperator.EQUAL, value, TimeRange.allTime()));
CoprocessorRpcChannel channel = t.coprocessorService(ROW);
MultiRowMutationService.BlockingInterface service =
MultiRowMutationService.newBlockingStub(channel);
MutateRowsRequest mrm = mrmBuilder.build();
MutateRowsResponse response = service.mutateRows(null, mrm);
// We can get the result of the conditional update
boolean processed = response.getProcessed();
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService
org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService.BlockingInterface, org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService.Interface, org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService.Stub
Nested classes/interfaces inherited from interface org.apache.hadoop.hbase.Coprocessor
Coprocessor.State
-
Field Summary
Modifier and TypeFieldDescriptionprivate RegionCoprocessorEnvironment
private static final org.slf4j.Logger
Fields inherited from interface org.apache.hadoop.hbase.Coprocessor
PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate void
checkFamily
(Region region, byte[] family) Iterable<com.google.protobuf.Service>
Coprocessor endpoints providing protobuf services should override this method.private boolean
matches
(CompareOperator op, int compareResult) private boolean
void
mutateRows
(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MutateRowsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MutateRowsResponse> done) void
Stores a reference to the coprocessor environment provided by theRegionCoprocessorHost
from the region where this coprocessor is loaded.void
Called by theCoprocessorEnvironment
during it's own shutdown to stop the coprocessor.Methods inherited from class org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService
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
Methods inherited from interface org.apache.hadoop.hbase.coprocessor.RegionCoprocessor
getBulkLoadObserver, getEndpointObserver, getRegionObserver
-
Field Details
-
LOGGER
-
env
-
-
Constructor Details
-
MultiRowMutationEndpoint
public MultiRowMutationEndpoint()
-
-
Method Details
-
mutateRows
public void mutateRows(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MutateRowsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MutateRowsResponse> done) - Specified by:
mutateRows
in classorg.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos.MultiRowMutationService
-
matches
private boolean matches(Region region, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Condition condition) throws IOException - Throws:
IOException
-
checkFamily
- Throws:
NoSuchColumnFamilyException
-
matches
-
getServices
Description copied from interface:Coprocessor
Coprocessor endpoints providing protobuf services should override this method.- Specified by:
getServices
in interfaceCoprocessor
- Returns:
- Iterable of
Service
s or empty collection. Implementations should never return null.
-
start
Stores a reference to the coprocessor environment provided by theRegionCoprocessorHost
from the region where this coprocessor is loaded. Since this is a coprocessor endpoint, it always expects to be loaded on a table region, so always expects this to be an instance ofRegionCoprocessorEnvironment
.- Specified by:
start
in interfaceCoprocessor
- Parameters:
env
- the environment provided by the coprocessor host- Throws:
IOException
- if the provided environment is not an instance ofRegionCoprocessorEnvironment
-
stop
Description copied from interface:Coprocessor
Called by theCoprocessorEnvironment
during it's own shutdown to stop the coprocessor.- Specified by:
stop
in interfaceCoprocessor
- Throws:
IOException
-