Print

Print


This is the third PR in the series (to be reviewed after #1953 and #1954; it'll be rebased on top of whatever those become).

This implements the HTTP `max-age` directive, allowing the client to control how old the data returned can be.  If the cached copy is over the age threshold, either the PFC will delete it (if the file is being opened for the first time) or the HTTP request will (for files that are already opened by other clients).

This will need the most careful feedback from @osschar as it contains a key improvement for the XrdPfc -- an `Unlink` request no longer invalidates all open file handles but rather the next read will cause it to be reopened.

Note the careful cleanup of the HTTP GET state machine -- now each request state represents a unique operation instead of overloading the request state with other pieces of information.  I also tried to add some more careful comments to the state machine to try and make it more understandable by the next developer.
You can view, comment on, or merge this pull request online at:

  https://github.com/xrootd/xrootd/pull/1957

-- Commit Summary --

  * Add helper class for parsing cache-control header
  * Add initial `cache-control` support to PFC
  * Add support for the cache-control header
  * Implement the HTTP cache control `only if cached` behavior.
  * Add support for `max-age` directive
  * Permit XrdPfc to reopen files internally after unlink
  * Allow a XrdPosix operation to target only the cache
  * Allow the HTTP server to invalidate the cache on max-age

-- File Changes --

    M src/XrdHttp/XrdHttpProtocol.cc (4)
    M src/XrdHttp/XrdHttpReq.cc (237)
    M src/XrdHttp/XrdHttpReq.hh (16)
    A src/XrdOuc/XrdOucCacheDirective.cc (85)
    A src/XrdOuc/XrdOucCacheDirective.hh (82)
    M src/XrdPfc/XrdPfc.cc (58)
    M src/XrdPfc/XrdPfcFile.cc (54)
    M src/XrdPfc/XrdPfcFile.hh (10)
    M src/XrdPfc/XrdPfcIO.hh (5)
    M src/XrdPfc/XrdPfcIOFile.cc (4)
    M src/XrdPfc/XrdPfcIOFile.hh (7)
    M src/XrdPfc/XrdPfcInfo.cc (5)
    M src/XrdPfc/XrdPfcInfo.hh (7)
    M src/XrdPosix/XrdPosixXrootd.cc (7)
    M src/XrdUtils.cmake (1)

-- Patch Links --

https://github.com/xrootd/xrootd/pull/1957.patch
https://github.com/xrootd/xrootd/pull/1957.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/pull/1957
You are receiving this because you are subscribed to this thread.

Message ID: <[log in to unmask]>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1