-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Bigtable: Introducing new Batching API for Bigtable #6133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
e0abbf3
Introducing new Batching API for Bigtable
rahulKQL 3f92b34
Addressing minor feedback comments
rahulKQL 754d036
fix for Linkage monitor
rahulKQL 757a3e3
Addressing feedback comments mostly for javadoc and variable names
rahulKQL 98c81e4
Annotate BatchingCallSettings with `@Nonnull`
rahulKQL File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
140 changes: 140 additions & 0 deletions
140
...oud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/RowMutationEntry.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,140 @@ | ||
| /* | ||
| * Copyright 2019 Google LLC | ||
| * | ||
| * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| * you may not use this file except in compliance with the License. | ||
| * You may obtain a copy of the License at | ||
| * | ||
| * https://www.apache.org/licenses/LICENSE-2.0 | ||
| * | ||
| * Unless required by applicable law or agreed to in writing, software | ||
| * distributed under the License is distributed on an "AS IS" BASIS, | ||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| * See the License for the specific language governing permissions and | ||
| * limitations under the License. | ||
| */ | ||
| package com.google.cloud.bigtable.data.v2.models; | ||
|
|
||
| import com.google.api.core.InternalApi; | ||
| import com.google.bigtable.v2.MutateRowsRequest; | ||
| import com.google.common.base.Preconditions; | ||
| import com.google.protobuf.ByteString; | ||
| import java.io.Serializable; | ||
| import javax.annotation.Nonnull; | ||
|
|
||
| /** | ||
| * Represents a list of mutations targeted at a single row. It is meant to be used as an parameter | ||
| * for {@link com.google.cloud.bigtable.data.v2.BigtableDataClient#newBulkMutationBatcher(String)}. | ||
| * | ||
| * <p>Note: The changes in the mutation will be applied atomically but the ordering between | ||
| * different RowMutationEntry instances is not guaranteed. | ||
| */ | ||
| public class RowMutationEntry implements MutationApi<RowMutationEntry>, Serializable { | ||
| private static final long serialVersionUID = 1974738836742298192L; | ||
|
|
||
| private final ByteString key; | ||
| private final Mutation mutation; | ||
|
|
||
| private RowMutationEntry(@Nonnull ByteString key, @Nonnull Mutation mutation) { | ||
| Preconditions.checkNotNull(key, "Row key can't be null"); | ||
| Preconditions.checkNotNull(mutation, "Row mutation can't be null"); | ||
|
|
||
| this.key = key; | ||
| this.mutation = mutation; | ||
| } | ||
|
|
||
| /** Creates a new instance of the mutation builder. */ | ||
| public static RowMutationEntry create(@Nonnull String key) { | ||
| Preconditions.checkNotNull(key, "Row key can't be null"); | ||
| return create(ByteString.copyFromUtf8(key)); | ||
| } | ||
|
|
||
| /** Creates a new instance of the mutation builder. */ | ||
| public static RowMutationEntry create(@Nonnull ByteString key) { | ||
| return new RowMutationEntry(key, Mutation.create()); | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry setCell( | ||
| @Nonnull String familyName, @Nonnull String qualifier, @Nonnull String value) { | ||
| mutation.setCell(familyName, qualifier, value); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry setCell( | ||
| @Nonnull String familyName, | ||
| @Nonnull String qualifier, | ||
| long timestamp, | ||
| @Nonnull String value) { | ||
| mutation.setCell(familyName, qualifier, timestamp, value); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry setCell( | ||
| @Nonnull String familyName, @Nonnull ByteString qualifier, @Nonnull ByteString value) { | ||
| mutation.setCell(familyName, qualifier, value); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry setCell( | ||
| @Nonnull String familyName, | ||
| @Nonnull ByteString qualifier, | ||
| long timestamp, | ||
| @Nonnull ByteString value) { | ||
| mutation.setCell(familyName, qualifier, timestamp, value); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry deleteCells(@Nonnull String familyName, @Nonnull String qualifier) { | ||
| mutation.deleteCells(familyName, qualifier); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry deleteCells(@Nonnull String familyName, @Nonnull ByteString qualifier) { | ||
| mutation.deleteCells(familyName, qualifier); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry deleteCells( | ||
| @Nonnull String familyName, | ||
| @Nonnull ByteString qualifier, | ||
| @Nonnull Range.TimestampRange timestampRange) { | ||
| mutation.deleteCells(familyName, qualifier, timestampRange); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry deleteFamily(@Nonnull String familyName) { | ||
| mutation.deleteFamily(familyName); | ||
| return this; | ||
| } | ||
|
|
||
| /** {@inheritDoc} */ | ||
| @Override | ||
| public RowMutationEntry deleteRow() { | ||
| mutation.deleteRow(); | ||
| return this; | ||
| } | ||
|
|
||
| @InternalApi | ||
| public MutateRowsRequest.Entry toProto() { | ||
| return MutateRowsRequest.Entry.newBuilder() | ||
| .setRowKey(key) | ||
| .addAllMutations(mutation.getMutations()) | ||
| .build(); | ||
| } | ||
| } | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.