some questions/optimization ideas

Hill, Greg grhill at corp.untd.com
Tue Nov 7 21:39:36 UTC 2006


I'm starting to familiarize myself with the code a bit, as I'll be
working on integrating memcached into mogilefs (Earl, my boss, emailed
the list previously about that).  Anyway, I just noticed something that
you might want to reconsider.  In mogilefsd, you have:



use POSIX;

 

The POSIX module exports all of its functions by default, adding over
1MB to each process (discovered this when profiling memory usage at a
previous employer).  It'd be better to specify which functions you want
to import, or even better to import none and just refer to them using
the namespace.

 

1MB isn't really a huge deal, but considering you probably only make use
of a few POSIX functions, it's quite wasteful. (in the case where I
discovered it, we were only using 2 functions).

 

Another thing I noticed, albeit not really important:

 

In 'validate_dbh' you have:

 

        my $id = $dbh->selectrow_array("SELECT CONNECTION_ID()");

        if (! $id) {

            # handle's dead.  don't use it.  (MySQL-ism above)

            undef $dbh;

        }

 

While you could just do:

if (! $dbh->ping) {
            undef $dbh;

}

 

That would make it more database agnostic.  Or maybe you had a good
reason for doing it the other way.

 

Maybe you don't care about either of those, but I thought I'd pass them
along.

 

Greg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.danga.com/pipermail/mogilefs/attachments/20061107/01173190/attachment.html


More information about the mogilefs mailing list