1 #ifndef __XRDFILECACHE_PREFETCH_HH__ 2 #define __XRDFILECACHE_PREFETCH_HH__ 54 long long offset,
long long fileSize);
74 void WriteBlockToDisk(
int ramIdx,
size_t size);
79 void DecRamBlockRefCount(
int ramIdx);
95 ssize_t Read(
char * buff, off_t offset,
size_t size);
101 void AppendIOStatToFileInfo();
112 Task(): ramBlockIdx(-1), condVar(0) {}
114 ramBlockIdx(r), condVar(cv) {}
125 RAMBlock():fileBlockIdx(-1), refCount(0), fromRead(false), status(kReadWait) {}
152 ssize_t ReadInBlocks(
char* buff, off_t offset,
size_t size);
155 Task* CreateTaskForFirstUndownloadedBlock();
158 bool ReadFromTask(
int bIdx,
char* buff,
long long off,
size_t size);
161 void DoTask(
Task* task);
164 const char* lPath()
const;
bool m_started
state of run thread
Definition: XrdFileCachePrefetch.hh:178
std::deque< Task * > m_tasks_queue
download queue
Definition: XrdFileCachePrefetch.hh:186
int m_numBlocks
number of in memory blocks
Definition: XrdFileCachePrefetch.hh:130
Downloads original file into multiple files, chunked into blocks. Only blocks that are asked for are ...
Definition: XrdFileCacheIOFileBlock.hh:39
Statistics of disk cache utilisation.
Definition: XrdFileCacheStats.hh:30
char * m_buffer
buffer m_numBlocks x size_of_block
Definition: XrdFileCachePrefetch.hh:131
XrdSysCondVar m_writeMutex
write mutex
Definition: XrdFileCachePrefetch.hh:133
Definition: XrdFileCachePrefetch.hh:128
long long m_fileSize
size of disk file for block-based operation
Definition: XrdFileCachePrefetch.hh:176
RAMBlock()
Definition: XrdFileCachePrefetch.hh:125
Definition: XrdFileCache.hh:30
Stats & GetStats()
Reference to prefetch statistics.
Definition: XrdFileCachePrefetch.hh:69
Definition: XrdOucCache.hh:158
XrdSysMutex m_syncStatusMutex
mutex locking fsync status
Definition: XrdFileCachePrefetch.hh:192
XrdJob * m_syncer
Definition: XrdFileCachePrefetch.hh:193
A prefetching task – a file region that requires preferential treatment.
Definition: XrdFileCachePrefetch.hh:107
Task(int r, XrdSysCondVar *cv)
Definition: XrdFileCachePrefetch.hh:113
Definition: XrdFileCachePrefetch.hh:118
Status of cached file. Can be read from and written into a binary file.
Definition: XrdFileCacheInfo.hh:44
bool m_in_sync
Definition: XrdFileCachePrefetch.hh:196
XrdSysCondVar * condVar
signal when complete
Definition: XrdFileCachePrefetch.hh:110
XrdSysCondVar m_stateCond
state condition variable
Definition: XrdFileCachePrefetch.hh:182
Downloads data into a file on local disk and handles IO read requests.
Definition: XrdFileCachePrefetch.hh:42
~Task()
Definition: XrdFileCachePrefetch.hh:115
static Log * GetLog()
Get default log.
Definition: XrdSysPthread.hh:140
std::vector< int > m_writes_during_sync
Definition: XrdFileCachePrefetch.hh:194
Definition: XrdSysPthread.hh:53
bool m_stopping
run thread should be stopped
Definition: XrdFileCachePrefetch.hh:180
Definition: XrdOucIOVec.hh:40
Definition: XrdClEnv.hh:28
XrdOucCacheIO & m_input
original data source
Definition: XrdFileCachePrefetch.hh:171
Downloads original file into a single file on local disk. Handles read requests as they come along...
Definition: XrdFileCacheIOEntireFile.hh:39
Task()
Definition: XrdFileCachePrefetch.hh:112
int refCount
read and write reference count
Definition: XrdFileCachePrefetch.hh:120
XrdSysMutex m_downloadStatusMutex
mutex locking access to m_cfi object
Definition: XrdFileCachePrefetch.hh:184
int ramBlockIdx
idx in the in-memory buffer
Definition: XrdFileCachePrefetch.hh:109
bool m_failed
reading from original source or writing to disk has failed
Definition: XrdFileCachePrefetch.hh:179
XrdSysCondVar m_queueCond
m_tasks_queue condition variable
Definition: XrdFileCachePrefetch.hh:187
std::string m_temp_filename
filename of data file on disk
Definition: XrdFileCachePrefetch.hh:173
XrdCl::Log * clLog() const
Short log alias.
Definition: XrdFileCachePrefetch.hh:149
long long m_offset
offset of disk file for block-based operation
Definition: XrdFileCachePrefetch.hh:175
ReadRamState_t
Definition: XrdFileCachePrefetch.hh:46
int readErrno
posix error on read fail
Definition: XrdFileCachePrefetch.hh:123
int m_non_flushed_cnt
Definition: XrdFileCachePrefetch.hh:195
bool m_stopped
prefetch is stopped
Definition: XrdFileCachePrefetch.hh:181
int fileBlockIdx
offset in output file
Definition: XrdFileCachePrefetch.hh:119
Stats m_stats
cache statistics, used in IO detach
Definition: XrdFileCachePrefetch.hh:189
XrdOssDF * m_infoFile
file handle for data-info file on disk
Definition: XrdFileCachePrefetch.hh:169
RAM m_ram
in memory cache
Definition: XrdFileCachePrefetch.hh:166
bool fromRead
is ram requested from prefetch or read
Definition: XrdFileCachePrefetch.hh:121
XrdOssDF * m_output
file handle for data file on disk
Definition: XrdFileCachePrefetch.hh:168
ReadRamState_t status
read from client status
Definition: XrdFileCachePrefetch.hh:122
Info m_cfi
download status of file blocks and access statistics
Definition: XrdFileCachePrefetch.hh:170
RAMBlock * m_blockStates
referenced structure
Definition: XrdFileCachePrefetch.hh:132