Revision
6479
Author
cdaboo@apple.com
Date
2010-10-28 07:27:52 -0700 (Thu, 28 Oct 2010)

Log Message

Do not do depth infinity scans into regular collections (which include dropbox which is very expensive to scan right now).
This fixes a bad performance regeression when PUT'ing data.

Modified Paths

Diff

Modified: CalendarServer/trunk/twistedcaldav/resource.py (6478 => 6479)


--- CalendarServer/trunk/twistedcaldav/resource.py	2010-10-28 01:49:29 UTC (rev 6478)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2010-10-28 14:27:52 UTC (rev 6479)
@@ -986,9 +986,13 @@
                         continue
                 if child.isSpecialCollection(type):
                     callback(child, childpath)
-                elif child.isCollection():
-                    if depth == "infinity":
-                        yield child.findSpecialCollectionsFaster(type, depth, request, callback, privileges)                
+                    
+                # No more regular collections. If we leave this in then dropbox is scanned at depth:infinity
+                # and that is very painful as it requires scanning all calendar resources too. Eventually we need
+                # to fix drop box and probably re-enable this for the generic case.
+#                elif child.isCollection():
+#                    if depth == "infinity":
+#                        yield child.findSpecialCollectionsFaster(type, depth, request, callback, privileges)                
 
     findSpecialCollections = findSpecialCollectionsFaster