From: "Shawn O. Pearce" <spearce@spearce.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>, git@vger.kernel.org
Subject: Re: Show of hands, how many set USE_NSEC
Date: Fri, 8 Aug 2008 10:52:47 -0700 [thread overview]
Message-ID: <20080808175247.GH9152@spearce.org> (raw)
In-Reply-To: <alpine.LFD.1.10.0808081027590.3462@nehalem.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Fri, 8 Aug 2008, Shawn O. Pearce wrote:
> >
> > Really I'd just like to scrap the entire DIRC file format and do
> > it over again. Having the flat namespace is nuts.
>
> I really disagree, because you have no clue about performance.
Actually, I do have half a clue. I just haven't convinced you of
that yet. Something to aspire to.
> The flat file format is absolutely _critical_ for performance.
I know, I agree.
> The point is, the index file absolutely *HAS* to be a single file in order
> to perform well in a big project. Otherwise there's no point, and you
> might as well just use a git "tree" object for everything.
Yes, it _has_ to be a single file, at the root of the directory tree.
I agree with that design decision entirely.
That single file however does not need to be structured internallyy
the way it is.
> Now, if you talk about the _sorting_ order (as opposed to the flatness of
> the file), I could probably agree. The sort order was probably a mistake.
> That said, we're stuck with it. You can't change it without changing the
> tree object format, so it's not just an "local index file" format issue.
I was talking about something like the 'TREE' extension. If we
used a format such as:
index_file:: tree
tree:: entry_count sha1_id record*
record:: mode pathlen path (tree | file)
file:: sha1_id ctime mtime ....
And sorted the entries within each tree record by their path (or
path+mode in "Git style") then we wind up with all records in the
index file in the same order they are today, and we don't have the
big redundant path strings like "src/a.c", "src/b.c", "src/c.c".
This may actually create a _smaller_ index file, resulting in a
few less minor page faults as we read it in.
--
Shawn.
next prev parent reply other threads:[~2008-08-08 17:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-08 16:34 Show of hands, how many set USE_NSEC Shawn O. Pearce
2008-08-08 16:55 ` Johannes Schindelin
2008-08-08 16:57 ` Shawn O. Pearce
2008-08-08 17:42 ` Linus Torvalds
2008-08-08 17:52 ` Shawn O. Pearce [this message]
2008-08-08 18:00 ` Linus Torvalds
2008-08-13 20:01 ` Robin Rosenberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080808175247.GH9152@spearce.org \
--to=spearce@spearce.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).