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