Re: [RFC/PATCH] gitweb: Paginate project list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 13, 2008 at 7:04 PM, Jakub Narebski <jnareb@xxxxxxxxx> wrote:
> On Tue, 13 May 2008, Lars Hjemli wrote:
>  > On Tue, May 13, 2008 at 8:55 AM, Jakub Narebski <jnareb@xxxxxxxxx> wrote:
>  >>
> >> But please take into account that gitweb performance, and I guess any
>  >> git web interface performance, is I/O bound and not CPU bound (at least
>  >> according to what I remember from J.H. emails).  So a little more
>  >> processing is I think less important than avoiding hitting the repos.
>  >
>  > Yeah, that's a pretty convincing argument for "cache the data, not the
>  > output", at least for gitweb (cgit never touches the repos to generate
>  > the project list/search).
>
>  First, this is less argument for "cache data" against "cache output",
>  only against disregarding "cache data" for assumed performance reasons,
>  while it "cache data" can be useful in some places.

Ok, then I misinterpreted your argument.


>  Second, gitweb's projects list page contains "Last Changed" column,
>  and you _*have*_ to hit repositories for this data

No you don't. One alternative is to use the post-update hook in each
repo to update a separate file with info about last-changed-time.
Another (less accurate) alternative is to stat one or more of
packed-refs and refs/heads/*; cgit uses both of these alternatives to
avoid hitting the repo (i.e. object-db) when the project list/search
page is generated.

--
larsh
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux