Summary | optimized sql Share driver |
Queue | Horde Framework Packages |
Queue Version | HEAD |
Type | Enhancement |
State | Resolved |
Priority | 2. Medium |
Owners | chuck (at) horde (dot) org, mrubinsk (at) horde (dot) org |
Requester | duck (at) obala (dot) net |
Created | 01/14/2008 (6331 days ago) |
Due | |
Updated | 04/30/2008 (6224 days ago) |
Assigned | 04/13/2008 (6241 days ago) |
Resolved | 04/30/2008 (6224 days ago) |
Milestone | 3.2 |
Patch | Yes |
State ⇒ Resolved
thanks to Duck for getting this started and to Michael R. for all the
help testing and for writing the migration scripts.
Assigned to Michael Rubinsky
Taken from Duck
Taken from
you have it done, right?
share is still created. Like the default user calendar. Performing
the select joins the users/group table. But those two tables will be
always empty. So I add a check to avoid the JOIN.
those tables if no_sharing is enabled? Actually I think it should be
removed, since even if users aren't allowed to control who sees their
shares, someone might create system shares that everyone sees.
can you explain what the check in Horde_Share_sql::_getShareCriteria
against $conf['share']['no_sharing'] is for? It doesn't appear in the
other backends, and I'm inclined to remove it here also unless
there's a reason I'm missing.
is still created. Like the default user calendar. Performing the
select joins the users/group table. But those two tables will be
always empty. So I add a check to avoid the JOIN.
Assigned to Duck
can you explain what the check in Horde_Share_sql::_getShareCriteria
against $conf['share']['no_sharing'] is for? It doesn't appear in the
other backends, and I'm inclined to remove it here also unless there's
a reason I'm missing.
- conf.xml entry (done, just waiting for full functionality)
- docs/UPGRADING entries Mnemo, Nag
So..to update the summary:
- datatree-to-sql upgrade scripts for Ingo, Kronolith, Mnemo, Nag
- conf.xml entry (done, just waiting for full functionality)
- docs/UPGRADING entries Ingo, Kronolith, Mnemo, Nag
complete them.
- datatree-to-sql upgrade scripts for Ingo, Kronolith, Mnemo, Nag, Turba
- conf.xml entry (done, just waiting for full functionality)
- docs/UPGRADING entries
scripts (both for creating the tables and migration).
Assigned to Chuck Hagenbuch
Assigned to
State ⇒ Assigned
- sql scripts for Ingo, Kronolith (done), Mnemo, Nag, Turba
- datatree-to-sql upgrade scripts for Ingo, Kronolith, Mnemo, Nag, Turba
- conf.xml entry (done, just waiting for full functionality)
- docs/UPGRADING entries
I'm working at this, but help is certainly welcome. If anyone else
wants to/can jump in here, please just add a note here so we don't
overlap.
remove the REPLACE INTO statement so it works in more than MySQL.
State ⇒ Accepted
New Attachment: sql.diff
- Fix unsetting the permissions for guest/default/creator.
- Don't avoid permission check with attributes.
$conf['shares'] array?
$conf['shares'] array?
settings look like for this driver?
configuration (with split write support). All you need is to create
additional tables per very share group. Like is already attached here
in horde.shares.genie.sql. You must just change the prefix by scope
name and add attributes columns if needed. I am attaching another
example for Kronolith. Structures for each application can be bundled
with application sql structure.
State ⇒ Feedback
settings look like for this driver?
Priority ⇒ 2. Medium
Milestone ⇒ 3.2
Patch ⇒ Yes
New Attachment: sql[7].php
_getShareCriteria I discovered while trying to port it to Ansel.
Horde_Share_Object_sqlmini is us just a hack, and can be completely
omitted. Is a fact that all applications fetches the list only to get
the share id, name and owner. All other actions are done on a single
share object. Only Kronolith uses the results from listShares for
permission checking. So it would be better to remove
Horde_Share_Object_sqlmini and add a method to return an indexed array
for share names/owners as we already discussed some time ago in the
list.
horde.shares.genie.sql, right?
horde.shares.genie.sql, right?
New Attachment: sql[6].php
New Attachment: sql[5].php
data (id,name,owner) to work with share listing in panels etc lower
the ram usage with 5.200 entries from 18M to 7M.
Tried with indexed arrays and noticed that uses even 1M less.
New Attachment: sql[4].php
finaly can list all 5.200 wish-list without timeout. With this I
think is the last thing I can do without share api changes. Now I am
just wainting mysql to use indexes for bitwise operators.
Duck
New Attachment: sql[3].php
- Add perm_extra columns to mark if the share has any additional user
or group definition. So we avoid queries for shares that don't have
them set. In a lot of occasions we need only one query to get the
entire share list.
New Attachment: sql[2].php
the db for ids and then select the data, but pick the data directly
New Attachment: horde.shares.genie.sql
Create tables, transfers data, and delete old datatree entries. Just
replace the string genie with appropriate share name. Unfortunately
uses subselect so it will probably work with mysql only.
New Attachment: sql[1].php
Seems to work with kronolith, nag, mnemo and genie.
New Attachment: shareimport-genie.sql
With little modification it should work for all shares groups.
State ⇒ New
Priority ⇒ 1. Low
Type ⇒ Enhancement
Summary ⇒ optimized sql Share driver
Queue ⇒ Horde Framework Packages
New Attachment: sql.php
- data splited per tables
- split read support