Versions Compared

Key

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

Stale Cache in a Large System

...

An INFO request after performing an UPDATE on a bucket's metadata may return the old metadata. The error stops after about twice the value of the cache.realmStaleTimeout configuration parameter. cache.realmStaleTimeout is set to 10 minutes by default. After about twice that time - 20 minutes - following the APPEND, the bucket is visible by all nodes in the cluster.

...

After about twice the value of the cache.realmStaleTimeout configuration parameter (Settings Reference) occurs, the same task should succeed.

...

Some HTTP client libraries and frameworks do not handle redirects correctly for WRITE requests, at least not by default. Older versions of the HTTP protocol (namely HTTP 1.0) were are lax in the specification of exactly what the client must do when it receives a 301 or a 307 response code. Because of this, older clients, including many web browsers, developed separate own conventions. While some of these conventions may be useful, they are in direct violation of the HTTP/1.1 specification and therefore incompatible with Swarm.

Both the Microsoft .NET framework and the libCURL framework (and probably others) are known to process a redirect from a POST request by changing the POST to a GET and then sending the new request to the redirect server. Workarounds exist in the impacted frameworks because the behavior is known to be in violation of the specification.

According to RFC 2616: "When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP 1.0 user agents will erroneously change it into a GET request."