Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel2
outlinefalse
typelist
printablefalse
Excerpt

Info

Untenanted

objects

Objects

Earlier implementations of Swarm may have used untenanted unnamed objects, which are objects not tenanted in any domain.

  • Untenanted objects are reached using the query argument "domain="

  • Untenanted objects cannot be converted into tenanted objects and cannot be accessed using the Content UI.

...

By default, an unnamed object changes only by deleting it (if permitted by the object's lifepoint policy) once the object is stored in Swarm. There is no way to open an immutable object for updates or appends to the content or metadata. It is possible to decorate an immutable object with metadata that is stored separately in an annotation; see . (See Metadata Annotation).

To store an object in the cluster, an application must provide a size (in bytes) for the object. Swarm then allocates exactly enough space to store the given number of bytes. After that, every object replica has precisely the same byte size. There is no possibility a replica is updated or changed in some way while others are not changed.

...

Identifying an alias object —  - Identify an alias object by examining the metadata:

  • An alias object's UUID is different from the ETag value.

  • An alias object may also have a castor-system-alias metadata entry as well

Info

Update

frequency

Frequency

Named and alias objects can be updated at a maximum frequency of once per second. Updating more frequently can cause unpredictable results with the stored object version. If an application updates objects faster than once per second, include the ?replicate query argument to guarantee more than one node can return the latest version in a subsequent read.

...

This URI specifies three things:

  • Protocol: http

  • Cluster: companyname.example.com

  • UUID: 12BFEA648C2697A56FD5618CAE15D5CA

...

Note

The length of the UUID string must be exactly 32 characters, including any leading zeros.

Creating Unnamed Objects

The UUID is not assigned when storing an object for the first time, so an SCSP WRITE request includes the first two components of the URI. Swarm generates and returns a new UUID to the storing application after the data is transferred and stored.

See https://caringo.atlassian.net/wiki/spaces/public/pages/2443821739/Normal+Responses+to+WRITE?search_id=83b5526e-5847-4ac8-8224-607395a8a856 for how the UUID is returned.

Every request must include one of the following:

  • a HOST header equivalent to the cluster name

  • the host IP address

  • a domain=clusterName query argument

Infonote

Caution

Verify applications are not passing a HOST header as neither an IP address nor a domain existing in the cluster (unless the host header matches the cluster name). Swarm attempts to look up the non-existent domain on every request and waits for multiple retries before the lookup times out, impacting performance.

Tip

Best

practice:

Practice

Add the domain=<domain-name> query argument, which overrides this lookup and prevents the timeout penalty.

...