Re: [HACKERS] [GENERAL] autoanalyze criteria

2013-07-05 Thread Magnus Hagander
On Wed, May 15, 2013 at 2:33 AM, Mark Kirkwood
mark.kirkw...@catalyst.net.nz wrote:
 On 24/02/13 10:51, Mark Kirkwood wrote:

 On 24/02/13 10:12, Stefan Andreatta wrote:


 On 02/23/2013 09:30 PM, Jeff Janes wrote:

 Moved discussion from General To Hackers.

 On Sat, Feb 23, 2013 at 10:41 AM, Stefan Andreatta
 s.andrea...@synedra.com mailto:s.andrea...@synedra.com wrote:


 On 02/23/2013 05:10 PM, Jeff Janes wrote:


 Sorry, I got tunnel vision about the how the threshold was
 computed, and forgot about the thing it was compared to.  There
 is a secret data point in the stats collector
 called changes_since_analyze.  This is not exposed in the
 pg_stat_user_tables.  But I think it should be as I often have
 wanted to see it.



 Sounds like a very good idea to me - any way I could help to make
 such a thing happen?



 It should be fairly easy to implement because the other columns are
 already there to show you the way, and if you want to try your hand at
 hacking pgsql it would be a good introduction to doing so.

 Look at each instance in the code of n_dead_dup and
 pg_stat_get_dead_tuples, and those are the places where
 changes_since_analyze also need to be addressed, in an analogous
 manner (assuming it is isn't already there.)

 git grep 'n_dead_tup'

 It looks like we would need to add an SQL function to retrieve the
 data, then incorporate that function into the view definitions that
 make up the pg_stat_user_tables etc. views. and of course update the
 regression test and the documentation.

 Other than implementing it, we would need to convince other hackers
 that this is desirable to have.  I'm not sure how hard that would be.
 I've looked in the archives to see if this idea was already considered
 but rejected, but I don't see any indication that it was previously
 considered.

 (http://www.postgresql.org/message-id/4823.1262132...@sss.pgh.pa.us).

 Cheers,

 Jeff


 Not being a developer, I am afraid, I will not be going to implement it
 myself - nor would anybody wish so ;-)

 I also searched the archives, but the closest I found is a discussion on
 the Admin List starting here:

 http://www.postgresql.org/message-id/626919622.7634700.1351695913466.javamail.r...@alaloop.com

 On the other hand, there is quite a lot of discussion about making
 autoanalyze more (or less) aggressive - which seems a difficult task to
 me, when you cannot even check what's triggering your autoanalyze.

 Anybody else interested?


 I was asked about this exact thing the other day - it would be very nice
 to have the information visible. I may take a look at doing it (I've done
 some hacking on the stats system previously). However don't let that put
 anyone else off - as I'll have to find the time to start :-)




 I happened to be looking at the whole autovacuum/analyze setup in another
 context - which reminded me about volunteering to take a look at a patch for
 adding changes_since_analyze. So with probably impeccably poor timing (smack
 in the middle of 9.3 beta), here is a patch that does that (so it is
 probably an early 9.4 addition).

 I've called the column n_changes_since_analyze - I can sense that there
 might be discussion about how to maybe shorten that :-) , and added a doc
 line for the view + updated the regression test expected input.

Applied, with the changs suggested by Laurenz Albe in his review.

Thanks!


--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


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


Re: [HACKERS] [GENERAL] autoanalyze criteria

2013-05-14 Thread Mark Kirkwood

On 24/02/13 10:51, Mark Kirkwood wrote:

On 24/02/13 10:12, Stefan Andreatta wrote:


On 02/23/2013 09:30 PM, Jeff Janes wrote:

Moved discussion from General To Hackers.

On Sat, Feb 23, 2013 at 10:41 AM, Stefan Andreatta
s.andrea...@synedra.com mailto:s.andrea...@synedra.com wrote:


On 02/23/2013 05:10 PM, Jeff Janes wrote:


Sorry, I got tunnel vision about the how the threshold was
computed, and forgot about the thing it was compared to.  There
is a secret data point in the stats collector
called changes_since_analyze.  This is not exposed in the
pg_stat_user_tables.  But I think it should be as I often have
wanted to see it.




Sounds like a very good idea to me - any way I could help to make
such a thing happen?



It should be fairly easy to implement because the other columns are
already there to show you the way, and if you want to try your hand at
hacking pgsql it would be a good introduction to doing so.

Look at each instance in the code of n_dead_dup and
pg_stat_get_dead_tuples, and those are the places where
changes_since_analyze also need to be addressed, in an analogous
manner (assuming it is isn't already there.)

git grep 'n_dead_tup'

It looks like we would need to add an SQL function to retrieve the
data, then incorporate that function into the view definitions that
make up the pg_stat_user_tables etc. views. and of course update the
regression test and the documentation.

Other than implementing it, we would need to convince other hackers
that this is desirable to have.  I'm not sure how hard that would be.
I've looked in the archives to see if this idea was already considered
but rejected, but I don't see any indication that it was previously
considered.

(http://www.postgresql.org/message-id/4823.1262132...@sss.pgh.pa.us).

Cheers,

Jeff


Not being a developer, I am afraid, I will not be going to implement it
myself - nor would anybody wish so ;-)

I also searched the archives, but the closest I found is a discussion on
the Admin List starting here:
http://www.postgresql.org/message-id/626919622.7634700.1351695913466.javamail.r...@alaloop.com 



On the other hand, there is quite a lot of discussion about making
autoanalyze more (or less) aggressive - which seems a difficult task to
me, when you cannot even check what's triggering your autoanalyze.

Anybody else interested?



I was asked about this exact thing the other day - it would be very 
nice to have the information visible. I may take a look at doing it 
(I've done some hacking on the stats system previously). However don't 
let that put anyone else off - as I'll have to find the time to start :-)






I happened to be looking at the whole autovacuum/analyze setup in 
another context - which reminded me about volunteering to take a look at 
a patch for adding changes_since_analyze. So with probably impeccably 
poor timing (smack in the middle of 9.3 beta), here is a patch that does 
that (so it is probably an early 9.4 addition).


I've called the column n_changes_since_analyze - I can sense that 
there might be discussion about how to maybe shorten that :-) , and 
added a doc line for the view + updated the regression test expected input.


Regards

Mark

diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index b37b6c3..0ebce4e 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -951,6 +951,11 @@ postgres: replaceableuser/ replaceabledatabase/ replaceablehost/ re
  entryEstimated number of dead rows/entry
 /row
 row
+ entrystructfieldn_changes_since_analyze//entry
+ entrytypebigint//entry
+ entryEstimated number of row changes (inserts + updates + deletes) since the last analyze/entry
+/row
+row
  entrystructfieldlast_vacuum//entry
  entrytypetimestamp with time zone//entry
  entryLast time at which this table was manually vacuumed
diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index a03bfa6..05bba74 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -405,6 +405,7 @@ CREATE VIEW pg_stat_all_tables AS
 pg_stat_get_tuples_hot_updated(C.oid) AS n_tup_hot_upd,
 pg_stat_get_live_tuples(C.oid) AS n_live_tup,
 pg_stat_get_dead_tuples(C.oid) AS n_dead_tup,
+pg_stat_get_changes_since_analyze(C.oid) AS n_changes_since_analyze,
 pg_stat_get_last_vacuum_time(C.oid) as last_vacuum,
 pg_stat_get_last_autovacuum_time(C.oid) as last_autovacuum,
 pg_stat_get_last_analyze_time(C.oid) as last_analyze,
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 8c1a767..8803996 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -34,6 +34,7 @@ extern Datum pg_stat_get_tuples_deleted(PG_FUNCTION_ARGS);
 extern Datum pg_stat_get_tuples_hot_updated(PG_FUNCTION_ARGS);
 

Re: [HACKERS] [GENERAL] autoanalyze criteria

2013-02-23 Thread Jeff Janes
Moved discussion from General To Hackers.

On Sat, Feb 23, 2013 at 10:41 AM, Stefan Andreatta
s.andrea...@synedra.comwrote:


 On 02/23/2013 05:10 PM, Jeff Janes wrote:


 Sorry, I got tunnel vision about the how the threshold was computed, and
 forgot about the thing it was compared to.  There is a secret data point
 in the stats collector called changes_since_analyze.  This is not exposed
 in the pg_stat_user_tables.  But I think it should be as I often have
 wanted to see it.



 Sounds like a very good idea to me - any way I could help to make such a
 thing happen?



It should be fairly easy to implement because the other columns are already
there to show you the way, and if you want to try your hand at hacking
pgsql it would be a good introduction to doing so.

Look at each instance in the code of n_dead_dup and
pg_stat_get_dead_tuples, and those are the places where
changes_since_analyze also need to be addressed, in an analogous manner
(assuming it is isn't already there.)

git grep 'n_dead_tup'

It looks like we would need to add an SQL function to retrieve the data,
then incorporate that function into the view definitions that make up the
pg_stat_user_tables etc. views.  and of course update the regression test
and the documentation.

Other than implementing it, we would need to convince other hackers that
this is desirable to have.  I'm not sure how hard that would be.  I've
looked in the archives to see if this idea was already considered but
rejected, but I don't see any indication that it was previously considered.

(http://www.postgresql.org/message-id/4823.1262132...@sss.pgh.pa.us).

Cheers,

Jeff


Re: [HACKERS] [GENERAL] autoanalyze criteria

2013-02-23 Thread Stefan Andreatta


On 02/23/2013 09:30 PM, Jeff Janes wrote:

Moved discussion from General To Hackers.

On Sat, Feb 23, 2013 at 10:41 AM, Stefan Andreatta 
s.andrea...@synedra.com mailto:s.andrea...@synedra.com wrote:



On 02/23/2013 05:10 PM, Jeff Janes wrote:


Sorry, I got tunnel vision about the how the threshold was
computed, and forgot about the thing it was compared to.  There
is a secret data point in the stats collector
called changes_since_analyze.  This is not exposed in the
pg_stat_user_tables.  But I think it should be as I often have
wanted to see it.




Sounds like a very good idea to me - any way I could help to make
such a thing happen?



It should be fairly easy to implement because the other columns are 
already there to show you the way, and if you want to try your hand at 
hacking pgsql it would be a good introduction to doing so.


Look at each instance in the code of n_dead_dup and 
pg_stat_get_dead_tuples, and those are the places where 
changes_since_analyze also need to be addressed, in an analogous 
manner (assuming it is isn't already there.)


git grep 'n_dead_tup'

It looks like we would need to add an SQL function to retrieve the 
data, then incorporate that function into the view definitions that 
make up the pg_stat_user_tables etc. views. and of course update the 
regression test and the documentation.


Other than implementing it, we would need to convince other hackers 
that this is desirable to have.  I'm not sure how hard that would be.  
I've looked in the archives to see if this idea was already considered 
but rejected, but I don't see any indication that it was previously 
considered.


(http://www.postgresql.org/message-id/4823.1262132...@sss.pgh.pa.us).

Cheers,

Jeff


Not being a developer, I am afraid, I will not be going to implement it 
myself - nor would anybody wish so ;-)


I also searched the archives, but the closest I found is a discussion on 
the Admin List starting here:

http://www.postgresql.org/message-id/626919622.7634700.1351695913466.javamail.r...@alaloop.com

On the other hand, there is quite a lot of discussion about making 
autoanalyze more (or less) aggressive - which seems a difficult task to 
me, when you cannot even check what's triggering your autoanalyze.


Anybody else interested?

Regards,
Stefan


Re: [HACKERS] [GENERAL] autoanalyze criteria

2013-02-23 Thread Mark Kirkwood

On 24/02/13 10:12, Stefan Andreatta wrote:


On 02/23/2013 09:30 PM, Jeff Janes wrote:

Moved discussion from General To Hackers.

On Sat, Feb 23, 2013 at 10:41 AM, Stefan Andreatta
s.andrea...@synedra.com mailto:s.andrea...@synedra.com wrote:


On 02/23/2013 05:10 PM, Jeff Janes wrote:


Sorry, I got tunnel vision about the how the threshold was
computed, and forgot about the thing it was compared to.  There
is a secret data point in the stats collector
called changes_since_analyze.  This is not exposed in the
pg_stat_user_tables.  But I think it should be as I often have
wanted to see it.




Sounds like a very good idea to me - any way I could help to make
such a thing happen?



It should be fairly easy to implement because the other columns are
already there to show you the way, and if you want to try your hand at
hacking pgsql it would be a good introduction to doing so.

Look at each instance in the code of n_dead_dup and
pg_stat_get_dead_tuples, and those are the places where
changes_since_analyze also need to be addressed, in an analogous
manner (assuming it is isn't already there.)

git grep 'n_dead_tup'

It looks like we would need to add an SQL function to retrieve the
data, then incorporate that function into the view definitions that
make up the pg_stat_user_tables etc. views. and of course update the
regression test and the documentation.

Other than implementing it, we would need to convince other hackers
that this is desirable to have.  I'm not sure how hard that would be.
I've looked in the archives to see if this idea was already considered
but rejected, but I don't see any indication that it was previously
considered.

(http://www.postgresql.org/message-id/4823.1262132...@sss.pgh.pa.us).

Cheers,

Jeff


Not being a developer, I am afraid, I will not be going to implement it
myself - nor would anybody wish so ;-)

I also searched the archives, but the closest I found is a discussion on
the Admin List starting here:
http://www.postgresql.org/message-id/626919622.7634700.1351695913466.javamail.r...@alaloop.com

On the other hand, there is quite a lot of discussion about making
autoanalyze more (or less) aggressive - which seems a difficult task to
me, when you cannot even check what's triggering your autoanalyze.

Anybody else interested?



I was asked about this exact thing the other day - it would be very nice 
to have the information visible. I may take a look at doing it (I've 
done some hacking on the stats system previously). However don't let 
that put anyone else off - as I'll have to find the time to start :-)


Regards

Mark



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