From: Otto Moerbeek Date: Sun, 6 Feb 2022 15:25:12 +0000 (+0100) Subject: Format cachecleaner X-Git-Tag: rec-4.7.0-beta1~23^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4482f39f03f3c004a9329438cf31b13b7c3c62f1;p=thirdparty%2Fpdns.git Format cachecleaner --- diff --git a/.not-formatted b/.not-formatted index bd02248857..11b45e5514 100644 --- a/.not-formatted +++ b/.not-formatted @@ -24,7 +24,6 @@ ./pdns/bindparserclasses.hh ./pdns/bpf-filter.cc ./pdns/bpf-filter.hh -./pdns/cachecleaner.hh ./pdns/calidns.cc ./pdns/capabilities.cc ./pdns/cdb.cc diff --git a/pdns/cachecleaner.hh b/pdns/cachecleaner.hh index 018e2a4457..578b469094 100644 --- a/pdns/cachecleaner.hh +++ b/pdns/cachecleaner.hh @@ -29,7 +29,8 @@ // this function can clean any cache that has a getTTD() method on its entries, a preRemoval() method and a 'sequence' index as its second index // the ritual is that the oldest entries are in *front* of the sequence collection, so on a hit, move an item to the end // and optionally, on a miss, move it to the beginning -template void pruneCollection(C& container, T& collection, size_t maxCached, size_t scanFraction = 1000) +template +void pruneCollection(C& container, T& collection, size_t maxCached, size_t scanFraction = 1000) { const time_t now = time(nullptr); size_t toTrim = 0; @@ -41,13 +42,13 @@ template void pruneCollection(C& container, auto& sidx = collection.template get(); - // two modes - if toTrim is 0, just look through 1/scanFraction of all records + // two modes - if toTrim is 0, just look through 1/scanFraction of all records // and nuke everything that is expired // otherwise, scan first 5*toTrim records, and stop once we've nuked enough const size_t lookAt = toTrim ? 5 * toTrim : cacheSize / scanFraction; size_t tried = 0, erased = 0; - for (auto iter = sidx.begin(); iter != sidx.end() && tried < lookAt ; ++tried) { + for (auto iter = sidx.begin(); iter != sidx.end() && tried < lookAt; ++tried) { if (iter->getTTD() < now) { iter = sidx.erase(iter); erased++; @@ -75,44 +76,49 @@ template void pruneCollection(C& container, } // note: this expects iterator from first index -template void moveCacheItemToFrontOrBack(T& collection, typename T::iterator& iter, bool front) +template +void moveCacheItemToFrontOrBack(T& collection, typename T::iterator& iter, bool front) { typedef typename T::template index::type sequence_t; - sequence_t& sidx=collection.template get(); - typename sequence_t::iterator si=collection.template project(iter); - if(front) + sequence_t& sidx = collection.template get(); + typename sequence_t::iterator si = collection.template project(iter); + if (front) sidx.relocate(sidx.begin(), si); // at the beginning of the delete queue else - sidx.relocate(sidx.end(), si); // back + sidx.relocate(sidx.end(), si); // back } -template void moveCacheItemToFront(T& collection, typename T::iterator& iter) +template +void moveCacheItemToFront(T& collection, typename T::iterator& iter) { moveCacheItemToFrontOrBack(collection, iter, true); } -template void moveCacheItemToBack(T& collection, typename T::iterator& iter) +template +void moveCacheItemToBack(T& collection, typename T::iterator& iter) { moveCacheItemToFrontOrBack(collection, iter, false); } -template uint64_t pruneLockedCollectionsVector(std::vector& maps) +template +uint64_t pruneLockedCollectionsVector(std::vector& maps) { uint64_t totErased = 0; time_t now = time(nullptr); - for(auto& mc : maps) { + for (auto& mc : maps) { auto map = mc.d_map.write_lock(); uint64_t lookAt = (map->size() + 9) / 10; // Look at 10% of this shard uint64_t erased = 0; auto& sidx = boost::multi_index::get(*map); - for(auto i = sidx.begin(); i != sidx.end() && lookAt > 0; lookAt--) { - if(i->ttd < now) { + for (auto i = sidx.begin(); i != sidx.end() && lookAt > 0; lookAt--) { + if (i->ttd < now) { i = sidx.erase(i); erased++; - } else { + } + else { ++i; } } @@ -122,7 +128,8 @@ template uint64_t pruneLockedCollectionsVector(std::vec return totErased; } -template uint64_t pruneMutexCollectionsVector(C& container, std::vector& maps, uint64_t maxCached, uint64_t cacheSize) +template +uint64_t pruneMutexCollectionsVector(C& container, std::vector& maps, uint64_t maxCached, uint64_t cacheSize) { time_t now = time(nullptr); uint64_t totErased = 0; @@ -134,7 +141,8 @@ template uint64_t pruneMutexCollectionsVect if (cacheSize > maxCached) { toTrim = cacheSize - maxCached; lookAt = 5 * toTrim; - } else { + } + else { lookAt = cacheSize / 10; } @@ -154,7 +162,8 @@ template uint64_t pruneMutexCollectionsVect i = sidx.erase(i); erased++; --content.d_entriesCount; - } else { + } + else { ++i; } @@ -198,11 +207,12 @@ template uint64_t pruneMutexCollectionsVect return totErased; } -template uint64_t purgeLockedCollectionsVector(std::vector& maps) +template +uint64_t purgeLockedCollectionsVector(std::vector& maps) { - uint64_t delcount=0; + uint64_t delcount = 0; - for(auto& mc : maps) { + for (auto& mc : maps) { auto map = mc.d_map.write_lock(); delcount += map->size(); map->clear(); @@ -211,20 +221,21 @@ template uint64_t purgeLockedCollectionsVector(std::vector& maps return delcount; } -template uint64_t purgeLockedCollectionsVector(std::vector& maps, const std::string& match) +template +uint64_t purgeLockedCollectionsVector(std::vector& maps, const std::string& match) { - uint64_t delcount=0; + uint64_t delcount = 0; std::string prefix(match); - prefix.resize(prefix.size()-1); + prefix.resize(prefix.size() - 1); DNSName dprefix(prefix); - for(auto& mc : maps) { + for (auto& mc : maps) { auto map = mc.d_map.write_lock(); auto& idx = boost::multi_index::get(*map); auto iter = idx.lower_bound(dprefix); auto start = iter; - for(; iter != idx.end(); ++iter) { - if(!iter->qname.isPartOf(dprefix)) { + for (; iter != idx.end(); ++iter) { + if (!iter->qname.isPartOf(dprefix)) { break; } delcount++; @@ -235,13 +246,14 @@ template uint64_t purgeLockedCollectionsVector(std::vec return delcount; } -template uint64_t purgeExactLockedCollection(T& mc, const DNSName& qname) +template +uint64_t purgeExactLockedCollection(T& mc, const DNSName& qname) { - uint64_t delcount=0; + uint64_t delcount = 0; auto map = mc.d_map.write_lock(); auto& idx = boost::multi_index::get(*map); auto range = idx.equal_range(qname); - if(range.first != range.second) { + if (range.first != range.second) { delcount += distance(range.first, range.second); idx.erase(range.first, range.second); } @@ -249,7 +261,7 @@ template uint64_t purgeExactLockedCollection(T& mc, con return delcount; } -template +template bool lruReplacingInsert(Index& i, const typename Index::value_type& x) { auto inserted = i.insert(x); diff --git a/pdns/recpacketcache.cc b/pdns/recpacketcache.cc index 6d9bae7494..697e56de71 100644 --- a/pdns/recpacketcache.cc +++ b/pdns/recpacketcache.cc @@ -92,8 +92,8 @@ bool RecursorPacketCache::checkResponseMatches(std::pair OptPBData; - RecursorPacketCache(size_t maxsize) - : d_maxSize(maxsize) + RecursorPacketCache(size_t maxsize) : + d_maxSize(maxsize) { } diff --git a/pdns/recursordist/rec-main.cc b/pdns/recursordist/rec-main.cc index 2af4fb2f1a..8f6afb7338 100644 --- a/pdns/recursordist/rec-main.cc +++ b/pdns/recursordist/rec-main.cc @@ -2707,7 +2707,7 @@ string doTraceRegex(vector::const_iterator begin, vector::const_ static uint64_t* pleaseWipePacketCache(const DNSName& canon, bool subtree, uint16_t qtype) { - return new uint64_t(t_packetCache ? 0 : t_packetCache->doWipePacketCache(canon, qtype, subtree)); + return new uint64_t(t_packetCache ? t_packetCache->doWipePacketCache(canon, qtype, subtree) : 0); } struct WipeCacheResult wipeCaches(const DNSName& canon, bool subtree, uint16_t qtype)