

Go to the source code of this file.
Classes | |
class | Store::Disks |
summary view of all disk caches (cache_dirs) combined More... | |
Namespaces | |
Store | |
Typedefs | |
typedef int | STDIRSELECT(const StoreEntry *e) |
Functions | |
void | storeDirOpenSwapLogs (void) |
int | storeDirWriteCleanLogs (int reopen) |
void | storeDirCloseSwapLogs (void) |
void | allocate_new_swapdir (Store::DiskConfig *swap) |
void | free_cachedir (Store::DiskConfig *swap) |
void | storeDirSwapLog (const StoreEntry *e, int op) |
Variables | |
STDIRSELECT * | storeDirSelectSwapDir |
Typedef Documentation
◆ STDIRSELECT
typedef int STDIRSELECT(const StoreEntry *e) |
Function Documentation
◆ allocate_new_swapdir()
void allocate_new_swapdir | ( | Store::DiskConfig * | swap | ) |
Definition at line 681 of file Disks.cc.
References i, Store::DiskConfig::n_allocated, Store::DiskConfig::n_configured, and Store::DiskConfig::swapDirs.
Referenced by addSwapDir(), and parse_cachedir().
◆ free_cachedir()
void free_cachedir | ( | Store::DiskConfig * | swap | ) |
Definition at line 700 of file Disks.cc.
References Store::DiskConfig::n_allocated, Store::DiskConfig::n_configured, reconfiguring, and Store::DiskConfig::swapDirs.
Referenced by testRock::tearDown(), testStoreHashIndex::testMaxSize(), testStoreController::testMaxSize(), testStoreController::testStats(), testStoreHashIndex::testStats(), testUfs::testUfsDefaultEngine(), and testUfs::testUfsSearch().
◆ storeDirCloseSwapLogs()
void storeDirCloseSwapLogs | ( | void | ) |
Definition at line 577 of file Disks.cc.
References SquidConfig::cacheSwap, Config, INDEXSD, and Store::DiskConfig::n_configured.
Referenced by mainReconfigureStart().
◆ storeDirOpenSwapLogs()
void storeDirOpenSwapLogs | ( | void | ) |
Definition at line 570 of file Disks.cc.
References SquidConfig::cacheSwap, Config, INDEXSD, and Store::DiskConfig::n_configured.
Referenced by mainReconfigureFinish(), and storeDirWriteCleanLogs().
◆ storeDirSwapLog()
void storeDirSwapLog | ( | const StoreEntry * | e, |
int | op | ||
) |
An entry written to the swap log MUST have the following properties.
- It MUST be a public key. It does no good to log a public ADD, change the key, then log a private DEL. So we need to log a DEL before we change a key from public to private.
- It MUST have a valid (> -1) swap_filen.
Definition at line 733 of file Disks.cc.
References assert, debugs, EBIT_TEST, ENTRY_SPECIAL, StoreEntry::flags, StoreEntry::getMD5Text(), StoreEntry::hasDisk(), INDEXSD, KEY_PRIVATE, Store::NewLocalSearch(), STUB_RETVAL, StoreEntry::swap_dirn, StoreEntry::swap_filen, SWAP_LOG_MAX, SWAP_LOG_NOP, and swap_log_op_str.
Referenced by Fs::Ufs::RebuildState::addIfFresh(), Store::Disks::evictCached(), StoreEntry::forcePublicKey(), and storeSwapOutFileClosed().
◆ storeDirWriteCleanLogs()
storeDirWriteCleanLogs
Writes a "clean" swap log file from in-memory metadata. This is a rewrite of the original function to troll each StoreDir and write the logs, and flush at the end of the run. Thanks goes to Eric Stern, since this solution came out of his COSS code.
Definition at line 593 of file Disks.cc.
References SquidConfig::cacheSwap, Store::Disk::canLog(), Store::Disk::cleanLog, Config, current_time, DBG_IMPORTANT, debugs, getCurrentTime(), Store::Disk::index, INDEXSD, Store::DiskConfig::n_configured, Store::Disk::CleanLog::nextEntry(), NULL, Store::Controller::store_dirs_rebuilding, storeDirOpenSwapLogs(), tvSubDsec(), Store::Disk::CleanLog::write(), and Store::Disk::writeCleanStart().
Referenced by death(), fatal(), fatal_dump(), mainRotate(), SquidShutdown(), and testUfs::testUfsSearch().
Variable Documentation
◆ storeDirSelectSwapDir
STDIRSELECT* storeDirSelectSwapDir |
This function pointer is set according to 'store_dir_select_algorithm' in squid.conf.
Definition at line 28 of file Disks.cc.
Referenced by Store::Disks::init(), and storeCreate().