You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Zhao Yongming (JIRA)" <ji...@apache.org> on 2012/10/17 08:04:05 UTC

[jira] [Created] (TS-1534) implement the interim cache for ESI parser result

Zhao Yongming created TS-1534:
---------------------------------

             Summary: implement the interim cache for ESI parser result
                 Key: TS-1534
                 URL: https://issues.apache.org/jira/browse/TS-1534
             Project: Traffic Server
          Issue Type: Improvement
          Components: Plugins
    Affects Versions: 3.3.0
            Reporter: Zhao Yongming
             Fix For: 3.3.1


the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Kit Chan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483061#comment-13483061 ] 

Kit Chan commented on TS-1534:
------------------------------

I checked out the recently checked in code for this ticket and it gets the base use case working.
But still the cache mechanism does not work when I have a "X-Flag" request headers with dffierent values and a response header of "Vary: X-Flag"
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Zhao Yongming (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483905#comment-13483905 ] 

Zhao Yongming commented on TS-1534:
-----------------------------------

I have committed more codes on the interim cache, please check. ae7743680e5eee3a066eb535a9fd4fda09e08325
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Kit Chan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483876#comment-13483876 ] 

Kit Chan commented on TS-1534:
------------------------------

So should we remove the -DESI_PACKED_NODE_SUPPORT flag in the Makefile while we try to get this feature in good shape?

                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Zhao Yongming (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483873#comment-13483873 ] 

Zhao Yongming commented on TS-1534:
-----------------------------------

hmm, we should make interim cache work first, and then we find out how to handle the Vary & GET.
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (TS-1534) implement the interim cache for ESI parser result

Posted by "Zhao Yongming (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zhao Yongming resolved TS-1534.
-------------------------------

    Resolution: Fixed
      Assignee: Zhao Yongming

47cb166fad86aead8ba28fc50d7be7a924a642b3 ae7743680e5eee3a066eb535a9fd4fda09e08325 ce5b6f52b2a233a3af1d0c2ef860937c02cddce5
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>            Assignee: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Yu Qing (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13491173#comment-13491173 ] 

Yu Qing commented on TS-1534:
-----------------------------

HEAD method has been supported,but the response HTTP headers do NOT contain Content-Length because get the correct content length is too expensive。
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>            Assignee: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Kit Chan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483935#comment-13483935 ] 

Kit Chan commented on TS-1534:
------------------------------

I agree with James. The plugin already supports having a conf file that we can use.
I think I can provide a patch next week on top of Yongming's changes here. Plus I have a few bug fixes I want to include in a patch as well.
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Zhao Yongming (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13484784#comment-13484784 ] 

Zhao Yongming commented on TS-1534:
-----------------------------------

another two patches committed, please review.

Kit Chan, I think we have done all the commit with want we have done. please continue on your patch and let us see how good the ESI plugin can be. :D
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Kit Chan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483713#comment-13483713 ] 

Kit Chan commented on TS-1534:
------------------------------

Another problem we encountered is with "HEAD" request. From time to time, we got request coming in not with a "GET" method, but a "HEAD" method.

In that case, the "HEAD" request will be forwarded to the origin server. If it is a response with a public cache-control header (non-zero max-age) and X-ESI is 1, the packed node mechanism will cache the URL but the response body is empty. Thus the subsequent "GET" requests will get empty response as well.
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "Kit Chan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483058#comment-13483058 ] 

Kit Chan commented on TS-1534:
------------------------------

Specifically speaking, the ESI plugin has an internal mechanism that can try to cache a more efficient version (called packed node in the code) of the ESI response instead of the raw text. The hope, I think, is to make parsing much easier for subsequent requests. I think you are trying to make this feature work. Right?

The mechanism, if I understand correctly, works like this
a) Determine that the ESI response has the proper cache control header and is cacheable
b) Issue a internal "POST" request to the same URL with the same requests headers. The post data is the packed node version of the ESI response. 
c) Intercept this internal request and replace the existing cache with it.

I find this mechanism extremely hard to get to work. So I turn if off using the "ESI_PACKED_NODE_SUPPORT". It is also later on found to be a incorrect mechanism, too, in yahoo!. The mechanism does not take into account that key for HTTP cache can be changed with the Vary header in the response. 

So, e.g., if my request comes with a "X-Flag: 1" header and my response from origin server comes with "Vary: X-Flag" header and "Cache-Control: max-age=30, public" header, the subsequent request with a "X-Flag: 2" header will not be retrieving from cache but from origin server. This packed node mechanism does not take into account for this and thus the same ESI template will be cached and used in for both the cases when X-Flag is 1 and 2. 

                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1534) implement the interim cache for ESI parser result

Posted by "James Peach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483882#comment-13483882 ] 

James Peach commented on TS-1534:
---------------------------------

I suggest removing the compile-time option and adding a runtime option.
                
> implement the interim cache for ESI parser result
> -------------------------------------------------
>
>                 Key: TS-1534
>                 URL: https://issues.apache.org/jira/browse/TS-1534
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Plugins
>    Affects Versions: 3.3.0
>            Reporter: Zhao Yongming
>             Fix For: 3.3.1
>
>
> the interim cache is not implemented yet, we should do it to improve performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira