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

Re: Making fsfs generate unique transaction names

From: Blair Zajac <blair_at_orcaware.com>
Date: 2007-06-17 23:37:12 CEST

On Jun 16, 2007, at 2:28 PM, Blair Zajac wrote:

> Daniel Berlin wrote:
>> On 6/13/07, Blair Zajac <blair@orcaware.com> wrote:
>>> I'm making a svn filesystem network aware using Ice RPC and one
>>> of the
>>> things I'm running into is that FSFS transactions are not
>>> unique. BDB
>>> seems to generate transaction names via a sequence, so this isn't
>>> an issue.
>>>
>>> I have the ability for a client to begin a transaction remotely
>>> and then
>>> refer to that transaction to do work. In FSFS, if a client begins a
>>> transaction, gives the transaction name to another process, which
>>> then
>>> closes it, and a third process begins a new transaction based on the
>>> same revision, then it will get the same transaction name and the
>>> owner
>>> of the original transaction will be operating inside a different
>>> transaction and will be able to abort the transaction, which it
>>> should
>>> not be able to do.
>>>
>>> So I'd like to make the transaction names unique, using something
>>> like
>>>
>>> "%s-%05ds-%s-%05d" % (apr_gethostname(),
>>> apr_uid_current(),
>>> apr_time_now(),
>>> i)
>>>
>>> where i is incremented until it finds a non-existent directory name.
>> apr-util has apr_uuid_get to get new UUID's, and apr_uuid_format to
>> turn them into strings.
>> Is there some reason you can't use it?
>> Otherwise, I was going to suggest this myself as part of a design i'm
>> working on for 2.0's merge tracking.
>
> No, wasn't aware that apr had a uuid method. We could switch
> over. In fact, making BDB and FSFS use uuid's would be nice.

BTW, if we do switch BDB over to use uuid's, then I believe code will
have to be written to check if a BDB transaction name is already
used. Now, since there's a sequence, it can assume that the
transaction name will be fresh.

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Jun 17 23:37:22 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.