Hey Jay,

On 6 Aug 2009, at 19:28, Jay Pipes wrote:

Question:

Why bother with another schema called PERFORMANCE_SCHEMA when we already have INFORMATION_SCHEMA and the standard allows for custom tables to be added to INFORMATION_SCHEMA? I understand the performance reasons for Marc Alff to have not used I_S in MySQL, but I don't see a valid reason to do this in Drizzle...

I would think it would be better to just have Drizzle I_S plugins for performance tables, like:

INFORMATION_SCHEMA.PERFORMANCE_XXX

Thoughts?


I'd agree with that - I don't think they require the PERFORMANCE_ prefix though..


-jay

Mark Leith wrote:
Hi!
On 4 Aug 2009, at 19:16, Brian Aker wrote:
Hi!

Just put up a blog looking for feedback on performance schema info:
http://krow.livejournal.com/643607.html
Some random thoughts about this:
o Check out Marc Alff's work on PERFORMANCE_SCHEMA in MySQL - I think this is great strides forwards o They are proper tables, and hence optimized via the normal optimizer
  o Non-blocking/locking is essential
o It doesn't hurt to throw away some data, as long as you can show that you are doing it o There is still major instrumentation needed from the storage engines in able to provide proper IO tracking o It pretty much covers "contention information, time model, IO stats") from your blueprint from the server perspective
  o http://forge.mysql.com/worklog/task.php?id=2360
o Track and aggregate stats around SQL *within the server* (I know you have this, but this is a biggie and needs reiterating :)) o QUAN is great, but it's a work around with the limitation of not being able to get it from the server
  o PERFORMANCE_SCHEMA does not have something like this either yet
o You need it to be able to track back all of the PERFORMANCE_SCHEMA info to a statement and user to go and beat over the head o Look at V$SQL from Oracle for inspiration http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2113.htm (though it seems most of the current plan is copied from Oracle :))
  o Global transaction ID's and statement ID's surfaced too
o https://blueprints.launchpad.net/drizzle/+spec/create-session-level-sql-execution-objects has FIRST_ISSUED, LAST_ISSUED, FIRST_EXECUTED, LAST_EXECUTED - I don't get the difference. It also splits out physical IO to read/ write, but leaves logical IO lumped together, which is odd - and that happens in a number of places, such as sysobjectio as well. o Track object / user level statistics - IO, size, usage, current optimizer statistics o Certainly by database / table, would be nice to have some stats available about index usage too
  o Or "The other Mark" is going to hunt you down
o When tracking CPU etc, do not use the SHOW PROFILE methods (getrusage is about is helpful with threads as a chocolate teapot is with tea) o More fine grained session statuses - there's plenty of statuses that mean way too much in MySQL already ("Sending data" anybody?) o You get a lot of this from the likes of PERFORMANCE_SCHEMA wait information o A simple SHOW PROCESSLIST sure is helpful though, and knowing more exactly which area of the code you are currently executing is sometimes helpful
o Track temporary table usages (max size used etc.)
I'm know I've probably got a million other things to say on this topic, but I'm just gonna stop here.. :) The overall plan looks great. I think there's some clean up to be done in the table structures proposed however.
Cheers,
Mark


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

--
Mark Leith
MySQL Regional Support Manager, Americas
Sun Microsystems, Inc., http://www.sun.com/mysql/





_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to