@Immutable @ThreadSafe public final class RpcQosOptions extends java.lang.Object implements java.io.Serializable, HasDisplayData
Every RPC which is sent to Cloud Firestore is subject to QoS considerations. Successful, failed, attempted requests are all tracked and directly drive the determination of when to attempt an RPC.
Configuration of options can be accomplished by passing an instances of RpcQosOptions to the withRpcQosOptions method of each Builder available in FirestoreV1 .
RpcQosOptions
withRpcQosOptions
Builder
FirestoreV1
A new instance of RpcQosOptions.Builder can be created via newBuilder() . A default instance of RpcQosOptions can be created via defaultOptions() .
RpcQosOptions.Builder
newBuilder()
defaultOptions()
FirestoreV1.Transform.Builder.withRpcQosOptions(RpcQosOptions)
BatchWriteWithSummary.Builder#withRpcQosOptions(RpcQosOptions)
static class
static RpcQosOptions
defaultOptions ()
boolean
equals (@Nullable java.lang.Object o)
int
getBatchInitialCount ()
long
getBatchMaxBytes ()
getBatchMaxCount ()
Duration
getBatchTargetLatency ()
getHintMaxNumWorkers ()
getInitialBackoff ()
getMaxAttempts ()
double
getOverloadRatio ()
getSamplePeriod ()
getSamplePeriodBucketSize ()
samplePeriod
getThrottleDuration ()
hashCode ()
isShouldReportDiagnosticMetrics ()
static RpcQosOptions.Builder
newBuilder ()
void
populateDisplayData ( DisplayData.Builder builder)
toBuilder ()
java.lang.String
toString ()
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
public void populateDisplayData( DisplayData.Builder builder)
HasDisplayData
populateDisplayData(DisplayData.Builder) is invoked by Pipeline runners to collect display data via DisplayData.from(HasDisplayData) . Implementations may call super.populateDisplayData(builder) in order to register display data in the current namespace, but should otherwise use subcomponent.populateDisplayData(builder) to use the namespace of the subcomponent.
populateDisplayData(DisplayData.Builder)
DisplayData.from(HasDisplayData)
super.populateDisplayData(builder)
subcomponent.populateDisplayData(builder)
populateDisplayData
builder
public int getMaxAttempts()
For a stream based response, the full stream read must complete within the specified number of attempts. Restarting a stream will count as a new attempt.
Default Value: 5
RpcQosOptions.Builder.withMaxAttempts(int)
public Duration getInitialBackoff()
Default Value: 5 sec
RpcQosOptions.Builder.withInitialBackoff(Duration)
public Duration getSamplePeriod()
Default Value: 2 min
RpcQosOptions.Builder.withSamplePeriod(Duration)
public Duration getSamplePeriodBucketSize()
Default Value: 10 sec
RpcQosOptions.Builder.withSamplePeriodBucketSize(Duration)
public double getOverloadRatio()
Default Value: 1.05
RpcQosOptions.Builder.withOverloadRatio(double)
public Duration getThrottleDuration()
Default value: 5 sec
RpcQosOptions.Builder.withThrottleDuration(Duration)
public int getBatchInitialCount()
Default Value: 20
RpcQosOptions.Builder.withBatchInitialCount(int)
public int getBatchMaxCount()
batchMaxBytes
Default Value: 500
RpcQosOptions.Builder.withBatchMaxCount(int)
public long getBatchMaxBytes()
batchMaxCount
Default Value: 9.5 MiB
RpcQosOptions.Builder.withBatchMaxBytes(long)
public Duration getBatchTargetLatency()
RpcQosOptions.Builder.withBatchTargetLatency(Duration)
public int getHintMaxNumWorkers()
If you are running your pipeline on Cloud Dataflow this parameter should be set to the same value as maxNumWorkers
maxNumWorkers
public boolean isShouldReportDiagnosticMetrics()
If true, additional detailed diagnostic metrics will be reported for the RPC QoS subsystem.
This parameter should be used with care as it will output ~40 additional custom metrics which will count toward any possible pipeline metrics limits (For example Dataflow Custom Metrics limits and Cloud Monitoring custom metrics quota )
Default Value: false
false
RpcQosOptions.Builder.withReportDiagnosticMetrics()
public RpcQosOptions.Builder toBuilder()
public boolean equals(@Nullable java.lang.Object o)
equals
java.lang.Object
public int hashCode()
hashCode
public java.lang.String toString()
toString
public static RpcQosOptions defaultOptions()
public static RpcQosOptions.Builder newBuilder()