6.0.0-beta1
7/9/25

[#3046] Remove all DataTree usage
Summary Remove all DataTree usage
Queue Horde Framework Packages
Queue Version HEAD
Type Enhancement
State Resolved
Priority 2. Medium
Owners Horde Developers (at)
Requester luc.germain (at) usherbrooke (dot) ca
Created 11/25/2005 (7166 days ago)
Due
Updated 12/17/2013 (4222 days ago)
Assigned
Resolved 11/13/2013 (4256 days ago)
Milestone
Patch No

History
12/17/2013 11:39:55 AM Git Commit Comment #19 Reply to this comment
Changes have been made in Git (master):

commit 0e95470023c9add22070504690173a1f4d009349
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Tue Nov 12 20:28:05 2013 -0700

     Request #3046: No longer need DataTree package

  framework/DataTree/composer.json              |   25 --
  framework/DataTree/doc/Horde/DataTree/COPYING |  458 
-------------------------
  framework/DataTree/package.xml                |   94 -----
  3 files changed, 0 insertions(+), 577 deletions(-)

http://git.horde.org/horde-git/-/commit/0e95470023c9add22070504690173a1f4d009349
12/17/2013 11:39:38 AM Git Commit Comment #18 Reply to this comment
Changes have been made in Git (master):

commit 00641d0bd849e2e4874205083b62c08634ac0d98
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Tue Nov 12 20:28:05 2013 -0700

     Request #3046: No longer need DataTree package

  framework/DataTree/composer.json              |   25 --
  framework/DataTree/doc/Horde/DataTree/COPYING |  458 
-------------------------
  framework/DataTree/package.xml                |   94 -----
  3 files changed, 0 insertions(+), 577 deletions(-)

http://git.horde.org/horde-git/-/commit/00641d0bd849e2e4874205083b62c08634ac0d98
12/17/2013 11:39:21 AM Git Commit Comment #17 Reply to this comment
Changes have been made in Git (master):

commit f4e74132cd43b577c4db9243e5974742f534a893
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Tue Nov 12 20:28:05 2013 -0700

     Request #3046: No longer need DataTree package

  framework/DataTree/composer.json              |   25 --
  framework/DataTree/doc/Horde/DataTree/COPYING |  458 
-------------------------
  framework/DataTree/package.xml                |   94 -----
  3 files changed, 0 insertions(+), 577 deletions(-)

http://git.horde.org/horde-git/-/commit/f4e74132cd43b577c4db9243e5974742f534a893
12/17/2013 11:39:03 AM Git Commit Comment #16 Reply to this comment
Changes have been made in Git (master):

commit 5cde334a8ad7529bb0e877ba814708431740fedf
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Tue Nov 12 20:28:05 2013 -0700

     Request #3046: No longer need DataTree package

  framework/DataTree/composer.json              |   25 --
  framework/DataTree/doc/Horde/DataTree/COPYING |  458 
-------------------------
  framework/DataTree/package.xml                |   94 -----
  3 files changed, 0 insertions(+), 577 deletions(-)

http://git.horde.org/horde-git/-/commit/5cde334a8ad7529bb0e877ba814708431740fedf
11/13/2013 03:29:11 AM Michael Slusarz Assigned to Horde DevelopersHorde Developers
State ⇒ Resolved
Milestone ⇒
 
11/13/2013 03:29:00 AM Git Commit Comment #15 Reply to this comment
Changes have been made in Git (master):

commit ee0da6e1ba5ff80a794f30def8ccfe67da1d9bd4
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Tue Nov 12 20:28:05 2013 -0700

     Request #3046: No longer need DataTree package

  framework/DataTree/composer.json              |   25 --
  framework/DataTree/doc/Horde/DataTree/COPYING |  458 
-------------------------
  framework/DataTree/package.xml                |   94 -----
  3 files changed, 0 insertions(+), 577 deletions(-)

http://git.horde.org/horde-git/-/commit/ee0da6e1ba5ff80a794f30def8ccfe67da1d9bd4
08/13/2008 08:45:34 AM Duck Comment #14 Reply to this comment
And now remains only Trean ... #7161


07/31/2008 05:27:25 PM Chuck Hagenbuch Comment #13 Reply to this comment
This list is now:



Auth_Signup

trean



... and we'll remove admin/datatree.php in Horde 4 when this is done.
07/31/2008 05:19:27 PM Duck Comment #12 Reply to this comment
incubator/faq/
was removed along with Horde_Template
06/22/2008 11:11:07 PM Chuck Hagenbuch Comment #11
State ⇒ Accepted
Reply to this comment
The places left that only use DataTree (i.e., no other driver is 
available) are:



Auth_Signup

admin/datatree.php (doesn't really count, but for completeness)

incubator/faq/

jonah/lib/Delivery (being deprecated once Jonah is branched)

trean



... and some assorted upgrade scripts that should be fine to break in HEAD.
06/22/2008 10:35:11 AM Duck Comment #10 Reply to this comment
We have a native SQL driver in 3.2. AFAIK the only places where we 
still use DT is Threan bookmarsks and Horde_Auth_Signup.
06/15/2007 04:52:21 PM Chuck Hagenbuch State ⇒ Stalled
 
11/21/2006 01:02:46 AM Chuck Hagenbuch Comment #9
Summary ⇒ Remove all DataTree usage
Reply to this comment
Note that the only reason this isn't high priority is that Horde 4 
isn't the top priority yet - it will move up to high as soon as 3.2 
and related apps are releases and Horde 4 development is begun in 
earnest.
11/21/2006 01:01:40 AM Chuck Hagenbuch Comment #8
Priority ⇒ 2. Medium
Version ⇒ HEAD
Reply to this comment
Making this into a general "get rid of DataTree for Horde 4.0" ticket.
12/09/2005 03:25:37 PM ben Comment #7 Reply to this comment
It does work, as long as you don't need to use anything that's in the 
horde datatree tables while using that app, like perms or groups.
12/08/2005 08:24:26 AM Jan Schneider Comment #6 Reply to this comment
Jan- have you successfully used that idea?
No, I only think it might work.
12/08/2005 05:44:08 AM Chuck Hagenbuch Comment #5
State ⇒ Accepted
Reply to this comment
Jan- have you successfully used that idea? I think it'd create 
problems if Nag were to instantiate the Perms driver, etc...
11/28/2005 05:24:33 PM Jan Schneider Comment #4 Reply to this comment
If each type of shares had its
own table (horde.shares.nag, horde.shares.kronolith), it would not
have to do the left join and generate a temporary table each time,
and it would probably better use the indexes.
That should be possible already. Try adding lines (and the according 
tables) like this to the applications' conf.php files:

$conf['datatree']['params']['table'] = 'horde_datatree_nag';

$conf['datatree']['params']['table_attributes'] = 
'horde_datatree_attributes_nag';


11/28/2005 05:09:17 PM luc (dot) germain (at) usherbrooke (dot) ca Comment #3 Reply to this comment
The permission system was one of the main reasons for writing the
DataTree backend, and we need a tree structure for permissions. Also,
now that history has been moved out, permissions is (almost) the only
thing left that uses DataTree.
When we got our performance problem, history was not activated, so 
moving out the history would not be enough. The performance problem 
with the actual permission implementation arise when there are many 
users. Our database server came to a halt after about 4000 users has 
logged in.



We found that these type of requests were the main performance problem:



SELECT c.datatree_id, c.datatree_name FROM horde_datatree c LEFT JOIN

horde_datatree_attributes a1 ON a1.datatree_id = c.datatree_id WHERE

c.group_uid = 'horde.shares.nag' AND ((a1.attribute_name = 'owner' AND

a1.attribute_value = 'myuserid') OR (a1.attribute_name = 'perm_users'

AND a1.attribute_key = 'myuserid' AND a1.attribute_value &

2) OR (a1.attribute_name = 'perm_creator' AND a1.attribute_value & 2) OR

(a1.attribute_name = 'perm_default' AND a1.attribute_value & 2))

GROUP BY c.datatree_id, c.datatree_name, c.datatree_order ORDER BY

c.datatree_order, c.datatree_name, c.datatree_id



When doing an "explain" on the mysql server, it shows that this 
request has to evaluate each time a number of entries roughly 
proportionnal to the number of users in the database (since each user 
has at least one share for each type). If each type of shares had its 
own table (horde.shares.nag, horde.shares.kronolith), it would not 
have to do the left join and generate a temporary table each time, and 
it would probably better use the indexes.



If you have another way (other than changing the database structure or 
use session caching) to improve the performance of the permission 
system with thousands of users, I'm all ears!  Right now,we are 
stucked with horde 2.2 because of this problem :(


11/25/2005 09:20:47 PM Jan Schneider Comment #2
State ⇒ Feedback
Reply to this comment
The permission system was one of the main reasons for writing the 
DataTree backend, and we need a tree structure for permissions. Also, 
now that history has been moved out, permissions is (almost) the only 
thing left that uses DataTree.
11/25/2005 08:19:07 PM luc (dot) germain (at) usherbrooke (dot) ca Comment #1
Priority ⇒ 3. High
Type ⇒ Enhancement
Summary ⇒ Move permissions data to its own table
Queue ⇒ Horde Framework Packages
State ⇒ New
Reply to this comment
Database queries for permission data in the datatree become really too 
slow when the user base reach many thousands users. Moving the 
permission data to its own table with proper indexes would greatly 
improve performance of the permission system.

Saved Queries