[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Arx-users] RFC: arch protocol, smart server, and tla implementation
From: |
Walter Landry |
Subject: |
Re: [Arx-users] RFC: arch protocol, smart server, and tla implementation prototypes |
Date: |
Sat, 31 Jan 2004 21:33:53 -0500 (EST) |
Colin Walters <address@hidden> wrote:
> Hi,
>
> I've been working on a "smart server" over the past few days. There's a
> lot to talk about, so I'll try to break it up into cleanly separated
> parts.
>
> First, "why a smart server?". This has been discussed on the mailing
> list in the past, but here's a far-from-exhaustive list of reasons:
I don't mean to rain on your parade, but it is not clear to me that
you really need to define a wire protocol to achieve these things.
> o Ability to have a much more efficient protocol, avoiding server
> roundtrips
The current situation can be vastly improved with just a smarter
client. The current client is much more inefficient than it has to
be. It should be able to download things in parallel, instead of
waiting for the result of one result before continuing on. For
example, for a simple get, you do one or two directory listings to
find the latest revision, and then a whole lot of listing in parallel
to find the latest cached revision and continuation revisions.
Finally, in most cases, you download all of the relevant patches and
cached revision. A total of three or four round trips. The current
implementation uses something like O(number of patches). A smart
server would presumably be one round trip. It is not clear to me that
there is enough of a difference between one and three or four round
trips.
> o Execute post-commit hooks on the server when a revision is committed
> o Ability to have very flexible authentication and access control
> o Removing the need for a shared Unix account for multiple committers
These can already be done using arch-pqm or simple extensions to it.
You don't really have to define a wire protocol for this.
> o Ability to record which revisions are accessed frequently, and
> dynamically adjusting cached revisions to match
Couldn't you do a poor man's version of this with a cron job? It
would look over the logs, figure out which revisions are popular, and
cache those.
However, this does touch on another desire, which is to be able to
configure the archiving strategy [1]. That is, to be able to store
the last revision, rather than the first one. It still sounds like
you could do something with a cron job, though.
There is also the feature that, with just a protocol, you can replace
the backend with a database. In that case, it would probably be
better to actually create the backend database and methods to access
it locally before creating a remote protocol.
Cheers,
Walter
[1] http://savannah.nongnu.org/bugs/?func=detailitem&item_id=4787
- [Arx-users] Re: [Gnu-arch-users] RFC: arch protocol, smart server, and tla implementation prototypes, (continued)
- Message not available
- [Arx-users] Re: [Gnu-arch-users] RFC: arch protocol, smart server, and tla implementation prototypes, Aaron Bentley, 2004/01/31
- [Arx-users] Re: [Gnu-arch-users] RFC: arch protocol, smart server, and tla implementation prototypes, Colin Walters, 2004/01/30
- Message not available
- [Arx-users] Re: [Gnu-arch-users] RFC: arch protocol, smart server, and tla implementation prototypes, Aaron Bentley, 2004/01/31
[Arx-users] Re: [Gnu-arch-users] RFC: arch protocol, smart server, and tla implementation prototypes, Robert Collins, 2004/01/30
[Arx-users] Re: [Gnu-arch-users] RFC: arch protocol, smart server, and tla implementation prototypes, Florian Weimer, 2004/01/31
Re: [Arx-users] RFC: arch protocol, smart server, and tla implementation prototypes,
Walter Landry <=