gnu-arch-users
[Top][All Lists]
Advanced

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

[Gnu-arch-users] Preliminary Arch Cache available


From: Aaron Bentley
Subject: [Gnu-arch-users] Preliminary Arch Cache available
Date: Mon, 13 Sep 2004 09:17:13 -0400
User-agent: Mozilla Thunderbird 0.5 (X11/20040309)

Hi all,

Over this weekend, I've added support for a persistent, disk-based, local cache to Arch.

It's intended to be a general cache of persistent data, as I discussed w/Tom. Right now, I've implemented it at the archive level, but it could be applied to higher levels. The goal of archive caching is to avoid downloading the same data multiple times.

It provides an alternative to partial mirrors, for connected operation

Comparison with partial mirrors:
Pro:
1. Always up to date
2. Never downloads anything you don't need
3. Allows you to commit

Con:
4. Still requires a connection before using the cache

How to get and use it:
get it from here:

address@hidden/tlasrc--cache--0
http://sourcecontrol.net/~abentley/archives/tlasrc/

tell Arch where your cache belongs:
echo $ANYPATH > ~/.arch-params/=arch-cache

Register an archive for use with cache:
tla register-archive -f cache:http://sourcecontrol.net/~abentley/archives/tlasrc/

Only archives with cache: preceeding their normal URL will be cached.

Status of the code:
The caching code is only active for archives with cached: in their URLs. It's new code, and changes to existing files are very minimal. Furthermore, most of the new code is just wrapper code. I modified the test suite to use cached: URLs everywhere, and it passes the test suite.

However, there may be changes yet to the Arch Cache namespace, so your cached data may become obsolete in a future.

It's based on my development branch, containing the backbuilder and other changes, like commit --base. If you don't want those, you can do
this, instead:

# Actually, any tla more recent than 1.1 should work
$ tla get address@hidden/tla--devo--1.2 cache
$ cd cache
$ tla apply-delta address@hidden/tlasrc--cache--0--patch-2 $(tla revisions -f address@hidden/tlasrc--cache--0|tail -n 1)

What's missing:
- Ancestry data is not cached
- Revision type data is not cached
- Lazy initialization would be very nice (there are issues with this that I'll detail in a followup email) - If a cacherev is downloaded, it should still be usable if the cacherev is removed from the original archive
- Easy commandline tools, e.g. tla my-arch-cache
- Support for disconnected operation

Aaron

--
Aaron Bentley
Director of Technology
Panometrics, Inc.




reply via email to

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