[kronolith] performance on large systems

Chuck Hagenbuch chuck at horde.org
Mon Jan 25 02:32:39 UTC 2010


Quoting John Madden <jmadden at ivytech.edu>:

>> This is the open bug:
>> http://bugs.horde.org/ticket/7363
>>
>> If you have optimized SQL queries for PostgreSQL, it would be great  
>> to  get this sorted once and for all.
>
> Patch attached.  Let  me know if you feel it worthy for inclusion on  
> the bug report and I'll clean it up to remove stuff rather than  
> commenting it out, etc.  Initial testing shows massive improvements  
> (kronolith page loading the week view in ~1-2 seconds vs 5-7  
> seconds) with sharing turned on.  It's a hefty change to the logic  
> so it certainly needs someone with a better Horde background to look  
> it over.  It skips over the intelligence of Horde's DB agnostics but  
> should work on anything that supports joins and sub-selects.

I apologize for taking so long to look at this.

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.

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

Thanks,
-chuck


More information about the kronolith mailing list