Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <

Поиск
Список
Период
Сортировка
Искать
От
Andres Freund
Тема
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <
Дата
в 18:13:33
Msg-id
20160524181324.lynifdkonl6ssegs@alap3.anarazel.de
Ответ на
Список
Дерево обсуждения
pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@postgresql.org>
Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Alexander Korotkov <a.korotkov@postgrespro.ru>
Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Noah Misch <noah@leadboat.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Amit Kapila <amit.kapila16@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Amit Kapila <amit.kapila16@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Amit Kapila <amit.kapila16@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Amit Kapila <amit.kapila16@gmail.com>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < David Steele <david@pgmasters.net>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Andres Freund <andres@anarazel.de>
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Kevin Grittner <kgrittn@gmail.com>
On 2016-05-24 13:04:09 -0500, Kevin Grittner wrote:
> On Tue, May 24, 2016 at 12:00 PM, Andres Freund  wrote:
> 
> > Analyze IIRC acquires a new snapshot when getting sample rows,
> 
> I could not find anything like that, and a case-insensitive search
> of analyze.c finds no occurrences of "snap".  Can you remember
> where you think you saw something that would cause the ANALYZE
> command in my test to use a snapshot other than the one from the
> REPEATABLE READ transaction in which it was run?

It's outside of analyze.c:

autovacuum_do_vac_analyze() -> vacuum() ->
	if (options & VACOPT_VACUUM)
		use_own_xacts = true;
	else
	{
		Assert(options & VACOPT_ANALYZE);
		if (IsAutoVacuumWorkerProcess())
			use_own_xacts = true;
...
			if (options & VACOPT_ANALYZE)
			{
				/*
				 * If using separate xacts, start one for analyze. Otherwise,
				 * we can use the outer transaction.
				 */
				if (use_own_xacts)
				{
					StartTransactionCommand();
					/* functions in indexes may want a snapshot set */
					PushActiveSnapshot(GetTransactionSnapshot());
				}

				analyze_rel(relid, relation, options, params,
							va_cols, in_outer_xact, vac_strategy);

				if (use_own_xacts)
				{
					PopActiveSnapshot();
					CommitTransactionCommand();
				}
			}

Andres

В списке pgsql-committers по дате отправления
От: Tom Lane
Дата:
От: Alvaro Herrera
Дата:
FAQ