[CalendarServer-changes] [7559] CalendarServer/trunk/calendarserver/tools/calverify.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Jun 6 08:22:55 PDT 2011
Revision: 7559
http://trac.macosforge.org/projects/calendarserver/changeset/7559
Author: cdaboo at apple.com
Date: 2011-06-06 08:22:53 -0700 (Mon, 06 Jun 2011)
Log Message:
-----------
Optimize the big query and include some timing info.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/tools/calverify.py
Modified: CalendarServer/trunk/calendarserver/tools/calverify.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/calverify.py 2011-06-05 22:11:20 UTC (rev 7558)
+++ CalendarServer/trunk/calendarserver/tools/calverify.py 2011-06-06 15:22:53 UTC (rev 7559)
@@ -57,6 +57,7 @@
import collections
import os
import sys
+import time
def usage(e=None):
if e:
@@ -172,13 +173,17 @@
"""
print "\n---- Finding calendar homes with no directory record ----"
+ if self.options["verbose"]:
+ t = time.time()
uids = yield self.getAllHomeUIDs()
+ if self.options["verbose"]:
+ print "getAllHomeUIDs time: %.1fs" % (time.time() - t,)
missing = []
uids_len = len(uids)
uids_div = 1 if uids_len < 100 else uids_len / 100
for ctr, uid in enumerate(uids):
- if self.options["verbose"] and divmod(ctr+1, uids_div)[1] == 0:
+ if self.options["verbose"] and divmod(ctr, uids_div)[1] == 0:
print "%d of %d (%d%%)" % (
ctr+1,
uids_len,
@@ -220,13 +225,11 @@
kwds = { "UID" : uid }
rows = (yield Select(
[Count(co.RESOURCE_ID),],
- From=ch.join(cb.join(co)),
- Where=(
- ch.OWNER_UID == Parameter("UID")).And(
- ch.RESOURCE_ID == cb.CALENDAR_HOME_RESOURCE_ID).And(
- cb.BIND_MODE == _BIND_MODE_OWN).And(
- cb.CALENDAR_RESOURCE_ID == co.CALENDAR_RESOURCE_ID
- )
+ From=ch.join(
+ cb, type="inner", on=(ch.RESOURCE_ID == cb.CALENDAR_HOME_RESOURCE_ID).And(
+ cb.BIND_MODE == _BIND_MODE_OWN)).join(
+ co, type="inner", on=(cb.CALENDAR_RESOURCE_ID == co.CALENDAR_RESOURCE_ID)),
+ Where=(ch.OWNER_UID == Parameter("UID"))
).on(self.txn, **kwds))
returnValue(int(rows[0][0]) if rows else 0)
@@ -241,7 +244,11 @@
self.end.offsetYear(1)
self.fix = fix
+ if self.options["verbose"]:
+ t = time.time()
rows = yield self.getAllResourceInfo(self.start)
+ if self.options["verbose"]:
+ print "getAllResourceInfo time: %.1fs" % (time.time() - t,)
print "Number of events to process: %s" % (len(rows,))
# Split into organizer events and attendee events
@@ -275,15 +282,14 @@
kwds = { "Start" : pyCalendarTodatetime(start) }
rows = (yield Select(
[ch.OWNER_UID, co.RESOURCE_ID, co.ICALENDAR_UID, co.MD5, co.ORGANIZER,],
- From=ch.join(cb).join(co).join(tr, type='left', on=(co.RESOURCE_ID == tr.CALENDAR_OBJECT_RESOURCE_ID)),
- Where=(
- ch.RESOURCE_ID == cb.CALENDAR_HOME_RESOURCE_ID ).And(
- cb.CALENDAR_RESOURCE_ID == co.CALENDAR_RESOURCE_ID ).And(
- cb.BIND_MODE == _BIND_MODE_OWN).And(
- (tr.START_DATE >= Parameter("Start")).Or(co.RECURRANCE_MAX == '1900-01-01')).And(
- cb.CALENDAR_RESOURCE_NAME != "inbox").And(
- co.ORGANIZER != ""
- ),
+ From=ch.join(
+ cb, type="inner", on=(ch.RESOURCE_ID == cb.CALENDAR_HOME_RESOURCE_ID)).join(
+ co, type="inner", on=(cb.CALENDAR_RESOURCE_ID == co.CALENDAR_RESOURCE_ID).And(
+ cb.BIND_MODE == _BIND_MODE_OWN).And(
+ cb.CALENDAR_RESOURCE_NAME != "inbox").And(
+ co.ORGANIZER != "")).join(
+ tr, type="left", on=(co.RESOURCE_ID == tr.CALENDAR_OBJECT_RESOURCE_ID)),
+ Where=(tr.START_DATE >= Parameter("Start")).Or(co.RECURRANCE_MAX == "1900-01-01"),
GroupBy=(ch.OWNER_UID, co.RESOURCE_ID, co.ICALENDAR_UID, co.MD5, co.ORGANIZER,),
).on(self.txn, **kwds))
returnValue(tuple(rows))
@@ -306,7 +312,7 @@
# Test organized events
for ctr, organizerEvent in enumerate(self.organized):
- if self.options["verbose"] and divmod(ctr+1, organizer_div)[1] == 0:
+ if self.options["verbose"] and divmod(ctr, organizer_div)[1] == 0:
print "%d of %d (%d%%) Missing: %d Mismatched: %s" % (
ctr+1,
organized_len,
@@ -423,7 +429,7 @@
for ctr, attendeeEvent in enumerate(self.attended):
- if self.options["verbose"] and divmod(ctr+1, attended_div)[1] == 0:
+ if self.options["verbose"] and divmod(ctr, attended_div)[1] == 0:
print "%d of %d (%d%%) Missing: %d Mismatched: %s" % (
ctr+1,
attended_len,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110606/43380e20/attachment.html>
More information about the calendarserver-changes
mailing list