[horde] Horde 3.1.3 and datatree related performance problems

Chris Stromsoe cbs at cts.ucla.edu
Wed Nov 15 04:21:12 PST 2006


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.


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?

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

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?

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?



-Chris


More information about the horde mailing list