UFSSwapDir.cc
Go to the documentation of this file.
259 currentIOOptions->options.push_back(new ConfigOptionAdapter<UFSSwapDir>(*const_cast<UFSSwapDir *>(this), &UFSSwapDir::optionIOParse, &UFSSwapDir::optionIODump));
343 debugs(47, DBG_CRITICAL, "FILENO "<< std::setfill('0') << std::hex << std::uppercase << std::setw(8) << e.swap_filen);
462 debugs(47, warnLevel, StoreController::store_dirs_rebuilding << " cache_dir still rebuilding. Skip GC for " << path);
546 Fs::Ufs::UFSSwapDir::createStoreIO(StoreEntry &e, StoreIOState::STFNCB * file_callback, StoreIOState::STIOCB * aCallback, void *callback_data)
552 Fs::Ufs::UFSSwapDir::openStoreIO(StoreEntry &e, StoreIOState::STFNCB * file_callback, StoreIOState::STIOCB * aCallback, void *callback_data)
828 eventAdd("storeRebuild", Fs::Ufs::RebuildState::RebuildStep, new Fs::Ufs::RebuildState(this), 0.0, 1);
843 fatalf("Failed to rename log file " SQUIDSBUFPH " to " SQUIDSBUFPH, SQUIDSBUFPRINT(tmp_path), SQUIDSBUFPRINT(swaplog_path));
886 debugs(50, DBG_IMPORTANT, "ERROR: while opening swap log" << new_path << ": " << xstrerr(xerrno));
1379 debugs(36, 3, "Cleaning file "<< std::setfill('0') << std::hex << std::uppercase << std::setw(8) << files[n]);
Definition: UFSStrategy.h:25
struct SquidConfig::@101 Log
void optionIODump(StoreEntry *e) const
Definition: UFSSwapDir.cc:244
void replacementRemove(StoreEntry *e)
Definition: UFSSwapDir.cc:1216
Definition: DiskIOModule.h:21
size_t gapSize() const
number of bytes after the log header before the first log entry
Definition: StoreSwapLogData.cc:96
virtual bool canStore(const StoreEntry &e, int64_t diskSpaceNeeded, int &load) const =0
check whether we can store the entry; if we can, report current load
Definition: Disk.cc:164
StoreEntry *(* Next)(RemovalPurgeWalker *walker)
Definition: RemovalPolicy.h:74
virtual void evictCached(StoreEntry &) override
Definition: UFSSwapDir.cc:1180
bool pathIsDirectory(const char *path) const
Definition: UFSSwapDir.cc:629
SBuf logFile(char const *ext=nullptr) const
Definition: UFSSwapDir.cc:689
const StoreEntry *(* Next)(RemovalPolicyWalker *walker)
Definition: RemovalPolicy.h:62
virtual void logEntry(const StoreEntry &e, int op) const override
Definition: UFSSwapDir.cc:1285
static bool FilenoBelongsHere(int fn, int cachedir, int level1dir, int level2dir)
Definition: UFSSwapDir.cc:1116
bool IamWorkerProcess()
whether the current process handles HTTP transactions and such
Definition: stub_tools.cc:47
static int * UFSDirToGlobalDirMapping
Definition: UFSSwapDir.h:127
virtual void statfs(StoreEntry &) const override
Definition: UFSSwapDir.cc:371
virtual void parse(int index, char *path) override
Definition: UFSSwapDir.cc:180
Definition: RebuildState.h:25
Definition: RemovalPolicy.h:56
Definition: RemovalPolicy.h:67
Definition: ConfigOption.h:58
virtual void create() override
create system resources needed for this store to operate in the future
Definition: UFSSwapDir.cc:300
void STFNCB(void *their_data, int errflag, StoreIOState::Pointer self)
Definition: StoreIOState.h:41
int fsStats(const char *path, int *totl_kb, int *free_kb, int *totl_in, int *free_in)
Definition: fs_io.cc:527
time_t getCurrentTime() STUB_RETVAL(0) int tvSubUsec(struct timeval
FILE * openTmpSwapLog(int *clean_flag, int *zero_flag)
Definition: UFSSwapDir.cc:859
int validFileno(sfileno filn, int flag) const
Definition: UFSSwapDir.cc:1146
bool hasDisk(const sdirno dirn=-1, const sfileno filen=-1) const
Definition: store.cc:1891
virtual int callback() override
called once every main loop iteration; TODO: Move to UFS code.
Definition: UFSSwapDir.cc:1258
Definition: MemBuf.h:24
virtual StoreIOState::Pointer createStoreIO(StoreEntry &, StoreIOState::STFNCB *, StoreIOState::STIOCB *, void *) override
Definition: UFSSwapDir.cc:546
bool optionIOParse(char const *option, const char *value, int reconfiguring)
Definition: UFSSwapDir.cc:217
virtual bool canStore(const StoreEntry &e, int64_t diskSpaceNeeded, int &load) const override
check whether we can store the entry; if we can, report current load
Definition: UFSSwapDir.cc:115
virtual void finalizeSwapoutSuccess(const StoreEntry &) override
finalize the successful swapout that has been already noticed by Store
Definition: UFSSwapDir.cc:1270
virtual ConfigOption * getOptionTree() const override
Definition: UFSSwapDir.cc:250
Definition: Disk.h:131
int reconfiguring
struct SquidConfig::@94 Swap
virtual void evictIfFound(const cache_key *) override
Definition: UFSSwapDir.cc:1202
virtual void writeCleanDone() override
Definition: UFSSwapDir.cc:977
RemovalPolicy * createRemovalPolicy(RemovalPolicySettings *settings)
Definition: store.cc:1649
virtual void maintain() override
perform regular periodic maintenance; TODO: move to UFSSwapDir::Maintain
Definition: UFSSwapDir.cc:414
virtual bool unlinkdUseful() const override
whether SwapDir may benefit from unlinkd
Definition: UFSSwapDir.cc:1173
int createDirectory(const char *path, int)
Definition: UFSSwapDir.cc:604
Definition: StoreSwapLogData.h:86
virtual void reference(StoreEntry &) override
somebody needs this entry (many cache replacement policies need to know)
Definition: UFSSwapDir.cc:524
virtual bool doubleCheck(StoreEntry &) override
Definition: UFSSwapDir.cc:349
virtual char const * type() const =0
static int store_dirs_rebuilding
the number of cache_dirs being rebuilt; TODO: move to Disks::Rebuilding
Definition: Controller.h:139
Definition: UFSSwapDir.cc:44
virtual DiskIOStrategy * createStrategy()=0
Definition: ConfigOption.h:79
Definition: StoreSwapLogData.h:180
virtual StoreIOState::Pointer openStoreIO(StoreEntry &, StoreIOState::STFNCB *, StoreIOState::STIOCB *, void *) override
Definition: UFSSwapDir.cc:552
void STIOCB(void *their_data, int errflag, StoreIOState::Pointer self)
Definition: StoreIOState.h:51
Definition: Store.h:42
int cmp(const SBuf &S, const size_type n) const
shorthand version for compare()
Definition: SBuf.h:268
UFSSwapDir(char const *aType, const char *aModuleType)
Definition: UFSSwapDir.cc:307
void file_write(int fd, off_t file_offset, void const *ptr_to_buf, int len, DWCB *handle, void *handle_data, FREE *free_func)
Definition: fs_io.cc:326
Definition: FileMap.h:24
struct StatCounters::@136 swap
StoreEntry * addDiskRestore(const cache_key *key, sfileno file_number, uint64_t swap_file_sz, time_t expires, time_t timestamp, time_t lastref, time_t lastmod, uint32_t refcount, uint16_t flags, int clean)
Definition: UFSSwapDir.cc:788
virtual void write(StoreEntry const &)
"write" an entry to the clean log file.
Definition: UFSSwapDir.cc:77
void attachToDisk(const sdirno, const sfileno, const swap_status_t)
Definition: store.cc:1902
virtual int writeCleanStart() override
Definition: UFSSwapDir.cc:933
int n_disk_objects
Definition: DiskIOStrategy.h:20
Definition: ConfigOption.h:68
bool swappedOut() const
whether the entire entry is now on disk (possibly marked for deletion)
Definition: Store.h:134
virtual void dump(StoreEntry &) const override
Definition: UFSSwapDir.cc:1230
Definition: UFSSwapDir.h:31
void eventAdd(const char *name, EVH *func, void *arg, double when, int weight, bool cbdata)
Definition: event.cc:107
virtual bool dereference(StoreEntry &) override
Definition: UFSSwapDir.cc:534
virtual const StoreEntry * nextEntry()
Get the next entry that is a candidate for clean log writing.
Definition: UFSSwapDir.cc:66
virtual void finalizeSwapoutFailure(StoreEntry &) override
abort the failed swapout that has been already noticed by Store
Definition: UFSSwapDir.cc:1277
static int HandleCleanEvent()
safely cleans a few unused files if possible
Definition: UFSSwapDir.cc:1040
sfileno swap_filen
unique ID inside a cache_dir for swapped out entries; -1 for others
Definition: Store.h:234