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