1 #ifndef __XRDFILECACHE_PREFETCH_HH__
2 #define __XRDFILECACHE_PREFETCH_HH__
54 long long offset,
long long fileSize);
95 ssize_t
Read(
char * buff, off_t offset,
size_t size);
112 Task(): ramBlockIdx(-1), condVar(0) {}
114 ramBlockIdx(r), condVar(cv) {}
152 ssize_t
ReadInBlocks(
char* buff, off_t offset,
size_t size);
158 bool ReadFromTask(
int bIdx,
char* buff,
long long off,
size_t size);
164 const char*
lPath()
const;
int ReadV(const XrdOucIOVec *readV, int n)
Vector read from disk if block is already downloaded, else ReadV from client.
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
Task * CreateTaskForFirstUndownloadedBlock()
Prefetch block.
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
void DoTask(Task *task)
Read from client into in memory cache, queue ram buffer for disk write.
bool InitiateClose()
Initiate close. Return true if still IO active. Used in XrdPosixXrootd::Close()
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
void AppendIOStatToFileInfo()
Write cache statistics in *cinfo file.
Definition: XrdFileCachePrefetch.hh:46
Definition: XrdFileCachePrefetch.hh:46
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
bool Open()
Open file handle for data file and info file on local disk.
XrdSysCondVar * condVar
signal when complete
Definition: XrdFileCachePrefetch.hh:110
void WriteBlockToDisk(int ramIdx, size_t size)
Write block to file on disk. Called from Cache.
const char * lPath() const
Log path.
XrdSysCondVar m_stateCond
state condition variable
Definition: XrdFileCachePrefetch.hh:182
void Run()
Thread function for file prefetching.
Task * GetNextTask()
Get blocks to prefetch.
Downloads data into a file on local disk and handles IO read requests.
Definition: XrdFileCachePrefetch.hh:42
~Task()
Definition: XrdFileCachePrefetch.hh:115
Definition: XrdFileCachePrefetch.hh:46
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
void Sync()
Sync file cache inf o and output data with disk.
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
ssize_t ReadInBlocks(char *buff, off_t offset, size_t size)
Split read in blocks.
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
void DecRamBlockRefCount(int ramIdx)
Decrease block reference count.
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
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
ssize_t Read(char *buff, off_t offset, size_t size)
Read from disk, RAM, task, or client.
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
bool ReadFromTask(int bIdx, char *buff, long long off, size_t size)
Create task from read request and wait its completed.
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
void CloseCleanly()
Stop Run thread.
ReadRamState_t status
read from client status
Definition: XrdFileCachePrefetch.hh:122
XrdCl::Log * clLog() const
Short log alias.
Definition: XrdFileCachePrefetch.hh:149
Info m_cfi
download status of file blocks and access statistics
Definition: XrdFileCachePrefetch.hh:170
Prefetch(XrdOucCacheIO &inputFile, std::string &path, long long offset, long long fileSize)
Constructor.
RAMBlock * m_blockStates
referenced structure
Definition: XrdFileCachePrefetch.hh:132