StormByte-Buffer 2.0.0
C++26 buffer module of the StormByte suite
 
Loading...
Searching...
No Matches
StormByte::Buffer::IO::WriteTelemetry Class Reference

Writer counters on top of StormByte::Buffer::WriteTelemetry. More...

#include <StormByte/buffer/io/telemetry.hxx>

Inheritance diagram for StormByte::Buffer::IO::WriteTelemetry:
Collaboration diagram for StormByte::Buffer::IO::WriteTelemetry:

Public Member Functions

 WriteTelemetry () noexcept
 Construct all counters at 0.
 
 WriteTelemetry (const WriteTelemetry &)=delete
 Copy constructor is deleted.
 
 WriteTelemetry (WriteTelemetry &&)=delete
 Move constructor is deleted.
 
virtual ~WriteTelemetry () noexcept override
 Virtual destructor.
 
WriteTelemetry & operator= (const WriteTelemetry &)=delete
 Copy assignment is deleted.
 
WriteTelemetry & operator= (WriteTelemetry &&)=delete
 Move assignment is deleted.
 
StormByte::ByteSize Behind () const noexcept
 Of Accepted, octets that did not hit the origin on the caller thread.
 
StormByte::ByteSize Direct () const noexcept
 Of Accepted, octets pushed on the caller thread.
 
StormByte::ByteSize Origin () const noexcept
 Octets pushed through OriginPush since construction.
 
StormByte::ByteSize Materialized () const noexcept
 Durable origin length now.
 
StormByte::ByteSize HighWater () const noexcept
 Maximum logical Tell since Open / Truncate.
 
StormByte::ByteSize HitAhead () const noexcept
 Writes that landed in a resident page at or after the previous high-water.
 
StormByte::ByteSize HitBack () const noexcept
 Writes that landed in a resident page behind the high-water.
 
StormByte::ByteSize Miss () const noexcept
 Writes that created or extended a page.
 
StormByte::ByteSize Dirty () const noexcept
 Octets not yet on the origin.
 
StormByte::ByteSize DirtyPeak () const noexcept
 Maximum Dirty since construction.
 
StormByte::ByteSize Cap () const noexcept
 Ring cap in bytes at this snapshot.
 
std::size_t SeekLogical () const noexcept
 Logical Seek calls (Tell only).
 
std::size_t SeekOrigin () const noexcept
 OriginSeek calls.
 
std::size_t SeekSavedFull () const noexcept
 Closed epochs with no OriginSeek.
 
std::size_t SeekSavedPartial () const noexcept
 Closed epochs that hit dirty pages and later needed OriginSeek.
 
std::size_t TryAgain () const noexcept
 Times Write returned TryAgain.
 
std::size_t Saturated () const noexcept
 Times Dirty reached Cap while Cap > 0.
 
std::size_t Evicted () const noexcept
 Times GC materialised a page because Dirty exceeded MaxMemory.
 
std::chrono::nanoseconds WaitMin () const noexcept
 Shortest sampled Write wait.
 
std::chrono::nanoseconds WaitMax () const noexcept
 Longest sampled Write wait.
 
std::chrono::nanoseconds WaitTotal () const noexcept
 Sum of sampled waits.
 
std::size_t WaitSamples () const noexcept
 Sampled waits (accepted Write or timed OriginPush).
 
 operator StormByte::String::String () const override
 Flatten base and IO write counters.
 
- Public Member Functions inherited from StormByte::Buffer::WriteTelemetry
 WriteTelemetry () noexcept
 Construct all counters at 0.
 
 WriteTelemetry (const WriteTelemetry &)=delete
 
 WriteTelemetry (WriteTelemetry &&)=delete
 
WriteTelemetry & operator= (const WriteTelemetry &)=delete
 
WriteTelemetry & operator= (WriteTelemetry &&)=delete
 
StormByte::ByteSize Accepted () const noexcept
 Octets accepted by a successful write.
 
 operator StormByte::String::String () const override
 Flatten base write counters.
 
- Public Member Functions inherited from StormByte::Buffer::Telemetry
virtual ~Telemetry () noexcept
 Virtual destructor.
 
StormByte::ByteSize MeanRate () const noexcept
 Effective mean rate of requested user operations.
 
STORMBYTE_FORCE_INLINE operator std::string () const
 Flatten via StormByte::String::String in this TU.
 

Protected Attributes

StormByte::ByteSize m_behind
 Accepted not pushed on the caller thread.
 
StormByte::ByteSize m_direct
 Accepted pushed on the caller thread.
 
StormByte::ByteSize m_origin
 OriginPush octets.
 
StormByte::ByteSize m_materialized
 Durable origin length now.
 
StormByte::ByteSize m_high_water
 Max logical Tell since Open/Truncate.
 
StormByte::ByteSize m_hit_ahead
 Writes into a page at/after high-water.
 
StormByte::ByteSize m_hit_back
 Writes into a page behind high-water.
 
StormByte::ByteSize m_miss
 Writes that created or extended a page.
 
StormByte::ByteSize m_dirty
 Not yet on the origin.
 
StormByte::ByteSize m_dirty_peak
 Maximum Dirty.
 
StormByte::ByteSize m_cap
 Ring cap, or 0 if off.
 
std::size_t m_seek_logical
 Logical Seek calls.
 
std::size_t m_seek_origin
 OriginSeek calls.
 
std::size_t m_seek_saved_full
 Epochs with no OriginSeek.
 
std::size_t m_seek_saved_partial
 Epochs that later needed OriginSeek.
 
std::size_t m_try_again
 Write TryAgain.
 
std::size_t m_saturated
 Dirty reached Cap.
 
std::size_t m_evicted
 GC materialised a page.
 
std::chrono::nanoseconds m_wait_min
 Shortest sampled Write wait.
 
std::chrono::nanoseconds m_wait_max
 Longest sampled Write wait.
 
std::chrono::nanoseconds m_wait_total
 Sum of sampled waits.
 
std::size_t m_wait_samples
 Sampled waits.
 
- Protected Attributes inherited from StormByte::Buffer::WriteTelemetry
StormByte::ByteSize m_accepted
 Octets accepted.
 

Friends

class StormByte::Buffer::Backend::IO::BufferedWriter
 

Additional Inherited Members

- Protected Member Functions inherited from StormByte::Buffer::Telemetry
 Telemetry () noexcept
 Construct all counters at 0.
 
 Telemetry (const Telemetry &)=delete
 
 Telemetry (Telemetry &&)=delete
 
Telemetry & operator= (const Telemetry &)=delete
 
Telemetry & operator= (Telemetry &&)=delete
 
void DeltaOperation (StormByte::ByteSize bytes, std::chrono::microseconds elapsed) noexcept
 Accumulate one requested operation and refresh MeanRate.
 

Detailed Description

Writer counters on top of StormByte::Buffer::WriteTelemetry.

Same fields as BufferedWriter::Telemetry in SHA c1d44cb. StormByte::Buffer::Backend::IO::BufferedWriter writes them. MeanRate is the caller rate, not the origin rate.

Constructor & Destructor Documentation

◆ WriteTelemetry() [1/3]

StormByte::Buffer::IO::WriteTelemetry::WriteTelemetry ( )
noexcept

Construct all counters at 0.

◆ WriteTelemetry() [2/3]

StormByte::Buffer::IO::WriteTelemetry::WriteTelemetry ( const WriteTelemetry &  )
delete

Copy constructor is deleted.

◆ WriteTelemetry() [3/3]

StormByte::Buffer::IO::WriteTelemetry::WriteTelemetry ( WriteTelemetry &&  )
delete

Move constructor is deleted.

◆ ~WriteTelemetry()

virtual StormByte::Buffer::IO::WriteTelemetry::~WriteTelemetry ( )
overridevirtualnoexcept

Virtual destructor.

Out-of-line for the DLL boundary.

Reimplemented from StormByte::Buffer::WriteTelemetry.

Member Function Documentation

◆ Behind()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Behind ( ) const
noexcept

Of Accepted, octets that did not hit the origin on the caller thread.

Returns
Write-behind octets.

◆ Cap()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Cap ( ) const
noexcept

Ring cap in bytes at this snapshot.

Returns
0 if the ring is off. Not MaxMemory.

◆ Direct()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Direct ( ) const
noexcept

Of Accepted, octets pushed on the caller thread.

Returns
Direct origin octets.

◆ Dirty()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Dirty ( ) const
noexcept

Octets not yet on the origin.

Returns
Page map plus drain pipe.

◆ DirtyPeak()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::DirtyPeak ( ) const
noexcept

Maximum Dirty since construction.

Returns
Peak dirty occupancy.

◆ Evicted()

std::size_t StormByte::Buffer::IO::WriteTelemetry::Evicted ( ) const
noexcept

Times GC materialised a page because Dirty exceeded MaxMemory.

Returns
Count.

◆ HighWater()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::HighWater ( ) const
noexcept

Maximum logical Tell since Open / Truncate.

Returns
High-water of the session.

◆ HitAhead()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::HitAhead ( ) const
noexcept

Writes that landed in a resident page at or after the previous high-water.

Returns
Hit-ahead octets.

◆ HitBack()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::HitBack ( ) const
noexcept

Writes that landed in a resident page behind the high-water.

Returns
Hit-back octets.

◆ Materialized()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Materialized ( ) const
noexcept

Durable origin length now.

Returns
Device occupancy. Not an accumulator.

◆ Miss()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Miss ( ) const
noexcept

Writes that created or extended a page.

Returns
Miss octets.

◆ operator StormByte::String::String()

StormByte::Buffer::IO::WriteTelemetry::operator StormByte::String::String ( ) const
overridevirtual

Flatten base and IO write counters.

Returns
IEC ByteSize text. MeanRate ends with /s.

Implements StormByte::Buffer::Telemetry.

◆ operator=() [1/2]

WriteTelemetry & StormByte::Buffer::IO::WriteTelemetry::operator= ( const WriteTelemetry &  )
delete

Copy assignment is deleted.

Returns
*this.

◆ operator=() [2/2]

WriteTelemetry & StormByte::Buffer::IO::WriteTelemetry::operator= ( WriteTelemetry &&  )
delete

Move assignment is deleted.

Returns
*this.

◆ Origin()

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::Origin ( ) const
noexcept

Octets pushed through OriginPush since construction.

Returns
Accumulator.

◆ Saturated()

std::size_t StormByte::Buffer::IO::WriteTelemetry::Saturated ( ) const
noexcept

Times Dirty reached Cap while Cap > 0.

Returns
Count.

◆ SeekLogical()

std::size_t StormByte::Buffer::IO::WriteTelemetry::SeekLogical ( ) const
noexcept

Logical Seek calls (Tell only).

Returns
Count.

◆ SeekOrigin()

std::size_t StormByte::Buffer::IO::WriteTelemetry::SeekOrigin ( ) const
noexcept

OriginSeek calls.

Returns
Count.

◆ SeekSavedFull()

std::size_t StormByte::Buffer::IO::WriteTelemetry::SeekSavedFull ( ) const
noexcept

Closed epochs with no OriginSeek.

Returns
Count.

◆ SeekSavedPartial()

std::size_t StormByte::Buffer::IO::WriteTelemetry::SeekSavedPartial ( ) const
noexcept

Closed epochs that hit dirty pages and later needed OriginSeek.

Returns
Count.

◆ TryAgain()

std::size_t StormByte::Buffer::IO::WriteTelemetry::TryAgain ( ) const
noexcept

Times Write returned TryAgain.

Returns
Count.

◆ WaitMax()

std::chrono::nanoseconds StormByte::Buffer::IO::WriteTelemetry::WaitMax ( ) const
noexcept

Longest sampled Write wait.

Returns
0 if WaitSamples is 0.

◆ WaitMin()

std::chrono::nanoseconds StormByte::Buffer::IO::WriteTelemetry::WaitMin ( ) const
noexcept

Shortest sampled Write wait.

Returns
0 if WaitSamples is 0.

◆ WaitSamples()

std::size_t StormByte::Buffer::IO::WriteTelemetry::WaitSamples ( ) const
noexcept

Sampled waits (accepted Write or timed OriginPush).

Returns
Count. Not instant TryAgain.

◆ WaitTotal()

std::chrono::nanoseconds StormByte::Buffer::IO::WriteTelemetry::WaitTotal ( ) const
noexcept

Sum of sampled waits.

Returns
Accumulator.

Friends And Related Symbol Documentation

◆ StormByte::Buffer::Backend::IO::BufferedWriter

friend class StormByte::Buffer::Backend::IO::BufferedWriter
friend

Member Data Documentation

◆ m_behind

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_behind
protected

Accepted not pushed on the caller thread.

◆ m_cap

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_cap
protected

Ring cap, or 0 if off.

◆ m_direct

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_direct
protected

Accepted pushed on the caller thread.

◆ m_dirty

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_dirty
protected

Not yet on the origin.

◆ m_dirty_peak

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_dirty_peak
protected

Maximum Dirty.

◆ m_evicted

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_evicted
protected

GC materialised a page.

◆ m_high_water

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_high_water
protected

Max logical Tell since Open/Truncate.

◆ m_hit_ahead

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_hit_ahead
protected

Writes into a page at/after high-water.

◆ m_hit_back

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_hit_back
protected

Writes into a page behind high-water.

◆ m_materialized

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_materialized
protected

Durable origin length now.

◆ m_miss

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_miss
protected

Writes that created or extended a page.

◆ m_origin

StormByte::ByteSize StormByte::Buffer::IO::WriteTelemetry::m_origin
protected

OriginPush octets.

◆ m_saturated

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_saturated
protected

Dirty reached Cap.

◆ m_seek_logical

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_seek_logical
protected

Logical Seek calls.

◆ m_seek_origin

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_seek_origin
protected

OriginSeek calls.

◆ m_seek_saved_full

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_seek_saved_full
protected

Epochs with no OriginSeek.

◆ m_seek_saved_partial

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_seek_saved_partial
protected

Epochs that later needed OriginSeek.

◆ m_try_again

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_try_again
protected

Write TryAgain.

◆ m_wait_max

std::chrono::nanoseconds StormByte::Buffer::IO::WriteTelemetry::m_wait_max
protected

Longest sampled Write wait.

◆ m_wait_min

std::chrono::nanoseconds StormByte::Buffer::IO::WriteTelemetry::m_wait_min
protected

Shortest sampled Write wait.

◆ m_wait_samples

std::size_t StormByte::Buffer::IO::WriteTelemetry::m_wait_samples
protected

Sampled waits.

◆ m_wait_total

std::chrono::nanoseconds StormByte::Buffer::IO::WriteTelemetry::m_wait_total
protected

Sum of sampled waits.


The documentation for this class was generated from the following file: