public static final class Cluster.PrefetchPolicy extends com.google.protobuf.GeneratedMessageV3 implements Cluster.PrefetchPolicyOrBuilder
[#not-implemented-hide:]Protobuf type
envoy.config.cluster.v4alpha.Cluster.PrefetchPolicy| Modifier and Type | Class and Description |
|---|---|
static class |
Cluster.PrefetchPolicy.Builder
[#not-implemented-hide:]
Protobuf type
envoy.config.cluster.v4alpha.Cluster.PrefetchPolicy |
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage,BuilderType extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter| Modifier and Type | Field and Description |
|---|---|
static int |
PER_UPSTREAM_PREFETCH_RATIO_FIELD_NUMBER |
static int |
PREDICTIVE_PREFETCH_RATIO_FIELD_NUMBER |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj) |
static Cluster.PrefetchPolicy |
getDefaultInstance() |
Cluster.PrefetchPolicy |
getDefaultInstanceForType() |
static com.google.protobuf.Descriptors.Descriptor |
getDescriptor() |
com.google.protobuf.Parser<Cluster.PrefetchPolicy> |
getParserForType() |
com.google.protobuf.DoubleValue |
getPerUpstreamPrefetchRatio()
Indicates how many streams (rounded up) can be anticipated per-upstream for each
incoming stream.
|
com.google.protobuf.DoubleValueOrBuilder |
getPerUpstreamPrefetchRatioOrBuilder()
Indicates how many streams (rounded up) can be anticipated per-upstream for each
incoming stream.
|
com.google.protobuf.DoubleValue |
getPredictivePrefetchRatio()
Indicates how many many streams (rounded up) can be anticipated across a cluster for each
stream, useful for low QPS services.
|
com.google.protobuf.DoubleValueOrBuilder |
getPredictivePrefetchRatioOrBuilder()
Indicates how many many streams (rounded up) can be anticipated across a cluster for each
stream, useful for low QPS services.
|
int |
getSerializedSize() |
com.google.protobuf.UnknownFieldSet |
getUnknownFields() |
int |
hashCode() |
boolean |
hasPerUpstreamPrefetchRatio()
Indicates how many streams (rounded up) can be anticipated per-upstream for each
incoming stream.
|
boolean |
hasPredictivePrefetchRatio()
Indicates how many many streams (rounded up) can be anticipated across a cluster for each
stream, useful for low QPS services.
|
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
internalGetFieldAccessorTable() |
boolean |
isInitialized() |
static Cluster.PrefetchPolicy.Builder |
newBuilder() |
static Cluster.PrefetchPolicy.Builder |
newBuilder(Cluster.PrefetchPolicy prototype) |
Cluster.PrefetchPolicy.Builder |
newBuilderForType() |
protected Cluster.PrefetchPolicy.Builder |
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) |
protected Object |
newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused) |
static Cluster.PrefetchPolicy |
parseDelimitedFrom(InputStream input) |
static Cluster.PrefetchPolicy |
parseDelimitedFrom(InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Cluster.PrefetchPolicy |
parseFrom(byte[] data) |
static Cluster.PrefetchPolicy |
parseFrom(byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Cluster.PrefetchPolicy |
parseFrom(ByteBuffer data) |
static Cluster.PrefetchPolicy |
parseFrom(ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Cluster.PrefetchPolicy |
parseFrom(com.google.protobuf.ByteString data) |
static Cluster.PrefetchPolicy |
parseFrom(com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Cluster.PrefetchPolicy |
parseFrom(com.google.protobuf.CodedInputStream input) |
static Cluster.PrefetchPolicy |
parseFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Cluster.PrefetchPolicy |
parseFrom(InputStream input) |
static Cluster.PrefetchPolicy |
parseFrom(InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static com.google.protobuf.Parser<Cluster.PrefetchPolicy> |
parser() |
Cluster.PrefetchPolicy.Builder |
toBuilder() |
void |
writeTo(com.google.protobuf.CodedOutputStream output) |
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, hasField, hasOneof, internalGetMapField, makeExtensionsImmutable, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTagfindInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toStringaddAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeToclone, finalize, getClass, notify, notifyAll, wait, wait, waitpublic static final int PER_UPSTREAM_PREFETCH_RATIO_FIELD_NUMBER
public static final int PREDICTIVE_PREFETCH_RATIO_FIELD_NUMBER
protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
newInstance in class com.google.protobuf.GeneratedMessageV3public final com.google.protobuf.UnknownFieldSet getUnknownFields()
getUnknownFields in interface com.google.protobuf.MessageOrBuildergetUnknownFields in class com.google.protobuf.GeneratedMessageV3public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3public boolean hasPerUpstreamPrefetchRatio()
Indicates how many streams (rounded up) can be anticipated per-upstream for each incoming stream. This is useful for high-QPS or latency-sensitive services. Prefetching will only be done if the upstream is healthy. For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be established, one for the new incoming stream, and one for a presumed follow-up stream. For HTTP/2, only one connection would be established by default as one connection can serve both the original and presumed follow-up stream. In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100 active streams, there would be 100 connections in use, and 50 connections prefetched. This might be a useful value for something like short lived single-use connections, for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more reasonable, where for every 100 connections, 5 prefetched connections would be in the queue in case of unexpected disconnects where the connection could not be reused. If this value is not set, or set explicitly to one, Envoy will fetch as many connections as needed to serve streams in flight. This means in steady state if a connection is torn down, a subsequent streams will pay an upstream-rtt latency penalty waiting for streams to be prefetched. This is limited somewhat arbitrarily to 3 because prefetching connections too aggressively can harm latency more than the prefetching helps.
.google.protobuf.DoubleValue per_upstream_prefetch_ratio = 1 [(.validate.rules) = { ... }hasPerUpstreamPrefetchRatio in interface Cluster.PrefetchPolicyOrBuilderpublic com.google.protobuf.DoubleValue getPerUpstreamPrefetchRatio()
Indicates how many streams (rounded up) can be anticipated per-upstream for each incoming stream. This is useful for high-QPS or latency-sensitive services. Prefetching will only be done if the upstream is healthy. For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be established, one for the new incoming stream, and one for a presumed follow-up stream. For HTTP/2, only one connection would be established by default as one connection can serve both the original and presumed follow-up stream. In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100 active streams, there would be 100 connections in use, and 50 connections prefetched. This might be a useful value for something like short lived single-use connections, for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more reasonable, where for every 100 connections, 5 prefetched connections would be in the queue in case of unexpected disconnects where the connection could not be reused. If this value is not set, or set explicitly to one, Envoy will fetch as many connections as needed to serve streams in flight. This means in steady state if a connection is torn down, a subsequent streams will pay an upstream-rtt latency penalty waiting for streams to be prefetched. This is limited somewhat arbitrarily to 3 because prefetching connections too aggressively can harm latency more than the prefetching helps.
.google.protobuf.DoubleValue per_upstream_prefetch_ratio = 1 [(.validate.rules) = { ... }getPerUpstreamPrefetchRatio in interface Cluster.PrefetchPolicyOrBuilderpublic com.google.protobuf.DoubleValueOrBuilder getPerUpstreamPrefetchRatioOrBuilder()
Indicates how many streams (rounded up) can be anticipated per-upstream for each incoming stream. This is useful for high-QPS or latency-sensitive services. Prefetching will only be done if the upstream is healthy. For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be established, one for the new incoming stream, and one for a presumed follow-up stream. For HTTP/2, only one connection would be established by default as one connection can serve both the original and presumed follow-up stream. In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100 active streams, there would be 100 connections in use, and 50 connections prefetched. This might be a useful value for something like short lived single-use connections, for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more reasonable, where for every 100 connections, 5 prefetched connections would be in the queue in case of unexpected disconnects where the connection could not be reused. If this value is not set, or set explicitly to one, Envoy will fetch as many connections as needed to serve streams in flight. This means in steady state if a connection is torn down, a subsequent streams will pay an upstream-rtt latency penalty waiting for streams to be prefetched. This is limited somewhat arbitrarily to 3 because prefetching connections too aggressively can harm latency more than the prefetching helps.
.google.protobuf.DoubleValue per_upstream_prefetch_ratio = 1 [(.validate.rules) = { ... }getPerUpstreamPrefetchRatioOrBuilder in interface Cluster.PrefetchPolicyOrBuilderpublic boolean hasPredictivePrefetchRatio()
Indicates how many many streams (rounded up) can be anticipated across a cluster for each stream, useful for low QPS services. This is currently supported for a subset of deterministic non-hash-based load-balancing algorithms (weighted round robin, random). Unlike per_upstream_prefetch_ratio this prefetches across the upstream instances in a cluster, doing best effort predictions of what upstream would be picked next and pre-establishing a connection. For example if prefetching is set to 2 for a round robin HTTP/2 cluster, on the first incoming stream, 2 connections will be prefetched - one to the first upstream for this cluster, one to the second on the assumption there will be a follow-up stream. Prefetching will be limited to one prefetch per configured upstream in the cluster. If this value is not set, or set explicitly to one, Envoy will fetch as many connections as needed to serve streams in flight, so during warm up and in steady state if a connection is closed (and per_upstream_prefetch_ratio is not set), there will be a latency hit for connection establishment. If both this and prefetch_ratio are set, Envoy will make sure both predicted needs are met, basically prefetching max(predictive-prefetch, per-upstream-prefetch), for each upstream. TODO(alyssawilk) per LB docs and LB overview docs when unhiding.
.google.protobuf.DoubleValue predictive_prefetch_ratio = 2 [(.validate.rules) = { ... }hasPredictivePrefetchRatio in interface Cluster.PrefetchPolicyOrBuilderpublic com.google.protobuf.DoubleValue getPredictivePrefetchRatio()
Indicates how many many streams (rounded up) can be anticipated across a cluster for each stream, useful for low QPS services. This is currently supported for a subset of deterministic non-hash-based load-balancing algorithms (weighted round robin, random). Unlike per_upstream_prefetch_ratio this prefetches across the upstream instances in a cluster, doing best effort predictions of what upstream would be picked next and pre-establishing a connection. For example if prefetching is set to 2 for a round robin HTTP/2 cluster, on the first incoming stream, 2 connections will be prefetched - one to the first upstream for this cluster, one to the second on the assumption there will be a follow-up stream. Prefetching will be limited to one prefetch per configured upstream in the cluster. If this value is not set, or set explicitly to one, Envoy will fetch as many connections as needed to serve streams in flight, so during warm up and in steady state if a connection is closed (and per_upstream_prefetch_ratio is not set), there will be a latency hit for connection establishment. If both this and prefetch_ratio are set, Envoy will make sure both predicted needs are met, basically prefetching max(predictive-prefetch, per-upstream-prefetch), for each upstream. TODO(alyssawilk) per LB docs and LB overview docs when unhiding.
.google.protobuf.DoubleValue predictive_prefetch_ratio = 2 [(.validate.rules) = { ... }getPredictivePrefetchRatio in interface Cluster.PrefetchPolicyOrBuilderpublic com.google.protobuf.DoubleValueOrBuilder getPredictivePrefetchRatioOrBuilder()
Indicates how many many streams (rounded up) can be anticipated across a cluster for each stream, useful for low QPS services. This is currently supported for a subset of deterministic non-hash-based load-balancing algorithms (weighted round robin, random). Unlike per_upstream_prefetch_ratio this prefetches across the upstream instances in a cluster, doing best effort predictions of what upstream would be picked next and pre-establishing a connection. For example if prefetching is set to 2 for a round robin HTTP/2 cluster, on the first incoming stream, 2 connections will be prefetched - one to the first upstream for this cluster, one to the second on the assumption there will be a follow-up stream. Prefetching will be limited to one prefetch per configured upstream in the cluster. If this value is not set, or set explicitly to one, Envoy will fetch as many connections as needed to serve streams in flight, so during warm up and in steady state if a connection is closed (and per_upstream_prefetch_ratio is not set), there will be a latency hit for connection establishment. If both this and prefetch_ratio are set, Envoy will make sure both predicted needs are met, basically prefetching max(predictive-prefetch, per-upstream-prefetch), for each upstream. TODO(alyssawilk) per LB docs and LB overview docs when unhiding.
.google.protobuf.DoubleValue predictive_prefetch_ratio = 2 [(.validate.rules) = { ... }getPredictivePrefetchRatioOrBuilder in interface Cluster.PrefetchPolicyOrBuilderpublic final boolean isInitialized()
isInitialized in interface com.google.protobuf.MessageLiteOrBuilderisInitialized in class com.google.protobuf.GeneratedMessageV3public void writeTo(com.google.protobuf.CodedOutputStream output)
throws IOException
writeTo in interface com.google.protobuf.MessageLitewriteTo in class com.google.protobuf.GeneratedMessageV3IOExceptionpublic int getSerializedSize()
getSerializedSize in interface com.google.protobuf.MessageLitegetSerializedSize in class com.google.protobuf.GeneratedMessageV3public boolean equals(Object obj)
equals in interface com.google.protobuf.Messageequals in class com.google.protobuf.AbstractMessagepublic int hashCode()
hashCode in interface com.google.protobuf.MessagehashCode in class com.google.protobuf.AbstractMessagepublic static Cluster.PrefetchPolicy parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Cluster.PrefetchPolicy parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Cluster.PrefetchPolicy parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Cluster.PrefetchPolicy parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Cluster.PrefetchPolicy parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Cluster.PrefetchPolicy parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Cluster.PrefetchPolicy parseFrom(InputStream input) throws IOException
IOExceptionpublic static Cluster.PrefetchPolicy parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
IOExceptionpublic static Cluster.PrefetchPolicy parseDelimitedFrom(InputStream input) throws IOException
IOExceptionpublic static Cluster.PrefetchPolicy parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
IOExceptionpublic static Cluster.PrefetchPolicy parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
IOExceptionpublic static Cluster.PrefetchPolicy parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
IOExceptionpublic Cluster.PrefetchPolicy.Builder newBuilderForType()
newBuilderForType in interface com.google.protobuf.MessagenewBuilderForType in interface com.google.protobuf.MessageLitepublic static Cluster.PrefetchPolicy.Builder newBuilder()
public static Cluster.PrefetchPolicy.Builder newBuilder(Cluster.PrefetchPolicy prototype)
public Cluster.PrefetchPolicy.Builder toBuilder()
toBuilder in interface com.google.protobuf.MessagetoBuilder in interface com.google.protobuf.MessageLiteprotected Cluster.PrefetchPolicy.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
newBuilderForType in class com.google.protobuf.GeneratedMessageV3public static Cluster.PrefetchPolicy getDefaultInstance()
public static com.google.protobuf.Parser<Cluster.PrefetchPolicy> parser()
public com.google.protobuf.Parser<Cluster.PrefetchPolicy> getParserForType()
getParserForType in interface com.google.protobuf.MessagegetParserForType in interface com.google.protobuf.MessageLitegetParserForType in class com.google.protobuf.GeneratedMessageV3public Cluster.PrefetchPolicy getDefaultInstanceForType()
getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuildergetDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilderCopyright © 2018–2020 The Envoy Project. All rights reserved.