[kronolith] performance on large systems

John Madden jmadden at ivytech.edu
Mon Jan 25 14:51:26 UTC 2010


> I would need to see the #s for MySQL, since I know it can struggle  
> with subselects, but I think there's some promise here. To be  
> committed, it would need to change to:
> 
> - restore checking of creator and default permissions somehow
> 
> - use $this->_table . '_users' instead of hardcoding kronolith_shares_users
> 
> - query the list of groups from the Horde_Groups object and generate  
> an IN() clause from that, instead of subselecting from  
> horde_groups_members (since the groups backend might not be SQL).
> 
> I'll upload your patch to the ticket for reference, regardless.

Yeah, understood, it was just a rough hack to get our install back on 
its feet.

> What do you think of the alternate approach of removing the bitmap  
> fields and storing the permission levels (show, read, write, delete)  
> separately instead?

I'm not as concerned with the bitmaps as I was before, it was more the 
joins in the end that were problematic for me.  In fact, I had to do 
quite a bit more work on this recently.  The query was still taking 
around 60-70ms to execute and even that was far too long for us.  (This 
site, incidentally, runs in the neighborhood of 20 million hits a day 
and Horde is a major component of that.)  By switching to UNIONs I was 
able to get it down into the sub-millisecond range and that seems to do 
nicely. =)

My current ./lib/Horde/Share/sql.php is attached.  It's a mess, original 
code still there and commented out so I'd rather not submit a patch off 
of this, but it's what we're running in production at the moment and 
again, it's quite fast.  If it's any help, please feel free to make use 
of it.

John






-- 
John Madden
Sr UNIX Systems Engineer
Ivy Tech Community College of Indiana
jmadden at ivytech.edu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sql.php.gz
Type: application/x-gzip
Size: 7196 bytes
Desc: not available
URL: <http://lists.horde.org/archives/kronolith/attachments/20100125/da74006c/attachment.bin>


More information about the kronolith mailing list