Re: Vacuum/visibility is busted - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Vacuum/visibility is busted
Date
Msg-id 20130207200126.GA21122@alap2.anarazel.de
Whole thread Raw
In response to Re: Vacuum/visibility is busted  (Jeff Janes <jeff.janes@gmail.com>)
Responses Re: Vacuum/visibility is busted
List pgsql-hackers
On 2013-02-07 11:15:46 -0800, Jeff Janes wrote:
> On Thu, Feb 7, 2013 at 10:09 AM, Pavan Deolasee
> <pavan.deolasee@gmail.com> wrote:
> >
> > Right. I don't have the database handy at this moment, but earlier in
> > the day I ran some queries against it and found that most of the
> > duplicates which are not accessible via indexes have xmin very close
> > to 2100345903. In fact, many of them are from a consecutive range.
>
> Does anyone have suggestions on how to hack the system to make it
> fast-forward the current transaction id? It would certainly make
> testing this kind of thing faster if I could make transaction id
> increment by 100 each time a new one is generated.  Then wrap-around
> could be approached in minutes rather than hours.

I had various plpgsql functions to do that, but those still took quite
some time. As I needed it before I just spent some minutes hacking up a
contrib module to do the job.

I doubt it really think it makes sense as a contrib module on its own
though?

postgres=# select * FROM burnxids(500000);select * FROM
burnxids(500000);
 burnxids
----------
  5380767
(1 row)

Time: 859.807 ms
 burnxids
----------
  5880767
(1 row)

Time: 717.700 ms

It doesn't really work in a nice way:
    if (GetTopTransactionIdIfAny() != InvalidTransactionId)
        elog(ERROR, "can't burn xids in a transaction with xid");

    for (i = 0; i < nxids; i++)
    {
        last = GetNewTransactionId(false);
    }

    /* don't keep xid as assigned */
    MyPgXact->xid = InvalidTransactionId;

but it seems to work ;)

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Attachment

pgsql-hackers by date:

Previous
From: Jeff Janes
Date:
Subject: Re: Vacuum/visibility is busted
Next
From: Tom Lane
Date:
Subject: Re: Vacuum/visibility is busted