[Top][All Lists]

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

[Gnu-arch-users] ANNOUNCEMENT -- "timestamps" optimization

From: Tom Lord
Subject: [Gnu-arch-users] ANNOUNCEMENT -- "timestamps" optimization
Date: Sat, 13 Sep 2003 12:26:20 -0700 (PDT)

The "timestamps optimization" (more properly, the "inode siganture
optimization") is now available in tla--devo--1.1.

Here's what it does:

a) upon `commit' or `get' it records a record of inode signatures.

   In other words, when a given project tree is known to be a
   particular revision, a record is made mapping inventory tags
   to a summary of inode data (dev, ino, mtime, ctime, and size).

b) when constructing a changeset against a particular revision, the
   inode signatures are used to avoid comparing files.

   In other words, if you're comparing to revision FOO, and for a
   given file there's a record that says "This is the version in
   revision FOO so long as the dev, ino, mtime ... hasn't changed"
   then that file is presumed to not be modified.

I'm seeing a little better than a 2x speed-up in `what-changed' for my
tla trees.  I expect that the speed-up will be greater for trees using
explicit tagging and for larger trees (and on file systems that are
less efficient about small files).

There's still a bit more overhead in some places -- the new code isn't
bashful about tossing in an extra tree-traversal with stat calls on
`commit' or `get'.

I'll be interested to hear timing change results, especially on larger
and explicit mdoe trees.

Hopefully I haven't broken anything in the process -- very
conservative users may want to wait a little while for braver users to
try it out first.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]