Thread: Least Active Transaction ID function

Least Active Transaction ID function

From
Rohit Goyal
Date:
Hi All,

I am doing programming with postgresql source code. I want to find out the function which can give me Least active transaction id currenty in the system.

Is there any function which can give me that?

Regards,
Rohit Goyal

Re: Least Active Transaction ID function

From
Rohit Goyal
Date:
Hi All,

On Wed, Jul 23, 2014 at 5:01 PM, Rohit Goyal <rhtgyl.87@gmail.com> wrote:
Hi All,

I am doing programming with postgresql source code. I want to find out the function which can give me Least active transaction id currenty in the system.

Is there any function which can give me that?

Regards,
Rohit Goyal


1> I know that somewhere there is an active transaction list in postgresql. At any point of time, I want to get the smallest transaction present in this active tx list or I want to get the transaction id before which all transaction smaller than that are committed/aborted. 

Is there any function which can give me this value?

2> I found a function giving GetStableLatestTransactionId(), please tel me what this function gives. I was not able to understand the description given above it.


Thanks for support in advance :)!!

Regards,
Rohit Goyal

Re: Least Active Transaction ID function

From
Robert Haas
Date:
On Wed, Jul 23, 2014 at 3:53 PM, Rohit Goyal <rhtgyl.87@gmail.com> wrote:
> Hi All,
>
> On Wed, Jul 23, 2014 at 5:01 PM, Rohit Goyal <rhtgyl.87@gmail.com> wrote:
>>
>> Hi All,
>>
>> I am doing programming with postgresql source code. I want to find out the
>> function which can give me Least active transaction id currenty in the
>> system.
>>
>> Is there any function which can give me that?
>>
>> Regards,
>> Rohit Goyal
>
> 1> I know that somewhere there is an active transaction list in postgresql.
> At any point of time, I want to get the smallest transaction present in this
> active tx list or I want to get the transaction id before which all
> transaction smaller than that are committed/aborted.
>
> Is there any function which can give me this value?

See the RecentXmin calculation in GetSnapshotData.

> 2> I found a function giving GetStableLatestTransactionId(), please tel me
> what this function gives. I was not able to understand the description given
> above it.

I don't know how to help with this; the description seems clear to me.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: Least Active Transaction ID function

From
Rohit Goyal
Date:
Hi Robert,

On Thu, Jul 24, 2014 at 9:32 PM, Robert Haas <robertmhaas@gmail.com> wrote:
On Wed, Jul 23, 2014 at 3:53 PM, Rohit Goyal <rhtgyl.87@gmail.com> wrote:
> Hi All,
>
> On Wed, Jul 23, 2014 at 5:01 PM, Rohit Goyal <rhtgyl.87@gmail.com> wrote:
>>
>> Hi All,
>>
>> I am doing programming with postgresql source code. I want to find out the
>> function which can give me Least active transaction id currenty in the
>> system.
>>
>> Is there any function which can give me that?
>>
>> Regards,
>> Rohit Goyal
>
> 1> I know that somewhere there is an active transaction list in postgresql.
> At any point of time, I want to get the smallest transaction present in this
> active tx list or I want to get the transaction id before which all
> transaction smaller than that are committed/aborted.
>
> Is there any function which can give me this value?

See the RecentXmin calculation in GetSnapshotData.

This was really -2 helpful. 
1. Can I use this xmin variable directly anytime anywhere in my code as it is a global variable.
2. What is the difference b/w recentXmin and RecentGlobalXmin. I read the description but any small detail  can clear my mind. :)

Thanks in advance!!
> 2> I found a function giving GetStableLatestTransactionId(), please tel me
> what this function gives. I was not able to understand the description given
> above it.

I don't know how to help with this; the description seems clear to me.

This is not important now, as you have already told me the variable and file for recentXmin.:)

Regards,
Rohit 
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Regards,
Rohit Goyal

Re: Least Active Transaction ID function

From
Robert Haas
Date:
On Thu, Jul 24, 2014 at 3:42 PM, Rohit Goyal <rhtgyl.87@gmail.com> wrote:
> This was really -2 helpful.

I'm not sure what it means to be -2 helpful.  Hopefully it's a good thing.

> 1. Can I use this xmin variable directly anytime anywhere in my code as it
> is a global variable.

I don't really know what you're asking.  If you want a tutorial on how
global variables work in C, this is the wrong mailing list to ask
about that.

> 2. What is the difference b/w recentXmin and RecentGlobalXmin. I read the
> description but any small detail  can clear my mind. :)

RecentXmin is the oldest transaction ID that was still running as of
the last time it was updated.  RecentGlobalXmin is the oldest
transaction ID that was part of somebody's snapshot as of the last
time it was updated.  Transaction IDs older than RecentXmin can be
assumed not to be running, but there could be still-running
transactions that can't see the effected of some committed transaction
whose ID precedes RecentXmin.  Transaction IDs older than
RecentGlobalXmin are no longer running, and furthermore any the
effects of any such transactions which went on to commit are
guaranteed to be visible to the snapshots of all currently-running
transactions, and all future transactions.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company