[bugs] [Bug 1131] New - serious performance issue with large cyrus 2.x implementations

bugs at bugs.horde.org bugs at bugs.horde.org
Fri Dec 20 15:48:44 PST 2002


http://bugs.horde.org/show_bug.cgi?id=1131

*** shadow/1131	Fri Dec 20 15:48:44 2002
--- shadow/1131.tmp.5643	Fri Dec 20 15:48:44 2002
***************
*** 0 ****
--- 1,36 ----
+ Bug#: 1131
+ Product: Horde
+ Version: 0.1 Alpha
+ Platform: All Browsers
+ OS/Version: other
+ Status: NEW   
+ Resolution: 
+ Severity: normal
+ Priority: P2
+ Component: IMP
+ Area: BUILD
+ AssignedTo: chuck@horde.org                            
+ ReportedBy: dunham@ic.ucsb.edu               
+ URL: 
+ Summary: serious performance issue with large cyrus 2.x implementations
+ 
+ in the flist() function within lib/Folder.php, the $folders var is set as
+ $folders = $prefix . '*'; where $prefix is derived from the folders setting in
+ config/servers.php. with cyrus servers the preferred config is to have the
+ folders setting empty and the namespace setting to "INBOX.". 
+ 
+ so when the flist() function is run against a cyrus server, it runs the imap
+ command '0 list "" *'. this is an inefficient call with minor performance
+ penalty on a smallish cyrus implementation, but on a largeish implementation
+ (>170k mailboxes) it's a disaster. on my brand-new 4-cpu/16GB sun v480,
+ approximately 100 imap processes running this command drove the server into the
+ ground (load average > 120).
+ 
+ the solution is to have flist() instead issue the command '0 list "" INBOX.*',
+ which i did by changing $folders setting to $folders = $namespace . "*". this of
+ course negates the use of shared folders within cyrus, but this is a pretty
+ reasonable tradeoff i think. 
+ 
+ anyhow, i'd submit a patch but i don't know how to formulate the logic so as not
+ to adversly affect non-cyrus servers or cyrus implementations with shared
+ folders. so i figured i'd leave that part to the pros....


More information about the bugs mailing list