Package com.google.api.gax.batching (2.42.0)

GitHub Repository

Settings Classes

Settings classes can be used to configure credentials, endpoints, and retry settings for a Client.

Settings Description
com.google.api.gax.batching.BatchingCallSettings This is an extension of UnaryCallSettings class to configure a UnaryCallable for calls to an API method that supports batching. The batching settings are provided using the instance of BatchingSettings.
com.google.api.gax.batching.BatchingSettings Represents the batching settings to use for an API method that is capable of batching.

By default the settings are configured to not use batching (i.e. the batch size threshold is 1). This is the safest default behavior, which has meaning in all possible

com.google.api.gax.batching.DynamicFlowControlSettings Settings for dynamic flow control
com.google.api.gax.batching.FlowControlSettings Settings for FlowController.

Classes

Class Description
com.google.api.gax.batching.AccumulatingBatchReceiver A simple ThresholdBatchReceiver that just accumulates batches.
com.google.api.gax.batching.BatchEntry This class contains the element and its corresponding unresolved future, which would be resolved when batch is successful or failed.
com.google.api.gax.batching.BatcherImpl Queues up the elements until #flush() is called; once batching is over, returned future resolves.

This class is not thread-safe, and expects to be used from a single thread.

com.google.api.gax.batching.BatchingCallSettings.Builder A base builder class for BatchingCallSettings. See the class documentation of BatchingCallSettings for a description of the different values that can be set.
com.google.api.gax.batching.BatchingFlowController Wraps a FlowController for use by batching.
com.google.api.gax.batching.BatchingSettings.Builder See the class documentation of BatchingSettings for a description of the different values that can be set.
com.google.api.gax.batching.BatchingThresholds Factory methods for general-purpose batching thresholds.
com.google.api.gax.batching.DynamicFlowControlSettings.Builder
com.google.api.gax.batching.FlowControlEventStats Record the statistics of flow control events.

This class is populated by FlowController, which will record throttling events. Currently it only keeps the last flow control event, but it could be expanded to record more information in

com.google.api.gax.batching.FlowControlEventStats.FlowControlEvent A flow control event. Record throttled time if LimitExceededBehavior is LimitExceededBehavior#Block, or the exception if the behavior is LimitExceededBehavior#ThrowException.
com.google.api.gax.batching.FlowControlSettings.Builder
com.google.api.gax.batching.FlowController Provides flow control capability.
com.google.api.gax.batching.NumericThreshold A threshold which accumulates a count based on the provided ElementCounter.
com.google.api.gax.batching.PartitionKey
com.google.api.gax.batching.ThresholdBatcher Queues up elements until either a duration of time has passed or any threshold in a given set of thresholds is breached, and then delivers the elements in a batch to the consumer.
com.google.api.gax.batching.ThresholdBatcher.Builder Builder for a ThresholdBatcher.

Interfaces

Interface Description
com.google.api.gax.batching.BatchMerger
com.google.api.gax.batching.BatchResource Represent the resource used by a batch including element and byte. It can also be extended to other things to determine if adding a new element needs to be flow controlled or if the current batch needs to be flushed.
com.google.api.gax.batching.Batcher Represents a batching context where individual elements will be accumulated and flushed in a large batch request at some point in the future. The buffered elements can be flushed manually or when triggered by an internal threshold. This is intended to be used for high throughput scenarios at the cost of latency.
com.google.api.gax.batching.BatchingDescriptor An adapter that packs and unpacks the elements in and out of batch requests and responses.

This interface should be implemented by either a service specific client or autogenerated by gapic-generator.

com.google.api.gax.batching.BatchingRequestBuilder Adapter to pack individual elements into a larger batch request.

The implementation for this interface will be implemented by service specific client or auto generated by the gapic-generator.

com.google.api.gax.batching.BatchingThreshold The interface representing a threshold to be used in ThresholdBatcher. Thresholds do not need to be thread-safe if they are only used inside ThresholdBatcher.
com.google.api.gax.batching.ElementCounter Interface representing an object that provides a numerical count given an object of the parameterized type.
com.google.api.gax.batching.RequestBuilder
com.google.api.gax.batching.ThresholdBatchReceiver Interface representing an object that receives batches from a ThresholdBatcher and takes action on them. Implementations of ThresholdBatchReceiver should be thread-safe.

Enums

Enum Description
com.google.api.gax.batching.FlowController.LimitExceededBehavior Enumeration of behaviors that FlowController can use in case the flow control limits are exceeded.

Exceptions

Exception Description
com.google.api.gax.batching.BatchingException Represents exception occurred during batching.
com.google.api.gax.batching.FlowController.FlowControlException Base exception that signals a flow control state.
com.google.api.gax.batching.FlowController.FlowControlRuntimeException Runtime exception that can be used in place of FlowControlException when an unchecked exception is required.
com.google.api.gax.batching.FlowController.MaxOutstandingElementCountReachedException Exception thrown when client-side flow control is enforced based on the maximum number of outstanding in-memory elements.
com.google.api.gax.batching.FlowController.MaxOutstandingRequestBytesReachedException Exception thrown when client-side flow control is enforced based on the maximum number of unacknowledged in-memory bytes.