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) * <.moc.liamg. .ta. .nhojovadle.> 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?
  • 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.
    • Re: (Score:2, Informative)

      by daniel_newton (817437)
      db4o (http://en.wikipedia.org/wiki/Db4o [wikipedia.org]) is an open source object database. Apparently BMW, Boeing, Intel and others think it is "industrial grade".

      It has a Java and a .NET version.
      • by Cyberax (705495)
        We're using it. It's a nice small database, very good for J2ME and small devices.

        But even the authors of db4o say that it's not suitable for multi-gigabyte enterprise databases. For example, queries and query optimizer in db4o is a joke. Restructuring and versioning are primitive, etc.
    • by einhverfr (238914) <chris...travers@@@gmail...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?
      • I've always heard the original design goal was to be fast (at the expense of other features, such as transactions and foreign keys).
    • by Pseudonym (62607)

      Relational databases support SQL, which is somewhat fragmented with vendor peculiarities, but is nonethless a standard of sorts (as well as being a real standard).

      Object databases have a standard interface, but to a first approximation, nobody implements it.

  • Slashdot's Future (Score:5, Interesting)

    by eldavojohn (898314) * <.moc.liamg. .ta. .nhojovadle.> 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?
    • Also, why do you select the nickname "Krow" for both Slashdot & your blog?

      I'm going to take a blind stab and guess that the reason is because blogging or posting on slashdot is precisely the opposite of "work". Probably wrong, though.

      With the reversed spelling there's got to be a Soviet Russia joke in here somewhere but I can't find it.

  • 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) * <.moc.liamg. .ta. .nhojovadle.> 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.
    • 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 suggsjc (726146)
        For the most part, I've moved on to Postgres (although master-master isn't that much better over there). Anyway, this is just another vote for this to be one of the questions asked as I think that is a very important area that is only now starting to be somewhat given the attention that it deserves.
        • by The-Pheon (65392)
          I have been watching PGCluster and Postgres-R as well. It shouldn't be too long before there is an open and reliable alternative to the "big features" of the commercial databases.
          • by suggsjc (726146)
            I've also been watching PGCluster. It currently looks the most promising for what I am wanting. Even though it does appear to be pretty stable the versions have been incompatible with each other (to some extent). So, I'm probably going to wait a little bit and let it mature before I put it into production. This is an interesting area. On one hand, I would like the Postgres team to have something "official" for replication. On the other, there are so many different types of needs that it would be diffi
    • As an addendum, when can we have distributed databases that aren't brutally difficult to setup, have good performance, and that don't cost a fortune?
  • 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) * <.moc.liamg. .ta. .nhojovadle.> 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?
    • by einhverfr (238914)
      Just as a (sympathetic) note here from a PostgreSQL guy.

      I stopped working with MySQL when PostgreSQL 7.3 came out. Prior to that, I did most of my prototyping on MySQL and then would move the scripts over to PostgreSQL (which I did since PostgreSQL 6.5). The basic facts are:

      1) Prior to 7.3, PostgreSQL, while superior in many ways, was just a pain to deal with when trying to prototype databases (dropping a column was one of the big issues... you couldn't). MySQL was so much easier to work with.
      2) Firebi
  • 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?
  • The Moneys (Score:5, Insightful)

    by eldavojohn (898314) * <.moc.liamg. .ta. .nhojovadle.> on Monday November 12, 2007 @01:57PM (#21325557) Journal
    Are you ever tempted to throw away your open source development position for a possibly much higher paid closed source development position? If so, how do you cope with living in a capitalistic society and not taking advantage of (or even seeking for that matter) higher paying opportunities?

    I mean, come on, you can't tell me you've never been offered more money (although probably a lower position) at another company. What 'keeps' you at MySQL AB?
  • by FroMan (111520) on Monday November 12, 2007 @01:57PM (#21325563) Homepage Journal
    Is it valid behavior to silently tru
    • Re: (Score:2, Offtopic)

      by $RANDOMLUSER (804576)
      I wish I had mod poi
    • by Anpheus (908711)
      When can the community expect a reasonable, and open discussion about setting sane defaults for MySQL?

      Where the community cannot reach consensus, no default should be specified and the user should be asked.
      • by einhverfr (238914)
        I don't care about default or administrator-defined values. If the option was available for administrators to *require* Strict mode (no turning it off by arbitrary clients), and if administrators could tell the RDBMS not to start if, say, innodb wasn't found, and if client applications could easily test for innodb support, then I would complain a lot less.

        The problem is a fundamental one relating to an attitude that data integrity checking should be an optional feature available to the client. As long as
  • 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 einhverfr (238914)
      Also I would note that MySQL's authentication system is a real pain to manage for a large user-base, and the fact that usernames are not guaranteed to be unique (since the host is part of the auth credential) strikes me as a foot-gun.

      It would be much nicer to have a nice system like PostgreSQL has, where you can assign various hosts to auth methods, but usernames are unique. Also external auth methods like Kerberos and PAM would be nice (PostgreSQL already has these, though I think that the Kerberos suppor
  • by saterdaies (842986) on Monday November 12, 2007 @02:06PM (#21325645)
    So, let me get this straight: you (mySQL) use a dolphin to fetch data while PostgreSQL uses an elephant to fetch data. Would that explain why PostgreSQL is better at fetching large datasets? Like, the elephant can haul more, but is slower while the dolphin is faster, but can't carry as well? Have you thought about using a non-animal to fetch your data? Maybe a racecar? Those are fast and could probably haul as much as an elephant. Plus, then I wouldn't need to have fish or peanuts in my server room.
    • by daeg (828071) on Monday November 12, 2007 @02:14PM (#21325731)
      Reminds me of a few years back. I had just finished presenting a lengthy, well-thought out package on implementing a new software system for a new company to the owner. After the entire charade, he looked me in the eye as he pointed to the cover of the document, which featured the logos of all software systems involved. He was pointing to the MySQL dolphin. "What's this dolphin doing here? you're not some kind of [expletive] [expletive] [expletive] eco nut are you? I'm not a fan of them..."
      • "What's this dolphin doing here?"

        "It's fleeing from our Database Harpoon. So how we frighten it? It can't get away! And that's why you should use my plan."

        Sometimes you have to stoop to their level.

    • Re: (Score:3, Funny)

      by Dunbal (464142)
      Plus, then I wouldn't need to have fish or peanuts in my server room.

            but the fish are good for both the dolphin AND the penguin...
    • So, let me get this straight: you (mySQL) use a dolphin to fetch data while PostgreSQL uses an elephant to fetch data. Would that explain why PostgreSQL is better at fetching large datasets? Like, the elephant can haul more, but is slower while the dolphin is faster, but can't carry as well? Have you thought about using a non-animal to fetch your data? Maybe a racecar? Those are fast and could probably haul as much as an elephant. Plus, then I wouldn't need to have fish or peanuts in my server room.

      Of course, they say an elephant never forgets.

      On the other hand dolphins probably get more sex. Hm.

      • Re: (Score:3, Funny)

        by Vihai (668734)
        Yes, that's why I prefer a DBMS that doesn't like to fsck with my databases :)
  • 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 sy
    • Re: (Score:3, Insightful)

      by Shados (741919)
      its not a matter of tabular vs hierarchal, its Relational vs Object based (or some such).

      Basically the short answer is that the relational model has had much more time and more people working on it to mature, and a move to a different system as mainstream would have a totally insane impact on the workflow of enterprise level software development, from functional analysis to all the echosystem of tools to design and maintain applications...

      On top of that, object databases are amazingly fast for quick CRUD an
    • by arodland (127775)
      Wait... having the power of arithmetic, boolean logic, and more at your command is "limited" compared to having the ability to index on one set of keys, in one specific order, determined in advance?
    • Re: (Score:3, Informative)

      by DaleGlass (1068434)
      How do you do a SELECT DISTINCT name, or an OUTER JOIN in that model? What if you need to search by a non-key column?

      Key/value systems have their place, but doing very normal RDBMS things in them is a pain.
      • by einhverfr (238914)
        When looking at the flaws of a hierarchical model, I think that LDAP is the best example of a system which does what it needs to do but not much more.

        The basic issue is that a relational database management system is basically a big math engine which allows you to express any sort of complex operation mathematically, and get a usable result out of it. SQL is basically an imperfect representation of relational algebra (quite frankly, I think that Codd's 12 rules have one subtle issue as well, but that is be
    • by sco08y (615665)
      Why are so many databases still tabular today and not hierarchal?

      Because we've tried the hierarchical model in all its iterations and it sucks. To specify integrity constraints, you have to use graph theory. And while certain modes of access work, ad hoc queries are painful. Normalizing your data is often impossible. If you can't make sure the data is what it's supposed to be, and you can't make sure you only have one copy of it (normalizing) and you can't run arbitrary queries, your DBMS sucks.

      The only rea
      • by logicnazi (169418)
        It sounds like your just saying you don't know how to do it.

        As far as specifying constraints why not use type theory. We know how to use crazy shit like algebraic and recursive types to say that something is a linked list or other complex data structure. We can do the same thing with an object database if you want.

        However, I think fundamentally this is an unfair comparison because the reason the constraints on object dbs are hard is simply that you are asking the constraint to do much more.
    • by einhverfr (238914)
      Actually both sorts of databases exist today. Think of LDAP vs. an RDBMS. Hierarchical and object databases allow for easy storage and retrieval of data objects, while relational databases excel at mathematical manipulations of the data.

      Tabular databases have one edge that hierarchical databases will never be able to match: mathematically powerful manipulations can be described mathematically. For example, aggregates and joins don't make sense in a hierarchical database (you would probably fetch all rel
  • 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!
  • What one book or example would you recommend to someone who wanted to learn LAMP?

  • by MemRaven (39601) <kirk AT kirkwylie DOT 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)

  • by MagikSlinger (259969) on Monday November 12, 2007 @02:48PM (#21326221) Homepage Journal
    Any intentions of implementing any of C.J. Date's Third Manifesto [wikipedia.org] proposals for implementing the new generation of relational databases? If not, why?
  • 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?
    • by Shados (741919)
      I know you want Brian's answer, but I'd like to give my two cents, as I find that subject quite interesting :) OO databases, while they are still coming (many major RDBMS are going hybrid in the future, as a mean to do faster development and to abstract away things like OR Mappers), went dodo because they appeal to developers without giving too much to the people paying the checks...

      But there's at least 2 other things that are heavily in the radar... OLAP systems have various non-relational ways of going ar
    • by Tablizer (95088)
      (slashdot audience note)

      I suggest we combine the "what does the future likely hold" questions into a list for Brian to select from. Example:

      Brian, where do you see the future of databases heading? Here are some possible suggestions that readers have mentioned:

      * Object-oriented databases
      * XML databases
      * RAM-centric databases
      * Dynamic relational
      * (and so forth)

      • Re: (Score:3, Insightful)

        by Tom (822)
        I'd really prefer to ask an open question. I like to hear about things that I don't already know about.
  • Do you think there is a better way of handling multithreading than mutexes and semaphores? If so, what would set of primitives do you think would best suit the task?

  • 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.
    • by Dynedain (141758)
      Give EMS SQL Manager for MySQL a try. It's proprietary, but it's a tool I'm more than willing to pay for.
    • by MemRaven (39601)
      You should also try Oracle's SQL Developer, which has MySQL support and does all the stuff you want. I haven't tried it against MySQL, but others say that it's pretty good. It's Free As In Beer and does a pretty good job on Oracle if you just want a query analyzer and live worksheet and stuff like that. Pure Java so you're at the mercy of the MySQL JDBC team to make the driver better, but you should take a look.
    • by Unoti (731964)
      phpmyadmin is what you need. Seriously, it's ever bit as good as enterprise manager and query analyzer. Enterprise manager doers a better job of building queries, sure. (But seriously, if you're using a gui to build your queries then there's no hope for you as a database developer.) Import/export create new tables, enter/edit data... phpmyadmin is seriously very nice and quite practical to use for day-to-day software development. I use it for my software development on my local machines, and as an adde
      • by Blakey Rat (99501)
        phpmyadmin is what you need. Seriously, it's ever bit as good as enterprise manager and query analyzer.

        Does it show the execution path of the query so I can optimize it? Can I use it to generate a printable schema of the database tables? Will it help me do a export of a database (including schema) into a new database on the same, or a different, server without touching any SQL? If so, does it then let me schedule that to run at 3:00 AM every third Tuesday? Does it handle all kinds of collations/character se
  • 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.

  • What's your opinion of the developments that companies like Vertica are making with columnar databases? They tout improved performance and better data compression as two benefits. Will we see similar developments in MySQL? New products?
  • 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 TopSpin (753) *
    What choices have you made provisioning hardware for production MySql systems? Specifically, what do you rely on for storage; raid levels, hardware vs. software, etc. What, if any, tools do you use for performance analysis of production systems beyond the usual *nix monitoring programs (sysstat etc.)?

  • A common problem in the enterprise world is data auditing. By auditing I mean keeping a record of data as it changes.

    I've implemented various solutions, usually consisting of copying the row into another table, slapping some sort of version id on it, and the updating the row with new values.

    When a new column is added to a table you typically have to add one to your auditing table. Then there is the concept of who made the change. I've implemented a solution using triggers and generic table to hold the chang

  • I'm wondering if you've considered the idea of "dynamic" RDBMS for rapid prototyping or rapid app development?

    Column types would be optional, and new columns and tables could be added willy-nilly by a regular INSERT or UPDATE statement. There would be no (default) distinction between non-existent columns/tables and empty columns/tables.

    One could later and incrementally add validation to enforce types or existence to selected tables or columns. In other words, the "lock-down" could be gradual as the project
    • Eeew.

      The whole point of a database is that it safely manages data. It's not any good to have a heap of bits when what they represent doesn't match reality.

      With this model you'll end up with tables and columns created due to typos in the source, misunderstanding between what is the datatype for a column supposed to be. Is column called "item" a boolean (the row's type is "item"), or is it an integer (item number), or is it a varchar (item code), etc?

      Lockdown later won't work well, because at lockdown time yo
      • by einhverfr (238914)
        Why not? It is not as if MySQL safeguards your data anyway. Having these dangerous features might actually make things safer because people would be faced with these sorts of issues frequently.
    • Re: (Score:3, Insightful)

      by d3xt3r (527989)
      This really shouldn't be a function of the RDBMS. If you wanted such a thing writing a driver wrapper for any RDBMS should be fairly easy. However, coding your database mappings without locking down your feature set is kinda useless. What's more interesting is creating scripts to generate your database schema from your code. It's been done, see Hibernate [hibernate.org].
  • I would like to see MySQL provide a set of "best practice" data models for common types of problems including triggers, stored procs (or even clusters and replication) so we can all benefit from your expertise.

    For example:

    What is the best way to set up your data model to deal with recurring schedules? How do you store the schedule for something that needs to be performed every other tuesday after 10:00 AM but before 5:00 PM at location X. How to you generate the individual events. How do you deal with someb
  • While the origin of databases was in holding massive amounts of spreadsheet style buisness data that is only one way that DBMSs are used today. For instance their is an increasing use of DBMSs as data stores for web applications or even desktop applications (Core Data and sqlite). Also some people are advocating column oriented DBMSs [wikipedia.org] for data warehousing applications while unstructed databases like couchDB [wikipedia.org]. Do you think that the standard relational model will continue to dominate the database field or wi
  • by logicnazi (169418) <logicnazi@gm a i l . 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@gm a i l . 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?
  • Why doesn't your Wikipedia entry list your time at the Cobalt Group? And what did you really think of Raja and his IBM boys?
  • If I understand correctly, InnoDB, Oracle, and PostgreSQL storage models all use multiple row versions, so what are the tradeoffs? How do these tradeoffs explain some of the performance differences, such as concurrent performance and serial performance? Stability of performance versus erratic performance? How do they affect maintenance and performance stability over time?

    InnoDB and Oracle both use rollback segments (I may be mistaken here), while postgresql uses non-overwriting storage and reclaims it later
    • by Shados (741919)
      Im not sure about the other databases, but SQL Server, as of SQL Server 2005, supports row versioning like Oracle. It is however not the default, so I assume there might be issues with it, especially with the optimistic concurrency model, but it can be turned on at any time, or on a transaction per transaction basis (as opposed to system wide).

      Not sure what they did with it as of SQL Server 2008 though, maybe its default there.
  • 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?
    • I have to second that. Sequences see like such a simple but useful feature. Why haven't sequences been added when more complex things like views and stored procedures are part of Mysql?

"The pyramid is opening!" "Which one?" "The one with the ever-widening hole in it!" -- The Firesign Theatre

Working...