[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: CVS update: subversion/subversion/include svn_fs.h

From: Bryan O'Sullivan <bos_at_serpentine.com>
Date: 2000-09-08 21:57:42 CEST

g> The latter. It should be possible to administratively clean out old
g> transactions. Bill's suggestion for a timeout is also spot-on. The
g> duration for a transaction is effectively the upload time for the
g> update.

The classic way to handle this kind of situation is with leases.

When the client wants to start a transaction, it asks the server for a
lease of a given duration (say, one hour). The server responds with
whatever lease duration suits it (say, 15 minutes).

After that, so long as the client wants the transaction to stay alive,
it must renew the lease at least as often as the server told it to.
If it misses a lease renewal deadline (either because of network
partitioning, it got unplugged, or it caught fire), the server rolls
back the transaction and frees all its resources.

(Since you say that a transaction can be persistent, I assume you mean
that it can span multiple TCP connections over time. Leases don't
have a problem with this.)

It's possible to do this in an entirely automated way, and in fact I
think it would be unreasonable to require administrative help for this
kind of task. Granted, it requires some server-side maintenance of
state, but I imagine you're trying to make software that's easy to
use, not easy to write :-)


Let us pray:
What a Great System.
Please Do Not Crash.
Received on Sat Oct 21 14:36:08 2006

This is an archived mail posted to the Subversion Dev mailing list.