Re: Waits useless on MySQL?

  • From: "Jonah H. Harris" <jonah.harris@xxxxxxxxx>
  • To: gogala.mladen@xxxxxxxxx
  • Date: Mon, 20 Feb 2023 15:51:00 -0500

On Mon, Jan 23, 2023 at 7:51 PM Mladen Gogala <gogala.mladen@xxxxxxxxx>
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

Other related posts: