ecTopology

The ecTopology data type describes the ecTopologies resource.

ecTopology data type properties

The following table describes the properties included in the ecTopology data type.

Property nameData typeDescriptionNotes
descriptionString

Specifies the description of the erasure coding topology. This description is optional. The default is no description.

To remove the description from an existing erasure coding topology, specify the description property with no value.

This property is optional on a PUT request.
erasureCodedObjectsLongSpecifies the number of objects and parts of multipart objects on the local HCP system that were erasure coded according to this erasure coding topology. An object is counted as erasure coded if a chunk for it is stored on the system.This property is not valid on a PUT or POST request. It is returned only by a verbose GET request.
erasureCodingDelayIntegerSpecifies the erasure coding delay for the erasure coding topology as a number of days. Valid values are integers in the range zero through 3,650. The default is zero.This property is optional on a PUT request.
fullCopyBoolean

Specifies whether the erasure coding topology uses full-copy distribution or chunk distribution. Valid values are:

  • true

    The erasure coding topology uses full-copy distribution.

  • false

    The erasure coding topology uses chunk distribution.

The default is false.

This property is optional on a PUT request.
hcpSystemsListLists the HCP systems that are included in the erasure coding topology. Each system is identified by the fully qualified name of the domain associated with the [[hcp_system]] network on that system.

This property is not valid on a PUT or POST request.

In XML, the element that identifies each system is name. In JSON, the name in the name/value pair that lists the systems is name.

idStringSpecifies the ID for the erasure coding topology.This property is not valid on a PUT or POST request. It is returned only by a verbose GET request.
minimumObjectSizeLong

Specifies the minimum size for objects to be erasure coded. Valid values are:

  • 4096
  • 16384
  • 32768
  • 65536
  • 131072
  • 262144
  • 524288
  • 1048576

The default is 4096.

This property is optional on a PUT request.
nameStringSpecifies the name of the erasure coding topology. The name must be from one through 64 characters long and can contain any valid UTF-8 characters, including white space. Erasure coding topology names are not case sensitive.This property is required on a PUT request.
protectionStatusString

Specifies the current status of the erasure coding topology with respect to how well-protected erasure-coded objects are. Possible values are:

  • BROKEN

    Two or more systems in the topology are unavailable. Objects erasure coded according to the topology are inaccessible and are not protected.

  • HEALTHY

    All systems in the topology are available. Objects erasure coded according to the topology can be read and are fully protected.

  • RETIRED

    The topology has finished retiring.

  • RETIRING

    The topology is in the process of retiring.

  • UNKNOWN

    HCP cannot determine the protection status.

  • VULNERABLE

    One system in the topology is unavailable, and the loss of a link or suspension of activity on a link would prevent an additional system from receiving data or chunks for newly ingested objects. Objects erasure coded according to the topology can be read but are not fully protected.

This property is not valid on a PUT or POST request.
readStatusString

Specifies the current status of the erasure coding topology with respect to the ability to read erasure-coded objects. Possible values are:

  • BROKEN

    Two or more systems in the topology are unavailable. Objects erasure coded according to the topology are inaccessible.

  • HEALTHY

    All systems in the topology are available. Objects erasure coded according to the topology can be read.

  • RETIRED

    The topology has finished retiring.

  • UNKNOWN

    HCP cannot determine the read status.

  • VULNERABLE

    One system in the topology is unavailable. Objects erasure-coded according to the toplogy can be read, but the loss of a link would cause those objects to become inaccessible.

This property is not valid on a PUT or POST request.
replicationLinksreplication Links

Specifies the replication links included in the erasure coding topology.

This property is required on a PUT request. It is not valid on a POST request.

The properties returned for each replication link in response to a GET request for an erasure coding topology depend on whether the request includes the verbose=true query parameter.

restorePeriodIntegerSpecifies the restore period for the erasure coding topology as a number of days. Valid values are integers in the range zero through 180. The default is zeroThis property is optional on a PUT request.
stateString

Specifies the state of the erasure coding topology. Possible values are:

  • ACTIVE

    The topology is currently being used to erasure-code newly ingested objects that are subject to erasure coding.

  • RETIRED

    The topology is retired.

  • RETIRING

    The topology is in the process of retiring.

This property is not valid on a PUT or POST request.
tenantsListLists the tenants included in the erasure coding topology.

This property is not valid on a PUT or POST request.

In XML, the element that identifies each tenant is name. In JSON, the name in the name/value pair that lists the tenants is name.

typeString

Specifies the type of the underlying replication topology. Valid values for an erasure coding topology with four, five, or six systems are:

  • FULLY_CONNECTED

    The erasure coding topology is based on a fully connected active/active replication topology.

  • RING

    The erasure coding topology is based on an active/active replication ring topology.

For an erasure coding topology with three systems, the value of this property must be FULLY_CONNECTED.

These values are not case-sensitive.

This property is required on a PUT request. It is not valid on a POST request.

Example

Here's an XML example of the ecTopology data type; the properties shown are those that are returned in response to a verbose GET request:

<ecTopology>
    <description>Erasure coding topology for the US, Europe, Canada, and
        Africa-North divisions.</description>
    <erasureCodedObjects>3289</erasureCodedObjects>
    <erasureCodingDelay>10</erasureCodingDelay>
    <fullCopy>false</fullCopy>
    <hcpSystems>
        <name>hcp-an.example.com</name>
        <name>hcp-ca.example.com</name>
        <name>hcp-eu.example.com</name>
        <name>hcp-us.example.com</name>
    </hcpSystems>
    <id>faa9b2e5-a8b0-4211-ac83-6a25dff50800</id>
    <minimumObjectSize>4096</minimumObjectSize>
    <name>ex-corp-4</name>
    <protectionStatus>HEALTHY</protectionStatus>
    <readStatus>HEALTHY</readStatus>
    <replicationLinks>
        <replicationLink>
            <hcpSystems>
                <name>hcp-ca.example.com</name>
                <name>hcp-eu.example.com</name>
            </hcpSystems>
            <name>eu-ca</name>
            <pausedTenantsCount>0</pausedTenantsCount>
            <state>HEALTHY</state>
            <uuid>7ae4101c-6e29-426e-ae71-9a7a529f019d</uuid>
        </replicationLink>
        <replicationLink>
            <hcpSystems>
                <name>hcp-eu.example.com</name>
                <name>hcp-us.example.com</name>
            </hcpSystems>
            <name>us-eu</name>
            <pausedTenantsCount>0</pausedTenantsCount>
            <state>HEALTHY</state>
            <uuid>32871da5-2355-458a-90f5-1717aa684d6f</uuid>
        </replicationLink>
        <replicationLink>
            <hcpSystems>
                <name>hcp-an.example.com</name>
                <name>hcp-us.example.com</name>
            </hcpSystems>
            <name>us-an</name>
            <pausedTenantsCount>0</pausedTenantsCount>
            <state>HEALTHY</state>
            <uuid>c8c875ad-dbfe-437d-abd3-862a6c719894</uuid>
        </replicationLink>
        <replicationLink>
            <hcpSystems>
                <name>hcp-an.example.com</name>
                <name>hcp-ca.example.com</name>
            </hcpSystems>
            <name>ca-an</name>
            <pausedTenantsCount>0</pausedTenantsCount>
            <state>HEALTHY</state>
            <uuid>a1f21e03-fb46-48cc-967e-b0cedf80bb20</uuid>
        </replicationLink>
    </replicationLinks>
    <restorePeriod>5</restorePeriod>
    <state>ACTIVE</state>
    <tenants>
        <name>research-dev</name>
        <name>sales-mktg</name>
        <name>exec</name>
        <name>finance</name>
    </tenants>
    <type>RING</type>
</ecTopology>

Query parameter for retiring an erasure coding topology

You use the retire query parameter to retire an erasure coding topology. You use this parameter on a POST request against the topology resource. You cannot include a request body with this request.

Here's a sample POST request that retires the erasure coding topology named ex-corp-3.

curl -k -d "<ecTopology/>"
    -H "Authorization: HCP bGdyZWVu:35dc4c4aa08fe0deab7e292e00eb8e97"
    "https://admin.hcp-us.example.com:9090/mapi/services/erasureCoding/
        ecTopologies/ex-corp-3?retire"

Query parameter for forcing the deletion of an erasure coding topology

You can delete an erasure coding topology only while either of these is true:

  • At least one system in the topology is available, the total number of erasure-coded objects and erasure-coded parts of multipart objects on each available system is zero, and the state of the topology is retired. These are the normal conditions for deleting a topology.
  • No more than one system in the topology is unavailable, the total number of erasure-coded objects and erasure-coded parts of multipart objects on each available system is zero, and the state of the topology is retiring. To delete the topology under these conditions, you need to include the force=true query parameter on the DELETE request.
ImportantDeleting an erasure coding topology under these conditions may result in inaccessible data in namespaces on the unavailable system, even if those namespaces are configured to be compliant. You should delete the topology only if that system is no longer needed. If the system is still needed, wait to delete the topology until the topology has finished retiring on all systems.

Here's a sample DELETE request that deletes the erasure coding topology named ex-corp-3 while the topology meets the second set of conditions listed above:

curl -k -X DELETE
    -H "Authorization: HCP bGdyZWVu:35dc4c4aa08fe0deab7e292e00eb8e97"
    "https://admin.hcp-us.example.com:9090/mapi/services/erasureCoding/
        ecTopologies/ex-corp-3?force=true"