#include <XrdFileCacheFile.hh>

Classes | |
| struct | IODetails |
Public Member Functions | |
| File (const std::string &path, long long offset, long long fileSize) | |
| Constructor. | |
| ~File () | |
| Destructor. | |
| void | BlockRemovedFromWriteQ (Block *) |
| Handle removal of a block from Cache's write queue. | |
| void | BlocksRemovedFromWriteQ (std::list< Block * > &) |
| Handle removal of a set of blocks from Cache's write queue. | |
| bool | Open () |
| Open file handle for data file and info file on local disk. | |
| int | ReadV (IO *io, const XrdOucIOVec *readV, int n) |
| Vector read from disk if block is already downloaded, else ReadV from client. | |
| int | Read (IO *io, char *buff, long long offset, int size) |
| Normal read. | |
| bool | isOpen () const |
| Data and cinfo files are open. | |
| bool | ioActive (IO *io) |
| Initiate close. Return true if still IO active. Used in XrdPosixXrootd::Close(). | |
| void | RequestSyncOfDetachStats () |
| Flags that detach stats should be written out in final sync. Called from CacheIO upon Detach. | |
| bool | FinalizeSyncBeforeExit () |
| Returns true if any of blocks need sync. Called from Cache::dec_ref_cnt on zero ref cnt. | |
| void | Sync () |
| Sync file cache inf o and output data with disk. | |
| Stats & | GetStats () |
| Reference to prefetch statistics. | |
| void | ProcessBlockResponse (BlockResponseHandler *brh, int res) |
| void | WriteBlockToDisk (Block *b) |
| void | Prefetch () |
| float | GetPrefetchScore () const |
| const char * | lPath () const |
| Log path. | |
| std::string & | GetLocalPath () |
| XrdSysError * | GetLog () |
| XrdSysTrace * | GetTrace () |
| long long | GetFileSize () |
| void | AddIO (IO *io) |
| int | GetPrefetchCountOnIO (IO *io) |
| void | StopPrefetchingOnIO (IO *io) |
| void | RemoveIO (IO *io) |
| int | get_ref_cnt () |
| int | inc_ref_cnt () |
| int | dec_ref_cnt () |
| void | initiate_emergency_shutdown () |
| bool | is_in_emergency_shutdown () |
Static Public Member Functions | |
| static File * | FileOpen (const std::string &path, long long offset, long long fileSize) |
| Static constructor that also does Open. Returns null ptr if Open fails. | |
Private Types | |
| enum | PrefetchState_e { kOff = -1, kOn, kHold, kStopped, kComplete } |
| typedef std::map< IO *, IODetails > | IoMap_t |
| typedef IoMap_t::iterator | IoMap_i |
| typedef std::list< int > | IntList_t |
| typedef IntList_t::iterator | IntList_i |
| typedef std::list< Block * > | BlockList_t |
| typedef BlockList_t::iterator | BlockList_i |
| typedef std::map< int, Block * > | BlockMap_t |
| typedef BlockMap_t::iterator | BlockMap_i |
Private Member Functions | |
| bool | overlap (int blk, long long blk_size, long long req_off, int req_size, long long &off, long long &blk_off, long long &size) |
| Block * | PrepareBlockRequest (int i, IO *io, bool prefetch) |
| void | ProcessBlockRequest (Block *b, bool prefetch) |
| void | ProcessBlockRequests (BlockList_t &blks, bool prefetch) |
| int | RequestBlocksDirect (IO *io, DirectResponseHandler *handler, IntList_t &blocks, char *buff, long long req_off, long long req_size) |
| int | ReadBlocksFromDisk (IntList_t &blocks, char *req_buf, long long req_off, long long req_size) |
| bool | VReadValidate (const XrdOucIOVec *readV, int n) |
| void | VReadPreProcess (IO *io, const XrdOucIOVec *readV, int n, BlockList_t &blks_to_request, ReadVBlockListRAM &blks_to_process, ReadVBlockListDisk &blks_on_disk, std::vector< XrdOucIOVec > &chunkVec) |
| int | VReadFromDisk (const XrdOucIOVec *readV, int n, ReadVBlockListDisk &blks_on_disk) |
| int | VReadProcessBlocks (IO *io, const XrdOucIOVec *readV, int n, std::vector< ReadVChunkListRAM > &blks_to_process, std::vector< ReadVChunkListRAM > &blks_rocessed) |
| long long | BufferSize () |
| void | inc_ref_count (Block *) |
| void | dec_ref_count (Block *) |
| void | free_block (Block *) |
| bool | select_current_io_or_disable_prefetching (bool skip_current) |
| int | offsetIdx (int idx) |
Private Attributes | |
| int | m_ref_cnt |
| number of references from IO or sync | |
| bool | m_is_open |
| open state (presumably not needed anymore) | |
| bool | m_in_shutdown |
| file is in emergency shutdown due to irrecoverable error or unlink request | |
| XrdOssDF * | m_output |
| file handle for data file on disk | |
| XrdOssDF * | m_infoFile |
| file handle for data-info file on disk | |
| Info | m_cfi |
| download status of file blocks and access statistics | |
| std::string | m_filename |
| filename of data file on disk | |
| long long | m_offset |
| offset of cached file for block-based / hdfs operation | |
| long long | m_fileSize |
| size of cached disk file for block-based operation | |
| IoMap_t | m_io_map |
| IoMap_i | m_current_io |
| IO object to be used for prefetching. | |
| int | m_ios_in_detach |
| Number of IO objects to which we replied false to ioActive() and will be removed soon. | |
| std::vector< int > | m_writes_during_sync |
| int | m_non_flushed_cnt |
| bool | m_in_sync |
| BlockMap_t | m_block_map |
| XrdSysCondVar | m_downloadCond |
| Stats | m_stats |
| cache statistics, used in IO detach | |
| PrefetchState_e | m_prefetchState |
| int | m_prefetchReadCnt |
| int | m_prefetchHitCnt |
| float | m_prefetchScore |
| bool | m_detachTimeIsLogged |
Static Private Attributes | |
| static const char * | m_traceID |
typedef BlockList_t::iterator XrdFileCache::File::BlockList_i [private] |
typedef std::list<Block*> XrdFileCache::File::BlockList_t [private] |
typedef BlockMap_t::iterator XrdFileCache::File::BlockMap_i [private] |
typedef std::map<int, Block*> XrdFileCache::File::BlockMap_t [private] |
typedef IntList_t::iterator XrdFileCache::File::IntList_i [private] |
typedef std::list<int> XrdFileCache::File::IntList_t [private] |
typedef IoMap_t::iterator XrdFileCache::File::IoMap_i [private] |
typedef std::map<IO*, IODetails> XrdFileCache::File::IoMap_t [private] |
enum XrdFileCache::File::PrefetchState_e [private] |
| XrdFileCache::File::File | ( | const std::string & | path, | |
| long long | offset, | |||
| long long | fileSize | |||
| ) |
Constructor.
| XrdFileCache::File::~File | ( | ) |
Destructor.
| void XrdFileCache::File::AddIO | ( | IO * | io | ) |
| void XrdFileCache::File::BlockRemovedFromWriteQ | ( | Block * | ) |
Handle removal of a block from Cache's write queue.
| void XrdFileCache::File::BlocksRemovedFromWriteQ | ( | std::list< Block * > & | ) |
Handle removal of a set of blocks from Cache's write queue.
| long long XrdFileCache::File::BufferSize | ( | ) | [private] |
| int XrdFileCache::File::dec_ref_cnt | ( | ) | [inline] |
References m_ref_cnt.
| void XrdFileCache::File::dec_ref_count | ( | Block * | ) | [private] |
| static File* XrdFileCache::File::FileOpen | ( | const std::string & | path, | |
| long long | offset, | |||
| long long | fileSize | |||
| ) | [static] |
Static constructor that also does Open. Returns null ptr if Open fails.
| bool XrdFileCache::File::FinalizeSyncBeforeExit | ( | ) |
Returns true if any of blocks need sync. Called from Cache::dec_ref_cnt on zero ref cnt.
| void XrdFileCache::File::free_block | ( | Block * | ) | [private] |
| int XrdFileCache::File::get_ref_cnt | ( | ) | [inline] |
References m_ref_cnt.
| long long XrdFileCache::File::GetFileSize | ( | ) | [inline] |
References m_fileSize.
| std::string& XrdFileCache::File::GetLocalPath | ( | ) | [inline] |
References m_filename.
| XrdSysError* XrdFileCache::File::GetLog | ( | ) |
| int XrdFileCache::File::GetPrefetchCountOnIO | ( | IO * | io | ) |
| float XrdFileCache::File::GetPrefetchScore | ( | ) | const |
| Stats& XrdFileCache::File::GetStats | ( | ) | [inline] |
Reference to prefetch statistics.
References m_stats.
| XrdSysTrace* XrdFileCache::File::GetTrace | ( | ) |
| int XrdFileCache::File::inc_ref_cnt | ( | ) | [inline] |
References m_ref_cnt.
| void XrdFileCache::File::inc_ref_count | ( | Block * | ) | [private] |
| void XrdFileCache::File::initiate_emergency_shutdown | ( | ) |
| bool XrdFileCache::File::ioActive | ( | IO * | io | ) |
Initiate close. Return true if still IO active. Used in XrdPosixXrootd::Close().
| bool XrdFileCache::File::is_in_emergency_shutdown | ( | ) | [inline] |
References m_in_shutdown.
| bool XrdFileCache::File::isOpen | ( | ) | const [inline] |
Data and cinfo files are open.
References m_is_open.
| const char* XrdFileCache::File::lPath | ( | ) | const |
Log path.
| int XrdFileCache::File::offsetIdx | ( | int | idx | ) | [private] |
| bool XrdFileCache::File::Open | ( | ) |
Open file handle for data file and info file on local disk.
| bool XrdFileCache::File::overlap | ( | int | blk, | |
| long long | blk_size, | |||
| long long | req_off, | |||
| int | req_size, | |||
| long long & | off, | |||
| long long & | blk_off, | |||
| long long & | size | |||
| ) | [private] |
| void XrdFileCache::File::Prefetch | ( | ) |
| void XrdFileCache::File::ProcessBlockRequest | ( | Block * | b, | |
| bool | prefetch | |||
| ) | [private] |
| void XrdFileCache::File::ProcessBlockRequests | ( | BlockList_t & | blks, | |
| bool | prefetch | |||
| ) | [private] |
| void XrdFileCache::File::ProcessBlockResponse | ( | BlockResponseHandler * | brh, | |
| int | res | |||
| ) |
| int XrdFileCache::File::Read | ( | IO * | io, | |
| char * | buff, | |||
| long long | offset, | |||
| int | size | |||
| ) |
Normal read.
| int XrdFileCache::File::ReadBlocksFromDisk | ( | IntList_t & | blocks, | |
| char * | req_buf, | |||
| long long | req_off, | |||
| long long | req_size | |||
| ) | [private] |
| int XrdFileCache::File::ReadV | ( | IO * | io, | |
| const XrdOucIOVec * | readV, | |||
| int | n | |||
| ) |
Vector read from disk if block is already downloaded, else ReadV from client.
| void XrdFileCache::File::RemoveIO | ( | IO * | io | ) |
| int XrdFileCache::File::RequestBlocksDirect | ( | IO * | io, | |
| DirectResponseHandler * | handler, | |||
| IntList_t & | blocks, | |||
| char * | buff, | |||
| long long | req_off, | |||
| long long | req_size | |||
| ) | [private] |
| void XrdFileCache::File::RequestSyncOfDetachStats | ( | ) |
Flags that detach stats should be written out in final sync. Called from CacheIO upon Detach.
| bool XrdFileCache::File::select_current_io_or_disable_prefetching | ( | bool | skip_current | ) | [private] |
| void XrdFileCache::File::StopPrefetchingOnIO | ( | IO * | io | ) |
| void XrdFileCache::File::Sync | ( | ) |
Sync file cache inf o and output data with disk.
| int XrdFileCache::File::VReadFromDisk | ( | const XrdOucIOVec * | readV, | |
| int | n, | |||
| ReadVBlockListDisk & | blks_on_disk | |||
| ) | [private] |
| void XrdFileCache::File::VReadPreProcess | ( | IO * | io, | |
| const XrdOucIOVec * | readV, | |||
| int | n, | |||
| BlockList_t & | blks_to_request, | |||
| ReadVBlockListRAM & | blks_to_process, | |||
| ReadVBlockListDisk & | blks_on_disk, | |||
| std::vector< XrdOucIOVec > & | chunkVec | |||
| ) | [private] |
| int XrdFileCache::File::VReadProcessBlocks | ( | IO * | io, | |
| const XrdOucIOVec * | readV, | |||
| int | n, | |||
| std::vector< ReadVChunkListRAM > & | blks_to_process, | |||
| std::vector< ReadVChunkListRAM > & | blks_rocessed | |||
| ) | [private] |
| bool XrdFileCache::File::VReadValidate | ( | const XrdOucIOVec * | readV, | |
| int | n | |||
| ) | [private] |
| void XrdFileCache::File::WriteBlockToDisk | ( | Block * | b | ) |
BlockMap_t XrdFileCache::File::m_block_map [private] |
Info XrdFileCache::File::m_cfi [private] |
download status of file blocks and access statistics
IoMap_i XrdFileCache::File::m_current_io [private] |
IO object to be used for prefetching.
bool XrdFileCache::File::m_detachTimeIsLogged [private] |
std::string XrdFileCache::File::m_filename [private] |
filename of data file on disk
Referenced by GetLocalPath().
long long XrdFileCache::File::m_fileSize [private] |
size of cached disk file for block-based operation
Referenced by GetFileSize().
bool XrdFileCache::File::m_in_shutdown [private] |
file is in emergency shutdown due to irrecoverable error or unlink request
Referenced by is_in_emergency_shutdown().
bool XrdFileCache::File::m_in_sync [private] |
XrdOssDF* XrdFileCache::File::m_infoFile [private] |
file handle for data-info file on disk
IoMap_t XrdFileCache::File::m_io_map [private] |
int XrdFileCache::File::m_ios_in_detach [private] |
Number of IO objects to which we replied false to ioActive() and will be removed soon.
bool XrdFileCache::File::m_is_open [private] |
open state (presumably not needed anymore)
Referenced by isOpen().
int XrdFileCache::File::m_non_flushed_cnt [private] |
long long XrdFileCache::File::m_offset [private] |
offset of cached file for block-based / hdfs operation
XrdOssDF* XrdFileCache::File::m_output [private] |
file handle for data file on disk
int XrdFileCache::File::m_prefetchHitCnt [private] |
int XrdFileCache::File::m_prefetchReadCnt [private] |
float XrdFileCache::File::m_prefetchScore [private] |
int XrdFileCache::File::m_ref_cnt [private] |
number of references from IO or sync
Referenced by dec_ref_cnt(), get_ref_cnt(), and inc_ref_cnt().
Stats XrdFileCache::File::m_stats [private] |
cache statistics, used in IO detach
Referenced by GetStats().
const char* XrdFileCache::File::m_traceID [static, private] |
std::vector<int> XrdFileCache::File::m_writes_during_sync [private] |
1.6.1