[ 
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)

Reply via email to