[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