Re: Cpu usage 100% on slave. s_lock problem.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2013-08-27 09:57:38 -0500, Merlin Moncure wrote:
> + bool
> + RecoveryMightBeInProgress(void)
> + {
> + 	/*
> + 	 * We check shared state each time only until we leave recovery mode. We
> + 	 * can't re-enter recovery, so there's no need to keep checking after the
> + 	 * shared variable has once been seen false.
> + 	 */
> + 	if (!LocalRecoveryInProgress)
> + 		return false;
> + 	else
> + 	{
> + 		/* use volatile pointer to prevent code rearrangement */
> + 		volatile XLogCtlData *xlogctl = XLogCtl;
> + 
> + 		/* Intentionally query xlogctl without spinlocking! */
> + 		LocalRecoveryInProgress = xlogctl->SharedRecoveryInProgress;
> + 
> + 		return LocalRecoveryInProgress;
> + 	}
> + }

I don't think it's acceptable to *set* LocalRecoveryInProgress
here. That should only be done in the normal routine.

Greetings,

Andres Freund

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


-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance




[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux