[PATCH 3 of 4] shelve: use rollback instead of aborting a current transaction for shelve

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Mon Oct 5 09:42:06 CDT 2015


At Sun, 04 Oct 2015 14:47:18 -0700,
Pierre-Yves David wrote:
> 
> On 10/04/2015 05:44 AM, FUJIWARA Katsunori wrote:
> > # HG changeset patch
> > # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> > # Date 1443962009 -32400
> > #      Sun Oct 04 21:33:29 2015 +0900
> > # Node ID e265a8c85c3873815730921ae2d8ca3c6df3b48a
> > # Parent  ce4ea67c82972f2988e42372cd6443b6c288e1c8
> > shelve: use rollback instead of aborting a current transaction for shelve
> 
> I'm not sure that I like these one (and the next).
> 
> Using rollback means that the transaction is actually commited at some 
> point. Rolling it back will likely cause cache invalidation issue and 
> race condition with other reader.

Oops, I forgot that incorrect visibility for a moment at closing
transaction :-<

I'll post revised ones using another way (maybe enclosing such scope
by dirstateguard).


> However:
> 
> - the current shelve implementation is highly debatable by itself. (we 
> should probably use a combination of fully in memory commit (not 
> supported yet) and bundlerepo + merge so I'm not sure your proposal is 
> notably worse (we are a bit between Scylla and Charybdis here)
> 
> - If this is the last blocking bits to get a transactional dirstate, the 
> drawback at certainly worth it. The current bug associated with the lack 
> of it have much more user impact.
> 
> I need to think about it.
> 
> -- 
> Pierre-Yves David
> 

----------------------------------------------------------------------
[FUJIWARA Katsunori]                             foozy at lares.dti.ne.jp


More information about the Mercurial-devel mailing list