> >> Given this, I'm wondering why we bother with having a separate
> >> XidGenLock spinlock at all. Why not eliminate it and use SInval
> >> spinlock to lock GetNewTransactionId and ReadNewTransactionId?
>
> > Reading all MyProc in GetSnashot may take long time - why disallow
> > new Tx to begin.
>
> Because we need to synchronize? It bothers me that we're assuming
> that fetching/storing XIDs is atomic. There's no possibility at all
> of going to 8-byte XIDs as long as the code is like this.
>
> I doubt that a spinlock per PROC structure would be a better answer,
> either; the overhead of getting and releasing each lock would be
> nontrivial, considering the small number of instructions spent at
> each PROC in these routines.
Isn't spinlock just a few ASM instructions?... on most platforms...
Vadim