[horde] Horde 3.1.3 and datatree related performance problems

Jan Schneider jan at horde.org
Fri Nov 17 10:13:04 PST 2006


Zitat von Chris Stromsoe <cbs at cts.ucla.edu>:

> I'm in the process of updating from a Horde 3.0 based configuration  
> to a Horde 3.1 based configuration.  I've duplicated production  
> infrastructure onto a development system, run the upgrade scripts,  
> and am now testing.
>
> My "new" system is running Horde 3.1.3, IMP 4.1.3, Kronolith 2.1.3,  
> Turba 2.1.3, and Nag 2.1.2.  I'm using files for session management,  
> Postgresql 8.1.5 for sql (prefs and datatree).  I'm front-ending  
> Horde with Apache 2.0.59 and PHP 5.1.6.
>
> I'm having fairly severe datatree related performance problems.
>
> With datatree driver set to "sql", the sidebar fails to load.  I'm  
> seeing SQL queries in the logs that look like:
>
>   SELECT datatree_id, datatree_parents FROM horde_datatree WHERE
>   datatree_id IN (XXXXXXXX) AND group_uid = 'horde.shares.kronolith';
>
> where the XXXXXXXX is roughly 12,000+ integers, that take roughly  
> 24000ms to complete, and others like:
>
>   SELECT datatree_id, attribute_name AS name, attribute_key AS "key",
>   attribute_value AS value FROM horde_datatree_attributes WHERE
>   datatree_id IN (XXXXXXXX)
>
> where the XXXXXXXX is as above, that take roughly 360,000ms to complete.
>
> PHP eventually times out and the sidebar never finishes loading.   
> All of the applications in the main frame work fine, except for  
> Kronolith. Attempts to use Kronolith result in similar timeouts.
>
> If I disable Kronolith, the sidebar loads and all of the  
> applications work fine.
>
> If I disable the datatree, Kronolith works great, but I can't add  
> any new events to Nag.

This should not happen with the latest Nag version. Do you really use 2.1.2?

> I have 36581 rows in the horde_datatree table.  I have 122,728 rows  
> in horde_datatree_attributes.  I have already run the script that  
> splits out the history into a separate table.
>
>
> 1) Are there any patches to Nag in cvs/snapshots that remove the  
> dependency on the datatree?

See above, this should work fine.

> 2) What do I actually lose if I disable the datatree?

The ability to share calendars, task lists, etc., and set permissions,  
use groups.

> 3) What are the above queries trying to do?  Are there any patches  
> floating around that flatten the datatree queries and do the login  
> as php code?

In CVS HEAD there is code to cache shares and groups so that at least  
these queries are only necessary once per login. There are also some  
patches to flatten the DataTree structure in bugs.horde.org, but these  
are untested.

> 4) Is it possible to disable the datatree for a single application  
> (in this case, Kronolith only), but let the others that need it use  
> it?

Not really, though if you search the bug tracker and mailing list  
archive you might find some information how to split the datatree into  
several tables.

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the horde mailing list