summaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc/procarray.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-06-19 01:51:22 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-06-19 01:51:22 +0000
commitb13c9686d08411a284afeb881b49d7955761d8cb (patch)
treeec956d8cc1a3176b73b064d711ce5ccda547e23b /src/backend/storage/ipc/procarray.c
parent6075feed40804a963f9a7c041e7d157a86cc758d (diff)
downloadpostgresql-b13c9686d08411a284afeb881b49d7955761d8cb.tar.gz
Take the statistics collector out of the loop for monitoring backends'
current commands; instead, store current-status information in shared memory. This substantially reduces the overhead of stats_command_string and also ensures that pg_stat_activity is fully up to date at all times. Per my recent proposal.
Diffstat (limited to 'src/backend/storage/ipc/procarray.c')
-rw-r--r--src/backend/storage/ipc/procarray.c38
1 files changed, 1 insertions, 37 deletions
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index 1cee032b52..f899b7a0e8 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -23,7 +23,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.11 2006/03/05 15:58:37 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.12 2006/06/19 01:51:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -733,42 +733,6 @@ IsBackendPid(int pid)
}
/*
- * GetAllBackendPids -- get an array of all current backends' PIDs
- *
- * The result is a palloc'd array with the number of active backends in
- * entry [0], their PIDs in entries [1] .. [n]. The caller must bear in
- * mind that the result may already be obsolete when returned.
- */
-int *
-GetAllBackendPids(void)
-{
- int *result;
- int npids;
- ProcArrayStruct *arrayP = procArray;
- int index;
-
- result = (int *) palloc((MaxBackends + 1) * sizeof(int));
- npids = 0;
-
- LWLockAcquire(ProcArrayLock, LW_SHARED);
-
- for (index = 0; index < arrayP->numProcs; index++)
- {
- PGPROC *proc = arrayP->procs[index];
-
- if (proc->pid != 0) /* ignore dummy procs */
- result[++npids] = proc->pid;
- }
-
- LWLockRelease(ProcArrayLock);
-
- Assert(npids <= MaxBackends);
-
- result[0] = npids;
- return result;
-}
-
-/*
* CountActiveBackends --- count backends (other than myself) that are in
* active transactions. This is used as a heuristic to decide if
* a pre-XLOG-flush delay is worthwhile during commit.