From 27f145a40e0e0273d8c25fe5e21ef26a51036197 Mon Sep 17 00:00:00 2001 From: Robert Haas <rhaas@postgresql.org> Date: Sat, 14 Aug 2010 02:22:10 +0000 Subject: [PATCH] Further dtrace adjustments for the backend-IDs-in-relpath patch. Update the documentation, and back out a few ill-considered changes whose folly I failed to realize for failure to read the documentation. --- doc/src/sgml/monitoring.sgml | 36 ++++++++++++++++++----------- src/backend/storage/buffer/bufmgr.c | 8 +++---- src/backend/utils/probes.d | 6 ++--- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index ed35a1b92ab..1c4d3ca4db4 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/monitoring.sgml,v 1.82 2010/08/08 16:27:03 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/monitoring.sgml,v 1.83 2010/08/14 02:22:10 rhaas Exp $ --> <chapter id="monitoring"> <title>Monitoring Database Activity</title> @@ -1436,26 +1436,28 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, </row> <row> <entry>buffer-read-start</entry> - <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool)</entry> + <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool)</entry> <entry>Probe that fires when a buffer read is started. arg0 and arg1 contain the fork and block numbers of the page (but arg1 will be -1 if this is a relation extension request). arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs identifying the relation. - arg5 is true for a local buffer, false for a shared buffer. + arg5 is the ID of the backend which created the temporary relation for a + local buffer, or InvalidBackendId (-1) for a shared buffer. arg6 is true for a relation extension request, false for normal read.</entry> </row> <row> <entry>buffer-read-done</entry> - <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool, bool)</entry> + <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool, bool)</entry> <entry>Probe that fires when a buffer read is complete. arg0 and arg1 contain the fork and block numbers of the page (if this is a relation extension request, arg1 now contains the block number of the newly added block). arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs identifying the relation. - arg5 is true for a local buffer, false for a shared buffer. + arg5 is the ID of the backend which created the temporary relation for a + local buffer, or InvalidBackendId (-1) for a shared buffer. arg6 is true for a relation extension request, false for normal read. arg7 is true if the buffer was found in the pool, false if not.</entry> @@ -1521,38 +1523,46 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, </row> <row> <entry>smgr-md-read-start</entry> - <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid)</entry> + <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int)</entry> <entry>Probe that fires when beginning to read a block from a relation. arg0 and arg1 contain the fork and block numbers of the page. arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs - identifying the relation.</entry> + identifying the relation. + arg5 is the ID of the backend which created the temporary relation for a + local buffer, or InvalidBackendId (-1) for a shared buffer.</entry> </row> <row> <entry>smgr-md-read-done</entry> - <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int)</entry> + <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int)</entry> <entry>Probe that fires when a block read is complete. arg0 and arg1 contain the fork and block numbers of the page. arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs identifying the relation. - arg5 is the number of bytes actually read, while arg6 is the number + arg5 is the ID of the backend which created the temporary relation for a + local buffer, or InvalidBackendId (-1) for a shared buffer. + arg6 is the number of bytes actually read, while arg7 is the number requested (if these are different it indicates trouble).</entry> </row> <row> <entry>smgr-md-write-start</entry> - <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid)</entry> + <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int)</entry> <entry>Probe that fires when beginning to write a block to a relation. arg0 and arg1 contain the fork and block numbers of the page. arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs - identifying the relation.</entry> + identifying the relation. + arg5 is the ID of the backend which created the temporary relation for a + local buffer, or InvalidBackendId (-1) for a shared buffer.</entry> </row> <row> <entry>smgr-md-write-done</entry> - <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int)</entry> + <entry>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int)</entry> <entry>Probe that fires when a block write is complete. arg0 and arg1 contain the fork and block numbers of the page. arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs identifying the relation. - arg5 is the number of bytes actually written, while arg6 is the number + arg5 is the ID of the backend which created the temporary relation for a + local buffer, or InvalidBackendId (-1) for a shared buffer. + arg6 is the number of bytes actually written, while arg7 is the number requested (if these are different it indicates trouble).</entry> </row> <row> diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 7b3536335be..e4f5dba0998 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.258 2010/08/13 22:54:17 rhaas Exp $ + * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.259 2010/08/14 02:22:10 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -1852,8 +1852,7 @@ FlushBuffer(volatile BufferDesc *buf, SMgrRelation reln) buf->tag.blockNum, reln->smgr_rnode.node.spcNode, reln->smgr_rnode.node.dbNode, - reln->smgr_rnode.node.relNode, - reln->smgr_rnode.backend); + reln->smgr_rnode.node.relNode); /* * Force XLOG flush up to buffer's LSN. This implements the basic WAL @@ -1892,8 +1891,7 @@ FlushBuffer(volatile BufferDesc *buf, SMgrRelation reln) buf->tag.blockNum, reln->smgr_rnode.node.spcNode, reln->smgr_rnode.node.dbNode, - reln->smgr_rnode.node.relNode, - reln->smgr_rnode.backend); + reln->smgr_rnode.node.relNode); /* Pop the error context stack */ error_context_stack = errcontext.previous; diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 5158c0a06cf..7ed8c4a27a1 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -3,7 +3,7 @@ * * Copyright (c) 2006-2010, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.14 2010/08/13 22:54:17 rhaas Exp $ + * $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.15 2010/08/14 02:22:10 rhaas Exp $ * ---------- */ @@ -56,8 +56,8 @@ provider postgresql { probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool); probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool, bool); - probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int); - probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int); + probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid); probe buffer__checkpoint__start(int); probe buffer__checkpoint__sync__start(); -- GitLab