2 #ifndef __XRDSTATS_FILE_H
3 #define __XRDSTATS_FILE_H
17 m_wrapped(std::move(
wrapDF)),
26 StatsFileSystem::OpTimer op(m_oss.m_ops.m_open_ops, m_oss.m_slow_ops.m_open_ops, m_oss.m_times.m_open, m_oss.m_slow_times.m_open, m_oss.m_slow_duration);
32 StatsFileSystem::OpTimer op(m_oss.m_ops.m_chmod_ops, m_oss.m_slow_ops.m_chmod_ops, m_oss.m_times.m_chmod, m_oss.m_slow_times.m_chmod, m_oss.m_slow_duration);
38 StatsFileSystem::OpTimer op(m_oss.m_ops.m_stat_ops, m_oss.m_slow_ops.m_stat_ops, m_oss.m_times.m_stat, m_oss.m_slow_times.m_stat, m_oss.m_slow_duration);
44 StatsFileSystem::OpTimer op(m_oss.m_ops.m_truncate_ops, m_oss.m_slow_ops.m_truncate_ops, m_oss.m_times.m_truncate, m_oss.m_slow_times.m_truncate, m_oss.m_slow_duration);
48 ssize_t
pgRead (
void* buffer, off_t offset,
size_t rdlen,
49 uint32_t* csvec, uint64_t
opts)
override
51 StatsFileSystem::OpTimer op(m_oss.m_ops.m_pgread_ops, m_oss.m_slow_ops.m_pgread_ops, m_oss.m_times.m_pgread, m_oss.m_slow_times.m_pgread, m_oss.m_slow_duration);
57 StatsFileSystem::OpTimer op(m_oss.m_ops.m_pgread_ops, m_oss.m_slow_ops.m_pgread_ops, m_oss.m_times.m_pgread, m_oss.m_slow_times.m_pgread, m_oss.m_slow_duration);
61 ssize_t
pgWrite(
void* buffer, off_t offset,
size_t wrlen,
62 uint32_t* csvec, uint64_t
opts)
override
64 StatsFileSystem::OpTimer op(m_oss.m_ops.m_pgwrite_ops, m_oss.m_slow_ops.m_pgwrite_ops, m_oss.m_times.m_pgwrite, m_oss.m_slow_times.m_pgwrite, m_oss.m_slow_duration);
70 StatsFileSystem::OpTimer op(m_oss.m_ops.m_pgwrite_ops, m_oss.m_slow_ops.m_pgwrite_ops, m_oss.m_times.m_pgwrite, m_oss.m_slow_times.m_pgwrite, m_oss.m_slow_duration);
74 ssize_t
Read(off_t offset,
size_t size)
override
76 StatsFileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
80 ssize_t
Read(
void *buffer, off_t offset,
size_t size)
override
82 StatsFileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
88 StatsFileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
92 ssize_t
ReadRaw(
void *buffer, off_t offset,
size_t size)
override
94 StatsFileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
100 auto start = std::chrono::steady_clock::now();
102 auto dur = std::chrono::steady_clock::now() - start;
103 m_oss.m_ops.m_readv_ops++;
104 m_oss.m_ops.m_readv_segs += rdvcnt;
105 auto ns = std::chrono::nanoseconds(dur).count();
106 m_oss.m_times.m_readv += ns;
107 if (dur > m_oss.m_slow_duration) {
108 m_oss.m_slow_ops.m_readv_ops++;
109 m_oss.m_slow_ops.m_readv_segs += rdvcnt;
110 m_oss.m_times.m_readv += std::chrono::nanoseconds(dur).count();
115 ssize_t
Write(
const void *buffer, off_t offset,
size_t size)
override
117 StatsFileSystem::OpTimer op(m_oss.m_ops.m_write_ops, m_oss.m_slow_ops.m_write_ops, m_oss.m_times.m_write, m_oss.m_slow_times.m_write, m_oss.m_slow_duration);
123 StatsFileSystem::OpTimer op(m_oss.m_ops.m_write_ops, m_oss.m_slow_ops.m_write_ops, m_oss.m_times.m_write, m_oss.m_slow_times.m_write, m_oss.m_slow_duration);
129 StatsFileSystem::OpTimer op(m_oss.m_ops.m_write_ops, m_oss.m_slow_ops.m_write_ops, m_oss.m_times.m_write, m_oss.m_slow_times.m_write, m_oss.m_slow_duration);
134 std::unique_ptr<XrdOssDF> m_wrapped;
int stat(const char *path, struct stat *buf)
int Ftruncate(unsigned long long size) override
ssize_t ReadRaw(void *buffer, off_t offset, size_t size) override
ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt) override
ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt) override
int Fchmod(mode_t mode) override
int Read(XrdSfsAio *aiop) override
ssize_t Read(void *buffer, off_t offset, size_t size) override
ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts) override
ssize_t Write(const void *buffer, off_t offset, size_t size) override
int pgRead(XrdSfsAio *aioparm, uint64_t opts) override
int pgWrite(XrdSfsAio *aioparm, uint64_t opts) override
int Fstat(struct stat *buf) override
StatsFile(std::unique_ptr< XrdOssDF > wrapDF, XrdSysError &log, StatsFileSystem &oss)
ssize_t Read(off_t offset, size_t size) override
ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts) override
int Write(XrdSfsAio *aiop) override
int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env) override
virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt)
virtual int Ftruncate(unsigned long long flen)
virtual int Fstat(struct stat *buf)
virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
virtual ssize_t Read(off_t offset, size_t size)
virtual int Fchmod(mode_t mode)
virtual ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts)
virtual ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts)
virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
virtual ssize_t Write(const void *buffer, off_t offset, size_t size)