Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

The SCSP SEND method applies to both named and unnamed objects. The SEND request allows explicit transmission of a newly written object from a source cluster to a remote one, such as for keeping two clusters immediately synchronized. As of Swarm 11.2, the feed SEND method works with any feed type, so that it can force synchronous processing of a specific object on one or more of those feeds.

Best practice — Use this feature with a replication feed, which acts as a catch-up mechanism if the intracluster network is down or the SEND command should failfails

Info

Legacy SEND

The legacy behavior of the SEND method (which was limited to legacy replication feeds) is replaced by the following expanded SEND method. The legacy behavior is preserved for backwards compatibility: you can invoke it by omitting the required “feedid” or “feedtype” query arguments. (v11.2)

SEND Requests

With a SEND request, you provide the path or UUID for the Swarm object to be sent to one or more feeds. Swarm checks the destination cluster to verify whether the object already exists there. 

Which node to SEND toIf you use Content Gateway determines the optimal target node for the request if using SEND through Content Gateway (under development for future release), it determines the optimal target node for the request; if you are ; select the node if going direct to Storage, you need to select the node. All replicas must perform feed processing, but, on a new write, one replica gets to go first for replication and S3 backup processing. If you point SEND to the optimal node (which holds this first replica), the A SEND request has the best chance of arriving with the replication already in progress, which speeds completion . To find if pointing SEND to the optimal SEND node, determine node (which holds this first replica). Determine whether the request was is an EC write and whether the request is a multipart completion . You can identify to find the optimal SEND node. Identify an EC write by its the Manifest: ec” response header.

...

Request headers — No special headers are expected or used on the request. Do not include any of the legacy SEND request headers:

...

The SEND request needs query arguments for feedid, feedtype, or both, which is a union of all of those provided arguments; if you do not provide either, SEND reverts to the legacy behavior if neither is provided

Argument

Values, Examples

Notes

admin

none

SEND can only be is used by an admin user. This requires the admin query argument and a system user/password sent as a digest.

feedid

all | integer

feedid=all 

feedid=1&feedid=3

Specifies one or more specific feeds as the replication destination. Reference existing feed IDs (feedid=1&feedid=3) or use the special value “all” to refer to all feeds, including no feed. To find the ID number for a feed in the Swarm UI, select Cluster > Feeds, and locate the ID column:

Image RemovedImage Added

If an integer value is not an existing feed, Swarm returns a 400 Bad Request error. If the object being sent does not match the feed definition (because of a domain restriction), the SEND operation succeeds, but no data is transferred.

feedtype

all | search | replication | s3backup

feedtype=all

feedtype=replication
   &feedtype=search

Specifies one or more types of feeds as the replication destination, from among these values: search, indexing, replication, s3backup.  (The values search and indexing are synonymous.) Use the special value “all” to refer to all feed types, including no feed.

If the feedtype isn't a valid value, Swarm returns a 400 Bad Request error. If the object being sent does not match the feed definition (because of a domain restriction), the SEND operation succeeds, but no data is transferred.

timeout

true | number of seconds | false

timeout=true

timeout=60

Sets how long to wait for replication to complete; if disabled (false; not recommended), feed processing can go on indefinitely if a feed is blocked. 

Using timeout=true waits for the Swarm setting scsp.defaultFeedSendTimeout time in seconds, which defaults to 30.

Specifying a positive number for the timeout overrides the value in the Swarm setting.

...

Info

Chunked encoding

The SEND response is chunked transfer encoded, so the client of the SEND request must be prepared for chunked transfer encoding.

The response body may contain additional leading newlines sent incrementally, which keeps the connection open in long requests. The body of the response can be ignored; the trailing headers are repeated at the end of the body only to support clients that cannot handle trailing headers, such as curl.

...