[ https://issues.apache.org/jira/browse/HBASE-24650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Toshihiro Suzuki resolved HBASE-24650. -------------------------------------- Hadoop Flags: Incompatible change,Reviewed Release Note: This changed the return type of checkAndMutate methods to support CheckAndMutate with Increment/Append. The new APIs for the Table interface: {code} /** * checkAndMutate that atomically checks if a row matches the specified condition. If it does, * it performs the specified action. * * @param checkAndMutate The CheckAndMutate object. * @return A CheckAndMutateResult object that represents the result for the CheckAndMutate. * @throws IOException if a remote or network exception occurs. */ default CheckAndMutateResult checkAndMutate(CheckAndMutate checkAndMutate) throws IOException { return checkAndMutate(Collections.singletonList(checkAndMutate)).get(0); } /** * Batch version of checkAndMutate. The specified CheckAndMutates are batched only in the sense * that they are sent to a RS in one RPC, but each CheckAndMutate operation is still executed * atomically (and thus, each may fail independently of others). * * @param checkAndMutates The list of CheckAndMutate. * @return A list of CheckAndMutateResult objects that represents the result for each * CheckAndMutate. * @throws IOException if a remote or network exception occurs. */ default List<CheckAndMutateResult> checkAndMutate(List<CheckAndMutate> checkAndMutates) throws IOException { throw new NotImplementedException("Add an implementation!"); } {code} The new APIs for the AsyncTable interface: {code} /** * checkAndMutate that atomically checks if a row matches the specified condition. If it does, * it performs the specified action. * * @param checkAndMutate The CheckAndMutate object. * @return A {@link CompletableFuture}s that represent the result for the CheckAndMutate. */ CompletableFuture<CheckAndMutateResult> checkAndMutate(CheckAndMutate checkAndMutate); /** * Batch version of checkAndMutate. The specified CheckAndMutates are batched only in the sense * that they are sent to a RS in one RPC, but each CheckAndMutate operation is still executed * atomically (and thus, each may fail independently of others). * * @param checkAndMutates The list of CheckAndMutate. * @return A list of {@link CompletableFuture}s that represent the result for each * CheckAndMutate. */ List<CompletableFuture<CheckAndMutateResult>> checkAndMutate( List<CheckAndMutate> checkAndMutates); /** * A simple version of batch checkAndMutate. It will fail if there are any failures. * * @param checkAndMutates The list of rows to apply. * @return A {@link CompletableFuture} that wrapper the result list. */ default CompletableFuture<List<CheckAndMutateResult>> checkAndMutateAll( List<CheckAndMutate> checkAndMutates) { return allOf(checkAndMutate(checkAndMutates)); } {code} Resolution: Fixed > Change the return types of the new checkAndMutate methods introduced in > HBASE-8458 > ---------------------------------------------------------------------------------- > > Key: HBASE-24650 > URL: https://issues.apache.org/jira/browse/HBASE-24650 > Project: HBase > Issue Type: Sub-task > Components: Client > Reporter: Toshihiro Suzuki > Assignee: Toshihiro Suzuki > Priority: Major > Fix For: 3.0.0-alpha-1, 2.4.0 > > > To support CheckAndMutate with Increment/Append, the new checkAndMutate > methods introduced in HBASE-8458 need to return the result of the specified > Increment/Append operation in addition to a boolean value represents whether > it's successful or not. Currently, the methods return only boolean value(s), > so we need to change the return types of the methods. The methods are > unreleased yet currently, so I think it's no problem to change the return > types of the methods. -- This message was sent by Atlassian Jira (v8.3.4#803005)