[horde] Sharing user information between hooks
Jens Wahnes
wahnes at uni-koeln.de
Thu Oct 29 16:37:30 UTC 2015
On Mon, Oct 26 2015, at 15:01:38 +0000, Michael J Rubinsky wrote:
> Quoting Jens Wahnes <wahnes at uni-koeln.de>:
>> The reason to introduce code to write things into the session was to
>> save unnecessary LDAP requests that would otherwise have to be executed
>> in both Horde's hooks and IMP's hooks. The bulk of LDAP requests we
>> see, however, seems to stem from the fact that a complete session is
>> set up (including hooks being run) whenever there is a request through
>> CalDAV or such. And not only is a session created for the user
>> performing the CalDAV request, but also for all users that have granted
>> this user access to their calendars, plus all users that this user is
>> granting access to his or her calendars. All in all, that's a lot of
>> sessions with lots of LDAP requests. (Consider, for example, a group
>> of just 5 people granting calendar access to each other's personal
>> calendar. Then you've got 5 LDAP requests per every CalDAV request.
>> If everyone within the group is accessing all 5 calendars via CalDAV,
>> that's 5*5*5 = 125 LDAP requests for just 5 people.)
>>
>> So I came to the idea to use memcache to cache the LDAP data, since we
>> make heavy use of memcache anyways. I dug around the Horde API docs a
>> bit and came up with some code that looks like this (not exactly, but
>> close enough):
>>
>>
>> $memcache =
>> $GLOBALS['injector']->getInstance('Horde_Core_Factory_HashTable')->create($GLOBALS['injector']);
>
> This should be: $GLOBALS['injector']->getInstance('Horde_HashTable');
Thank you for pointing this out. It feels much better to have code
that interfaces with the rest of the system the way it is intended to
work. :)
However, even when using the "getInstance('Horde_HashTable')" code, the
old problem remains that the prefix for memcache keys
($conf['hashtable']['params']['prefix'] from conf.php) is not used.
Not such a big problem since I can work around that, after all, but
still leaves me with a feeling I'm not calling the Horde code
correctly. Can you shed some light on that?
> The Horde_Core_Factory_HashTable class is registered with the injector
> as the factory to use to create the hash table driver. If interested,
> this is done in Horde_Registry::__construct().
Unfortunately, I don't quite unterstand what you're trying to tell me.
Should this give me a clue as to where to look for code that does the
prefix handling? Or is it totally unrelated to that question?
Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.horde.org/archives/horde/attachments/20151029/6baa18c5/attachment.bin>
More information about the horde
mailing list