![]() |
XRootD
|
Status of cached file. Can be read from and written into a binary file. More...
#include <XrdPfcInfo.hh>
Classes | |
struct | AStat |
Access statistics. More... | |
struct | Status |
union | Status.__unnamed126__ |
struct | Status.__unnamed126__.__unnamed128__ |
struct | Store |
Public Member Functions | |
Info (XrdSysTrace *trace, bool prefetchBuffer=false) | |
Constructor. More... | |
~Info () | |
Destructor. More... | |
void | CalcCksumMd5 (unsigned char *buff, char *digest) |
uint32_t | CalcCksumStore () |
Get cksum, MD5 is for backward compatibility with V2 and V3. More... | |
uint32_t | CalcCksumSyncedAndAStats () |
void | CompactifyAccessRecords () |
Compactify access records to the configured maximum. More... | |
int | CountBlocksNotWrittenInRng (int firstIdx, int lastIdx) const |
Check download status in given block range. More... | |
void | DowngradeCkSumState (CkSumCheck_e css_ref) |
size_t | GetAccessCnt () const |
Get number of accesses. More... | |
int | GetBitvecSizeInBytes () const |
Get size of download-state bit-vector in bytes. More... | |
long long | GetBufferSize () const |
Get prefetch buffer size. More... | |
CkSumCheck_e | GetCkSumState () const |
const char * | GetCkSumStateAsText () const |
time_t | GetCreationTime () const |
Get file size. More... | |
long long | GetExpectedDataFileSize () const |
Get expected data file size. More... | |
long long | GetFileSize () const |
Get file size. More... | |
const AStat * | GetLastAccessStats () const |
Get latest access stats. More... | |
int | GetLastDownloadedBlock () const |
Get number of the last downloaded block. More... | |
bool | GetLatestDetachTime (time_t &t) const |
Get latest detach time. More... | |
int | GetNBlocks () const |
Get number of blocks represented in download-state bit-vector. More... | |
int | GetNDownloadedBlocks () const |
Get number of downloaded blocks. More... | |
long long | GetNDownloadedBytes () const |
Get number of downloaded bytes. More... | |
time_t | GetNoCkSumTime () const |
time_t | GetNoCkSumTimeForUVKeep () const |
XrdSysTrace * | GetTrace () const |
int | GetVersion () |
Get version. More... | |
bool | HasNoCkSumTime () const |
bool | IsCkSumAny () const |
bool | IsCkSumBoth () const |
bool | IsCkSumCache () const |
bool | IsCkSumNet () const |
bool | IsComplete () const |
Get complete status. More... | |
bool | Read (XrdOssDF *fp, const char *dname, const char *fname=0) |
Read content of cinfo file into this object. More... | |
const std::vector< AStat > & | RefAStats () const |
const Store & | RefStoredData () const |
Get stored data. More... | |
void | ResetAllAccessStats () |
Reset IO Stats. More... | |
void | ResetCkSumCache () |
void | ResetCkSumNet () |
void | ResetNoCkSumTime () |
void | ResizeBits () |
Reserve bit vectors for file_size / buffer_size bytes. More... | |
void | SetAllBitsSynced () |
Mark all blocks as synced to disk. More... | |
void | SetBitPrefetch (int i) |
Mark block as obtained through prefetch. More... | |
void | SetBitSynced (int i) |
Mark block as synced to disk. More... | |
void | SetBitWritten (int i) |
Mark block as written to disk. More... | |
void | SetBufferSizeFileSizeAndCreationTime (long long bs, long long fs) |
void | SetCkSumState (CkSumCheck_e css) |
bool | TestBitPrefetch (int i) const |
Test if block at the given index has been prefetched. More... | |
bool | TestBitWritten (int i) const |
Test if block at the given index is written to disk. More... | |
void | UpdateDownloadCompleteStatus () |
Update complete status. More... | |
bool | Write (XrdOssDF *fp, const char *dname, const char *fname=0) |
void | WriteIOStat (Stats &s) |
Write bytes missed, hits, and disk. More... | |
void | WriteIOStatAttach () |
Write open time in the last entry of access statistics. More... | |
void | WriteIOStatDetach (Stats &s) |
Write close time together with bytes missed, hits, and disk. More... | |
void | WriteIOStatSingle (long long bytes_disk) |
Write single open/close time for given bytes read from disk. More... | |
void | WriteIOStatSingle (long long bytes_disk, time_t att, time_t dtc) |
Write open/close with given time and bytes read from disk. More... | |
Static Public Attributes | |
static const char * | m_traceID = "CInfo" |
static const int | s_defaultVersion = 4 |
static const char * | s_infoExtension = ".cinfo" |
static const size_t | s_infoExtensionLen = strlen(Info::s_infoExtension) |
static size_t | s_maxNumAccess = 20 |
Protected Attributes | |
std::vector< AStat > | m_astats |
access records More... | |
int | m_bitvecSizeInBits |
cached More... | |
unsigned char * | m_buff_prefetch |
prefetch statistics More... | |
unsigned char * | m_buff_synced |
disk written state vector More... | |
unsigned char * | m_buff_written |
download state vector More... | |
bool | m_complete |
cached; if false, set to true when missingBlocks hit zero More... | |
bool | m_hasPrefetchBuffer |
constains current prefetch score More... | |
int | m_missingBlocks |
cached, updated in SetBitWritten() More... | |
Store | m_store |
XrdSysTrace * | m_trace |
int | m_version |
Status of cached file. Can be read from and written into a binary file.
Definition at line 40 of file XrdPfcInfo.hh.
union XrdPfc::Info::Status.__unnamed126__ |
Definition at line 44 of file XrdPfcInfo.hh.
Class Members | ||
---|---|---|
__unnamed126__ | __unnamed__ | |
unsigned int | _raw_ |
struct XrdPfc::Info::Status.__unnamed126__.__unnamed128__ |
Definition at line 45 of file XrdPfcInfo.hh.
Class Members | ||
---|---|---|
int | _free_bits_: 29 | |
int | f_cksum_check: 3 | as in enum CkSumCheck_e |
Info::Info | ( | XrdSysTrace * | trace, |
bool | prefetchBuffer = false |
||
) |
Constructor.
Definition at line 123 of file XrdPfcInfo.cc.
Info::~Info | ( | ) |
Destructor.
Definition at line 134 of file XrdPfcInfo.cc.
References m_buff_prefetch, m_buff_synced, and m_buff_written.
void Info::CalcCksumMd5 | ( | unsigned char * | buff, |
char * | digest | ||
) |
Definition at line 238 of file XrdPfcInfo.cc.
References XrdCksCalc::Final(), GetBitvecSizeInBytes(), XrdCksCalc::Init(), and XrdCksCalc::Update().
uint32_t Info::CalcCksumStore | ( | ) |
uint32_t Info::CalcCksumSyncedAndAStats | ( | ) |
Definition at line 232 of file XrdPfcInfo.cc.
References crc32c(), GetBitvecSizeInBytes(), m_astats, and m_buff_synced.
Referenced by Read(), and Write().
void Info::CompactifyAccessRecords | ( | ) |
Compactify access records to the configured maximum.
Definition at line 379 of file XrdPfcInfo.cc.
References XrdPfc::Info::AStat::DetachTime, m_astats, and s_maxNumAccess.
Referenced by Write().
|
inline |
Check download status in given block range.
Definition at line 452 of file XrdPfcInfo.hh.
References TestBitWritten().
Referenced by UpdateDownloadCompleteStatus().
|
inline |
Definition at line 295 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_status, and m_store.
|
inline |
Get number of accesses.
Definition at line 261 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_accessCnt, and m_store.
Referenced by XrdPfc::File::GetAccessCnt().
|
inline |
Get size of download-state bit-vector in bytes.
Definition at line 429 of file XrdPfcInfo.hh.
References m_bitvecSizeInBits.
Referenced by CalcCksumMd5(), CalcCksumSyncedAndAStats(), Read(), ResizeBits(), SetAllBitsSynced(), SetBitPrefetch(), SetBitSynced(), SetBitWritten(), TestBitPrefetch(), TestBitWritten(), and Write().
|
inline |
Get prefetch buffer size.
Definition at line 469 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_buffer_size, and m_store.
Referenced by XrdPfc::File::GetBlockSize().
|
inline |
Definition at line 286 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_status, and m_store.
const char * Info::GetCkSumStateAsText | ( | ) | const |
Definition at line 249 of file XrdPfcInfo.cc.
References XrdPfc::CSChk_Both, XrdPfc::CSChk_Cache, XrdPfc::CSChk_Net, XrdPfc::CSChk_None, XrdPfc::Info::Store::m_status, and m_store.
|
inline |
Get file size.
Definition at line 277 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_creationTime, and m_store.
|
inline |
Get expected data file size.
Definition at line 420 of file XrdPfcInfo.hh.
References GetLastDownloadedBlock(), m_bitvecSizeInBits, XrdPfc::Info::Store::m_buffer_size, XrdPfc::Info::Store::m_file_size, and m_store.
|
inline |
Get file size.
Definition at line 442 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_file_size, and m_store.
Referenced by XrdPfc::Cache::DetermineFullFileSize(), and XrdPfc::Cache::LocalFilePath().
const Info::AStat * Info::GetLastAccessStats | ( | ) | const |
Get latest access stats.
Definition at line 489 of file XrdPfcInfo.cc.
References m_astats.
Referenced by XrdPfc::File::GetLastAccessStats().
|
inline |
Get number of the last downloaded block.
Definition at line 412 of file XrdPfcInfo.hh.
References m_bitvecSizeInBits, and TestBitWritten().
Referenced by GetExpectedDataFileSize().
bool Info::GetLatestDetachTime | ( | time_t & | t | ) | const |
Get latest detach time.
Definition at line 470 of file XrdPfcInfo.cc.
References XrdPfc::Info::AStat::AttachTime, XrdPfc::Info::AStat::DetachTime, XrdPfc::Info::AStat::Duration, m_astats, XrdPfc::Info::Store::m_creationTime, and m_store.
Referenced by XrdPfc::Cache::ExecuteCommandUrl().
|
inline |
Get number of blocks represented in download-state bit-vector.
Definition at line 437 of file XrdPfcInfo.hh.
References m_bitvecSizeInBits.
Referenced by XrdPfc::File::GetNBlocks().
|
inline |
Get number of downloaded blocks.
Definition at line 398 of file XrdPfcInfo.hh.
References m_bitvecSizeInBits, and TestBitWritten().
Referenced by XrdPfc::File::GetNDownloadedBlocks(), and GetNDownloadedBytes().
|
inline |
Get number of downloaded bytes.
Definition at line 407 of file XrdPfcInfo.hh.
References GetNDownloadedBlocks(), XrdPfc::Info::Store::m_buffer_size, and m_store.
|
inline |
Definition at line 300 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_noCkSumTime, and m_store.
|
inline |
Definition at line 301 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_creationTime, XrdPfc::Info::Store::m_noCkSumTime, and m_store.
|
inline |
|
inline |
|
inline |
Definition at line 299 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_noCkSumTime, and m_store.
Referenced by ResetCkSumCache(), and ResetCkSumNet().
|
inline |
Definition at line 291 of file XrdPfcInfo.hh.
References XrdPfc::CSChk_Both, XrdPfc::Info::Store::m_status, and m_store.
|
inline |
Definition at line 292 of file XrdPfcInfo.hh.
References XrdPfc::CSChk_Both, XrdPfc::Info::Store::m_status, and m_store.
|
inline |
Definition at line 289 of file XrdPfcInfo.hh.
References XrdPfc::CSChk_Cache, XrdPfc::Info::Store::m_status, and m_store.
Referenced by ResetCkSumCache(), and XrdPfc::File::WriteBlockToDisk().
|
inline |
Definition at line 290 of file XrdPfcInfo.hh.
References XrdPfc::CSChk_Net, XrdPfc::Info::Store::m_status, and m_store.
Referenced by ResetCkSumNet(), and XrdPfc::File::WriteBlockToDisk().
|
inline |
Get complete status.
Definition at line 447 of file XrdPfcInfo.hh.
References m_complete.
Referenced by XrdPfc::Cache::LocalFilePath(), XrdPfc::File::Read(), XrdPfc::File::ReadV(), XrdPfc::File::Sync(), and XrdPfc::File::WriteBlockToDisk().
bool Info::Read | ( | XrdOssDF * | fp, |
const char * | dname, | ||
const char * | fname = 0 |
||
) |
Read content of cinfo file into this object.
fp | file handle |
dname | directory name for trace output |
fname | optional file name for trace output (can be included in dname) |
Definition at line 294 of file XrdPfcInfo.cc.
References CalcCksumStore(), CalcCksumSyncedAndAStats(), Macaroons::Error, GetBitvecSizeInBytes(), m_astats, XrdPfc::Info::Store::m_astatSize, m_buff_synced, m_buff_written, m_store, m_trace, m_traceID, m_version, ResizeBits(), s_defaultVersion, TRACE, UpdateDownloadCompleteStatus(), and Warning.
Referenced by XrdPfc::Cache::DetermineFullFileSize(), and XrdPfc::Cache::LocalFilePath().
|
inline |
|
inline |
void Info::ResetAllAccessStats | ( | ) |
Definition at line 359 of file XrdPfcInfo.cc.
References XrdPfc::Info::Store::m_accessCnt, m_astats, XrdPfc::Info::Store::m_astatSize, and m_store.
void Info::ResetCkSumCache | ( | ) |
Definition at line 203 of file XrdPfcInfo.cc.
References XrdPfc::CSChk_Cache, HasNoCkSumTime(), IsCkSumCache(), XrdPfc::Info::Store::m_noCkSumTime, XrdPfc::Info::Store::m_status, and m_store.
void Info::ResetCkSumNet | ( | ) |
Definition at line 213 of file XrdPfcInfo.cc.
References XrdPfc::CSChk_Net, HasNoCkSumTime(), IsCkSumNet(), XrdPfc::Info::Store::m_noCkSumTime, XrdPfc::Info::Store::m_status, and m_store.
Referenced by XrdPfc::File::WriteBlockToDisk().
|
inline |
Definition at line 302 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_noCkSumTime, and m_store.
void Info::ResizeBits | ( | ) |
Reserve bit vectors for file_size / buffer_size bytes.
Definition at line 172 of file XrdPfcInfo.cc.
References GetBitvecSizeInBytes(), m_bitvecSizeInBits, m_buff_prefetch, m_buff_synced, m_buff_written, XrdPfc::Info::Store::m_buffer_size, m_complete, XrdPfc::Info::Store::m_file_size, m_hasPrefetchBuffer, m_missingBlocks, and m_store.
Referenced by Read(), and SetBufferSizeFileSizeAndCreationTime().
void Info::SetAllBitsSynced | ( | ) |
Mark all blocks as synced to disk.
Definition at line 144 of file XrdPfcInfo.cc.
References GetBitvecSizeInBytes(), m_buff_synced, and m_complete.
Referenced by XrdPfc::Cache::ExecuteCommandUrl(), and XrdPfc::DataFsSnapshot::write_json_file().
|
inline |
Mark block as obtained through prefetch.
Definition at line 365 of file XrdPfcInfo.hh.
References GetBitvecSizeInBytes(), and m_buff_prefetch.
Referenced by XrdPfc::File::WriteBlockToDisk().
|
inline |
Mark block as synced to disk.
Definition at line 387 of file XrdPfcInfo.hh.
References GetBitvecSizeInBytes(), and m_buff_synced.
Referenced by XrdPfc::File::Sync(), and XrdPfc::File::WriteBlockToDisk().
|
inline |
Mark block as written to disk.
Definition at line 352 of file XrdPfcInfo.hh.
References GetBitvecSizeInBytes(), m_buff_written, m_complete, and m_missingBlocks.
Referenced by XrdPfc::File::WriteBlockToDisk().
void Info::SetBufferSizeFileSizeAndCreationTime | ( | long long | bs, |
long long | fs | ||
) |
Definition at line 161 of file XrdPfcInfo.cc.
References XrdPfc::Info::Store::m_buffer_size, XrdPfc::Info::Store::m_creationTime, XrdPfc::Info::Store::m_file_size, m_store, and ResizeBits().
Referenced by XrdPfc::Cache::ExecuteCommandUrl(), and XrdPfc::DataFsSnapshot::write_json_file().
|
inline |
Definition at line 294 of file XrdPfcInfo.hh.
References XrdPfc::Info::Store::m_status, and m_store.
|
inline |
Test if block at the given index has been prefetched.
Definition at line 376 of file XrdPfcInfo.hh.
References GetBitvecSizeInBytes(), and m_buff_prefetch.
|
inline |
Test if block at the given index is written to disk.
Definition at line 343 of file XrdPfcInfo.hh.
References GetBitvecSizeInBytes(), and m_buff_written.
Referenced by CountBlocksNotWrittenInRng(), GetLastDownloadedBlock(), GetNDownloadedBlocks(), and XrdPfc::File::Prefetch().
|
inline |
Update complete status.
Definition at line 463 of file XrdPfcInfo.hh.
References CountBlocksNotWrittenInRng(), m_bitvecSizeInBits, m_complete, and m_missingBlocks.
Referenced by Read().
bool Info::Write | ( | XrdOssDF * | fp, |
const char * | dname, | ||
const char * | fname = 0 |
||
) |
Write number of blocks and read buffer size
fp | file handle |
dname | directory name for trace output |
fname | optional file name for trace output (can be included in dname) |
Definition at line 266 of file XrdPfcInfo.cc.
References CalcCksumStore(), CalcCksumSyncedAndAStats(), CompactifyAccessRecords(), GetBitvecSizeInBytes(), m_astats, XrdPfc::Info::Store::m_astatSize, m_buff_synced, m_store, m_trace, m_traceID, s_defaultVersion, and s_maxNumAccess.
Referenced by XrdPfc::Cache::ExecuteCommandUrl(), XrdPfc::Cache::LocalFilePath(), XrdPfc::File::Sync(), and XrdPfc::DataFsSnapshot::write_json_file().
void Info::WriteIOStat | ( | Stats & | s | ) |
Write bytes missed, hits, and disk.
Definition at line 429 of file XrdPfcInfo.cc.
References m_astats, XrdPfc::Stats::m_BytesBypassed, XrdPfc::Stats::m_BytesHit, XrdPfc::Stats::m_BytesMissed, XrdPfc::Stats::m_Duration, and XrdPfc::Stats::m_NumIos.
Referenced by XrdPfc::File::Sync(), and WriteIOStatDetach().
void Info::WriteIOStatAttach | ( | ) |
Write open time in the last entry of access statistics.
Definition at line 420 of file XrdPfcInfo.cc.
References XrdPfc::Info::AStat::AttachTime, XrdPfc::Info::Store::m_accessCnt, m_astats, and m_store.
void Info::WriteIOStatDetach | ( | Stats & | s | ) |
Write close time together with bytes missed, hits, and disk.
Definition at line 438 of file XrdPfcInfo.cc.
References m_astats, and WriteIOStat().
Referenced by XrdPfc::File::FinalizeSyncBeforeExit().
void Info::WriteIOStatSingle | ( | long long | bytes_disk | ) |
Write single open/close time for given bytes read from disk.
Definition at line 444 of file XrdPfcInfo.cc.
References XrdPfc::Info::AStat::AttachTime, XrdPfc::Info::AStat::BytesHit, XrdPfc::Info::AStat::DetachTime, XrdPfc::Info::Store::m_accessCnt, m_astats, m_store, and XrdPfc::Info::AStat::NumIos.
Referenced by XrdPfc::Cache::ExecuteCommandUrl(), and XrdPfc::Cache::LocalFilePath().
void Info::WriteIOStatSingle | ( | long long | bytes_disk, |
time_t | att, | ||
time_t | dtc | ||
) |
Write open/close with given time and bytes read from disk.
Definition at line 455 of file XrdPfcInfo.cc.
References XrdPfc::Info::AStat::AttachTime, XrdPfc::Info::AStat::BytesHit, XrdPfc::Info::AStat::DetachTime, XrdPfc::Info::AStat::Duration, XrdPfc::Info::Store::m_accessCnt, m_astats, m_store, and XrdPfc::Info::AStat::NumIos.
|
protected |
access records
Definition at line 323 of file XrdPfcInfo.hh.
Referenced by CalcCksumSyncedAndAStats(), CompactifyAccessRecords(), GetLastAccessStats(), GetLatestDetachTime(), Read(), RefAStats(), ResetAllAccessStats(), Write(), WriteIOStat(), WriteIOStatAttach(), WriteIOStatDetach(), and WriteIOStatSingle().
|
protected |
cached
Definition at line 326 of file XrdPfcInfo.hh.
Referenced by GetBitvecSizeInBytes(), GetExpectedDataFileSize(), GetLastDownloadedBlock(), GetNBlocks(), GetNDownloadedBlocks(), ResizeBits(), and UpdateDownloadCompleteStatus().
|
protected |
prefetch statistics
Definition at line 322 of file XrdPfcInfo.hh.
Referenced by ~Info(), ResizeBits(), SetBitPrefetch(), and TestBitPrefetch().
|
protected |
disk written state vector
Definition at line 320 of file XrdPfcInfo.hh.
Referenced by ~Info(), CalcCksumSyncedAndAStats(), Read(), ResizeBits(), SetAllBitsSynced(), SetBitSynced(), and Write().
|
protected |
download state vector
Definition at line 321 of file XrdPfcInfo.hh.
Referenced by ~Info(), Read(), ResizeBits(), SetBitWritten(), and TestBitWritten().
|
protected |
cached; if false, set to true when missingBlocks hit zero
Definition at line 328 of file XrdPfcInfo.hh.
Referenced by IsComplete(), ResizeBits(), SetAllBitsSynced(), SetBitWritten(), and UpdateDownloadCompleteStatus().
|
protected |
constains current prefetch score
Definition at line 329 of file XrdPfcInfo.hh.
Referenced by ResizeBits().
|
protected |
cached, updated in SetBitWritten()
Definition at line 327 of file XrdPfcInfo.hh.
Referenced by ResizeBits(), SetBitWritten(), and UpdateDownloadCompleteStatus().
|
protected |
Definition at line 319 of file XrdPfcInfo.hh.
Referenced by CalcCksumStore(), DowngradeCkSumState(), GetAccessCnt(), GetBufferSize(), GetCkSumState(), GetCkSumStateAsText(), GetCreationTime(), GetExpectedDataFileSize(), GetFileSize(), GetLatestDetachTime(), GetNDownloadedBytes(), GetNoCkSumTime(), GetNoCkSumTimeForUVKeep(), HasNoCkSumTime(), IsCkSumAny(), IsCkSumBoth(), IsCkSumCache(), IsCkSumNet(), Read(), RefStoredData(), ResetAllAccessStats(), ResetCkSumCache(), ResetCkSumNet(), ResetNoCkSumTime(), ResizeBits(), SetBufferSizeFileSizeAndCreationTime(), SetCkSumState(), Write(), WriteIOStatAttach(), and WriteIOStatSingle().
|
protected |
Definition at line 317 of file XrdPfcInfo.hh.
Referenced by GetTrace(), Read(), and Write().
|
static |
Definition at line 308 of file XrdPfcInfo.hh.
|
protected |
Definition at line 325 of file XrdPfcInfo.hh.
Referenced by GetVersion(), and Read().
|
static |
Definition at line 312 of file XrdPfcInfo.hh.
|
static |
Definition at line 309 of file XrdPfcInfo.hh.
Referenced by XrdPfc::Cache::ConsiderCached(), XrdPfc::Cache::ExecuteCommandUrl(), XrdPfc::Cache::LocalFilePath(), XrdPfc::Cache::Prepare(), XrdPfc::FPurgeState::ProcessDirAndRecurse(), XrdPfc::FsTraversal::slurp_dir_ll(), XrdPfc::Cache::Stat(), XrdPfc::Cache::UnlinkFile(), and XrdPfc::DataFsSnapshot::write_json_file().
|
static |
Definition at line 310 of file XrdPfcInfo.hh.
Referenced by XrdPfc::FsTraversal::slurp_dir_ll(), and XrdPfc::UnlinkPurgeStateFilesInMap().
|
static |
Definition at line 311 of file XrdPfcInfo.hh.
Referenced by CompactifyAccessRecords(), XrdPfc::Cache::Config(), and Write().