[CalendarServer-changes] [2422] CalendarServer/trunk/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Wed May 14 17:23:16 PDT 2008
Revision: 2422
http://trac.macosforge.org/projects/calendarserver/changeset/2422
Author: dreid at apple.com
Date: 2008-05-14 17:23:15 -0700 (Wed, 14 May 2008)
Log Message:
-----------
Revert previous two changes because the feature won't benefit performance.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/cache.py
CalendarServer/trunk/twistedcaldav/config.py
CalendarServer/trunk/twistedcaldav/root.py
CalendarServer/trunk/twistedcaldav/test/test_cache.py
Modified: CalendarServer/trunk/twistedcaldav/cache.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/cache.py 2008-05-15 00:06:37 UTC (rev 2421)
+++ CalendarServer/trunk/twistedcaldav/cache.py 2008-05-15 00:23:15 UTC (rev 2422)
@@ -74,20 +74,16 @@
"""
CACHE_SIZE = 1000
- TOKEN_CHECK_INTERVAL = 60
propertyStoreFactory = xattrPropertyStore
- def __init__(self, docroot, cacheSize=None, tokenCheck=None):
+ def __init__(self, docroot, cacheSize=None):
self._docroot = docroot
self._responses = {}
if cacheSize is not None:
self.CACHE_SIZE = cacheSize
- if tokenCheck is not None:
- self.TOKEN_CHECK_INTERVAL = tokenCheck
-
def _tokenForURI(self, uri):
"""
Get a property store for the given C{uri}.
@@ -156,36 +152,30 @@
if key not in self._responses:
self.log_debug("Not in cache: %r" % (key,))
+ self.log_debug(" Cache Keys: %r" % (
+ self._responses.keys(),))
return None
- (principalToken,
- uriToken,
- tokenCheckTime,
- accessTime,
- response) = self._responses[key]
+ principalToken, uriToken, accessTime, response = self._responses[key]
- if self._time() - tokenCheckTime >= self.TOKEN_CHECK_INTERVAL:
- newPrincipalToken = self._tokenForURI(principalURI)
- newURIToken = self._tokenForURI(request.uri)
- tokenCheckTime = self._time()
- if newPrincipalToken != principalToken:
- self.log_debug(
- "Principal token changed on %r from %r to %r" % (
- key,
- principalToken,
- newPrincipalToken
- ))
- return None
+ newPrincipalToken = self._tokenForURI(principalURI)
+ newURIToken = self._tokenForURI(request.uri)
- elif newURIToken != uriToken:
- self.log_debug(
- "URI token changed on %r from %r to %r" % (
- key,
- uriToken,
- newURIToken
- ))
- return None
+ if newPrincipalToken != principalToken:
+ self.log_debug("Principal token changed on %r from %r to %r" % (
+ key,
+ principalToken,
+ newPrincipalToken
+ ))
+ return None
+ elif newURIToken != uriToken:
+ self.log_debug("URI token changed on %r from %r to %r" % (
+ key,
+ uriToken,
+ newURIToken
+ ))
+ return None
response[1].removeHeader('date')
@@ -195,7 +185,6 @@
self._responses[key] = (principalToken,
uriToken,
- tokenCheckTime,
self._time(),
response)
@@ -269,7 +258,6 @@
self._responses[key] = (self._tokenForURI(principalURI),
self._tokenForURI(request.uri),
self._time(),
- self._time(),
(response.code,
response.headers,
responseBody))
Modified: CalendarServer/trunk/twistedcaldav/config.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/config.py 2008-05-15 00:06:37 UTC (rev 2421)
+++ CalendarServer/trunk/twistedcaldav/config.py 2008-05-15 00:23:15 UTC (rev 2422)
@@ -194,9 +194,6 @@
# Configure the number of seconds that Propfinds should be cached for.
"ResponseCacheSize": 1000,
- # Define how frequently in seconds we should check the cache token.
- "TokenCheckInterval": 60,
-
# Profiling options
"Profiling": {
"Enabled": False,
Modified: CalendarServer/trunk/twistedcaldav/root.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/root.py 2008-05-15 00:06:37 UTC (rev 2421)
+++ CalendarServer/trunk/twistedcaldav/root.py 2008-05-15 00:23:15 UTC (rev 2422)
@@ -52,9 +52,7 @@
self.contentFilters = []
- self.responseCache = ResponseCache(self.fp,
- config.ResponseCacheSize,
- config.TokenCheckInterval)
+ self.responseCache = ResponseCache(self.fp, config.ResponseCacheSize)
if config.ResponseCompression:
from twisted.web2.filter import gzip
Modified: CalendarServer/trunk/twistedcaldav/test/test_cache.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_cache.py 2008-05-15 00:06:37 UTC (rev 2421)
+++ CalendarServer/trunk/twistedcaldav/test/test_cache.py 2008-05-15 00:23:15 UTC (rev 2422)
@@ -96,7 +96,7 @@
'/principals/users/cdaboo/': 'principalToken0',
'/principals/users/dreid/': 'principalTokenX'}
- self.rc = ResponseCache(None, tokenCheck=0)
+ self.rc = ResponseCache(None)
self.rc._tokenForURI = self.tokens.get
self.rc._time = (lambda:0)
@@ -112,7 +112,7 @@
)
self.rc._responses[expected_key] = (
- 'principalToken0', 'uriToken0', 0, 0, self.expected_response)
+ 'principalToken0', 'uriToken0', 0, self.expected_response)
self.rc._accessList = [expected_key]
@@ -258,60 +258,37 @@
return d
-# def test_cacheExpirationBenchmark(self):
-# self.rc.CACHE_SIZE = 70000
-# import time
+ def test_cacheExpirationBenchmark(self):
+ self.rc.CACHE_SIZE = 70000
+ import time
-# self.rc._responses = {}
-# self.rc._accessList = []
+ self.rc._responses = {}
+ self.rc._accessList = []
-# for x in xrange(0, self.rc.CACHE_SIZE):
-# req = StubRequest('PROPFIND',
-# '/principals/users/user%d' % (x,),
-# '/principals/users/user%d' % (x,))
-# self.rc._responses[req] = (
-# 'pTokenUser%d' % (x,), 'rTokenUser%d' % (x,), 0,
-# (200, {}, 'foobar'))
+ for x in xrange(0, self.rc.CACHE_SIZE):
+ req = StubRequest('PROPFIND',
+ '/principals/users/user%d' % (x,),
+ '/principals/users/user%d' % (x,))
+ self.rc._responses[req] = (
+ 'pTokenUser%d' % (x,), 'rTokenUser%d' % (x,), 0,
+ (200, {}, 'foobar'))
-# self.rc._accessList.append(req)
+ self.rc._accessList.append(req)
-# def assertTime(result, startTime):
-# duration = time.time() - startTime
+ def assertTime(result, startTime):
+ duration = time.time() - startTime
-# self.failUnless(
-# duration < 0.01,
-# "Took to long to add to the cache: %r" % (duration,))
+ self.failUnless(
+ duration < 0.01,
+ "Took to long to add to the cache: %r" % (duration,))
-# startTime = time.time()
+ startTime = time.time()
-# d = self.rc.cacheResponseForRequest(
-# StubRequest('PROPFIND',
-# '/principals/users/dreid/',
-# '/principals/users/dreid/'),
-# StubResponse(200, {}, 'Foobar'))
+ d = self.rc.cacheResponseForRequest(
+ StubRequest('PROPFIND',
+ '/principals/users/dreid/',
+ '/principals/users/dreid/'),
+ StubResponse(200, {}, 'Foobar'))
-# d.addCallback(assertTime, startTime)
-# return d
-
-
- def test_tokenCheckInterval(self):
- self.tokens['/principals/users/cdaboo/'] = 'principalToken1'
-
- self.rc.TOKEN_CHECK_INTERVAL = 60
-
- req = StubRequest(
- 'PROPFIND',
- '/calendars/users/cdaboo/',
- '/principals/users/cdaboo/')
-
- def _surpassInterval(result):
- self.rc._time = (lambda: 61)
- d1 = self.rc.getResponseForRequest(req)
- d1.addCallback(self.assertEquals, None)
- return d1
-
- d = self.rc.getResponseForRequest(req)
-
- d.addCallback(self.assertResponse, self.expected_response)
- d.addCallback(_surpassInterval)
+ d.addCallback(assertTime, startTime)
return d
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080514/bae03b54/attachment.html
More information about the calendarserver-changes
mailing list