tag:blogger.com,1999:blog-28788881580722521342024-02-18T17:50:47.672-08:00Rob Young - The Open Product ManagerOpen discussions on open source technologies...stay curious my friends.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-2878888158072252134.post-73524450234961132552014-04-07T15:45:00.001-07:002014-04-07T15:45:23.142-07:00Reflections on return to MySQL Community and Ecosystem<div class="MsoNormal">
<span style="font-family: Arial;">After a four year hiatus, my
participation in last week’s <a href="http://www.percona.com/live/mysql-conference-2014/">Percona Live MySQL Users conference</a> marked my
official return to the MySQL Community and Ecosystem. As with earlier
renditions this year’s “UC” was very well attended with a healthy mix of
familiar faces and new blood, all coming together to discuss, present and
explore the boundaries of the most popular and widely used open source database
on the planet.<span style="mso-spacerun: yes;"> </span>There were many good,
informative keynote and technical sessions, BoFs and the exhibit hall was
packed most of the operating hours with those interested in what the MySQL
ecosystem is up to.<span style="mso-spacerun: yes;"> </span>I also found it very
refreshing that Oracle was among the most active in presenting useful technical
content around their current and future MySQL open source product releases. All
in all, this year’s UC was very well done and as a Percona employee my hope is
that we continue to host the annual event for many years to come.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial;">With all that said, I feel
compelled to share some observations from the week and offer some ideas on how
we (Percona + the MySQL Community) might improve on similar events going
forward.<span style="mso-spacerun: yes;"> </span>So, my observations, in no
particular order:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>The MySQL community is alive and well.</i><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span></b><span style="font-family: Arial;">By a wide margin <a href="http://db-engines.com/en/ranking">MYSQL remains the #1 open source
database in use today</a> due largely in part to how it is embraced, developed
and evangelized by the MySQL Community and those who lead it. For an example, simply follow how the
engineering teams from Facebook, Twitter, Google and LinkedIn have chosen to
build <a href="http://webscalesql.org/">WebScaleSQL</a> on MySQL 5.6 Community
edition.<span style="mso-spacerun: yes;"> </span>That decision speaks volumes to the
vitality and relevance of not only the MySQL Community, but also to the code
branch chosen for this work. A huge win for all involved. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>The MySQL Ecosystem is mature and continues to
innovate.</i></span></b><span style="font-family: Arial;"><i> </i> I spent the last year working in the NoSQL
database space and it felt very much like my early days with MySQL; many
problems to solve, but few production-ready solutions available for immediate
help. In contrast, walking through the UC expo hall this week I was encouraged to see many vendors that cover the gamut
when it comes to solving problems around MySQL; high availability,
backup/recovery, advanced search, replication and clustering deployment and
management, storage, performance monitoring and tuning, consulting, training, tools,
etc. The cool thing is that most of the
solutions also provide innovative support for MySQL as it is used in the Cloud
or in conjunction with other emerging technologies such as OpenStack, NoSQL, and Hadoop. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Arial;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Arial;">Speaking of OpenStack, it is evolving in the true spirit of community driven open source development and those with ambitions of providing or using DaaS based on MySQL should bone up accordingly. It is quickly becoming the defacto standard for Cloud deployments built on MySQL.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>MySQL users have many choices</i></span></b><span style="font-family: Arial;">.<span style="mso-spacerun: yes;"> </span>One of the
advantages of the open source development model is it encourages healthy
competition in the development of a specific product.<span style="mso-spacerun: yes;"> </span>In this case, MySQL users have their choice
of <a href="http://www.mysql.com/">Oracle’s MySQL</a>, <a href="http://www.percona.com/software/percona-server">Percona Server</a>, <a href="https://mariadb.org/">MariaDB</a>, <a href="http://www.tokutek.com/products/tokudb-for-mysql/">TokuDB</a> and <a href="http://www.percona.com/software/percona-xtradb-cluster">relatedCluster/HA options</a> from each. <span style="mso-spacerun: yes;"> </span>The competition
among these and other branches of the product is to the advantage of the
overall MySQL Community. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>And lastly, Oracle continues its investment in MySQL.</i></span></b><span style="font-family: Arial;"> <span style="mso-spacerun: yes;"> </span>Oracle has
remained true to its word by continuing to invest in the development of
upstream MySQL.<span style="mso-spacerun: yes;"> </span>5.6 is the best release
of the product to date and 5.7 is looking very strong.<span style="mso-spacerun: yes;"> </span>Oracle’s presence and participation at the UC
again this year is validation that MySQL matters to them and they see Percona
and those behind WebScaleSQL as partners in the ongoing development of the
Community facing product. It was great to see Tomas and the Oracle/MySQL
engineering team so actively engaged with the MySQL Community and overall
ecosystem at this year’s event.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial;">Like the MySQL Community, I
think it is important for the UC dynamic to continue to evolve to draw in fresh
ideas, innovation and a realistic depiction of how MySQL is used within hybrid
applications and architectures.<span style="mso-spacerun: yes;"> </span>So to
close, here are some non-exhaustive thoughts along those lines:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>Align sessions into role specific tracks</i></span></b><span style="font-family: Arial;"><i>.</i><span style="mso-spacerun: yes;"> </span>This may be
as simple as creating Developer, DBA, SysAdmin and Business centric tracks that
align with attendee demographics and areas of interest.<span style="mso-spacerun: yes;"> </span>CFPs could then be channeled into this
template so topics are balanced and scheduled by area of interest. Keynotes
could also be scheduled that speak to each of the tracks, setting the tone for each.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>Encourage Sessions that present MySQL hybrid use
cases</i></span></b><span style="font-family: Arial;"><i>.</i><span style="mso-spacerun: yes;"> </span>Most NoSQL solutions are being used as a
complement to vs. a replacement of MySQL.<span style="mso-spacerun: yes;">
</span>Developers, DBAs, SysAdmins alike need to learn how to extend their
current MySQL applications to leverage these new platforms without building new
systems from scratch. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;"><i>Add a C-level track that explains MySQL, the MySQL
ecosystem and the business value of mature, open source software.</i></span></b><span style="font-family: Arial;"><span style="mso-spacerun: yes;"> </span>This could be
in the form of a 1-2 day subset of the UC that includes sessions that cover
high-level technical topics that tie the lower-level track sessions with topics
like TCO, support, services, etc. This is now a common component of events
hosted by the new NoSQL providers and would bridge an understanding gap between
MySQL techies and the decision-makers who depend on them. <span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial;">As always, interested in
other opinions, so please let me know your thoughts.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<span style="font-family: Arial;">Great to be back in the
MySQL fold.<span style="mso-spacerun: yes;"> </span>Thanks for holding my place!<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com3tag:blogger.com,1999:blog-2878888158072252134.post-37299293688369776622013-05-30T13:10:00.001-07:002013-05-30T18:12:03.722-07:00MongoDB 2.5.0 Development Release now availableIn the spirit of releasing "early and often", 10gen Engineering has released MongoDB 2.5.0 for development testing and feedback. You can <a href="http://www.mongodb.org/downloads">download the bits and view the change log and release notes here.</a><br />
<br />
And while 2.5.0 is not considered production-ready we <b><i>very much appreciate</i></b> early adoption and feedback on the quality on our work to this point. So, also in the spirit "early and often", please let us know the good, bad and ugly by <a href="https://jira.mongodb.org/">filing Jira tickets against 2.5.0.</a> Your helping with our engineering and development efforts is greatly and humbly appreciated!<br />
<br />
So what's in 2.5.0 and why should you care? While not exhaustive here's a quick summary of two enhancements of interest (details on these things are in the release notes and change log):<br />
<br />
<b>LDAP Support for Authentication</b><br />
MongoDB 2.4 and higher provides support for proxy-based authentication of users. 2.5.0 allows administrators to configure a MongoDB cluster to authenticate users via Linux PAM or by proxying authentication requests to a specified LDAP service. This specific feature is foundational to our enabling MongoDB to be tightly integrated into SSO environments, so the more eyes we can get looking at it early on the better. Please see the <a href="http://docs.mongodb.org/manual/release-notes/2.6/">release notes</a> for the details on getting set up. Please, please, please help us prove this out! Did I say please?<br />
<br />
<b>SASL Library Change</b><br />
To ensure SASL authentication works consistently across all Linux distros, specifically in conjunction with <a href="http://www.10gen.com/products/mongodb-enterprise">MongoDB Enterprise Kerberos authentication</a> (a very good thing that many care about as reflected in JIRA), MongoDB 2.5.0 now uses Cyrus SASL instead of GNU SASL (libgsasl). See the <a href="http://docs.mongodb.org/manual/release-notes/2.6/">release notes </a>for compatibility and SASL2 and Cyrus SASL library plugin dependencies across Linux platforms.<br />
<br />
You might also find <a href="http://www.eliothorowitz.com/blog/2013/05/24/mongos-new-matcher/">Eliot's blog on Mongo's new Matcher</a> interesting as it lays the foundation for more complex, advanced query handling in the future. <br />
<br />
Happy testing! and as always, thanks for your support of MongoDB!Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0tag:blogger.com,1999:blog-2878888158072252134.post-44589646309555721172013-05-06T13:33:00.004-07:002013-05-06T13:38:24.256-07:00Thoughts on move to 10gen and MongoDB as NoSQL market leaderIt has been a little over a month since I
joined 10gen and I want to share some of my impressions now that some of the
newness has worn off and I am settling into my role. For context, in March I left Oracle and my position
as Director of Product Management for the MySQL database to assume a similar
role at 10gen working with MongoDB. I
still have many good friends and respected colleagues on the MySQL team and
truly believe them and the MySQL product to be in good hands under Oracle. That said, here are my thoughts on my move
and on the database market as a whole (note the emphasis here is on use case vs
proprietary and open source):<br />
<br />
<i><u><b>10gen reminds me very much of MySQL AB prior to the Sun acquisition.</b> </u></i><br />
I joined MySQL in 2005, a full 3 years before the Sun acquisition. Back then, there was little distinction across the titles and roles within the MySQL team. Basically, <b><i>everything</i></b> that <b><i>everybody</i></b> did <b><i>everyday</i></b> made <b><i>every bit of a difference</i></b>. This meant that there was a cohesion across the entire team and that most tasks were met with a “can-do”, positive attitude by the owner or owners regardless of where they fell on the org chart. I see this same trait carried out in the 10geners I have been in contact with and hope it carries on even as the company continues to grow.<br />
<br />
<b><i><u>10gen places a huge importance on all employees having a working technical knowledge of its products. </u></i></b><br />
I joined 10gen with years of application and database development experience, mostly using relational models. While most concepts apply to a document-oriented model there are enough technical differences that leave me as a complete novice when it comes to specific MongoDB details and its practical use cases. I have spent my first month in a series of self-guided and instructor led technical training sessions and a practical, real-world bootcamp that have proven to be a welcome quickstart to my understanding and working with the technology. This will pay great dividends as I get more overwhelmed with my true PM duties.<br />
<br />
<i><u><b>MongoDB is winning the NoSQL database market.</b> </u></i><br />
More importantly, in winning this market it is also winning many general use deployments and projects that have traditionally been implemented on other open source or proprietary rdbms solutions. How is this happening? It really boils down to a few simple, but important factors:<br />
<ul>
<li><b>MongoDB is winning the hearts and minds of the developer.</b> By providing flexible, direct access to schema and data definition via JSON, there is little/no developer learning curve when moving between application development and data definition and management. </li>
</ul>
<ul>
<li><b>MongoDB is a true “hero” maker. </b>
Replication and cluster based sharding are designed as the default deployments and are comparatively simple to implement. Developers can add HA scalability to their upfront deployment plan without adding pain to a DBA or Sysadmin’s life, which is a huge advantage over other databases’ modus operandi. </li>
</ul>
<ul>
<li><b>MongoDB users leverage > 90% of its functionality.</b> Without the complexity and overhead of unneeded features. On the flipside most Oracle, SQL Server users/applications leverage < 20% of features while paying for them all.
These things, along with the tremendous momentum around downloads, user events, big name community and customer success stories are good indicators that MongoDB is poised to not only win the NoSQL database market, but the <b>overall<i></i></b> database market in due time. </li>
</ul>
<ul>
<li>It took Oracle 30 years to build an empire; I believe 10gen + <b>MongoDB can do better for both community users and paying customers<i></i></b> in a much shorter timeframe if we remain focused on and true to the points noted above. </li>
</ul>
One final thought. I have gained a true appreciation and respect for Eliot, Dwight, Max and the other executive level leaders of the 10gen business. They are clear in their ambitions for MongoDB and any supporting products that come out of 10gen in the days, months and years to come. They are on public record as saying that 10gen’s goal is to build a sustainable investment and business around the best and most widely used general use database in world. That long term mentality, with many small sprints factored in along the way, is what excites me most about my move to the 10gen team.<br />
<br />
Cheers, from 10gen employee/partner #237! Very excited to be here.
Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com1tag:blogger.com,1999:blog-2878888158072252134.post-88523533138966913492010-01-22T12:12:00.000-08:002010-01-22T12:28:42.228-08:005.1 + new InnoDB PluginIf you're wondering what MySQL 5.1 with the new InnoDB Plugin is all about you'll want to tune into the <a href="http://mysql.com/news-and-events/web-seminars/display-493.html">webinar</a> I am hosting next Tuesday. I'll cover the why, what and how behind the immediate performance and scale improvements that can be had, especially on modern (> 4 CPU) servers, by enabling the new plugin in MySQL 5.1. <a href="http://mysql.com/news-and-events/web-seminars/display-493.html">Learn more and get registered</a>, it should be good time!<br /><br />You can also take it to a deeper level by joining Brian Miezejewski from our PS team on 3/9 for <a href="http://mysql.com/news-and-events/web-seminars/display-498.html">a practical guide to using and tuning the new plugin features</a> to improve performance and scale. Hope you can join us!Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com1tag:blogger.com,1999:blog-2878888158072252134.post-12152751357781436352010-01-14T08:41:00.000-08:002010-01-14T08:47:03.821-08:00One reason a no indexes approach is niceLike a lot of you, I’ve been following with interest <a href="http://www.mysqlperformanceblog.com/2010/01/07/star-schema-bechmark-infobright-infinidb-and-luciddb/">Percona’s testing of the open source column databases.</a> One thing I think is pretty cool about some column databases that work with MySQL is that they don’t require you to create indexes. The reason is, in general, the column is the index. Not having to create indexes is nice because lots of indexes can really bog down a database if you’ve got a lot of load or DML activities because the indexes have to be maintained for all data input and alterations.<br /><br />In Percona’s test, they showed the load time for all the different databases, but I noticed that the times didn’t include the index creation for LucidDB or MonetDB. I decided to follow <a href="http://www.percona.com/docs/wiki/benchmark:ssb:luciddb:start">Vadim’s link on the LucidDB index creation</a> and totaled up the time it took to create the indexes. For the index and statistics times, it was 384,314 seconds and when you add that to the 140,736 seconds for the table load, you get 6 days just to create the database. That’s quite a difference from the 6 hours for InfiniDB and 14 hours for InfoBright, both of which don’t need or use indexes.<br /><br />I’m sure indexes supply a benefit for some column DB’s in various use cases, but if the database was real dynamic and required a lot of new objects with indexes be added, continuous heavy loads, or DML, it would seem that indexes could really put a ding in things. In that case, it would seem column DB’s thatdon’t require indexes could have an edge there.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com7tag:blogger.com,1999:blog-2878888158072252134.post-26449439064058856762009-09-09T07:03:00.000-07:002009-09-09T08:22:31.193-07:00Less time finding, more time fixing! Enterprise Monitor 2.1, Updated Query Analyzer Now GA!I just wanted to tip my hat to the MySQL Enterprise Tools Engineering team for another great release of the Enterprise Monitor. Not to name names, but I want to give a special thanks to a team that always over delivers on a collective commitment to producing quality software. So, a mega thanks to:<br /><br />Andy Bang, Sloan Childers, Darren Oldag, Eric Herman, Jan Kneschke, Kay Roepke, Mark Matthews, Bill Weber, Diego Medina, Marcos Palacios, Carsten "Pino" Segieth, Josh Sled, Keith Russell, Mark Leith, Heidi Bergh-Hoff, and Gary Whizin (and also welcome Michael Schuster!)<br /><br />Yet another great job guys!<br /><br />The new version, 2.1, was posted as GA early on Tuesday and it is quite possibly the best release of the Enterprise Monitor to date.<br /><br />For those not familiar with the Enterprise Monitor, it is included in a <a href="http://www.mysql.com/products/enterprise/">MySQL Enterprise subscription</a> and is a distributed web-based app that users deploy in their environment to monitor and tune the security, performance and availability of their dev, QA and production MySQL servers. It is comprised of :<br /><br /><ul><li>An agent, written in C, that is installed on each monitored data source, which collects MySQL and OS metrics, SQL code and exec results</li><li>A central server (aka "service manager"), written in Java, that collects, monitors and alerts on the data collected by each agent. The service manager uses MySQL Best Practice Advisors to measure the collected data against user-defined thresholds and to proactively notify DBAs of problems or tuning opportunities. Alerts are sent to a central console or via SMTP or SNMP notifications.</li><li>A repository that holds the data collected by each agent. The service manager monitors the data stored in repository vs maintaining a persistent connection to each MySQL server.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikDEEXb79kD-HwM-RhWUTEqK1z_VD-ooWhtWdq9bAzHiEeBq0lVSvTVEj5nUVLP7ZzMUIJmBhQO56KcJ80nFsACHnfe1dhf7V_3Quu7tCrkIK1DP3R-7uzexrBwRGHj4e2uEowrTRaboSv/s1600-h/MEM21_dashboard_full1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 317px; height: 249px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikDEEXb79kD-HwM-RhWUTEqK1z_VD-ooWhtWdq9bAzHiEeBq0lVSvTVEj5nUVLP7ZzMUIJmBhQO56KcJ80nFsACHnfe1dhf7V_3Quu7tCrkIK1DP3R-7uzexrBwRGHj4e2uEowrTRaboSv/s400/MEM21_dashboard_full1.png" alt="" id="BLOGGER_PHOTO_ID_5379484655320839058" border="0" /></a></li></ul>The Enterprise Monitor also provides MySQL specific monitoring features. There is a Replication Monitor that proactively monitors replication topologies for synch and performance issues and a new Query Analyzer that made its debut in release 2.0 in late 2008. The Query Analyzer is designed to save DBAs/Devs time in finding the most expensive queries (by total exec time, exec count, amount of data returned, etc) running across all dev, QA and prod MySQL servers without any dependence on the MySQL logs or things like SHOW PROCESSLIST. You can learn more about the Query Analyzer <a href="http://www.mysql.com/products/enterprise/query.html">here</a>.<br /><br />Based on customer interviews and years spent in the field, we understand the pain associated with finding bottlenecks rooted in poorly written or inefficient SQL code (this is consistently the #1 problem we hear when talking with MySQL DBAs and devs.) This new release helps a DBA/Dev spend less time "finding" and more time "fixing" poorly performing queries. The key new features in the Query Analyzer include:<br /><br /><ul><li>Clickable MySQL and OS graphs that visual correlation system and query activity. Mouse-over a spike in any graph and drill into the queries that were running at the same time. Big time saver.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKnEzM1CnzKtx5NimQQ54PioQx9seBnPjcRBAORjvAFATZ4Iip1yXE9osM93_XPwgXKcEz7jFjDrCiJXAK0ByRVEhsUUbv9gmtkDkcRzEEq_s4ZUrTJkamktjM2PhcAeumdtvhW8a1-UFU/s1600-h/MEM21_quan_by_server_cropped.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 288px; height: 164px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKnEzM1CnzKtx5NimQQ54PioQx9seBnPjcRBAORjvAFATZ4Iip1yXE9osM93_XPwgXKcEz7jFjDrCiJXAK0ByRVEhsUUbv9gmtkDkcRzEEq_s4ZUrTJkamktjM2PhcAeumdtvhW8a1-UFU/s400/MEM21_quan_by_server_cropped.png" alt="" id="BLOGGER_PHOTO_ID_5379483356624795522" border="0" /></a></li><li>Drill down capability for query specific executions – drill into any query and see execution specific graphs for exec time, count, data returned. Helps you see the "normal" exec pattern for a query and identify outliers that may occur during specific windows or time or for specific variable combinations.</li><li>Counts for SQL errors/warnings - help you quickly identify queries that may have never finished or that finished in error. These routinely go undetected by the MySQL logs, etc.</li><li>UI support for EXPLAIN generation threshold - gone are the days of hacking the quan.lua script to set this value!</li></ul>We have also added new Advisor Rules and Graphs around connections, stale table statistics, tables without indexes, PKS and locked and long running processes.<br /><br />The new release also includes an updated "What's New" page that allows you to optionally subscribe to live feeds for your open support issues (nice, especially for the issues with a status of "waiting on customer") and for MySQL product updates and alerts. Nice time saver, especially for getting updates on new releases of the Enterprise Server and for Monitor Advisors and graphs.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Cd5wPUM8zekhvMQFHWd__cF5Ur9B0MBA8OuuRmVWWHhqG1Ft9iQ3hsKmMMaFR-deEVQ8rGZjWXhCOEnoC5EzmSqjx500TZ28dWJrFW6lhzu8RwjvhFSlrrESBWfCsstm5nGDYvuSFgCs/s1600-h/MEM21_whatsnew_page_detail.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 345px; height: 210px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Cd5wPUM8zekhvMQFHWd__cF5Ur9B0MBA8OuuRmVWWHhqG1Ft9iQ3hsKmMMaFR-deEVQ8rGZjWXhCOEnoC5EzmSqjx500TZ28dWJrFW6lhzu8RwjvhFSlrrESBWfCsstm5nGDYvuSFgCs/s400/MEM21_whatsnew_page_detail.png" alt="" id="BLOGGER_PHOTO_ID_5379483832104621154" border="0" /></a><br /><br />So how do you get it? Glad you asked...if you are an Enterprise subscriber you can grab the new release and all of the updated docs from the Enterprise Customer <a href="https://enterprise.mysql.com/monitoring/download.php">download page</a>. If you are interested in learning more or want to try the new Monitor and Query Analyzer for yourself, you can register for a <a href="http://mysql.com/trials/">30 day trial</a> subscription which includes a fully functioning version of the Monitor and Query Analyzer. You also learn everything about MySQL Enterprise by visiting the <a href="http://www.mysql.com/products/enterprise/">MySQL web site</a>.<br /><br />Look forward to hearing about your experience with the new release!Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com4tag:blogger.com,1999:blog-2878888158072252134.post-21742867126145724772009-09-01T12:45:00.000-07:002009-09-01T13:01:40.214-07:00Update on MySQL Enterprise Monitor and "Quan"Just a quick update that the new MySQL Enterprise Monitor has reached RC readiness and is set for official launch in the next few weeks. This is version 2.1 and features:<br /><ul><li>Enhanced Query Analyzer with correlation graphs so you can highlight and drill into spikes in key system resources to see the queries that were running at the same time</li><li>Query specific execution graphs so you can track the "normal" behavior of your queries over time</li><li>GUI support for Query Analyzer EXPLAIN generation<br /></li><li>Live feeds for MySQL product updates and alerts</li><li>Live feeds for your open support issues</li><li>New Advisor Rules and Graphs</li><li>and some other things...</li></ul>Here's a screenshot of the Query Analyzer and correlation graphs...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu3chZSCWZze8xiCGb4G83dW8O85T7hYBqoONT7V76p5LjQr_S6SzkdvPe4tWrP-zEt6PCQFTaXjRUhIoob-CasEf_NVciG4a2ed54SOT_U7b_KmB09ZUW-uia0nK5foxPnQHo38JbuUQ6/s1600-h/MEM21_quan_by_server_cropped.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 442px; height: 255px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu3chZSCWZze8xiCGb4G83dW8O85T7hYBqoONT7V76p5LjQr_S6SzkdvPe4tWrP-zEt6PCQFTaXjRUhIoob-CasEf_NVciG4a2ed54SOT_U7b_KmB09ZUW-uia0nK5foxPnQHo38JbuUQ6/s400/MEM21_quan_by_server_cropped.png" alt="" id="BLOGGER_PHOTO_ID_5376590641468314338" border="0" /></a><br />Enterprise subscribers can grab the RC <a href="https://enterprise.mysql.com/monitoring/prerelease.php"> here</a>. If you aren't a subscriber but want to try it for yourself, you can get it <a href="http://mysql.com/trials/">here</a>.<br /><br />Look for the official announcement on GA availability early next week. Another great job by the MySQL Enterprise Tools Engineering team!Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0tag:blogger.com,1999:blog-2878888158072252134.post-29685388275573936242008-09-03T10:52:00.000-07:002008-09-03T11:23:18.901-07:00MySQL Query Analyzer: Quick UpdateAs expected, many people are interested in the "what" behind our new Enterprise Monitor 2.0 w/Query Analyzer, and again, as expected more than a fair number are asking "OK, so when can we try it?" With that in mind, here is a quick update on where things stand:<br /><br />- MySQL Enterprise subscribers can download build 7038 (soon to be 704x) and all of the docs from the <a href="https://enterprise.mysql.com/">MySQL Enterprise customer site</a>. It has been a popular download and we should have a refreshed build very soon.<br /><br />- We are planning to post a public beta in the next 2-3 weeks, most likely after we (the Enterprise Tools engineering team) all return from our annual Engineering meeting (this year it is in Riga, Latvia). That event wraps up on 9/24.<br /><br />- I am doing a webcast on Query Analyzer for our friends in EMEA tomorrow. You can learn more and get registered <a href="http://mysql.com/news-and-events/web-seminars/display-194.html">here.</a> I did the same presentation in the US back on 8/20, so if you can't make the live event, the 8/20 recording/demo is <a href="http://mysql.com/news-and-events/on-demand-webinars/display-od-181.html">here</a>.<br /><br />As the public beta kicks into gear I am interested in hearing your feedback on the Enterprise Monitor 2.0, especially the new Query Analyzer. Please plan to actively participate by using our public discussion <a href="http://forums.mysql.com/index.php?137">forums</a> (feel free to start posting now!) In advance of the public beta I would love to get your feedback on the Monitor/Advisors and how we can improve things to better fit your needs. The forums are open and your honest feedback is greatly appreciated.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0tag:blogger.com,1999:blog-2878888158072252134.post-27821527690924548302008-08-28T14:55:00.000-07:002008-08-28T17:21:48.198-07:00MySQL Query Analyzer: Tracking query executionsFrom a performance standpoint, sometimes even tightly tuned queries can cause a performance drag. The common problem here is not one of actual query performance, rather it is a function of:<br /><br />- the velocity and frequency that a query is submiited for execution<br />- the total execution time of the aggregated executions<br /><br />This could be symptomatic of an application not properly configured for caching (see Darren Oldag's <a href="http://darren.oldag.net/2008/06/hibernate-cache-queries-natural-id-way.html">blog</a> on this!), or just overall poor design. Regardless of why, when or how we all know it happens. The trouble with this particular problem is that when a query is tuned, or very simple, it is usually not suspect for being a resource hog. Pulling aggregates for number of execs and total exec time for specific queries is a little tricky and labor intensive with the Slow Query Log, and not really a good option for SHOW PROCESSLIST. With this in mind, we designed the Query Analyzer to aggregate these values for quick reference in the Enterprise Monitor. Take a look:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0iYFZRX_e3Cfu1bTVeTJFN7hmLbkofE3sLy0yxd38OzKtOBNzI4TXNdEmekWe7C-komdK_qO8TrFQpKNoiZHvTWAVTHFZA3wZEuh2LjKuwmwQTuTMsEVDV5FUM9Q_xXu1bIyVF0F4aNf9/s1600-h/execdetails.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0iYFZRX_e3Cfu1bTVeTJFN7hmLbkofE3sLy0yxd38OzKtOBNzI4TXNdEmekWe7C-komdK_qO8TrFQpKNoiZHvTWAVTHFZA3wZEuh2LjKuwmwQTuTMsEVDV5FUM9Q_xXu1bIyVF0F4aNf9/s400/execdetails.jpg" alt="" id="BLOGGER_PHOTO_ID_5239727493246000242" border="0" /></a><br /><br />We have also been listening when <a href="http://mysqlha.blogspot.com/2008/07/top-n-monitoring.html">Mark Callaghan</a> talks about reporting rollups for the top-N objects that are consuming resources on the server. Given we will probably have to wait until 6.0 to get the SHOW STATS extensions for this, we are looking at creative ways we can do this now using the proxy and Monitor service agent.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com10tag:blogger.com,1999:blog-2878888158072252134.post-33394518472529478662008-08-25T12:48:00.000-07:002008-08-25T17:27:55.723-07:00MySQL Query Analyzer: DBA Task #1: Finding Bad QueriesOne of the biggest problems I faced as a field DBA was defending my production databases against poorly performing SQL code. Talking to folks at the MySQL UC, during customer visits and trolling the MySQL forums/blogs confirms that this is a common problem and even more challenging when a performance problem pops up during times when no code promotions have taken place.<br /><br /><span style="font-weight: bold; font-style: italic;">Traditional/popular way of finding bad SQL code</span><br />For MySQL DBAs the challenge to identify and isolate resource intensive SQL code is really two-fold; job #1 is to find the offending code (after that the chore becomes fixing it so it performs, but that is a topic for another post). Most MySQL DBAs have used the MySQL Slow Query Log ("SQ Log") at some point to help with job #1. For those not familiar, the SQ Log is enabled by starting MySQL with --log-slow-queries[=file_name] option. Once enabled the SQ Log captures queries that took longer than X seconds (user definable value between 1 and 10) and presents them for parsing and analysis. Beginning in 5.0 it can be configured to also log any queries that do not use indexes. The SQ Log is formatted into entries that look like:<br /><br /><p:colorscheme colors="#ffffff,#000000,#808080,#000000,#00cc99,#3333cc,#ccccff,#b2b2b2"> </p:colorscheme><div shape="_x0000_s1026" class="O"> <div style=""><span style=""><b>#Time: 08073101 16:25:24 </b></span></div> <div style=""><span style=""><b>#User@Host: root[root] @ localhost [127.0.0.1] </b></span></div> <div style=""><span style=""><b>#Query_time: 8 Lock_time: 0 Rows_sent: 20 Rows_examined: 243661 </b></span></div> <div style=""><span style=""><b>SELECT part_num FROM `inventory`.`parts` WHERE </b></span></div> <div style=""><span style=""><b>(`ven` = "foo") ORDER BY `delivery_datetime` DESC LIMIT 100;</b></span><span style="font-family:Arial;"><b> </b></span></div> </div><br />While the SQ Log provides good details on bad code, using it comes at a cost:<br />- Prior to 5.1, MySQL has to be restarted to enable logging<br />- The log grows very large, very quickly. Running it in production is not mainstream, but can be managed via scripts and FLUSH LOGS<br />- Entries must be parsed/sorted for relevance<br />- Must use long_query_time=0 option to capture all queries, which comes with overhead of its own<br />- Statements are logged in raw format, there is no aggregation, or roll ups of executions times, occurrences, etc. Basically, the SQ Log is not easy to use, and takes time to navigate to find queries that are suspect and in need of tuning or elimination.<br /><br />At this point, I have to admit that I <span style="font-style: italic;">*strongly*</span> agree with those that say that MySQL performance related metrics should be part of the MySQL server and readily available for all to consume. In short, things like the SQ Log are good, but such instrumentation belongs in a true performance/wait interface that is designed into the MySQL server product. My buddy <a href="http://blogs.mysql.com/robin/">Robin Schumacher </a>has been promoting such an Engineering spec for many moons and it appears we will see the first fruits of that work appear in 6.0. So while we are waiting we have a choice; we can continue to pine for a server side solution, or we can be proactive and create an easy to use solution that works now and will be valid for our older MySQL servers. MySQL Proxy to the rescue...<br /><br /><span style="font-weight: bold; font-style: italic;">Using MySQL Proxy for Monitoring Queries/Performance</span><br />The MySQL Proxy is available under the GPL and provides a chassis for those who want to build advanced MySQL query and performance monitoring solutions. By implementing the Proxy between your apps and MySQL servers you can intercept their communication stream and build your own query and performance related data collections using Lua and then use your own custom apps to aggregate, monitor and view the data as it runs on your systems. Info (and user forums) on using the Proxy is <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy.html">here</a><a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy.html">.</a><br /><br /><br /><span style="font-weight: bold; font-style: italic;">Using MySQL's Query Analyzer to find bad SQL code</span><br />MySQL Enterprise provides an out-of-the-box solution for DBAs/Devs who want to use the Proxy to monitor for poorly performing SQL code, but who don't have the time to build a solution on their own. The Enterprise Monitor Service Agent has been extended to include the Proxy chassis and required Lua extensions so that it listens on a user defined port for application queries, collects the SQL code and performance stats and then reports the results back so they can be stored in the Monitor repository for monitoring and analysis. Integrated into the Enterprise Monitor, the Query Analyzer leverages the Proxy reported metrics so DBAs and Devs can visually pinpoint bad SQL code based on aggregated exec times, number of execs, rows/data returned, etc. The cool thing is the Query Analyzer saves development time building a custom monitoring solution. It also eliminates all of the human and system overhead attributed with enabling and parsing the SQ Log. The Query Analyzer:<br /><br />- minimizes/eliminates the need to enable the SQ Log to find expensive SQL code<br />- aggregates queries by total exec time, number of executions<br />- organizes and sorts SQL by relevance across all servers<br />- filters by query type, content<br />- shows trending by date range<br />- tracks queries by database, application<br />- provides drill downs into normalized and specific execution statistics<br />- provides full explain of worst offenders (user definable)<br />- provides summary of all queries in a consolidated view:<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFoGyF1QwUb3R2YHG5-YlKHb1aFj2KL8OJ5QPcbKwPHmDRBevh93ldd16xe1sMvUzVSsRCzFAnUDhcOlFy4a8x7iFfZBwvW6Q_67NoSNFpisQIFVgY01E_5Oxq7V3OJkuSmtlb4RWXuPEc/s1600-h/summary.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFoGyF1QwUb3R2YHG5-YlKHb1aFj2KL8OJ5QPcbKwPHmDRBevh93ldd16xe1sMvUzVSsRCzFAnUDhcOlFy4a8x7iFfZBwvW6Q_67NoSNFpisQIFVgY01E_5Oxq7V3OJkuSmtlb4RWXuPEc/s400/summary.jpg" alt="" id="BLOGGER_PHOTO_ID_5238566292933544802" border="0" /></a><br />After you find a suspect statement, you can then drill into specific occurs across servers:<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN-ygQj9r1-hTElgFzAvhavn8cW-xIn2zH-263DZa8UsqW87zJnSLohetqm9KrjZ2PAcMsrdy5-NyyuK5KUOz97Fd-DdFxgytEm4lnFVpr1I3IMP7u5m7llkfCd9-e1JkG-u8O8WcISLX-/s1600-h/details.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN-ygQj9r1-hTElgFzAvhavn8cW-xIn2zH-263DZa8UsqW87zJnSLohetqm9KrjZ2PAcMsrdy5-NyyuK5KUOz97Fd-DdFxgytEm4lnFVpr1I3IMP7u5m7llkfCd9-e1JkG-u8O8WcISLX-/s400/details.jpg" alt="" id="BLOGGER_PHOTO_ID_5238566786953399074" border="0" /></a><br />While enabling the Query Analyzer comes with some Agent overhead expense, it can be quickly enabled/disabled without a server restart and the SQL code and performance data that is collected and returned is stored in the Monitor repository so it can used for later analysis. For the SQ Log purists, we do plan to incorporate a means to pull over the MySQL log files into the Monitor too, but we wanted to implement a solution that helps our pre-5.1 install base (meaning, they can monitor for bad queries without enabling the SQ Log via a server re-start) as part of the first rev. Hey, if we have to wait for a true performance/wait interface, may as well make the best use of our time...Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com1tag:blogger.com,1999:blog-2878888158072252134.post-6928654895818740222008-08-14T13:55:00.000-07:002008-08-14T14:37:21.051-07:00MySQL Enterprise Monitor: Agent = ExtensibilityI have gotten a few questions around my <a href="http://theopenproductmanager.blogspot.com/2008/07/mysql-enterprise-monitor-secret-about.html">7/29 blog posting</a> on agent vs client-side products and wanted to make it clear that our decision to go with a distributed agent architecture was a strategic decision that has paved the way for us to deliver on our overall "pain point" addressing roadmap. True, building a client-side app would have meant a faster go-to-market delivery, but that path would have imposed serious limitations on our ability to address and alleviate common pain points around the use and scaling of apps on MySQL.<br /><br />So what does an agent really do for us from a strategic standpoint? Without revealing too many details (well, these things have already been openly discussed with customers and presented in our MySQL UC 2008 Product roadmap session), our agent-based architecture allows us to provide:<br /><br />- Freedom from a fat client **<br />- Minimal connections to the backend MySQL database **<br />- Real-time visibility and monitoring of all MySQL servers in a consolidated view **<br />- Real-time collection of queries and result sets **<br />- Independent collection of MySQL, OS, SQL for monitoring, trending, capacity planning **<br />- Slave aware Load Balancing of reads/writes<br />- Connection concentration to remove overhead of idle connections from production servers<br />- Autonomous, remote administration of all MySQL servers<br />- Server level scheduling of admin tasks, maintenance, back up, recovery, etc.<br />- Application data sharding across replicated slaves<br />- Server/App level Security and Data Auditing<br /><br />Just to name a few. As I said, there are no secrets here, we have discussed all of this openly in our public webinars and at this past Spring's UC. For your day-to-day tasks, we do provide quality, client-side, <a href="http://dev.mysql.com/downloads/gui-tools/5.0.html">GUI tools</a> for *free* that will help you manage single servers, dev and test queries, migrate data, etc. For the more advanced things noted above, the work is better left to a distributed management solution.<br /><br />As a reminder, look for the public beta of the Enterprise Monitor w/Query Analyzer to open up in the next few weeks. I will post links to the beta registration and download when it is ready to roll.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0tag:blogger.com,1999:blog-2878888158072252134.post-18291761335980411372008-07-31T15:07:00.000-07:002008-07-31T15:21:57.371-07:00MySQL Query Analyzer: Open Beta Coming!We are quickly approaching opening up the MySQL Query Analyzer for general beta and I wanted to pass along an open invite to the following related and informational events.<br /><br />On 8/13, I will be doing a micro level presentation on MySQL Enterprise. Please attend and learn more about the database software, monitoring and advisor services and support solutions that make up a subscription. I plan to do a demo of the Enterprise Monitor and the new Query Analyzer; that alone makes attending worth the price of admission (in this case 45 minutes of your time!). Learn more and register <a href="http://mysql.com/news-and-events/web-seminars/display-179.html">here</a>.<br /><br />On 8/20, I will be doing a presentation on the new Query Analyzer. This will be a technical discussion around how DBAs monitor for bad queries now and how the Query Analyzer makes the job much easier. This will be a good time to learn about getting in on the beta too. Learn more and register <a href="http://mysql.com/news-and-events/web-seminars/display-181.html">here.</a>Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com1tag:blogger.com,1999:blog-2878888158072252134.post-13598876629099657112008-07-29T15:21:00.000-07:002008-07-30T06:29:06.954-07:00MySQL Enterprise Monitor: The Secret about AgentsI am often asked why we chose a distributed, web-based architecture for the Enterprise Monitor application. For those not familiar with how the app is deployed, the Enterprise Monitor is typically installed within a customer firewall and is comprised of 3 components:<br /><br />- a lightweight agent written in C, that is deployed to each monitored server to collect MySQL, OS data and Query content and diagnostics<br />- a centralized server that monitors the collected data and queries, sends out alerts and serves up the supporting web application<br />- a MySQL repository that holds the collected data and queries<br /><br />A typical deployment looks something like this:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaZEL6cmWnw51KYazYBJafgWRfhnCidwgpki9w7yC9gOZq01VpqIx-GhPD6KgcuSyxRdKp9HI11gnHu7rTjn2epvvaW3nkpnev7cHkmFfgE3Z3CpwKU0Q9jLNJF0DVAkiGnNR5kW08g2XL/s1600-h/architecture.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaZEL6cmWnw51KYazYBJafgWRfhnCidwgpki9w7yC9gOZq01VpqIx-GhPD6KgcuSyxRdKp9HI11gnHu7rTjn2epvvaW3nkpnev7cHkmFfgE3Z3CpwKU0Q9jLNJF0DVAkiGnNR5kW08g2XL/s400/architecture.jpg" alt="" id="BLOGGER_PHOTO_ID_5228568141558368898" border="0" /></a><br /><br />Having come to MySQL from <a href="http://embarcadero.com/">Embarcadero Technologies</a>, I understand that many customers are somewhat uneasy with loading an agent on their production database servers. In fact for environments with a small number of developers, applications, and databases I actually prefer a client-centric solution. With this in mind I use the following guidelines when deciding if a new administration/monitoring product or app should be client or web-based (please note that these do NOT apply to development or design tools, which are best rendered in client side apps):<br /><br />Local, client-based apps are best for:<br />- Small development shops (3 or less developers). I want the available connections to my production servers to be paying customers not DBAs or Developers!<br />- Small applications with a small number of MySQL servers. Most client side apps provide single server connections and visibility making navigation a bit kludgy. Some ISVs have the multi-server view thing figured out, but most do not.<br />- Departmental applications with limited end users. The SLAs tend to be less strict and network bandwidth issues around pulling data to/from dedicated client connections is less of an issue.<br />- Small, localized corporate campuses. Typically client based solutions require the footprint of the app to reside on a specific desktop, device, etc. This requires the user to be somewhere close to an enabled workstation to well, uh, use the app.<br /><br />Distributed, web-base apps are best for:<br />- Large shops with many DBAs, Developers, Sys Admins. In most web-based deployments all app users can be serviced by a single connection and data collected by an agent that is running on the monitored data source. Minimal connections, maximum efficiency.<br />- Monitoring and managing a large number of backend MySQL servers. This is made easy because typically an agent based architecture scales better than one that relies on adding more clients (and connections) to an environment. Most deployed agents serve as "daemons" that keep track of things MySQL up/down status, connection status, etc, all without the user having to initiate a connection.<br />- Monitoring MySQL from anywhere. Basically all you need is access to a browser. Enough said.<br /><br />So, why did we choose a web-based architecture for the Enterprise Monitor? Well, it seems most of our users are split across these guidelines; most have small, nimble MySQL DBA and Dev teams, but an ever growing number of MySQL servers. We opted to provide a tool that would help them scale their resources to monitor/manage more MySQL servers with less time and effort.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0tag:blogger.com,1999:blog-2878888158072252134.post-82286556197691751172008-07-28T19:07:00.000-07:002008-07-28T20:19:51.869-07:00MySQL Enterprise Monitor: Competition is a good thing!As the Product Manager for <a href="http://mysql.com/products/enterprise/">MySQL Enterprise and the Enterprise Monitor</a> I am constantly being asked questions from our Sales team, prospects, customers, etc. about how our products stack up against competing products. This is tough for a PM because competitive situations change with each new release cycle and ISVs (both free/open and commercial) with agile development practices can deliver new features in very short order. Further, getting into a feature-feature discussion is a no win situation because someone will ALWAYS have more check marks. Also, I tend to be more positive about competing products because a) healthy competition makes us all better and b) my competitors enable more people to use MySQL to build apps that will most likely need MySQL support and c) the best support for MySQL comes under a MySQL Enterprise subscription! With those things in mind you will *never* hear me or the Engineering team I work with bad mouth or otherwise run down a competing MySQL monitoring product. <br /><br />When asked about competing MySQL Monitoring products I think it is best to focus most on the value the Enterprise Monitor provides by asking some simple questions:<br /><br />- Does product X allow you to see and monitor all your servers in one consolidated view?<br />- Is product X agent and web based for scalability?<br />- Does product X use minimum connections to collect monitoring data from your MySQL servers?<br />- Does product X store monitoring data so you can analyze it later using any BI app?<br />- Does product X notify you of problems when you are not using the GUI?<br />- Does product X describe and help you fix/tune what/where/how when needed?<br />- Does product X plug into your existing notification/alert/escalation system?<br />- Does product X show you the top-N query resource hogs for specified periods of time?<br />- Finally, does product X come as part of solution that includes a version of MySQL fully supported with regular updates, and production support provided by the MySQL Support team for both the MySQL server and the monitoring product?<br /><br />Not sure about other Monitoring products, but the answers for the Enterprise Monitor are, in no certain order, yes yes, yes, yes, yes, yes, yes, yes and yes.<br /><br />I am also torn when I am asked to compare how the Enterprise Monitor compares to custom in-house written scripts used to monitor MySQL. Knowing the blood, sweat, tears and pride that goes into each script I usually ask "how will you spend your time now that won't have to collect and store metric data and then write, version, or maintain your own scripts to monitor it?" The former DBA in me recognizes when this particular question strikes a chord...<br /><br />-Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0tag:blogger.com,1999:blog-2878888158072252134.post-48960288110810021182008-07-25T14:10:00.000-07:002008-07-25T14:49:31.210-07:00MySQL Query Analyzer: Finds good code, gone badIn my 14 years in development I learned that outside of poor schema design, nothing drains the performance of an application more than poorly performing SQL code. Even code that ran well on day one of production would sometimes come back to bite at the worst possible times. Even worse, as a DBA I was consistently asked to bail out a development team that was either tuning their code before the rush to production or that was trying to finger code that had fallen victim to a dropped or changed index. Never fun.<br /><br />As a Product Manager with MySQL I have learned from meeting with friends/customers that this experience hasn't really changed much since I left the field. I hear things like:<br /><br />- MySQL is not well instrumented for tracking code level performance metrics<br />- Logs are OK, but not centralized and too low-level for easy navigation<br />- We need help identifying "good code gone bad" and "bad code gone worse"<br /><br />To these friends I say we have listened (and will continue to) and help is on the way! My team has been busy working on the new MySQL Query Analyzer that will ship as part of the Enterprise Monitor a little later this year. Just a few bullets on what it does and what you can do with it.<br /><br />Cool things it does:<br />- Proactive collection and identification of problematic SQL code.<br />- Historical browsing/analysis of queries across all servers.<br />- Aggregated roll ups of all queries in canonical form (no variables).<br />- Fully qualified views of worst performing statements.<br />- Drill downs into query details, number of executions, execution stats<br /><br />These things are baked into the Monitor to help:<br />- Tune your SQL code before it is promoted to production<br />- Quickly identify queries that are sapping performance<br />-- by query type, content, server or application user<br />- Once problematic code is surfaced you can:<br />-- view an EXPLAIN plan to see where you need indexes<br /><br />Here's a screenshot of the Monitor with Quan enabled:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq0bIDaFrli0BkZbpHAGrAPbEaobRRYyOYXadQ_X20pOzjPOfzhObQXuJO78bSNOWoibcB7LmJ3gES5CspVFf3_T3carxd8tGMGyT3oByDW6n84HUeadYrvDYiGKq7ygsA_6s8_w1r2Y-Y/s1600-h/querysummary.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq0bIDaFrli0BkZbpHAGrAPbEaobRRYyOYXadQ_X20pOzjPOfzhObQXuJO78bSNOWoibcB7LmJ3gES5CspVFf3_T3carxd8tGMGyT3oByDW6n84HUeadYrvDYiGKq7ygsA_6s8_w1r2Y-Y/s400/querysummary.jpg" alt="" id="BLOGGER_PHOTO_ID_5227069754608615250" border="0" /></a><br /><br />We are currently working with a few "friendlies" on the first beta, but plan to open things for general beta soon. Stay tuned (no pun intended...), more details to follow on how you can help with this.Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com3tag:blogger.com,1999:blog-2878888158072252134.post-76460492951780721362008-07-24T19:01:00.000-07:002008-07-24T20:06:21.551-07:00To be completely open and honest...I remember the day I got "the" call. It was in January, 2001 and I was working as a part of an engineering team developing an online, web-based customer billing system for Louisville Gas & Electric. The app was being developed using VB.net on a Windows DNA (distributed network app) architecture that would eventually be served up under IIS. Cutting edge stuff for the day, ancient by today's standards. The call came from my current boss, Robin Schumacher, who wanted me to join him in something call "Product Management" with <a href="http://embarcadero.com/">Embarcadero Technologies</a>. Overall the move has been a good one, but to be completely honest, I miss getting elbows deep in technical details. Along the way, I have had the opportunity to work with some of the best database management tools on the market. I was fortunate to manage Embarcadero's flagship Rapid SQL and DBArtisan products during my 4+ year tenure and had the great privilege of working with one of the highest performing engineering teams in the ISV business.<br /><br />Robin left Embarcadero to start the Product Management group at MySQL in June, 2005. He recruited me again and I joined him in December of 2005 to manage what was then call MySQL Network. Having worked primarily for corporate IT shops and commercial software companies, it was quite an adjustment coming to work for MySQL. Front and center, the primary product is open source and free to use; hard to swallow for the capitalist in me, but hey I quickly adapted. Actually, I prefer the MySQL model to the old school, licensed, proprietary model. Basically, you use our product to build great apps and when those apps become critical to your business, you pay us to help you make sure they are up and running great. Win-win!<br /><br />At MySQL I work with some of the best and brightest Engineering and business minds in the industry. My primary partnership is with the Enterprise Tools Engineering team led by Gary Whizin and Mark Matthews. Our primary work is focused on the MySQL Enterprise Monitor which comes as part of a MySQL Enterprise subscription. MySQL Enterprise is our subscription based solution that includes the Enterprise Server and regular bug fixes, the <a href="http://mysql.com/products/enterprise/monitor.html">Enterprise Monitor and Expert Advisors</a> and our stellar Production Support Services. You can learn more <a href="http://mysql.com/products/enterprise/">here</a>. We (PM and the Enterprise Tools team) release new versions of the Monitor 2-3 times a year to ensure that the product continues to evolve. Along these lines we are currently working on Enterprise Monitor 2.0 that will ship with advanced Query collection and analysis capabilities. Of all the product releases I have been involved with since jumping from development to Product Management, this one has me the most excited. It might be because we are addressing a common DBA/Developer pain point with a very real, easy to use solution. It might be because every single customer we have spoken to echoes this pain. It might be those things, but I think I am most excited because some of the proprietary tool vendors in the MySQL monitoring space have creatively adopted our very public facing roadmap and announced similar features in their products. I think this is great! We want them to be successful and to enable more people to adopt and deploy MySQL as part of their move to innovative Web 2.0 technologies. IMHO this is a win all the way around!<br /><br />I will post more details on the new beta release of the Enterprise Monitor with the new Query Analyzer in my upcoming posts. It is mighty cool!Rob Younghttp://www.blogger.com/profile/03969989591358063671noreply@blogger.com0