BIND 10 trac741, updated. 1a915fef55d9902cb4e0c5d077e9c602101419dc [trac741] Messages for the rrset cache
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Jul 1 15:42:43 UTC 2011
The branch, trac741 has been updated
via 1a915fef55d9902cb4e0c5d077e9c602101419dc (commit)
from dbe54369eb40d9ba95b8fd77859a243f076b5966 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1a915fef55d9902cb4e0c5d077e9c602101419dc
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Fri Jul 1 17:41:59 2011 +0200
[trac741] Messages for the rrset cache
-----------------------------------------------------------------------
Summary of changes:
src/lib/cache/cache_messages.mes | 20 +++++++++++++++++---
src/lib/cache/rrset_cache.cc | 27 ++++++++++++++++++++++++---
2 files changed, 41 insertions(+), 6 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/cache/cache_messages.mes b/src/lib/cache/cache_messages.mes
index 357adc5..b583487 100644
--- a/src/lib/cache/cache_messages.mes
+++ b/src/lib/cache/cache_messages.mes
@@ -44,17 +44,17 @@ $NAMESPACE isc::cache
% CACHE_RESOLVER_LOOKUP_MSG looking up message in resolver cache for %1/%2
-% CACHE_RESOLVER_LOOKUP_RRSET looking up rrset in resolver cache for %1/%2
+% CACHE_RESOLVER_LOOKUP_RRSET looking up RRset in resolver cache for %1/%2
% CACHE_RESOLVER_NO_QUESTION answer message for %1/%2 has empty question section
% CACHE_RESOLVER_LOCAL_MSG message for %1/%2 found in local zone data
-% CACHE_RESOLVER_LOCAL_RRSET rrset for %1/%2 found in local zone data
+% CACHE_RESOLVER_LOCAL_RRSET RRset for %1/%2 found in local zone data
% CACHE_RESOLVER_UPDATE_MSG updating message for %1/%2/%3
-% CACHE_RESOLVER_UPDATE_RRSET updating rrset for %1/%2/%3
+% CACHE_RESOLVER_UPDATE_RRSET updating RRset for %1/%2/%3
% CACHE_RESOLVER_UNKNOWN_CLASS_MSG no cache for class %1
@@ -65,3 +65,17 @@ $NAMESPACE isc::cache
% CACHE_RESOLVER_UPDATE_UNKNOWN_CLASS_MSG no cache for class %1
% CACHE_RESOLVER_UPDATE_UNKNOWN_CLASS_RRSET no cache for class %1
+
+% CACHE_RRSET_INIT initializing RRset cache for %2 RRsets of class %1
+
+% CACHE_RRSET_LOOKUP looking up %1/%2 in RRset cache
+
+% CACHE_RRSET_EXPIRED found expired RRset %1/%2
+
+% CACHE_RRSET_NOT_FOUND no RRset found for %1/%2
+
+% CACHE_RRSET_UPDATE updating RRset %1/%2/%3 in the cache
+
+% CACHE_RRSET_UNTRUSTED not replacing old RRset for %1/%2/%3, it has higher trust level
+
+% CACHE_RRSET_REMOVE_OLD removing old RRset for %1/%2/%3 to make space for new one
diff --git a/src/lib/cache/rrset_cache.cc b/src/lib/cache/rrset_cache.cc
index da19b6d..4a77d48 100644
--- a/src/lib/cache/rrset_cache.cc
+++ b/src/lib/cache/rrset_cache.cc
@@ -14,8 +14,9 @@
#include <config.h>
-#include <string>
#include "rrset_cache.h"
+#include "logger.h"
+#include <string>
#include <nsas/nsas_entry_compare.h>
#include <nsas/hash_table.h>
#include <nsas/hash_deleter.h>
@@ -34,20 +35,28 @@ RRsetCache::RRsetCache(uint32_t cache_size,
rrset_lru_((3 * cache_size),
new HashDeleter<RRsetEntry>(rrset_table_))
{
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, CACHE_RRSET_INIT).arg(cache_size).
+ arg(rrset_class);
}
RRsetEntryPtr
RRsetCache::lookup(const isc::dns::Name& qname,
const isc::dns::RRType& qtype)
{
+ LOG_DEBUG(logger, DBG_TRACE_DATA, CACHE_RRSET_LOOKUP).arg(qname).
+ arg(qtype);
const string entry_name = genCacheEntryName(qname, qtype);
- RRsetEntryPtr entry_ptr = rrset_table_.get(HashKey(entry_name, RRClass(class_)));
+
+ RRsetEntryPtr entry_ptr = rrset_table_.get(HashKey(entry_name,
+ RRClass(class_)));
if (entry_ptr) {
if (entry_ptr->getExpireTime() > time(NULL)) {
// Only touch the non-expired rrset entries
rrset_lru_.touch(entry_ptr);
return (entry_ptr);
} else {
+ LOG_DEBUG(logger, DBG_TRACE_DATA, CACHE_RRSET_EXPIRED).arg(qname).
+ arg(qtype);
// the rrset entry has expired, so just remove it from
// hash table and lru list.
rrset_table_.remove(entry_ptr->hashKey());
@@ -55,19 +64,31 @@ RRsetCache::lookup(const isc::dns::Name& qname,
}
}
+ LOG_DEBUG(logger, DBG_TRACE_DATA, CACHE_RRSET_NOT_FOUND).arg(qname).
+ arg(qtype);
return (RRsetEntryPtr());
}
RRsetEntryPtr
-RRsetCache::update(const isc::dns::RRset& rrset, const RRsetTrustLevel& level) {
+RRsetCache::update(const isc::dns::RRset& rrset,
+ const RRsetTrustLevel& level)
+{
+ LOG_DEBUG(logger, DBG_TRACE_DATA, CACHE_RRSET_UPDATE).arg(rrset.getName()).
+ arg(rrset.getType()).arg(rrset.getClass());
// TODO: If the RRset is an NS, we should update the NSAS as well
// lookup first
RRsetEntryPtr entry_ptr = lookup(rrset.getName(), rrset.getType());
if (entry_ptr) {
if (entry_ptr->getTrustLevel() > level) {
+ LOG_DEBUG(logger, DBG_TRACE_DATA, CACHE_RRSET_UNTRUSTED).
+ arg(rrset.getName()).arg(rrset.getType()).
+ arg(rrset.getClass());
// existed rrset entry is more authoritative, just return it
return (entry_ptr);
} else {
+ LOG_DEBUG(logger, DBG_TRACE_DATA, CACHE_RRSET_REMOVE_OLD).
+ arg(rrset.getName()).arg(rrset.getType()).
+ arg(rrset.getClass());
// Remove the old rrset entry from the lru list.
rrset_lru_.remove(entry_ptr);
}
More information about the bind10-changes
mailing list