-
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
Conversation
...oogle-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java
Outdated
Show resolved
Hide resolved
...ogle-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/BulkMutation.java
Outdated
Show resolved
Hide resolved
...oogle-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java
Outdated
Show resolved
Hide resolved
...ogle-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/BulkMutation.java
Outdated
Show resolved
Hide resolved
...-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/RowMutationEntry.java
Outdated
Show resolved
Hide resolved
...loud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java
Outdated
Show resolved
Hide resolved
...d-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/RowMutationEntryBatcherIT.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java
Outdated
Show resolved
Hide resolved
|
Can you investigate why the linkage monitor is complaining? |
|
It seems the linkage monitor build was not able to find new |
Codecov Report
@@ Coverage Diff @@
## master #6133 +/- ##
============================================
+ Coverage 47.5% 47.51% +0.01%
- Complexity 27447 27460 +13
============================================
Files 2523 2526 +3
Lines 274592 274691 +99
Branches 31396 31405 +9
============================================
+ Hits 130445 130531 +86
- Misses 134514 134527 +13
Partials 9633 9633
Continue to review full report at Codecov.
|
...-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/RowMutationEntry.java
Outdated
Show resolved
Hide resolved
|
@igorbernstein2 @kolea2 I have added BigtableBatchingCallSettings, Please have a look and let me know your thoughts on this. |
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
- Introducing new API `BigtableDataClient#newBulkMutationBatcher(String)`. - Deprecated existing API `BigtableDataClient#newBulkMutationBatcher()`. - Updated BatchingCallSettings to be compatible with new Batching API. - Removed method/class description from deprecation. - Added a new model in RowMutationEntry. - Added MutateRowsBatchingDescriptorV2 to spool the batching response. - Updated JavaDocs, test cases according to latest changes.
- Fix for linkage error on Javadocs - Introduced BigtableBatchingCallSettings which will wrap the underlying gax's BatchingCallSettings. This was done for enabling the bigtable throttling to balance the bigtable clusters performance supposedly for batch jobs while still supporting the live load. - Added null check message for RowMutationEntry - Updated javadoc and access level of getter BigtableBatchingCallSettings
bc1a788 to
3f92b34
Compare
This is a trial fix, as linkage monitor does not seems to be recreated with local build
...-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/RowMutationEntry.java
Show resolved
Hide resolved
...oogle-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java
Outdated
Show resolved
Hide resolved
...ogle-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/BulkMutation.java
Outdated
Show resolved
Hide resolved
...-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/RowMutationEntry.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...loud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java
Outdated
Show resolved
Hide resolved
...va/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsBatchingDescriptorV2Test.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
...table/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableBatchingCallSettings.java
Outdated
Show resolved
Hide resolved
igorbernstein2
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
@chingor13 is the linkage build failure because the libraries-bom needs to upgrade gax (through the google-cloud-java bom)? Can we exclude this from the check for now? |
|
The linkage build is failing for below classes which introduced in BOM Coordinates: com.google.cloud:libraries-bom:2.2.1
Newly introduced problems:
Class com.google.api.gax.batching.BatchingDescriptor is not found
referenced from com.google.cloud.bigtable.data.v2.stub.BigtableBatchingCallSettings (google-cloud-bigtable-0.106.1-SNAPSHOT.jar)
referenced from com.google.cloud.bigtable.data.v2.stub.mutaterows.MutateRowsBatchingDescriptorV2 (google-cloud-bigtable-0.106.1-SNAPSHOT.jar)
Class com.google.api.gax.batching.BatchingRequestBuilder is not found
referenced from com.google.cloud.bigtable.data.v2.stub.mutaterows.MutateRowsBatchingDescriptorV2 (google-cloud-bigtable-0.106.1-SNAPSHOT.jar)
Class com.google.api.gax.batching.BatcherImpl is not found
referenced from com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStub (google-cloud-bigtable-0.106.1-SNAPSHOT.jar)
Class com.google.api.gax.batching.BatchingCallSettings is not found
referenced from com.google.cloud.bigtable.data.v2.stub.BigtableBatchingCallSettings (google-cloud-bigtable-0.106.1-SNAPSHOT.jar)
Class com.google.api.gax.batching.BatchingCallSettings$Builder is not found
referenced from com.google.cloud.bigtable.data.v2.stub.BigtableBatchingCallSettings (google-cloud-bigtable-0.106.1-SNAPSHOT.jar)
Exception in thread "main" com.google.cloud.tools.dependencies.linkagemonitor.LinkageMonitorException: Found 5 new linkage errors
at com.google.cloud.tools.dependencies.linkagemonitor.LinkageMonitor.run(LinkageMonitor.java:105)
at com.google.cloud.tools.dependencies.linkagemonitor.LinkageMonitor.main(LinkageMonitor.java:63) |
|
gax is not part of libraries-bom so it can't be updated there. It only gets pulled in transitively from other dependencies. I don't recommend turning off this check or excluding it. It's likely telling us somehting important that we should address. |
|
Based in the report, this PR seems to lead to user-visible linkage errors because you're using new classes in the latest GAX that are not available in older ones, and those older versions are likely to get pulled into clients' classpaths. |
|
What is the suggested path for adding new features to gax & using them? Why is the gax version referenced by google-cloud-bom 0.99.0 considered the golden? |
|
Also please note that bigtable is not GA yet and the binary compatibility breakage is expected |
|
OK, looks like gax is pulled in from google-cloud-bom. libraries-bom has an older verison of google-cloud-bom due to incompatibilities with protobuf. That might be resolved with the next protobuf release, tenatively at the end of this week. |
|
As discussed, we will merge this in for now while we wait for the libraries-bom to be updated. I retriggered the failed windows build, waiting for that to pass. |
Note changes to the bulk mutation batcher: googleapis/google-cloud-java#6133
Working towards #3003
BigtableDataClient#newBulkMutationBatcher(String).BigtableDataClient#newBulkMutationBatcher().