[dev] [commits] Horde branch master updated. f61fdaee6bb5fee15abe792219b02a0947925028
Chuck Hagenbuch
chuck at horde.org
Mon Jul 15 02:43:00 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>:
>>>
>>>> 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.
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?
>> Another option that doesn't preserve multi-tag filtering would be
>> to show the tags in the sidebar like we do for Trean - that'd be a
>> much lighter query at least.
>
> Yeah, I saw the sidebar tags in Trean but was it doesn't currently
> work for me. It's probably just a rampage related rewrite rule I
> need to add to lighttpd.conf to get to work. Anyway, we still also
> have the tag browser there as well (which is how I still use Trean),
> so I'm not sure how that is running faster for you (if it is - not
> sure if that is what you were suggesting). Either way, I would say
> this isn't an option for Nag since multi-tag filtering is a pretty
> big must-have for me (and at least some users since a few bug
> reports came in related to it). I'd think that even for Trean we'd
> still want to keep the tag browsing as it makes sorting through tons
> of bookmarks much easier. To me, we'd be losing both a pretty big
> advantage of using tags and something that sets our implementation
> apart from most other tag implementations - the ability to
> "navigate" based on them.
Yeah, you're right, it's a different use case.
-chuck
More information about the dev
mailing list