Service Fabric service model XML schema elements

PartitionDescriptionGroup group

Defines the partitioning scheme for a service.

Attribute Value
content 3 element(s)

XML source

<xs:group xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="PartitionDescriptionGroup">
        <xs:annotation>
            <xs:documentation>Defines the partitioning scheme for a service.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="SingletonPartition">
                <xs:annotation>
                    <xs:documentation>Declares that this service has only one partition.</xs:documentation>
                </xs:annotation>
                <xs:complexType/>
            </xs:element>
            <xs:element name="UniformInt64Partition">
                <xs:annotation>
                    <xs:documentation>Describes a uniform partitioning scheme based on Int64 keys.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="PartitionCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>Total number of partitions (positive integer). Each partition is responsible for a non-overlapping subrange of the overall partition key range.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="LowKey" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>Inclusive low range of the partition key (long).</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="HighKey" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>Inclusive high range of the partition key (long).</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:element name="NamedPartition">
                <xs:annotation>
                    <xs:documentation>Describes a named partitioning scheme based on names for each partition.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element name="Partition">
                            <xs:annotation>
                                <xs:documentation>Describes a partition by name.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:attribute name="Name" use="required">
                                    <xs:annotation>
                                        <xs:documentation>The name of the partition</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:minLength value="1"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:group>
    

Content element details

SingletonPartition

Declares that this service has only one partition.

Attribute Value
name SingletonPartition
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="SingletonPartition">
                <xs:annotation>
                    <xs:documentation>Declares that this service has only one partition.</xs:documentation>
                </xs:annotation>
                <xs:complexType/>
            </xs:element>
            

UniformInt64Partition

Describes a uniform partitioning scheme based on Int64 keys.

Attribute Value
name UniformInt64Partition
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="UniformInt64Partition">
                <xs:annotation>
                    <xs:documentation>Describes a uniform partitioning scheme based on Int64 keys.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="PartitionCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>Total number of partitions (positive integer). Each partition is responsible for a non-overlapping subrange of the overall partition key range.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="LowKey" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>Inclusive low range of the partition key (long).</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="HighKey" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>Inclusive high range of the partition key (long).</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            

NamedPartition

Describes a named partitioning scheme based on names for each partition.

Attribute Value
name NamedPartition
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="NamedPartition">
                <xs:annotation>
                    <xs:documentation>Describes a named partitioning scheme based on names for each partition.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element name="Partition">
                            <xs:annotation>
                                <xs:documentation>Describes a partition by name.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:attribute name="Name" use="required">
                                    <xs:annotation>
                                        <xs:documentation>The name of the partition</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:minLength value="1"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        

ScalingPolicyMechanismGroup group

Defines the scaling mechanism.

Attribute Value
content 2 element(s)

XML source

<xs:group xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="ScalingPolicyMechanismGroup">
        <xs:annotation>
            <xs:documentation>Defines the scaling mechanism.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="InstanceCountScalingMechanism" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a mechanism for increasing the instance count of a partition. This is for stateless services only.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MinInstanceCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The minimum number of instances.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="MaxInstanceCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The maximum number of instances..</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIncrement" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The number of instances by which to perform the upshift/downshift.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:element name="AddRemoveIncrementalNamedPartitionScalingMechanism" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a mechanism for adding or removing named partitions.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MinPartitionCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The minimum number of partitions.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="MaxPartitionCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The maximum number of partitions.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIncrement" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The number of partitions by which to perform the upshift/downshift.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:group>
    

Content element details

InstanceCountScalingMechanism

Defines a mechanism for increasing the instance count of a partition. This is for stateless services only.

Attribute Value
name InstanceCountScalingMechanism
minOccurs 0
maxOccurs 1
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="InstanceCountScalingMechanism" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a mechanism for increasing the instance count of a partition. This is for stateless services only.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MinInstanceCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The minimum number of instances.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="MaxInstanceCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The maximum number of instances..</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIncrement" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The number of instances by which to perform the upshift/downshift.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            

AddRemoveIncrementalNamedPartitionScalingMechanism

Defines a mechanism for adding or removing named partitions.

Attribute Value
name AddRemoveIncrementalNamedPartitionScalingMechanism
minOccurs 0
maxOccurs 1
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="AddRemoveIncrementalNamedPartitionScalingMechanism" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a mechanism for adding or removing named partitions.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MinPartitionCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The minimum number of partitions.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="MaxPartitionCount" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The maximum number of partitions.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIncrement" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The number of partitions by which to perform the upshift/downshift.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        

ScalingPolicyTriggerGroup group

Defines the scaling trigger.

Attribute Value
content 2 element(s)

XML source

<xs:group xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="ScalingPolicyTriggerGroup">
        <xs:annotation>
            <xs:documentation>Defines the scaling trigger.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="AveragePartitionLoadScalingTrigger" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a scaling mechanism based on the average load of replicas of a partition.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MetricName" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The name of metric which should be used for scaling operations.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="LowerLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The lower limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="UpperLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The upper limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIntervalInSeconds" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The time interval in seconds to be considered for scaling.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:element name="AverageServiceLoadScalingTrigger" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a scaling mechanism based on the average load of partitions of a service.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MetricName" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The name of metric which should be used for scaling operations.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="LowerLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The lower limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="UpperLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The upper limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIntervalInSeconds" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The time interval in seconds to be considered for scaling.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="UseOnlyPrimaryLoad" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>Use load of primary replica as average load of partition.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:group>
    

Content element details

AveragePartitionLoadScalingTrigger

Defines a scaling mechanism based on the average load of replicas of a partition.

Attribute Value
name AveragePartitionLoadScalingTrigger
minOccurs 0
maxOccurs 1
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="AveragePartitionLoadScalingTrigger" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a scaling mechanism based on the average load of replicas of a partition.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MetricName" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The name of metric which should be used for scaling operations.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="LowerLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The lower limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="UpperLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The upper limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIntervalInSeconds" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The time interval in seconds to be considered for scaling.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            

AverageServiceLoadScalingTrigger

Defines a scaling mechanism based on the average load of partitions of a service.

Attribute Value
name AverageServiceLoadScalingTrigger
minOccurs 0
maxOccurs 1
XML source
<xs:element xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2011/01/fabric" name="AverageServiceLoadScalingTrigger" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Defines a scaling mechanism based on the average load of partitions of a service.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="MetricName" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The name of metric which should be used for scaling operations.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="LowerLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The lower limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="UpperLoadThreshold" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The upper limit of the load value of a metric.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ScaleIntervalInSeconds" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>The time interval in seconds to be considered for scaling.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="UseOnlyPrimaryLoad" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>Use load of primary replica as average load of partition.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>