StatelessServiceUpdateDescription

Describes an update for a stateless service.

Properties

Name Type Required
Flags string No
PlacementConstraints string No
CorrelationScheme array of ServiceCorrelationDescription No
LoadMetrics array of ServiceLoadMetricDescription No
ServicePlacementPolicies array of ServicePlacementPolicyDescription No
DefaultMoveCost string (enum) No
ScalingPolicies array of ScalingPolicyDescription No
ServiceDnsName string No
TagsForPlacement NodeTagsDescription No
TagsForRunning NodeTagsDescription No
InstanceCount integer No
MinInstanceCount integer No
MinInstancePercentage integer No
InstanceCloseDelayDurationSeconds string No
InstanceLifecycleDescription InstanceLifecycleDescription No
InstanceRestartWaitDurationSeconds string No

Flags

Type: string
Required: No

Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. This property can be a combination of those flags obtained using bitwise 'OR' operator. For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.

  • None - Does not indicate any other properties are set. The value is zero.
  • TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
  • ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2.
  • QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
  • StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
  • MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
  • PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
  • PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
  • Correlation - Indicates the CorrelationScheme property is set. The value is 128.
  • Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
  • DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
  • ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
  • ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 2048.
  • MinInstanceCount - Indicates the MinInstanceCount property is set. The value is 4096.
  • MinInstancePercentage - Indicates the MinInstancePercentage property is set. The value is 8192.
  • InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 16384.
  • InstanceRestartWaitDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 32768.
  • DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 65536.
  • ServiceDnsName - Indicates the ServiceDnsName property is set. The value is 131072.
  • TagsForPlacement - Indicates the TagsForPlacement property is set. The value is 1048576.
  • TagsForRunning - Indicates the TagsForRunning property is set. The value is 2097152.

PlacementConstraints

Type: string
Required: No

The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)".


CorrelationScheme

Type: array of ServiceCorrelationDescription
Required: No

The correlation scheme.


LoadMetrics

Type: array of ServiceLoadMetricDescription
Required: No

The service load metrics.


ServicePlacementPolicies

Type: array of ServicePlacementPolicyDescription
Required: No

The service placement policies.


DefaultMoveCost

Type: string (enum)
Required: No

The move cost for the service.

Specifies the move cost for the service.

Possible values are:

  • Zero - Zero move cost. This value is zero.
  • Low - Specifies the move cost of the service as Low. The value is 1.
  • Medium - Specifies the move cost of the service as Medium. The value is 2.
  • High - Specifies the move cost of the service as High. The value is 3.
  • VeryHigh - Specifies the move cost of the service as VeryHigh. The value is 4.

ScalingPolicies

Type: array of ScalingPolicyDescription
Required: No

Scaling policies for this service.


ServiceDnsName

Type: string
Required: No

The DNS name of the service.


TagsForPlacement

Type: NodeTagsDescription
Required: No

Tags for placement of this service.


TagsForRunning

Type: NodeTagsDescription
Required: No

Tags for running of this service.


InstanceCount

Type: integer
Required: No
InclusiveMinimum: -1

The instance count.


MinInstanceCount

Type: integer
Required: No

MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node. The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ). Note, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.


MinInstancePercentage

Type: integer
Required: No

MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node. The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ). Note, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.


InstanceCloseDelayDurationSeconds

Type: string
Required: No

Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node. The endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance. In addition, clients that have subscribed to service endpoint change events(https://docs.microsoft.com/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do the following upon receiving the endpoint removal notification: - Stop sending new requests to this instance. - Close existing connections after in-flight requests have completed. - Connect to a different instance of the service partition for future requests.


InstanceLifecycleDescription

Type: InstanceLifecycleDescription
Required: No

Defines how instances of this service will behave during their lifecycle.


InstanceRestartWaitDurationSeconds

Type: string
Required: No

When a stateless instance goes down, this timer starts. When it expires Service Fabric will create a new instance on any node in the cluster. This configuration is to reduce unnecessary creation of a new instance in situations where the instance going down is likely to recover in a short time. For example, during an upgrade. The default value is 0, which indicates that when stateless instance goes down, Service Fabric will immediately start building its replacement.