XRootD
XrdCephBuffer Namespace Reference

is a simple implementation of IXrdCephBufferData using std::vector<char> representation for the buffer More...

Classes

class  CephBufSfsAio
 
class  CephIOAdapterAIORaw
 Implements a non-async read and write to ceph via aio ceph_posix calls Using the standard ceph_posix_aio calls do the actual read and write operations. No ownership is taken on the buffer that's passed via the constructor Although using aio calls, we block here until the data has been read/written. More...
 
class  CephIOAdapterRaw
 Implements a non-async read and write to ceph via ceph_posix calls Using the standard ceph_posix_ calls do the actual read and write operations. No ownership is taken on the buffer that's passed via the constructor. More...
 
class  Extent
 
class  ExtentHolder
 Designed to hold individual extents, but itself provide Extent-like capabilities Useful in cases of combining extends, or needing to hold a range of extends and extract information about (or aggregated from) the contained objects. Could be useful to inherit from Extent if improvements needed. More...
 
class  ICephIOAdapter
 Manage the actual IO operations that read and write the data into Ceph via librados striper. Likely to be provided with a buffer in the concreate implementation's constructor. Attempt to decouple the low level IO operations from the buffer implementation. However, ight coupling might be strictly necessary, making this class a bit redundant. Consider to refactor if this proves to be the case ... More...
 
class  IXrdCephBufferAlg
 Interface to a holder of the main logic decisions of the buffering algortithm, decoupled from the buffer resource itself. Main work of the buffering is done in the classes that inherit from the interace, of how and when and why to buffer and flush the data The physical representation of the buffer is not written here to allow for some flexibility of changing the internals of the buffer if needed. Anticipate that a non-async and async will be the main distinct use cases. More...
 
class  IXrdCephBufferData
 Interface to the Buffer's physical representation. Allow an interface to encapsulate the requirements of a buffer's memory, without worrying about the details. Various options exist for the specific buffer implemented, and are left to the sub-classes. More...
 
class  IXrdCephReadVAdapter
 Interface to the logic of dealing with readV requests. More...
 
class  Timer_ns
 
class  XrdCephBufferAlgSimple
 
class  XrdCephBufferDataSimple
 Implementation of a buffer using a simple vector<char> Simplest implementation of a buffer using vector<char> for underlying memory. Capacity is reserved on construction and released back at destruction. Does very little itself, except to provide access methods. More...
 
class  XrdCephReadVBasic
 Combine requests into single reads accoriding to some basic rules. Read a minimum amount of data (2MiB default), keep adding chunks until the used fraction is lower than some threshold, or 64MiB is reached. Calling code unraveles the correct ranges for each. More...
 
class  XrdCephReadVNoOp
 Passthrough implementation. Convertes the ReadV requests to extents and makes the request. Does not change how the readV implementation is done, just implements a version with Extents More for functionality testing, or to allow easier access to readV statistics. More...
 

Typedefs

typedef std::vector< ExtentExtentContainer
 Container defintion for Extents Typedef to provide a container of extents as a simple stl vector container. More...
 

Detailed Description

is a simple implementation of IXrdCephBufferData using std::vector<char> representation for the buffer

Typedef Documentation

◆ ExtentContainer

typedef std::vector<Extent> XrdCephBuffer::ExtentContainer

Container defintion for Extents Typedef to provide a container of extents as a simple stl vector container.

Definition at line 99 of file BufferUtils.hh.