#include "squid.h"#include "base/AsyncCbdataCalls.h"#include "base/IoManip.h"#include "base/PackableStream.h"#include "base/TextException.h"#include "CacheDigest.h"#include "CacheManager.h"#include "CollapsedForwarding.h"#include "comm/Connection.h"#include "comm/Read.h"#include "debug/Messages.h"#include "ETag.h"#include "event.h"#include "fde.h"#include "globals.h"#include "http.h"#include "HttpReply.h"#include "HttpRequest.h"#include "mem_node.h"#include "MemObject.h"#include "MemStore.h"#include "mgr/Registration.h"#include "mgr/StoreIoAction.h"#include "repl_modules.h"#include "RequestFlags.h"#include "sbuf/Stream.h"#include "SquidConfig.h"#include "StatCounters.h"#include "stmem.h"#include "Store.h"#include "store/Controller.h"#include "store/Disk.h"#include "store/Disks.h"#include "store/SwapMetaOut.h"#include "store_digest.h"#include "store_key_md5.h"#include "store_log.h"#include "store_rebuild.h"#include "StoreClient.h"#include "StoreIOState.h"#include "StrList.h"#include "swap_log_op.h"#include "tools.h"#include "DelayPools.h"#include "mem/Allocator.h"#include "mem/Pool.h"#include <climits>#include <stack>
Go to the source code of this file.
Classes | |
| struct | _storerepl_entry |
| struct | _store_check_cachable_hist |
Macros | |
| #define | REBUILD_TIMESTAMP_DELTA_MAX 2 |
| #define | STORE_IN_MEM_BUCKETS (229) |
| #define | MAINTAIN_MAX_SCAN 1024 |
| #define | MAINTAIN_MAX_REMOVE 64 |
Typedefs | |
| typedef struct _storerepl_entry | storerepl_entry_t |
Functions | |
| static int | getKeyCounter (void) |
| static void | StatQueues (StoreEntry *e) |
| reports the current state of Store-related queues More... | |
| void | destroyStoreEntry (void *data) |
| StoreEntry * | storeGetPublic (const char *uri, const HttpRequestMethod &method) |
| StoreEntry * | storeGetPublicByRequestMethod (HttpRequest *req, const HttpRequestMethod &method, const KeyScope keyScope) |
| StoreEntry * | storeGetPublicByRequest (HttpRequest *req, const KeyScope keyScope) |
| StoreEntry * | storeCreatePureEntry (const char *url, const char *log_url, const HttpRequestMethod &method) |
| StoreEntry * | storeCreateEntry (const char *url, const char *logUrl, const RequestFlags &flags, const HttpRequestMethod &method) |
| void | storeAppendPrintf (StoreEntry *e, const char *fmt,...) |
| void | storeAppendVPrintf (StoreEntry *e, const char *fmt, va_list vargs) |
| int | storeTooManyDiskFilesOpen (void) |
| void | storeCheckCachableStats (StoreEntry *sentry) |
| void | storeGetMemSpace (int size) |
| static void | storeLateRelease (void *) |
| static void | storeRegisterWithCacheManager (void) |
| void | storeInit (void) |
| void | storeConfigure (void) |
| int | expiresMoreThan (time_t expires, time_t when) |
| void | storeFsInit (void) |
| void | storeReplAdd (const char *type, REMOVALPOLICYCREATE *create) |
| RemovalPolicy * | createRemovalPolicy (RemovalPolicySettings *settings) |
| static std::ostream & | operator<< (std::ostream &os, const Store::IoStatus &io) |
| std::ostream & | operator<< (std::ostream &os, const StoreEntry &e) |
Variables | |
| const char * | memStatusStr [] |
| const char * | pingStatusStr [] |
| const char * | storeStatusStr [] |
| const char * | swapStatusStr [] |
| static storerepl_entry_t * | storerepl_list = nullptr |
| static OBJH | storeCheckCachableStats |
| static EVH | storeLateRelease |
| static std::stack< StoreEntry * > | LateReleaseStack |
| struct _store_check_cachable_hist | store_check_cachable_hist |
Macro Definition Documentation
◆ MAINTAIN_MAX_REMOVE
◆ MAINTAIN_MAX_SCAN
◆ REBUILD_TIMESTAMP_DELTA_MAX
| #define REBUILD_TIMESTAMP_DELTA_MAX 2 |
StoreEntry uses explicit new/delete operators, which set pool chunk size to 2MB XXX: convert to MEMPROXY_CLASS() API
◆ STORE_IN_MEM_BUCKETS
Typedef Documentation
◆ storerepl_entry_t
| typedef struct _storerepl_entry storerepl_entry_t |
Function Documentation
◆ createRemovalPolicy()
| RemovalPolicy* createRemovalPolicy | ( | RemovalPolicySettings * | settings | ) |
Definition at line 1671 of file store.cc.
References RemovalPolicySettings::args, _storerepl_entry::create, DBG_IMPORTANT, debugs, fatalf(), storerepl_list, RemovalPolicySettings::type, and _storerepl_entry::typestr.
Referenced by Fs::Ufs::UFSSwapDir::parse(), storeInit(), TestUfs::testUfsDefaultEngine(), and TestUfs::testUfsSearch().
◆ destroyStoreEntry()
| void destroyStoreEntry | ( | void * | data | ) |
Definition at line 403 of file store.cc.
References assert, debugs, StoreEntry::destroyMemObject(), Store::Disk::disconnect(), StoreEntry::disk(), StoreEntry::hasDisk(), StoreEntry::hashDelete(), and hash_link::key.
Referenced by StoreEntry::release().
◆ expiresMoreThan()
| int expiresMoreThan | ( | time_t | expires, |
| time_t | when | ||
| ) |
Definition at line 1338 of file store.cc.
References squid_curtime.
◆ getKeyCounter()
|
static |
Definition at line 528 of file store.cc.
Referenced by StoreEntry::setPrivateKey().
◆ operator<<() [1/2]
|
static |
Definition at line 2025 of file store.cc.
References Store::ioDone, Store::ioReading, Store::ioUndecided, and Store::ioWriting.
◆ operator<<() [2/2]
| std::ostream& operator<< | ( | std::ostream & | os, |
| const StoreEntry & | e | ||
| ) |
Definition at line 2044 of file store.cc.
References DELAY_SENDING, EBIT_TEST, ENTRY_ABORTED, ENTRY_BAD_LENGTH, ENTRY_FWD_HDR_WAIT, ENTRY_NEGCACHED, ENTRY_REQUIRES_COLLAPSING, ENTRY_REVALIDATE_ALWAYS, ENTRY_REVALIDATE_STALE, ENTRY_SPECIAL, ENTRY_VALIDATED, StoreEntry::flags, StoreEntry::hasMemStore(), StoreEntry::hasTransients(), MemObject::XitTable::io, MemObject::MemCache::io, KEY_PRIVATE, StoreEntry::locks(), StoreEntry::mem_obj, StoreEntry::mem_status, MemObject::memCache, NOT_IN_MEMORY, PING_NONE, StoreEntry::ping_status, REFRESH_REQUEST, RELEASE_REQUEST, StoreEntry::shareableWhenPrivate, STORE_PENDING, StoreEntry::store_status, StoreEntry::swap_dirn, StoreEntry::swap_filen, StoreEntry::swap_status, SWAPOUT_NONE, and MemObject::xitTable.
◆ StatQueues()
|
static |
Definition at line 134 of file store.cc.
References assert, CollapsedForwarding::StatQueue(), and IpcIoFile::StatQueue().
Referenced by storeRegisterWithCacheManager().
◆ storeAppendPrintf()
| void storeAppendPrintf | ( | StoreEntry * | e, |
| const char * | fmt, | ||
| ... | |||
| ) |
Definition at line 855 of file store.cc.
References StoreEntry::vappendf().
Referenced by DiskThreadsIOStrategy::aioStats(), cacheDigestGuessStatsReport(), cacheDigestReport(), carpCachemgr(), clientdbDump(), Mgr::CloseKidSection(), commIncomingStats(), Auth::User::CredentialsCacheStats(), DelaySpec::dump(), DelayPool::dump(), ClientDelayPool::dump(), Mgr::MenuAction::dump(), MessageDelayPool::dump(), Fs::Ufs::UFSSwapDir::dump(), Mgr::StoreIoAction::dump(), Store::Disks::Dump(), Format::Format::dump(), Mgr::ReconfigureAction::dump(), DiskdAction::dump(), Ipc::ReadWriteLockStats::dump(), Mgr::RotateAction::dump(), Mgr::OfflineToggleAction::dump(), Auth::SchemeConfig::dump(), dump_access_log(), dump_acl_address(), dump_acl_b_size_t(), dump_acl_tos(), dump_address(), dump_b_int64_t(), dump_b_size_t(), dump_b_ssize_t(), dump_cachemgrpasswd(), dump_CpuAffinityMap(), dump_denyinfo(), dump_externalAclHelper(), dump_generic_port(), dump_HeaderWithAclList(), dump_icap_service_failure_limit(), dump_int(), dump_int64_t(), dump_IpAddress_list(), dump_kb_int64_t(), dump_memcachemode(), dump_onoff(), dump_peer(), dump_peers(), dump_PortCfg(), dump_refreshpattern(), dump_removalpolicy(), dump_sslproxy_cert_adapt(), dump_sslproxy_cert_sign(), dump_string(), dump_time_nanoseconds(), dump_tristate(), dump_u_short(), dump_uri_whitespace(), dump_UrlHelperTimeout(), dump_wccp2_amethod(), dump_wccp2_method(), dump_wccp2_service(), dump_wccp2_service_info(), dump_wordlist(), DumpAvgStat(), DumpCountersStats(), DumpInfo(), DumpIoStats(), DumpMallocStatistics(), DelayConfig::dumpPoolCount(), ClientDelayConfig::dumpPoolCount(), Rock::SwapDir::dumpRateOption(), Adaptation::Config::dumpService(), Adaptation::Config::DumpServiceGroups(), DumpServiceTimesStats(), Rock::SwapDir::dumpSizeOption(), fde::DumpStats(), fde::dumpStats(), Rock::SwapDir::dumpTimeOption(), externalAclStats(), fqdnStats(), fwdStats(), header_mangler_dump_access(), header_mangler_dump_replacement(), httpHdrCcStatDumper(), httpHdrScStatDumper(), httpHdrScTargetStatDumper(), httpHeaderFieldStatDumper(), httpHeaderFldsPerHdrDumper(), httpHeaderStatDump(), httpHeaderStoreReport(), idnsStats(), ipcacheStatPrint(), lru_stats(), netdbBinaryExchange(), netdbDump(), Mgr::OpenKidSection(), Fs::Ufs::UFSSwapDir::optionIODump(), Store::Disk::optionObjectSizeDump(), DiskdIOStrategy::optionQ1Dump(), DiskdIOStrategy::optionQ2Dump(), Store::Disk::optionReadOnlyDump(), peerDigestStatsReport(), peerSourceHashCachemgr(), peerUserHashCachemgr(), redirectStats(), refreshCountsStats(), refreshCountsStatsEntry(), refreshStats(), squidaio_stats(), Store::Disks::stat(), Store::Controller::stat(), Store::Disk::stat(), MemStore::stat(), Transients::stat(), stat_ipcache_get(), statClientRequests(), statCountersHistograms(), statDigestBlob(), Fs::Ufs::UFSSwapDir::statfs(), DiskdIOStrategy::statfs(), Rock::SwapDir::statfs(), statHistBinDumper(), statHistEnumDumper(), statHistIntDumper(), statHistSBufDumper(), statPeerSelect(), DelaySpec::stats(), DelayBucket::stats(), DelayTaggedBucket::stats(), DelayPools::Stats(), DelayTagged::stats(), Aggregate::stats(), VectorPool::stats(), ClassCBucket::stats(), ClassCHostPool::stats(), statUtilization(), storeCheckCachableStats(), storeDigestReport(), storeIdStats(), and storeLogTagsHist().
◆ storeAppendVPrintf()
| void storeAppendVPrintf | ( | StoreEntry * | e, |
| const char * | fmt, | ||
| va_list | vargs | ||
| ) |
◆ storeCheckCachableStats()
| void storeCheckCachableStats | ( | StoreEntry * | sentry | ) |
Definition at line 983 of file store.cc.
References _store_check_cachable_hist::Default, _store_check_cachable_hist::missing_parts, _store_check_cachable_hist::no, _store_check_cachable_hist::not_entry_cachable, _store_check_cachable_hist::private_key, store_check_cachable_hist, storeAppendPrintf(), _store_check_cachable_hist::too_big, _store_check_cachable_hist::too_many_open_fds, _store_check_cachable_hist::too_many_open_files, _store_check_cachable_hist::too_small, _store_check_cachable_hist::wrong_content_length, and _store_check_cachable_hist::yes.
◆ storeConfigure()
| void storeConfigure | ( | void | ) |
Definition at line 1270 of file store.cc.
References Store::Controller::configure(), and Store::Root().
Referenced by configDoConfigure(), and storeSwapOutFileClosed().
◆ storeCreateEntry()
| StoreEntry* storeCreateEntry | ( | const char * | , |
| const char * | , | ||
| const RequestFlags & | , | ||
| const HttpRequestMethod & | |||
| ) |
Like storeCreatePureEntry(), but also locks the entry and sets entry key.
Definition at line 759 of file store.cc.
References RequestFlags::cachable, RequestFlags::hierarchical, StoreEntry::lock(), neighbors_do_private_keys, StoreEntry::setPrivateKey(), StoreEntry::setPublicKey(), and storeCreatePureEntry().
Referenced by StoreEntry::adjustVary(), TestRock::createEntry(), clientReplyContext::createStoreEntry(), Mgr::Action::createStoreEntry(), ClientHttpRequest::doCallouts(), netdbExchangeStart(), peerCountMcastPeersCreateAndSend(), peerDigestRequest(), clientReplyContext::processExpired(), Ssl::ServerBump::ServerBump(), UrnState::start(), storeDigestRewriteStart(), and TestUfs::testUfsSearch().
◆ storeCreatePureEntry()
| StoreEntry* storeCreatePureEntry | ( | const char * | storeId, |
| const char * | logUrl, | ||
| const HttpRequestMethod & | |||
| ) |
Creates a new StoreEntry with mem_obj and sets initial flags/states.
Definition at line 741 of file store.cc.
References StoreEntry::createMemObject(), debugs, EBIT_SET, ENTRY_VALIDATED, StoreEntry::flags, StoreEntry::lastref, PING_NONE, StoreEntry::ping_status, StoreEntry::refcount, squid_curtime, STORE_PENDING, StoreEntry::store_status, and StoreEntry::timestamp.
Referenced by MimeIcon::load(), and storeCreateEntry().
◆ storeFsInit()
| void storeFsInit | ( | void | ) |
◆ storeGetMemSpace()
| void storeGetMemSpace | ( | int | size | ) |
Clear Memory storage to accommodate the given object len
Definition at line 1121 of file store.cc.
References Store::Controller::freeMemorySpace(), Store::Root(), and size.
Referenced by store_client::maybeWriteFromDiskToMemory(), and StoreEntry::write().
◆ storeGetPublic()
| StoreEntry* storeGetPublic | ( | const char * | uri, |
| const HttpRequestMethod & | method | ||
| ) |
Definition at line 504 of file store.cc.
Referenced by StoreEntry::adjustVary(), findPreviouslyCachedEntry(), TestRock::getEntry(), httpMaybeRemovePublic(), ICPState::isHit(), MimeIcon::load(), clientReplyContext::purgeDoPurge(), UrnState::start(), and urnParseReply().
◆ storeGetPublicByRequest()
| StoreEntry* storeGetPublicByRequest | ( | HttpRequest * | req, |
| const KeyScope | keyScope | ||
| ) |
Definition at line 516 of file store.cc.
References HttpRequest::method, Http::METHOD_GET, Http::METHOD_HEAD, and storeGetPublicByRequestMethod().
Referenced by htcpSpecifier::checkHit(), findPreviouslyCachedEntry(), htcpClrStore(), clientReplyContext::identifyStoreObject(), peerDigestRequest(), and clientReplyContext::processExpired().
◆ storeGetPublicByRequestMethod()
| StoreEntry* storeGetPublicByRequestMethod | ( | HttpRequest * | req, |
| const HttpRequestMethod & | method, | ||
| const KeyScope | keyScope | ||
| ) |
Definition at line 510 of file store.cc.
References Store::Controller::find(), Store::Root(), and storeKeyPublicByRequestMethod().
Referenced by httpMaybeRemovePublic(), clientReplyContext::purgeDoPurge(), and storeGetPublicByRequest().
◆ storeInit()
| void storeInit | ( | void | ) |
Definition at line 1257 of file store.cc.
References Config, createRemovalPolicy(), eventAdd(), Store::Controller::init(), mem_policy, SquidConfig::memPolicy, Store::Root(), storeDigestInit(), storeLateRelease, storeLogOpen(), storeRebuildStart(), and storeRegisterWithCacheManager().
Referenced by mainInitialize().
◆ storeLateRelease()
|
static |
Definition at line 1173 of file store.cc.
References debugs, eventAdd(), Important, LateReleaseStack, Store::Controller::store_dirs_rebuilding, storeLateRelease, and StoreEntry::unlock().
◆ storeRegisterWithCacheManager()
|
static |
Definition at line 1247 of file store.cc.
References Mgr::StoreIoAction::Create(), Mgr::RegisterAction(), StatQueues(), Store::Stats(), and storeCheckCachableStats.
Referenced by storeInit().
◆ storeReplAdd()
| void storeReplAdd | ( | const char * | type, |
| REMOVALPOLICYCREATE * | create | ||
| ) |
Definition at line 1645 of file store.cc.
References _storerepl_entry::create, DBG_IMPORTANT, debugs, storerepl_list, _storerepl_entry::typestr, and xrealloc().
Referenced by TestUfs::commonInit().
◆ storeTooManyDiskFilesOpen()
| int storeTooManyDiskFilesOpen | ( | void | ) |
Definition at line 889 of file store.cc.
References Config, SquidConfig::max_open_disk_fds, and store_open_disk_fd.
Referenced by StoreEntry::checkCachable(), store_client::startSwapin(), and StoreEntry::swapOut().
Variable Documentation
◆ LateReleaseStack
|
static |
Definition at line 122 of file store.cc.
Referenced by StoreEntry::release(), and storeLateRelease().
◆ memStatusStr
| const char* memStatusStr[] |
◆ pingStatusStr
| const char* pingStatusStr[] |
◆ store_check_cachable_hist
| struct _store_check_cachable_hist store_check_cachable_hist |
Referenced by StoreEntry::checkCachable(), and storeCheckCachableStats().
◆ storeCheckCachableStats
|
static |
Definition at line 116 of file store.cc.
Referenced by storeRegisterWithCacheManager().
◆ storeLateRelease
|
static |
Definition at line 117 of file store.cc.
Referenced by storeInit(), and storeLateRelease().
◆ storerepl_list
|
static |
Definition at line 110 of file store.cc.
Referenced by createRemovalPolicy(), and storeReplAdd().
◆ storeStatusStr
| const char* storeStatusStr[] |
◆ swapStatusStr
| const char* swapStatusStr[] |
Definition at line 92 of file store.cc.
Referenced by StoreEntry::attachToDisk().
Introduction
- About Squid
- Why Squid?
- Squid Developers
- How to Donate
- How to Help Out
- Getting Squid
- Squid Source Packages
- Squid Deployment Case-Studies
- Squid Software Foundation
Documentation
- Quick Setup
- Configuration:
- FAQ and Wiki
- Guide Books:
- Non-English
- More...
Support
- Security Advisories
- Bugzilla Database
- Mailing lists
- Contacting us
- Commercial services
- Project Sponsors
- Squid-based products
