packages: mytop/mytop-getopt-long.patch (NEW), mytop/mytop-global-status.pa...

adamg adamg at pld-linux.org
Mon May 17 19:19:48 CEST 2010


Author: adamg                        Date: Mon May 17 17:19:48 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new

---- Files affected:
packages/mytop:
   mytop-getopt-long.patch (NONE -> 1.1)  (NEW), mytop-global-status.patch (NONE -> 1.1)  (NEW), mytop-queries-vs-questions.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mytop/mytop-getopt-long.patch
diff -u /dev/null packages/mytop/mytop-getopt-long.patch:1.1
--- /dev/null	Mon May 17 19:19:48 2010
+++ packages/mytop/mytop-getopt-long.patch	Mon May 17 19:19:43 2010
@@ -0,0 +1,14 @@
+Getopt-Long-2.38 is stricter about what it allows.
+
+diff -Nuar mytop-1.6.orig/mytop mytop-1.6/mytop
+--- mytop-1.6.orig/mytop	2009-04-10 00:47:31.007111359 -0700
++++ mytop-1.6/mytop	2009-04-10 00:50:39.875391905 -0700
+@@ -153,7 +153,7 @@
+     "idle|i"              => \$config{idle},
+     "resolve|r"           => \$config{resolve},
+     "prompt!"             => \$config{prompt},
+-    "long|!"              => \$config{long_nums},
++    "long!"               => \$config{long_nums},
+     "mode|m=s"            => \$config{mode},
+     "sort=s"              => \$config{sort},
+ );

================================================================
Index: packages/mytop/mytop-global-status.patch
diff -u /dev/null packages/mytop/mytop-global-status.patch:1.1
--- /dev/null	Mon May 17 19:19:48 2010
+++ packages/mytop/mytop-global-status.patch	Mon May 17 19:19:43 2010
@@ -0,0 +1,103 @@
+Use GLOBAL STATUS instead of implicit session status.
+
+As of MySQL-5.0.72, many of the status variables split for session and global
+variants. Importantly, the Com_* and Questions ones did, and this broke the
+statistics at the top of mytop.
+
+Signed-off-by: Robin H. Johnson <robbat2 at gentoo.org>
+MySQL-Bug: 41131
+MySQL-Bug-URL: http://bugs.mysql.com/bug.php?id=41131
+
+diff -Nuar --exclude '*~' mytop-1.6.orig/mytop mytop-1.6/mytop
+--- mytop-1.6.orig/mytop	2007-02-16 20:57:46.000000000 -0800
++++ mytop-1.6/mytop	2008-11-30 15:18:05.818845253 -0800
+@@ -98,7 +98,7 @@
+ my %qcache = ();    ## The query cache--used for full query info support.
+ my %ucache = ();    ## The user cache--used for full killing by user
+ my %dbcache = ();   ## The db cache.  This should be merged at some point.
+-my %statcache = (); ## The show status cache for GetShowStatus()
++my %statcache = (); ## The show global status cache for GetShowStatus()
+ 
+ my (%STATUS, %OLD_STATUS); # header stuff.
+ 
+@@ -710,7 +710,7 @@
+     ##
+     if ($config{header})
+     {
+-        my @recs = Hashes("show status");
++        my @recs = Hashes("show global status");
+ 
+         ## if the server died or we lost connectivity
+         if (not @recs)
+@@ -755,7 +755,7 @@
+ 
+         ## Query Cache info
+         ##
+-        ## mysql> show status like 'qcache%';
++        ## mysql> show global status like 'qcache%';
+         ## +-------------------------+----------+
+         ## | Variable_name           | Value    |
+         ## +-------------------------+----------+
+@@ -1064,7 +1064,7 @@
+ 
+ sub GetQPS()
+ {
+-    my($data) = Hashes('SHOW STATUS LIKE "Questions"');
++    my($data) = Hashes('SHOW GLOBAL STATUS LIKE "Questions"');
+     my $num   = $data->{Value};
+ 
+     if (not defined $questions) ## first time?
+@@ -1126,7 +1126,7 @@
+     }
+ 
+     # Variable_name and Value pairs come back...
+-    my @data = Hashes("SHOW STATUS LIKE 'Com_%'");
++    my @data = Hashes("SHOW GLOBAL STATUS LIKE 'Com_%'");
+     my %cmd_data;
+     my %cmd_delta;
+     my %cmd_pct;
+@@ -1216,7 +1216,7 @@
+ sub GetShowStatus()
+ {
+     Clear() unless $config{batchmode};
+-    my @rows = Hashes("SHOW STATUS");
++    my @rows = Hashes("SHOW GLOBAL STATUS");
+ 
+     printf "%32s  %10s %10s\n", 'Counter', 'Total', 'Change';
+     printf "%32s  %10s %10s\n", '-------', '-----', '------';
+@@ -1543,7 +1543,7 @@
+ 
+ And you obviously need access to a MySQL server (version 3.22.x or
+ 3.23.x) with the necessary security to run the I<SHOW PROCESSLIST> and
+-I<SHOW STATUS> commands.
++I<SHOW GLOBAL STATUS> commands.
+ 
+ If you are a Windows user, using ActiveState's Perl, you can use PPM
+ (the Perl Package Manager) to install the MySQL and Term::ReadKey
+@@ -1599,7 +1599,7 @@
+ notice features from each of them here.
+ 
+ B<mytop> will connect to a MySQL server and periodically run the
+-I<SHOW PROCESSLIST> and I<SHOW STATUS> commands and attempt to
++I<SHOW PROCESSLIST> and I<SHOW GLOBAL STATUS> commands and attempt to
+ summarize the information from them in a useful format.
+ 
+ =head2 The Display
+@@ -1817,7 +1817,7 @@
+ 
+ =item B<c>
+ 
+-Show "command counters" based on the Com_* values in SHOW STATUS.
++Show "command counters" based on the Com_* values in SHOW GLOBAL STATUS.
+ This is a new feature.  Feedback welcome.
+ 
+ =item B<d>
+@@ -1904,7 +1904,7 @@
+ 
+ Some performance information is not available when talking to a
+ version 3.22.x MySQL server. Additional information (about threads
+-mostly) was added to the output of I<SHOW STATUS> in MySQL 3.23.x and
++mostly) was added to the output of I<SHOW GLOBAL STATUS> in MySQL 3.23.x and
+ B<mytop> makes use of it. If the information is not available, you
+ will simply see zeros where the real numbers should be.
+ 

================================================================
Index: packages/mytop/mytop-queries-vs-questions.patch
diff -u /dev/null packages/mytop/mytop-queries-vs-questions.patch:1.1
--- /dev/null	Mon May 17 19:19:48 2010
+++ packages/mytop/mytop-queries-vs-questions.patch	Mon May 17 19:19:43 2010
@@ -0,0 +1,72 @@
+In MySQL 5.0.72 the Questions variable was changed to only contain the number
+of client-initiated queries, NOT the number of overall queries. This caused
+problems with the select/insert/update/delete percentages because Com_* was
+still based on the overall queries.
+
+MySQL 5.0.76 introduced a new variable 'Queries' with the behavior of the old
+Questions variable.
+
+Signed-off-by: Robin H. Johnson <robbat2 at gentoo.org>
+MySQL-Bug: 41131
+MySQL-Bug-URL: http://bugs.mysql.com/?id=41131
+
+====
+Revision 2:
+The first revision missed changing the instances of $OLD_STATUS{Questions}.
+
+diff -Nuar mytop-1.6.orig/mytop mytop-1.6/mytop
+--- mytop-1.6.orig/mytop	2009-02-14 17:28:38.696187159 -0800
++++ mytop-1.6/mytop	2009-02-14 17:36:31.192890507 -0800
+@@ -800,8 +800,15 @@
+ 
+         ## Queries per second...
+ 
+-        my $avg_queries_per_sec  = sprintf("%.2f", $STATUS{Questions} / $STATUS{Uptime});
+-        my $num_queries          = $STATUS{Questions};
++        my ($num_queries, $old_num_queries);
++        if(defined($STATUS{Queries})) {
++            $num_queries = $STATUS{Queries};
++            $old_num_queries = $OLD_STATUS{Queries};
++        } else {
++            $num_queries = $STATUS{Questions};
++            $old_num_queries = $OLD_STATUS{Questions};
++        }
++        my $avg_queries_per_sec  = sprintf("%.2f", $num_queries / $STATUS{Uptime});
+ 
+         my @t = localtime(time);
+ 
+@@ -820,25 +827,25 @@
+ 
+ 
+         printf " Queries: %-5s  qps: %4.0f Slow: %7s         Se/In/Up/De(%%):    %02.0f/%02.0f/%02.0f/%02.0f \n",
+-               make_short( $STATUS{Questions} ),  # q total
+-               $STATUS{Questions} / $STATUS{Uptime},  # qps, average
++               make_short( $num_queries ),  # q total
++               $num_queries / $STATUS{Uptime},  # qps, average
+                make_short( $STATUS{Slow_queries} ),    # slow
+ 
+                # hmm. a Qcache hit is really a select and should be counted.
+-               100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) )    / $STATUS{Questions},
+-               100 * ($STATUS{Com_insert} +  $STATUS{Com_replace} ) / $STATUS{Questions},
+-               100 * ($STATUS{Com_update} )  / $STATUS{Questions},
+-               100 * $STATUS{Com_delete} / $STATUS{Questions};
++               100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) )    / $num_queries,
++               100 * ($STATUS{Com_insert} +  $STATUS{Com_replace} ) / $num_queries,
++               100 * ($STATUS{Com_update} )  / $num_queries,
++               100 * $STATUS{Com_delete} / $num_queries;
+ 
+         $lines_left--;
+ 
+         if ($t_delta)
+         {
+-          my $q_diff = ( $STATUS{Questions} - $OLD_STATUS{Questions} );
+-#          print("q_diff: $STATUS{Questions} - $OLD_STATUS{Questions}  / $t_delta = $q_diff\n");
++          my $q_diff = ( $num_queries - $old_num_queries );
++#          print("q_diff: $num_queries - $old_num_queries  / $t_delta = $q_diff\n");
+ 
+           printf("             qps now: %4.0f Slow qps: %3.1f  Threads: %4.0f (%4.0f/%4.0f) %02.0f/%02.0f/%02.0f/%02.0f \n",
+-                 ( $STATUS{Questions} - $OLD_STATUS{Questions} ) / $t_delta,
++                 ( $num_queries - $old_num_queries ) / $t_delta,
+                  ( # slow now (qps)
+                   ($STATUS{Slow_queries} ) ?
+                   ( $STATUS{Slow_queries} - $OLD_STATUS{Slow_queries} ) / $t_delta :
================================================================


More information about the pld-cvs-commit mailing list