Forgot your password?

typodupeerror
Databases Programming Software IT

Ask Database Guru Brian Aker 232

Posted by Roblimo
from the earning-a-living-with-open-source-software dept.
Brian Aker is Director of Architecture for MySQL AB. He has also worked on the code (and database) that runs Slashdot, and is well-known in both Apache and Perl circles. Outside of the arcane world of open source "back-end" programming, though, hardly anyone has heard of him. This is your chance to ask Brian (hopefully after looking at his blog and Wikipedia listing) about anything you like, from Perl to database architecture to open source philosophy to upcoming events in Seattle. We'll send Brian 10 of the highest-moderated questions approximately 24 hours after this post appears. His (verbatim) answers will appear late this week or early next week.
This discussion has been archived. No new comments can be posted.

Ask Database Guru Brian Aker

Comments Filter:
  • You & Google (Score:5, Interesting)

    by eldavojohn (898314) * <eldavojohn@[ ]il.com ['gma' in gap]> on Monday November 12, 2007 @01:46PM (#21325407) Journal
    What is your take on Google's enhancements [slashdot.org]? Do you fear that Google's upcoming code donation [slashdot.org] is going to make them a large stakeholder in the future of MySQL? What impacts (if any) do you think this will have--especially on your decisions as a director?
  • by eldavojohn (898314) * <eldavojohn@[ ]il.com ['gma' in gap]> on Monday November 12, 2007 @01:48PM (#21325433) Journal
    From your Wikipedia article:

    After graduating with triple majors in environmental science, computing and mathematics, from Antioch College...
    Why environmental science? I don't see anything on your blog related to it. I mean, the computers & math make sense but do you have a love or desire for environmental science? Do you feel this has contributed or influenced in some way your outlook on the world of databases or life in general?
  • Object databases? (Score:5, Interesting)

    by Cyberax (705495) on Monday November 12, 2007 @01:50PM (#21325463)
    Do you see a future for object databases? They are quite nice for some applications, but there are no real industrial-grade OpenSource implementations.
  • Slashdot's Future (Score:5, Interesting)

    by eldavojohn (898314) * <eldavojohn@[ ]il.com ['gma' in gap]> on Monday November 12, 2007 @01:50PM (#21325465) Journal
    From your Wikipedia article:

    He then moved to work on Slashdot, where his initial task was to rewrite the database back-end to use Oracle. However, he extended the system to ensure it allowed multiple database back-ends, and became a published author along the way, writing Running Weblogs with Slash. From 2001 to 2007 he posted stories on Slashdot under the Author name of "Krow".
    What do you think about the current state of Slashdot? Do you have any criticisms or praise for its current state compared to where it was when you worked on it? What do you see in the future of it, if anything at all?

    Also, why do you select the nickname "Krow" for both Slashdot & your blog?
  • Archie McPhee's (Score:3, Interesting)

    by A nonymous Coward (7548) * on Monday November 12, 2007 @01:50PM (#21325467)
    Do you ever get out to Archie McPhee's [mcphee.com]?

    I've only been to their store once, but I mail order stuff all the time. Great cubicle toys. The best rubber chickens money can buy outside an art museum :-)
  • Misconceptions (Score:5, Interesting)

    by The Clockwork Troll (655321) on Monday November 12, 2007 @01:52PM (#21325485) Journal
    From your perspective, what's the biggest public misconception about MySQL and what (if anything) is MySQL AB doing to correct it?
  • As a Guru... (Score:5, Interesting)

    by eldavojohn (898314) * <eldavojohn@[ ]il.com ['gma' in gap]> on Monday November 12, 2007 @01:52PM (#21325493) Journal
    What do you see as being the biggest inhibiting factor in the world of databases? If you could snap your fingers and have one piece of software/hardware changed or removed or improved today, what would it be?
  • Replication (Score:5, Interesting)

    by neoform (551705) <djneoform@gmail.com> on Monday November 12, 2007 @01:53PM (#21325499) Homepage
    When can we get replication that isn't brutally difficult to setup and maintain.

    Example, slaves that can be started blank and copy all necessary files without needing to have a copy of the databases already.
  • Largest challenges (Score:5, Interesting)

    by KevMar (471257) on Monday November 12, 2007 @01:53PM (#21325503) Homepage Journal
    What were you largest challenges or features that gave you the most greif when implementing them in MySQL?
  • Why MySQL? (Score:5, Interesting)

    by eldavojohn (898314) * <eldavojohn@[ ]il.com ['gma' in gap]> on Monday November 12, 2007 @01:55PM (#21325523) Journal
    What is it about MySQL that caused you to create so much for it and to become a director for it? You're obviously very talented, why didn't you pick some other open source database (I don't mean to incite a religious war here)? Was it political? Was it because of friendships or really for technological reasons?
  • Big Ah Ha moments (Score:4, Interesting)

    by KevMar (471257) on Monday November 12, 2007 @01:55PM (#21325533) Homepage Journal
    What was your bigest ah ha moment? Did you ever have a solution to a problem that got you excited? Or had you drive in on your off hours/day off just to see if it would work? Or called someone in the middle of the night about?
  • by siezer (223508) on Monday November 12, 2007 @02:03PM (#21325611)

    Are there any plans to enhance the authentication capabilities of the server to match what's available with Postgres/Oracle?
    One thing I've always wished for is the ability to authenticate user/service access to databases and tables via other backends (pam_krb5, SASL, ldap, etc). This ability (imho) would result in wider adoption in certain IT shops where compliance officers and checklist junkies would opt to instead shell out for Oracle Advanced Security or something similar.

    -s
  • by Ark42 (522144) <slashdot@morphEU ... t minus math_god> on Monday November 12, 2007 @02:08PM (#21325659) Homepage
    Why are so many databases still tabular today and not hierarchal? I'm thinking of how Cache (or M / Mumps) is a database which basically lets you store associative arrays of data nested at any level, and access them in the normal programmatic way which you would access any other array.

    SELECT name FROM table WHERE key='xyz'; seems so archaic and limited compared to something PHP-like such as $table['xyz']['name'] where $table is a disk-based global variable accessible from all scripts and automatically synchronized at all times.
  • Japanese Animation (Score:5, Interesting)

    by Volanin (935080) on Monday November 12, 2007 @02:19PM (#21325787)
    Well, I will ask something not related to databases, or even computing at all. From the "About Me" section in your blog, I can see you named your lovely cats Nausicaä and Kiki. I will assume that you are indeed a fan of Japanese Animation, especially the works of Hayao Myazaki. So I ask:

    - What's your favorite Myazaki movie to date?
    - What's the reason for this choice?
    - And finally: I also love Myazaki's movies, but lately I have been struggling to find anime that I really enjoy.
        They all seem repetitive and cliché. Would you dare recommend one? =)

    Thank you a lot.
    My best wishes for you and your cats!
  • by MemRaven (39601) <kirkNO@SPAMkirkwylie.com> on Monday November 12, 2007 @02:32PM (#21325989)

    There are several behaviors in MySQL that are quite key to the core of the system, and which are still not being revisited. For example:

    • Lack of foreign key constraint even metadata maintenance in the core system schema
    • Row-at-a-time constraint checking of all kinds
    • Copy-on-schema-upgrades (meaning that you have to have at least twice the size of your largest schema element if you want to make a change, rather than making the physical change in-utero)

    These affect performance of almost any large system. However, even with the new storage back-end, some of these fundamental "characteristics" aren't being revisited, in particular the universally derided failure to support foreign key constraint checking.

    Why is MySQL so fundamentally incapable of revisiting decisions that have proven to be incorrect over time? I mean, Monty may have had reasons for making his database incapable of supporting key relational database constructs. But why are you incapable of accepting that for MySQL to have much wider scale adoption you have to remove the Monty Personality Constructs from the core limitations of the system?

    For those of you who are interested, the key part here is that systems like InnoDB (which are able to process FK constraints internally) aren't able to do so efficiently, because the core locks them into row-at-a-time constraint processing, meaning that large inserts into fact tables with small dimension tables are painfully slow if you don't turn of FK constraint checking)

  • Database Models (Score:5, Interesting)

    by Tom (822) on Monday November 12, 2007 @02:53PM (#21326281) Homepage Journal
    Hi, Brian -

    Are relational database the end-all, or do we have other promising database models to look out for? OO-databases apparently went the way of the Dodo, but what else is out there that you find interesting?
  • Client GUI Tools? (Score:5, Interesting)

    by Blakey Rat (99501) on Monday November 12, 2007 @03:02PM (#21326411)
    One of the things I've always felt is most lacking for Open Source databases is good client-side GUI tools to do ad-hoc queries, look at the database structure, assist in copying/importing/exporting data, etc. Microsoft has a pretty good tool in this area with either the SQL Enterprise Manager/Query Analyzer combo or SQL Server Management Studio.

    MySQL on the other hand has a poorly-implemented, not-well-supported equivalent to Query Analyzer called MySQL Query Browser: http://www.mysql.com/products/tools/query-browser/ [mysql.com] It's slow, crashes often (especially when called upon to list large datasets), and has tons and tons of usability flaws (the most glaring being the impossibility to select/copy the dataset to any other applications, and the failure to support standard keyboard shortcuts like Control/Command-A to Select All.)

    It seems to me that MySQL Query Browser is treated, at best, as a second-class citizen in the MySQL world. Is that the case? If so, is it simply due to a lack of qualified developers for it, or is it part of a larger strategy to keep more resources working on the back-end?

    In my opinion, MySQL could benefit greatly from having some really great (or at least passable!) client-side tools.
  • Solid-State Storage (Score:5, Interesting)

    by spoonboy42 (146048) on Monday November 12, 2007 @03:10PM (#21326523)

    It strikes me that a lot of the work that has gone into optimizing databases in the past (especially storage, index structure, and buffer management) works on the assumption that the database will be stored to a hard drive, which is way slower than main memory and has variable access times depending on the relative position of the disk head and the required data.

    Nowadays there's a lot of large solid-state flash drives coming out, and as time goes on we can expect to see sizes increase and costs decrease. For small-to-medium size databases, it's now reasonable to keep the whole database on, say, one of the new 64GB memory drives [slashdot.org]. The use of drives which have a fixed, cheap cost for random access seems to invalidate and simplify a lot of the assumptions made about conventional back-end data storage, and opens up possibilities for new types of optimization (binary tree indexes instead of B+ trees, more use of indirection).

    I'm wondering what you see as some of the biggest opportunities for memory-resident databases, and what work is going into MySQL to take advantage of the changes that are happening in storage.

  • by larry bagina (561269) on Monday November 12, 2007 @03:26PM (#21326723) Journal
    What's your opinion of SQLite, PostgreSQL, and Firebird? What do you like about them? What don't you like about them?
  • by The-Pheon (65392) on Monday November 12, 2007 @03:58PM (#21327201) Homepage
    In addition, what current work is being done on Multi-Master replication? Something more reliable/recoverable than a circle/star with the auto_increment_offset?

    Large corporation bashing aside, Active Directory and Oracle clusters do this very nicely, with low replication traffic volume. Is there any chance this feature will be added and improved upon in Mysql?

  • by logicnazi (169418) <logicnazi.gmail@com> on Monday November 12, 2007 @05:43PM (#21328535) Homepage
    There seems to be a trend toward other areas of IT implementing concepts and ideas that used to be primarily to province of databases. For instance transactional memory [wikipedia.org] has proved to be a powerful model for concurrency in software languages while journaling and copy on write filesystems have been implementing many ACID [wikipedia.org] style guarantees using methods borrowed from databases. Also operating systems seem to be evolving more and more APIs to handle structured data storage (Core Data) as well as to efficently store and search metadata (spotlight, windows search). OS X even stores a great deal of it's configuration data in a centralized Netinfo database and even the windows registry is a sort of database (arguably it's flaws stem from the choice not to implement a full database).

    Do you think these trends will continue and we will see even greater integration of DBMS technology into the operating system itself? Will (should?) we one day regard database like structured data storage as an indispensable OS level feature like a filesystem? If so do you worry that Apple, MS and Linux will make MySQL irrelevant by integrating this functionality into the OS? Do you think that something like SQL will remain the primary interface to this sort of structured storage or will programming languages implement an integrated native syntax for both transactional memory and database access?
  • by logicnazi (169418) <logicnazi.gmail@com> on Monday November 12, 2007 @05:59PM (#21328739) Homepage
    I'm convinced that transactional memory (TM) is the right model for concurrent programming in most common situations but software transactional memory (STM) [wikipedia.org] suffers from some performance problems. There has been a great deal of research on hardware support for transactional memory and recently Sun announced hardware support for hybrid transactional memory in Rock [sun.com]. Do you think hardware support for TM will catch on and migrate down to commodity hardware? If so would this translate into significant performance improvements for databases like MySQL? If not do you think specific hardware optimizations for DB applications will ever make sense in the mainstream market?
  • by einhverfr (238914) <chris.traversNO@SPAMgmail.com> on Monday November 12, 2007 @06:35PM (#21329219) Homepage Journal
    MySQL has generally gotten a lot of flak for not being a "real" RDBMS. I.e. for a long time it didn't have transactions, the ability to really enforce data consistancy and the like. While many of these are being addressed they look to many of us who do RDBMS-backed buisness apps like they are only partial solutions (strict mode can be turned off by any client application, if we distribute software we have no way of knowing that transactions really are enabled on the server, etc).

    At the same time, MySQL has traditionally excelled for things like light-weight web content management and the like. It is almost as if MySQL was designed originally for this sort of task as its core market.

    What were the original design goals for MySQL? Has MySQL outgrown them and moving on to become something else?
  • by Bionic Vapour Boy (1120891) on Monday November 12, 2007 @07:26PM (#21329839)

    Document databases (or textual databases, for that matter) simply aren't a good fit with the relational model
    Well, one might argue also that hierarchical data is also not a good fit with the relational model. Or what do you think about "hacks" like Materialized Path or Nested Sets model, or even native XML data type? If we already have XML data type in many DBs, what prevents us having Document data type like what's in CouchDB (yes, it's proprietary, but so are many of the features in current RDBMS). MySQL is also backend storage engine agnostic and it has already a support for many different (and somewhat specialized) backend storages engies (MyISAM, InnoDB, MERGE, MEMORY (HEAP), BDB, EXAMPLE, FEDERATED, ARCHIVE, CSV, BLACKHOLE and ISAM...). Is there a change that something like CouchDB would fit in that? Damien Katz has for example said that he might consider supporting SQL syntax, but it's too early to say.
  • by adamkennedy (121032) <adamk@c[ ].org ['pan' in gap]> on Monday November 12, 2007 @09:04PM (#21330609) Homepage
    Sequences in Oracle, Postgres and other databases allow for a wide range of interesting effects. Knowing your primary key before you insert into the database, shared unique identifiers between more than one table, creating circular not-null references around groups of objects before you insert into the database, etc.

    After all this time, why does MySQL not have sequence support?
  • by cruppstahl (830143) on Tuesday November 13, 2007 @08:54AM (#21334775)
    A common opinion is that Mysql has less features than a full-blown database, and therefore is faster (as long as the operations are not too complicated). This is a surprising fact for me. First, the source code of MySQL looks pretty messy. The abstraction levels between the main program and the database handlers (i.e. BerkeleyDB) are fuzzy, to say it in a friendly word. Also, and i think this gives you a real performance penalty, MySQL uses table locking for write access, and does not lock on a page level. And MySQL implements transactions on top of the handlers, which should also be slower than implementing transactions IN the handlers. On the other side, DBMS like Oracle are optimized to the last bit, but are still slower in many operations. So either MySQL has a secret performance trick which i have not yet discovered, or its performance advantages are actually a Myth. What do you think? I also understand that you (MySQL AB) is working on your own handler, which is optimized for SQL way better than i.e. a generic handler like BerkeleyDB. Does this mean that we will have to expect a major architectural change of MySQL in the near future?

This fortune is dedicated to your mother, without whose invaluable assistance last night would never have been possible.

Working...