[ https://issues.apache.org/jira/browse/HADOOP-12079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gil Vernik updated HADOOP-12079: -------------------------------- Attachment: x-newest-optional0005.patch > Make 'X-Newest' header a configurable > ------------------------------------- > > Key: HADOOP-12079 > URL: https://issues.apache.org/jira/browse/HADOOP-12079 > Project: Hadoop Common > Issue Type: Improvement > Components: fs/swift > Affects Versions: 3.0.0, 2.6.0 > Reporter: Gil Vernik > Assignee: Gil Vernik > Fix For: 3.0.0, 2.6.1 > > Attachments: x-newest-optional0001.patch, > x-newest-optional0002.patch, x-newest-optional0003.patch, > x-newest-optional0004.patch, x-newest-optional0005.patch > > > Current code always sends X-Newest header to Swift. While it's true that > Swift is eventual consistent and X-Newest will always get the newest version > from Swift, in practice this header will make Swift response very slow. > This header should be configured as an optional, so that it will be possible > to access Swift without this header and get much better performance. > This patch doesn't modify current behavior. All is working as is, but there > is an option to provide fs.swift.service.useXNewest = false. > Some background on Swift and X-Newest: > When a GET or HEAD request is made to an object, the default behavior is to > get the data from one of the replicas (could be any of them). The downside to > this is that if there are older versions of the object (due to eventual > consistency) it is possible to get an older version of the object. The upside > is that the for the majority of use cases, this isn't an issue. For the small > subset of use cases that need to make sure that they get the latest version > of the object, they can set the "X-Newest" header to "True". If this is set, > the proxy server will check all replicas of the object and only return the > newest object. The downside to this is that the request can take longer, > since it has to contact all the replicas. It is also more expensive for the > backend, so only recommended when it is absolutely needed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)