[dev] [commits] Horde branch master updated. f61fdaee6bb5fee15abe792219b02a0947925028
Chuck Hagenbuch
chuck at horde.org
Tue Jul 16 04:21:05 UTC 2013
Quoting Michael J Rubinsky <mrubinsk at horde.org>:
> Quoting Chuck Hagenbuch <chuck at horde.org>:
>
>> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>>
>>> Quoting Chuck Hagenbuch <chuck at horde.org>:
>>>
>>>> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>>>>
>>>>> Quoting Chuck Hagenbuch <chuck at horde.org>:
>>>>>
>>>>>> The branch "master" has been updated.
>>>>>> The following is a summary of the commits.
>>>>>>
>>>>>> from: 5643dee22aa524776bd6caf14625c3acc3858002
>>>>>>
>>>>>> f61fdae Right now _getRelatedTags() is the difference between
>>>>>> my task list loading in .5 seconds and it taking 4-5 seconds to
>>>>>> load, even after the Horde_History cache improvements. It also
>>>>>> is getting tags that aren't from the current view because
>>>>>> Future tasks aren't accounted for.
>>>>>>
>>>>>> -----------------------------------------------------------------------
>>>>>>
>>>>>> commit f61fdaee6bb5fee15abe792219b02a0947925028
>>>>>> Author: Chuck Hagenbuch <chuck at horde.org>
>>>>>> Date: Wed Jul 3 00:33:57 2013 -0400
>>>>>>
>>>>>> Right now _getRelatedTags() is the difference between my task
>>>>>> list loading in .5
>>>>>> seconds and it taking 4-5 seconds to load, even after the
>>>>>> Horde_History cache
>>>>>> improvements. It also is getting tags that aren't from the
>>>>>> current view because
>>>>>> Future tasks aren't accounted for.
>>>>>>
>>>>>> I think if we want to keep the related tasks top bar, we need
>>>>>> to put that list
>>>>>> together as we go through the list of tasks, where we're
>>>>>> already fetching the
>>>>>> tags for each task and displaying them next to each one.
>>>>>> That'll avoid a *lot*
>>>>>> of unnecessary queries.
>>>>>
>>>>> This may be true, but can you wait until there is some fix in
>>>>> place before removing it in the stable git branch? This way, we
>>>>> won't accidentally remove this functionality from the next bug
>>>>> fix release.
>>>>>
>>>>> FWIW, this is also the same mechanism that we use in all the
>>>>> apps that use tags-as-navigation such as Trean and Ansel. I
>>>>> think we need to improve either Content_Tagger or
>>>>> Core_TagBrowser instead of moving the browsing functionality out
>>>>> of it and into the application-land code.
>>>>
>>>> Yeah, I saw that it was the same mechanism, and agree it needs to
>>>> be improved. Is this really that useful a feature right now
>>>> though that we need to keep it in exchange for pages loading 8x
>>>> slower? It just seems to filter the existing view, and I'm not
>>>> sure that filtering tasks by multiple tag criteria is that
>>>> useful. Obviously there might be another use case out there that
>>>> heavily uses tagging to organize a ton of tasks, but anyone doing
>>>> that right now is going to spend a LOT of time waiting.
>>>
>>> Well, I use it :) I use it as a quasi GTD workflow. It allows me
>>> to easily do things like "show me all the tasks that I can do at
>>> home (since I have a "Home" tag), now , out of those tasks, show
>>> me the tasks I can do that are related to TaskOne, now show me the
>>> "next action" that needs to be taken on that task etc... It's
>>> something I started doing when I was using RTM and the reason I
>>> added tags and smart lists to Nag in the first place - I felt
>>> dirty using a non-Horde solution ;). By naming my "project tags",
>>> "location tags", and "requirement tags" a consistent way it is a
>>> very versatile way of diving into a task list depending on your
>>> current "context" - the combination of things like current
>>> location, tools available, project due dates etc...
>>
>> Okay, that makes sense to me as a use case.
>>
>>> I don't really see any slow down; the task lists load fine for me
>>> in approximately the same amount of time with or without the tag
>>> browser, but maybe that is because I don't use a ton of different
>>> tags, just a consistent handful. Though I do see that there are
>>> improvements that need to be made.
>>
>> I don't have a lot of tags in Nag, but for each one, it triggers a
>> listTasks() call again, which reloads the full task list, which
>> hits Horde_History, etc. Things got better when I added memcache
>> caching to Horde_History, which was my first attempt to track down
>> the slow-loading task list page, but even if they're all fast
>> memcache hits, ~5,000 Horde_History lookups (which is what I see
>> when the tag browser is loaded) is just slow.
>
> A related question is this - Why do we need to query the history at
> all just to display the tasklist? The created/modified data isn't
> used anywhere on the list view. We should add parameters to listTags
> to disable this.
>
>> So if we can't make this something that's calculated over the list,
>> which would make it one-pass, I think we need to modify
>> Nag_TagBrowser to use something else to do the searches so that
>> it's not doing a full tasklist load. Is that just dropping in
>> another object instead of Nag_Search inside Nag_TagBrowser?
>
> I've already fixed the cause of the multiple search calls in
> Horde_Core_Tagger/Horde_Core_TagBrowser. Did you see those commits?
> This alone should significantly speed this up for you. We should
> still look at improving the speed by not doing History lookups
> unless absolutely necessary as well though.
The task list is loading even faster now, even with the tag browser. Thanks!
-chuck
More information about the dev
mailing list