Re: Waits useless on MySQL?
Date: Mon, 20 Feb 2023 15:51:00 -0500
Message-ID: <CADUqk8WFAh4BxgHTGMehUG0mMTN0wsm9Bb-QzJ4X8G6gGUUqrA_at_mail.gmail.com>
On Mon, Jan 23, 2023 at 7:51 PM Mladen Gogala <gogala.mladen_at_gmail.com> wrote:
> None of the open source databases is instrumented as well as Oracle. Jeff
> Holt suggested something on the PostgreSQL list, but was put in his place
> in a rather rude response. Both MySQL and PostgreSQL are good for small
> databases, not exceeding 10 TB. If you have a 100TB monster, than Oracle,
> Snowflake or SQL Server are your only choices. There are also commercial
> PostgreSQL derivatives, like EDB, Yugabyte and CockroachDB which all look
> promising. Frits Hoogland, who has recently written a nice article on this
> list about Oracle to Postgres comparison, works for Yugabyte and that
> instills confidence in me, more than the actual name. The prefix "Yuga" is
> a part of the recent history in my country of origin and that *does not*
> instill confidence.
>
In 2007, I was working on trying to get EnterpriseDB/Postgres to the point where we could run an audited TPC-C. While there was no way in hell that was going to actually happen, I got tired of dealing with the lack of instrumentation and trying to track down where the slowdowns were without using profiling/debugging-compiled builds that didn't reflect what we were actually trying to run. Accordingly, I wanted to add Oracle-style wait instrumentation to it, which ended-up being a multi-hour long argument with our sponsored Postgres community members, who felt it wasn't needed and didn't see the point. "Who needs that when you have sar, top, vmstat, etc.," they said :(. Anyway, with the support of Korry Douglas (who now leads the Babelfish architecture at AWS), I finally won the argument and decided to code it that night out of sheer rage. As I generally code better a little buzzed, I grabbed a nearby bottle of tequila and margarita mix and got to work. The next morning, all the major components were instrumented. I named the instrumentation system MARGARITA (Managed Array-based Reporting, Grading, and Aggregating Runtime Instrumentation and Tracing Architecture.) Management ended-up renaming it DRITA, as they felt my original name wasn't fit for publication. A few months later Peter Steinheuser wrote a simple AWR clone on top of it. I don't know if they still have it, but it was better than what exists in community Postgres today.
Like most things, the open-source database community of hackers doesn't generally understand the needs of DBAs/developers trying to solve a problem; they tend to always look at things as if everyone has intimate knowledge of the OS performance/tracing tools and the database itself. Most of the open-source databases don't really have anything that substantial instrumentation-wise. MySQL and InnoDB have some instrumentation, but it's not exactly what's needed. MySQL also uses Fred Fish's well-known dbug library all over the place, which also has support for tracing - but it doesn't expose that to the SQL level IIRC, just as a local file-dump.
-- Jonah H. Harris -- http://www.freelists.org/webpage/oracle-lReceived on Mon Feb 20 2023 - 21:51:00 CET