1 #ifndef __XRDPFC_INFO_HH__
2 #define __XRDPFC_INFO_HH__
153 bool Read(
XrdOssDF* fp,
const char *dname,
const char *fname = 0);
162 bool Write(
XrdOssDF* fp,
const char *dname,
const char *fname = 0);
309 #ifdef XRDPFC_CKSUM_TEST
310 static void TestCksumStuff();
336 inline unsigned char cfiBIT(
int n)
const {
return 1 << n; }
339 bool ReadV2(
XrdOssDF* fp, off_t off,
const char *dname,
const char *fname);
340 bool ReadV3(
XrdOssDF* fp, off_t off,
const char *dname,
const char *fname);
352 const int off = i - cn*8;
361 const int off = i - cn*8;
372 const int off = i - cn*8;
383 const int off = i - cn*8;
392 const int off = i - cn*8;
456 for (
int i = firstIdx; i < lastIdx; ++i)
void ResizeBits()
Reserve bit vectors for file_size / buffer_size bytes.
bool IsCkSumCache() const
Definition: XrdPfcInfo.hh:295
bool TestBitWritten(int i) const
Test if block at the given index is written to disk.
Definition: XrdPfcInfo.hh:347
size_t GetAccessCnt() const
Get number of accesses.
Definition: XrdPfcInfo.hh:267
long long GetExpectedDataFileSize() const
Get expected data file size.
Definition: XrdPfcInfo.hh:420
bool IsCkSumNet() const
Definition: XrdPfcInfo.hh:296
void MergeWith(const AStat &a)
bool IsAnythingEmptyInRng(int firstIdx, int lastIdx) const
Check download status in given block range.
Definition: XrdPfcInfo.hh:452
int NumIos
number of IO objects attached during this access
Definition: XrdPfcInfo.hh:64
static size_t s_maxNumAccess
Definition: XrdPfcInfo.hh:316
void SetBitPrefetch(int i)
Mark block as obtained through prefetch.
Definition: XrdPfcInfo.hh:365
unsigned char * m_buff_written
download state vector
Definition: XrdPfcInfo.hh:326
static const char * s_infoExtension
Definition: XrdPfcInfo.hh:314
int NumMerged
number of times the record has been merged
Definition: XrdPfcInfo.hh:66
int Reserved
reserved / alignment
Definition: XrdPfcInfo.hh:67
time_t GetNoCkSumTimeForUVKeep() const
Definition: XrdPfcInfo.hh:307
Info(XrdSysTrace *trace, bool prefetchBuffer=false)
Constructor.
void SetBitWritten(int i)
Mark block as written to disk.
Definition: XrdPfcInfo.hh:356
void UpdateDownloadCompleteStatus()
Update complete status.
Definition: XrdPfcInfo.hh:462
time_t m_noCkSumTime
time when first non-cksummed block was detected
Definition: XrdPfcInfo.hh:85
Status of cached file. Can be read from and written into a binary file.
Definition: XrdPfcInfo.hh:44
bool GetLatestDetachTime(time_t &t) const
Get latest detach time.
Access statistics.
Definition: XrdPfcInfo.hh:60
time_t GetNoCkSumTime() const
Definition: XrdPfcInfo.hh:306
unsigned char cfiBIT(int n) const
Definition: XrdPfcInfo.hh:336
void WriteIOStatSingle(long long bytes_disk)
Write single open/close time for given bytes read from disk.
long long BytesMissed
read from remote and cached
Definition: XrdPfcInfo.hh:69
bool Read(XrdOssDF *fp, const char *dname, const char *fname=0)
Read content of cinfo file into this object.
bool IsCkSumAny() const
Definition: XrdPfcInfo.hh:297
void SetAllBitsSynced()
Mark all blocks as synced to disk.
XrdSysTrace * GetTrace() const
Definition: XrdPfcInfo.hh:319
unsigned char * m_buff_prefetch
prefetch statistics
Definition: XrdPfcInfo.hh:327
unsigned int _raw_
Definition: XrdPfcInfo.hh:54
int m_astatSize
size of AStat vector
Definition: XrdPfcInfo.hh:88
int Duration
total duration of all IOs attached
Definition: XrdPfcInfo.hh:65
long long GetNDownloadedBytes() const
Get number of downloaded bytes.
Definition: XrdPfcInfo.hh:407
void CalcCksumMd5(unsigned char *buff, char *digest)
Definition: XrdPfcInfo.hh:47
int _free_bits_
Definition: XrdPfcInfo.hh:52
Definition: XrdSysTrace.hh:48
bool Write(XrdOssDF *fp, const char *dname, const char *fname=0)
int GetVersion()
Get version.
Definition: XrdPfcInfo.hh:272
Store m_store
Definition: XrdPfcInfo.hh:324
bool ReadV3(XrdOssDF *fp, off_t off, const char *dname, const char *fname)
std::vector< AStat > m_astats
access records
Definition: XrdPfcInfo.hh:328
time_t GetCreationTime() const
Get file size.
Definition: XrdPfcInfo.hh:283
const char * GetCkSumStateAsText() const
void WriteIOStatDetach(Stats &s)
Write close time together with bytes missed, hits, and disk.
time_t AttachTime
open time
Definition: XrdPfcInfo.hh:62
Definition: XrdCksCalc.hh:39
void CompactifyAccessRecords()
Compactify access records to the configured maximum.
long long BytesBypassed
read from remote and dropped
Definition: XrdPfcInfo.hh:70
long long m_file_size
size of file in bytes
Definition: XrdPfcInfo.hh:83
bool IsCkSumBoth() const
Definition: XrdPfcInfo.hh:298
void SetFileSizeAndCreationTime(long long)
int GetLastDownloadedBlock() const
Get number of the last downloaded block.
Definition: XrdPfcInfo.hh:412
long long BytesHit
read from cache
Definition: XrdPfcInfo.hh:68
unsigned char * m_buff_synced
disk written state vector
Definition: XrdPfcInfo.hh:325
long long m_buffer_size
buffer / block size
Definition: XrdPfcInfo.hh:82
static const size_t s_infoExtensionLen
Definition: XrdPfcInfo.hh:315
void SetBitSynced(int i)
Mark block as synced to disk.
Definition: XrdPfcInfo.hh:387
CkSumCheck_e
Definition: XrdPfcTypes.hh:23
time_t DetachTime
close time
Definition: XrdPfcInfo.hh:63
bool m_hasPrefetchBuffer
constains current prefetch score
Definition: XrdPfcInfo.hh:333
XrdSysTrace * m_trace
Definition: XrdPfcInfo.hh:322
const Store & RefStoredData() const
Get stored data.
Definition: XrdPfcInfo.hh:277
const AStat * GetLastAccessStats() const
Get latest access stats.
static const char * m_traceID
Definition: XrdPfcInfo.hh:313
Store()
Definition: XrdPfcInfo.hh:90
void SetCkSumState(CkSumCheck_e css)
Definition: XrdPfcInfo.hh:300
Statistics of cache utilisation by a File object.
Definition: XrdPfcStats.hh:30
Status()
Definition: XrdPfcInfo.hh:56
void ResetAllAccessStats()
Reset IO Stats.
const std::vector< AStat > & RefAStats() const
Definition: XrdPfcInfo.hh:278
int m_bitvecSizeInBits
cached
Definition: XrdPfcInfo.hh:331
bool IsComplete() const
Get complete status.
Definition: XrdPfcInfo.hh:447
int GetNBlocks() const
Get number of blocks represented in download-state bit-vector.
Definition: XrdPfcInfo.hh:437
bool HasNoCkSumTime() const
Definition: XrdPfcInfo.hh:305
size_t m_accessCnt
total access count for the file
Definition: XrdPfcInfo.hh:86
bool m_complete
cached
Definition: XrdPfcInfo.hh:332
CkSumCheck_e GetCkSumState() const
Definition: XrdPfcInfo.hh:292
void SetBufferSize(long long)
Definition: XrdPfcTypes.hh:23
void WriteIOStatAttach()
Write open time in the last entry of access statistics.
Definition: XrdPfcTypes.hh:23
Definition: XrdPfcTypes.hh:23
Status m_status
status information
Definition: XrdPfcInfo.hh:87
int f_cksum_check
as in enum CkSumCheck_e
Definition: XrdPfcInfo.hh:50
bool TestBitPrefetch(int i) const
Test if block at the given index has been prefetched.
Definition: XrdPfcInfo.hh:376
int m_version
Definition: XrdPfcInfo.hh:330
Definition: XrdPfcInfo.hh:80
time_t m_creationTime
time the info file was created
Definition: XrdPfcInfo.hh:84
uint32_t CalcCksumStore()
Get cksum, MD5 is for backward compatibility with V2 and V3.
AStat()
Definition: XrdPfcInfo.hh:72
uint32_t CalcCksumSyncedAndAStats()
bool ReadV2(XrdOssDF *fp, off_t off, const char *dname, const char *fname)
void DowngradeCkSumState(CkSumCheck_e css_ref)
Definition: XrdPfcInfo.hh:301
XrdCksCalc * m_cksCalcMd5
Definition: XrdPfcInfo.hh:342
static const int s_defaultVersion
Definition: XrdPfcInfo.hh:317
long long GetBufferSize() const
Get prefetch buffer size.
Definition: XrdPfcInfo.hh:467
void WriteIOStat(Stats &s)
Write bytes missed, hits, and disk.
int GetBitvecSizeInBytes() const
Get size of download-state bit-vector in bytes.
Definition: XrdPfcInfo.hh:429
int GetNDownloadedBlocks() const
Get number of downloaded blocks.
Definition: XrdPfcInfo.hh:398
long long GetFileSize() const
Get file size.
Definition: XrdPfcInfo.hh:442