AW: FSFS rep-cache validation

2014-01-27 Thread Markus Schaber
Hi, Von: Bert Huijben [mailto:b...@qqmail.nl] > From: Markus Schaber [mailto:m.scha...@codesys.com] > > Von: Philip Martin [mailto:philip.mar...@wandisco.com] > > > Philip Martin writes: > > > > Stefan Fuhrmann writes: > > > >> But we do write the database strictly in revision order. > > > >> So

RE: FSFS rep-cache validation

2014-01-27 Thread Bert Huijben
> -Original Message- > From: Markus Schaber [mailto:m.scha...@codesys.com] > Sent: maandag 27 januari 2014 13:36 > To: Subversion Development > Subject: AW: FSFS rep-cache validation > > Hi, > > Von: Philip Martin [mailto:philip.mar...@wandisco.com

AW: FSFS rep-cache validation

2014-01-27 Thread Markus Schaber
Hi, Von: Philip Martin [mailto:philip.mar...@wandisco.com] > Philip Martin writes: > > > Stefan Fuhrmann writes: > > > >> But we do write the database strictly in revision order. > >> So, if we could simply read the latest record once upon opening the > >> DB. If that refers to a future revisio

Re: FSFS rep-cache validation

2014-01-27 Thread Philip Martin
Philip Martin writes: > Stefan Fuhrmann writes: > >> But we do write the database strictly in revision order. >> So, if we could simply read the latest record once upon >> opening the DB. If that refers to a future revision, read >> "current" and compare. If the DB it still "in the future", >> a

Re: FSFS rep-cache validation

2014-01-27 Thread Philip Martin
Stefan Fuhrmann writes: > But we do write the database strictly in revision order. > So, if we could simply read the latest record once upon > opening the DB. If that refers to a future revision, read > "current" and compare. If the DB it still "in the future", > abort txn, i.e. prevent any futur

Re: FSFS rep-cache validation

2014-01-23 Thread Stefan Fuhrmann
On Wed, Jan 22, 2014 at 10:19 PM, Philip Martin wrote: > On IRC today we were discussing the validation code in > svn_fs_fs__set_rep_reference. When inserting a row into the rep-cache > the insert can fail because the row already exists. The usual way this > would happen is that two parallel com

RE: FSFS rep-cache validation

2014-01-23 Thread Bert Huijben
> -Original Message- > From: Philip Martin [mailto:philip.mar...@wandisco.com] > Sent: donderdag 23 januari 2014 11:55 > To: Julian Foad > Cc: Philip Martin; dev@subversion.apache.org > Subject: Re: FSFS rep-cache validation > > Julian Foad writes: > >

Re: FSFS rep-cache validation

2014-01-23 Thread Philip Martin
Julian Foad writes: > I get the problem. By "store its own 'head' revision" I meant store > the maximum value of any referenced revision number -- in other words, > simply a substitute for having an index and querying the maximum value > in the index. If we update this value correctly then it wou

Re: FSFS rep-cache validation

2014-01-23 Thread Julian Foad
Philip Martin wrote: > Julian Foad writes: >> Ugh -- the doc string says if REJECT_DUP is TRUE, "return an error if >> there is an existing match for REP->CHECKSUM" but the implementation >> does something else: return an error if an existing match points to a >> different rep (that is, a dif

Re: FSFS rep-cache validation

2014-01-23 Thread Philip Martin
Julian Foad writes: > Ugh -- the doc string says if REJECT_DUP is TRUE, "return an error if > there is an existing match for REP->CHECKSUM" but the implementation > does something else: return an error if an existing match points to a > different rep (that is, a different rev/index/size), but ret

Re: FSFS rep-cache validation

2014-01-23 Thread Julian Foad
Philip Martin wrote: > On IRC today we were discussing the validation code in > svn_fs_fs__set_rep_reference.  When inserting a row into the rep-cache > the insert can fail because the row already exists.  The usual way this > would happen is that two parallel commits add content with the > same c

FSFS rep-cache validation

2014-01-22 Thread Philip Martin
On IRC today we were discussing the validation code in svn_fs_fs__set_rep_reference. When inserting a row into the rep-cache the insert can fail because the row already exists. The usual way this would happen is that two parallel commits add content with the same checksum at different locations,