Author: tmaret Date: Thu Aug 17 15:50:56 2017 New Revision: 1805305 URL: http://svn.apache.org/viewvc?rev=1805305&view=rev Log: SLING-5755 - Complete Distribution documentation
Modified: sling/site/trunk/content/documentation/bundles/content-distribution.mdtext Modified: sling/site/trunk/content/documentation/bundles/content-distribution.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/bundles/content-distribution.mdtext?rev=1805305&r1=1805304&r2=1805305&view=diff ============================================================================== --- sling/site/trunk/content/documentation/bundles/content-distribution.mdtext (original) +++ sling/site/trunk/content/documentation/bundles/content-distribution.mdtext Thu Aug 17 15:50:56 2017 @@ -33,6 +33,13 @@ A forward distribution setup allows one org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default name="default" +#### Trigger forward distribution + +Forward distribution can be triggered by sending a `POST` HTTP request to the agent resource on the source instance with the parameter `action=ADD` and parameters `path=<resourcePath>`. + +The example below distributes the path `/content/sample1` + + $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action=ADD' -d 'path=/content/sample1' ### Reverse distribution @@ -63,6 +70,13 @@ A reverse distribution setup allows one agent.target="(name=reverse)" +#### Trigger reverse distribution + +Reverse distribution can be triggered by sending a `POST` HTTP request to the agent resource on the target instance with the parameter `action=PULL`. + +The example below adds the the path `/content/sample1` and then reverse distribute it. + + $ curl -v -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/publish -d 'action=PULL' -d 'path=/content/sample1' ### Sync distribution @@ -161,11 +175,42 @@ A multidatacenter sync distribution setu ## Additional options -### How to trigger distribution over HTTP? - ### How to configure binary-less distribution? -### How to configure priority paths? +Binary-less distribution is supported for deployments over a shared data store and involving agents that leverage the +Vault based Distribution package exporter (Factory PID: +org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory) package builder. + +With binary-less mode enabled, the content packages distributed contain references to binaries rather than +the actual binaries. + +SCD does not explicitly deal with binary references. Instead, it configures Apache Jackrabbit FileVault +export options in order to assemble/import binary references. + +Upon import, if a referenced binary is not visible on the destination instance, SCD will retry distributing the content package +after a delay has elapsed. + +Binary-less is configured by setting the 'useReferences' to true on the VaultDistributionPackageBuilderFactory. + +### How to configure priority queue? + +SCD agents allow to prioritize the distribution of content depending on its path. +This feature improves the delays in use cases where a subset of the content to be distributed must meet tighter delay +than the remaining one (e.g. news flash). + +Each agent can be configured with one or more priority queues. + +In order to setup the priority queues, configure the 'priorityQueues' agent property by providing the queuePrefix and path regular expression. + +### How to configure retry strategy? + +The agent behaviour upon failed distribution request can be configured via the Retry Strategy 'retry.strategy' and +'retry.attempts' properties. -### How to configure error queues? +With the 'none' strategy, an agent will retry distributing an item forever, blocking the queue until the distribution succeeds. +The 'none' strategy guarantees the distribution order but may block the queue until someone resolves the situation. +With the 'errorQueue' strategy, an agent will automatically create an additional error queue. The agent will +retry up to 'retry.attempts' attempts then move the failed item to the error queue. The error queue is passive and allow +to keep track of the failed distribution item for post analysis. +The 'errorQueue' strategy does not guarantee the distribution order, but it guarantee that the queue is stuck for a bounded number of retries.