[Phpmyadmin-devel] ready for 4.1.0-rc1 ?

Martyn Dale martyn at proboards.com
Wed Nov 20 19:37:18 CET 2013

Hi Marc,

4.1.0 is no worse in this regard than 4.0.x, however given that the
performance issues appeared to be the primary reason for the dropping of
5.1 in 4.1 (at least that was the implications from postings in the
discussions of the show databases command and disableIS issues), I thought
it important to express that, not just so the underlying issue can be
resolved for MySQL versions 5.5 and above, but also because a number of
distros still ship MySQL 5.1 as its default version, as do multiple shared
hosting providers and that keeping 5.1 support would probably benefit a
reasonable percentage of your userbase.

Unfortunately due to time constraints, offering a fully working solution is
not something I am able to do at present, however I can provide my
(admittedly horrifically hacky) solution that solves the most severe issue

I added code to getData (libraries/navigation/Nodes/Node.class.php) which
is provided at the close of this message. The purpose of this was to simply
return a query object that contained the static information based on the
only_db contents. This way, the related node building functions did not
also need to be edited. For the start of a more complete solution, I would
add a check in there to make sure only_db is actually set before building
it, otherwise having it fall back over to the non database code, as the
code provided will fail if only_db is not set.

The only downside to this base approach is that if an only_db database does
not exist, it will still display on the navigation (whereas currently it
would not), however its children of course wont as they still use the
classic checks. It might however be an opportunity to display that fact, so
users who use only_db are informed they have non existent databases in
their list.

Following is probably some of the most horrible code to hit the mailing
list, but hopefully it gives someone who is more familiar with the PMA
codebase an idea. I shall also keep an eye on the mailing list in case I
get the time to offer something a little more substantial.

        if ($type == 'databases')
                $db_list = $GLOBALS['cfg']['Server']['only_db'];
                $query = "SELECT * FROM ( SELECT '";

                if (is_string($db_list))
                        $db_list = array($db_list);

                if (count($db_list))
                        $query .= implode("' UNION ALL SELECT '",$db_list);
                        $query .= "' ";
                return $GLOBALS['dbi']->fetchResult($query . ") as alias");
                // ORIGINAL getData CODE

On Wed, Nov 20, 2013 at 4:42 AM, Marc Delisle <marc at infomarc.info> wrote:

> Martyn Dale a écrit :
> > Hi,
> >
> > Personally I do not think it is advisable to move forward until certain
> > issues have been addressed. I am talking about
> > https://sourceforge.net/p/phpmyadmin/bugs/3944 and related bug reports.
> >
> > The alleged solution for 4.1 is requiring MySQL 5.5 as a minimum version.
> > This is not going to solve the problems that people have reported when
> > using the 4.x series with large systems, since while 5.5 is better than
> 5.1
> > and below, a full directory scan can still be triggered by any number of
> > combinations of variables as described here:
> >
> http://dev.mysql.com/doc/refman/5.6/en/information-schema-optimization.html
> >
> > I explained this in that bug report where i showed PMAs default usage of
> IS
> > for the navigation on a *5.6* system (with innodb_stats_on_metadata
> > switched off). While that was just a 2 second example, I have seen that
> get
> > up to 60 seconds before query killers kick in. Reports of users on shared
> > hosting accounts, where this kind of behavior can get users accounts
> > terminated has also already been reported (
> > https://sourceforge.net/p/phpmyadmin/bugs/3945, second page "Here is
> what
> > one provider sent as a warning before *deleting my account*")
> >
> > If you remove the use of disableIS and related functionality, it will not
> > solve any issues. Take the SCHEMATA queries for example for getting
> > database lists, this still effectively does a full directory scan, as
> > documented: http://dev.mysql.com/doc/refman/5.6/en/schemata-table.html
> > In this case for example, switching to IS to avoid using the slow
> > performing show databases is redundant since they basically do the same
> > thing. As a basic example, take a directory, with tens of thousands of
> > files, and attempt to do an ls in it, even unsorted (-U) it will take a
> > long time, simply because traversal of the filesystem takes time.
> Requiring
> > higher versions isnt going to miraculously speed up the iteration of
> > directories.
> >
> > On a similar note, when I referenced *innodb_stats_on_metadata *in
> earlier
> > mentioned bug report, I was using it as an example of why relying on IS
> can
> > be as bad, or worse than directly doing a show tables, since it can
> > potentially end up doing additional work.
> > I am pretty worried that modifying the variable was considered as a
> > potential solution. The description of that very setting describes how it
> > affects how the system handles IS queries. An administrator should be
> able
> > to trust that installing something like PMA is not going to change any
> > system variables that could otherwise affect the operation of the system
> >
> > Thank you for your consideration.
> >
> > Regards,
> > Martyn
> Thanks Martyn for your report. We'll discuss this issue before taking a
> decision about 4.1.0-rc1.
> Sadly, 4.1.0 will be released with some bugs in it, but we should avoid
> regressions. So, in your opinion, is the current state of 4.1.0-beta
> worse than 4.0.9, regarding this IS issue?
> --
> Marc Delisle
> http://infomarc.info
> ------------------------------------------------------------------------------
> Shape the Mobile Experience: Free Subscription
> Software experts and developers: Be at the forefront of tech innovation.
> Intel(R) Software Adrenaline delivers strategic insight and game-changing
> conversations that shape the rapidly evolving mobile landscape. Sign up
> now.
> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
> _______________________________________________
> Phpmyadmin-devel mailing list
> Phpmyadmin-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20131120/d7c8eff5/attachment.html>

More information about the Developers mailing list