Slashdot Mirror


MySQL to Adopt Solid Storage Engine

hmart writes "As seen on ZDNet's Open Source Blog MySQL is taking another step to defend from Oracle's recent acquisitions of InnoBase and Sleepycat. From the article: 'MySQL responds by getting Solid Information Technology, a proprietary database vendor, to take its solidDB Storage Engine for MySQL open source, under the GPL, starting in June.'"

65 of 267 comments (clear)

  1. This is good news by IntelliAdmin · · Score: 4, Interesting

    It seems that Oracle is not taking the threat from MySQL lightly. The purchases they have made have been quite public, but they also have been quietly hiring developers from many different open source projects. It is scary how many of them have dropped off the radar. On a side note: I was always under the impression that MySQL was a 'amateur' database. I was very surprised when I was forced to switch from Microsoft SQL 2000 - MySQL had a much smaller memory footprint, and the performance just blew me away. To this day I still cannot believe the performance difference. It really speaks to the power of Open Source.

    1. Re:This is good news by ScrewMaster · · Score: 4, Insightful

      Well, it's one thing to acquire a company in order to deny your customers and potential customers access to a competitive product. It's quite another to hire away a bunch of developers and keep them. That's difficult, especially if they happen to be the cream of the crop for a particular industry. As soon as you don't give them what they want (and money is only part of the picture) they'll drop you like a hot potato and look for greener pastures. I'm not slamming Oracle in particular since I don't know what the place is like for the development staff: it might be a great place to work. But job satisfaction is an important aspect to any position for a good programmer, and if you're good (and that is presumably why Ellison is hiring these guys) you have a lot of options. My bet is that a few years down the road you see some of those missing coders back on the radar.

      --
      The higher the technology, the sharper that two-edged sword.
    2. Re:This is good news by NitsujTPU · · Score: 4, Insightful

      That's kind of the thing.

      I don't want to offend MySQL devs, but, eh, here goes.

      MyISAM isn't so hot. It doesn't support transactions... it won't enforce your referential integrity constraints... it doesn't work like, probably, it should. It indexes things so you can look them up quickly with SQL queries.

      InnoDB on the other hand, sticks all of the features into MySQL that it needs in order to be considered a serious database engine.

      When Oracle bought InnoDB, they bought all of the stuff that makes MySQL actually useful. In order to stay competitive, MySQL will need a new storage engine... or perhaps keep updating the GPL'd version of InnoDB. The response has been to get a new commerical engine that works out of the box open sourced, so they can keep the edge that they need in order to stay in the game.

    3. Re:This is good news by Antony+T+Curtis · · Score: 5, Informative


      Oh, I doubt that there is a single MySQL developer who would be offended. We are not so aloof that we cannot take criticism - actually we welcome constructive criticism, it lets us know what needs to be improved.

      Perhaps we have been a bit lazy: Assuming that the partnership with Innobase would continue forever and that MySQL would eventually acquire Innobase.

      MySQL has a few advantages - it is a small company which can react quickly to unexpected changes. We learn. Jim Starkey has joined us - he is a veteran of relational database designs and a delight to work with - and we do plan to have our own storage engines with transactional goodness, we already have Cluster but we need something more lightweight usuable by everyone.

      In the meanwhile, it is good to take advantage of the MySQL architecture and make partnerships which can make use of one of our strengths. Having 3rd party storage engines is something which has been quietly encouraged for many years and is now something I think will see more publicity.

      (disclaimer: opinions are my own and not of my employer nor anyone else)

      --
      No sig. Move along - nothing to see here.
    4. Re:This is good news by grasshoppa · · Score: 5, Insightful

      The problem being once these important OSS coders see oracle source, they are tainted. Any further OSS contributions will have to be heavily scrutinized for IP violations.

      So oracle does not need to keep them. They just need to expose them to even bits of their db source, and they have tainted the coder.

      Devious, if you ask me. I am impressed. Or I would be if it didn't damage my own interests.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    5. Re:This is good news by Tablizer · · Score: 2, Interesting

      It seems that Oracle is not taking the threat from MySQL lightly. The purchases they have made have been quite public, but they also have been quietly hiring developers from many different open source projects. It is scary how...

      Seems to me that Postgresql would be a bigger threat because its SQL convensions are closer to Oracle's. Postgre would be easier for Oracle shops to convert or transition to.

    6. Re:This is good news by spiritraveller · · Score: 4, Insightful

      In order to stay competitive, MySQL will need a new storage engine... or perhaps keep updating the GPL'd version of InnoDB.

      I don't think that is not an option. MySQL AB has a dual-licensing scheme for MySQL. They need another company (like Solid) from whom they can dual license an engine for use with MySQL.

      Now... if they wanted to go completely GPL and quit selling MySQL for use in proprietary applications, they could keep updating the GPL version of InnoDB and keep distributing it. But then they would lose the revenue that comes from the proprietary-licensed versions of their product... and there goes their business model.

    7. Re:This is good news by Antony+T+Curtis · · Score: 5, Interesting
      Anyway, on a lighter note, this new engine looks pretty hot, and like it could take MySQL in a lot of directions that I never really foresaw it going.


      I think it would be fun to make MySQL as versatile as possible with a huge choice of plug-ins available. Sort of like what Linux is for operating systems but for databases instead. MySQL is platform agnostic and want it to perform well everywhere, including Microsoft Windows and even... SCO (hey, its not their customer's fault).

      If there is anyone out there which has some kind of data storage/retreval system, I am sure that MySQL would be happy to assist and encourage them to make it into a storage engine for MySQL. If they want to GPL their code and join the open-source party, I am sure MySQL would be happy to help in that too.
      --
      No sig. Move along - nothing to see here.
    8. Re:This is good news by NitsujTPU · · Score: 4, Funny

      SCO has customers?

    9. Re:This is good news by Anonymous Coward · · Score: 2, Insightful

      I'm not sure what you're talking about. Transactions have nothing to do with backups, auditing, or finance. In a nutshell: the way MySQL is implemented, if you're doing an update that affects more than one table, using a transaction (or LOCK TABLES, which is just rolling your own transaction engine via brute force) is the only way to prevent anyone from seeing the update while it's half-finished, i.e., the data is invalid (changed in one table but not in another). There's nothing disk-centric about the idea, except that in MySQL all database engines except InnoDB (which is disk-based) silently fail to enforce transaction semantics.

    10. Re:This is good news by Antony+T+Curtis · · Score: 2, Insightful

      You know, it may seem "obvious" that Oracle acquired Innobase and Sleepycat to hurt MySQL AB but I am not sure if MySQL really competes in the same application space as Oracle. They are two very different products.

      Have you concidered that Oracle has started to acquire opensource companies because they have suddenly discovered that companies like IBM, Novell and Sun may have something profitable in their open-source strategies and wants to get a piece of that pie?

      Who knows what Oracle's reasons are. Only they do. Why must people assume the most malicious reason all the time?

      (disclaimer: opinions are my own and not of my employer nor anyone else)

      --
      No sig. Move along - nothing to see here.
    11. Re:This is good news by jusdisgi · · Score: 4, Funny

      SCO has customers?

      No...didn't you see, he said "it's not their customer's fault."

      customer's

      ...is a singular-possessive.

      customers'

      ...is the plural form.

      SCO doesn't have customers. They have a customer.

      --
      Given a choice between free speech and free beer, most people will take the beer.
    12. Re:This is good news by NitsujTPU · · Score: 3, Funny

      We all know that China is going to be the first to line up and protect American corporate interests.

      Hold on a second, I'm getting a message on my RedBerry.

    13. Re:This is good news by drDugan · · Score: 4, Interesting

      PostgreSQL is a much bigger long term threat to Oracle than MySQL. The one place where Oracle still has an advantage over FOS projects is in big iron and big databases. PostreSQL has closed that gap significantly where (I believe) MySQL never will. It simply will not serve the market need that Oracle meets now.

    14. Re:This is good news by ocelotbob · · Score: 3, Informative

      SCO's still somewhat big in the medical profession. Being one of the first "cheap" unixes, a lot of small medical offices went to SCO in the early 90s during the first big rush to digitize patient charts, etc. I've got a buddy who deals with a lot of SCO installs on a daily basis. It's still used because though SCO is a pain in the ass, migrating away from these recordkeeping apps would be even more painful.

      --

      Marxism is the opiate of dumbasses

    15. Re:This is good news by Myen · · Score: 2, Interesting

      On the other hand, your important OSS people have also see OSS code before being hired by Oracle...

      I am starting to think they whole "tainting" jig is getting stupid.

    16. Re:This is good news by jizmonkey · · Score: 2, Insightful
      The problem being once these important OSS coders see oracle source, they are tainted.

      That's not true, any more than someone can be "tainted" by working at one company and then getting a job at another. There's something to being cautious but it's simply not possible, especially in california which disallows non-compete agreements in almost all cases, to take away someone's open source livelihood by "tainting" him. There's nothing special about open source software.

      --
      With great power comes great fan noise.
    17. Re:This is good news by swillden · · Score: 5, Informative

      The problem being once these important OSS coders see oracle source, they are tainted. Any further OSS contributions will have to be heavily scrutinized for IP violations.

      Yes and no.

      Strictly speaking, there is no such thing as a "tainted" developer. There are three different forms of IP law that Oracle might try to use to control what the programmers do after they leave the company:

      1. Copyrights. Copyright only covers the specific code, not the ideas. A developer could learn how to do something while working at Oracle, and could then leave the company and implement the same thing and it wouldn't constitute copyright infringement as long as the second implementation was done from scratch. Technically. In practice, if the resulting code was extremely similar, the developer might have a hard time *proving* that he didn't take a copy of Oracle's code with him when he left.
      2. Trade Secrets. Oracle could tell the developers that things they're working on are trade secrets, and make them agree not to disclose them. That only applies to the specific ideas and techniques that are designated as trade secrets, though, and only applies as long as they're secrets that haven't been revealed elsewhere.
      3. Contract. Oracle could make the developers sign non-compete agreements. Those can't last very long, though, and tend to be hard to enforce.

      So, if the developer has access to a good lawyer, it seems like Oracle really can't do much to prevent future work. But, of course, a wealthy corporation can afford legal battles much better than an indiviudal can, and any or all of the above would lend enough credibility to a lawsuit by Oracle that the coder might end up having to fight it in court... which can be really expensive even if you win. Then again, this is exactly the sort of case where the EFF and others would probably be willing to step in and help out.

      Finally, if Oracle failed to terrorize the devs into meekly going along, Oracle probably wouldn't want to go to court very much. Not only is it bad PR, but it does cost a lot of money, even if you're a corporation with deep pockets. There has to be a reasonable expectation that the cost is worth the result, which seems pretty unlikely. Threatening a lawsuit you probably can't win doesn't cost much, but actually pursuing one does.

      So oracle does not need to keep them. They just need to expose them to even bits of their db source, and they have tainted the coder.

      No, I really don't think that's enough. What they really need to do is to terrify the coder with weighty, frightening non-disclosure agreements and non-compete agreements. If they do too much of that, though, they won't get the hire in the first place.

      Of course, IANAL. But I have read the relevant law, and have some familiarity with the applicable precedents, thanks to other cases.

      I really hope that the open source developers who've gone to work for Oracle have run their employments contracts past attorneys of their own.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    18. Re:This is good news by Nutria · · Score: 2, Interesting

      I think that everyone's like "ok, we kind of win the web browser wars... lets move to Office," the difference is, firefox really is better than IE. Can you really say that OpenOffice is better than MS Office?

      Ah, ok. I was just curious as to your thought process.

      As to whether I think that OOo2 is better than MSO 97 (that's all I have), well, it's hard to say. Word 97 & Excel 97 are very snappy on my Win2k 933MHz/256MB RAM laptop, and OOo2 is really snappy on my Sempron-754 2800+/1GB RAM PC and does everything I and my wife want.

      Why don't I use OOo2 on my laptop? MSO 97 is already there, is snappy, and I have to use Outlook anyway at work.

      --
      "I don't know, therefore Aliens" Wafflebox1
    19. Re:This is good news by Zwets · · Score: 2, Funny
      I don't think that is not an option
      You shouldn't not use double negatives, you might not say something that you don't mean.
      --
      One of the lessons of history is that nothing is often a good thing to do and always a clever thing to say. - Will Duran
    20. Re:This is good news by moro_666 · · Score: 2, Insightful

      i agree, even for simple applications transactions are heavily needed.

      you could always do

      insert into A(...., complete) values (.... ,0);
      insert into B..
      insert into C..
      #if smth went wrong, just delete the stuff
      #if it went right, make A valid ...
      update A set complete=1;

        and always query for A's where complete is 1 ... but this still scks :p and there's still invalid data in b's and c's :p locking is a `weird` approach in terms of performance, infact you're getting rid of the performance in most cases :D

        transactions makes your life easier and if you know what you're doing, it certainly also shortens the development time.

        after oracle got innodb, i'm not so fond of mysql anymore at all, that was indeed one of the very few useful things in mysql. i haven't checked the 5.1 branches of mysql yet, but 5.0 was still below my expectations.

      i will stay postgresql fanboy for a while. it's cheaper to buy 1 extra machine into the cluster to handle the performance than to spend more and more time on weird code that achieves the same result in mysql.

      --

      I'd tell you the chances of this story being a dupe, but you wouldn't like it.
    21. Re:This is good news by killjoe · · Score: 5, Insightful

      "People who choose database vendors and make other such big IT decisions for companies like GM, Boeing, Wal-Mart and such, think "Open source = toy for the geeks"."

      Yes that's why no large corporation in the world uses mysql. Hey wait a minute that's a complete lie isn't it? There are lots of fortune 500 corporations using mysql aren't there. Never mind.

      "They want top notch support, perhaps even an Oracle team to be on-site for a couple of months during deployment, they want someone to blame and to complain to when things don't work right. MySQL provides support but it is just not going to be the same quality."

      Spoken like somebody who has never bought support from oracle or mysql. If you pay mysql half of what you pay oracle for support they will give you the phone number of a developer. How is that for support?

      Mysql offers some of the best support of any database vendor. Go ask any of their big costomers. Then compare what they say to the customers of oracle.

      I don't mean to be a cheerleader for mysql but I really really get tired of the same old "you can't get support or blame somebody" FUD about open source.

      It's over, strike that item from your big book of FUD and find something else to complain about mkay?

      --
      evil is as evil does
    22. Re:This is good news by kpharmer · · Score: 4, Insightful

      > Replication is important to oracle users and that's one area where mysql is a bigger threat then
      > postgres. Clustering is another by the way.

      No, replication isn't that big of a deal to most enterprise databases. About the only people who really think it's important seem to be MySQL content-management users that want failover. That's fine, but enterprise data management is more likely to focus on hot or cold standby solutions for failover, or ETL for copying to a reporting database.

      As a side-note, I'm currently yanking a bunch of replication out of a db2 architecture that some fool put in. It makes life much more complicated when you've got multiple replication interfaces all over the place. It'll be replaced by Federation - which simply redirects queries against original database, instead of copies data.

      And clustering? Although a very small number of Oracle users are using their product for clustering at least there they can handle more than a few gbytes of data. The solution that MySQL purchased a few years ago is limited to the amount of data that will fit into memory. This is pretty much a useless feature for most enterprise projects. Obviously any that have tens of gbytes of data or any that get frequent writes.

      The one thing that MySQL has over Postgresql is third-party support: due to its huge lead over postgresql 4+ years ago most developers based their apps on it. So, now it's ubiquitous. That's a genuine advantage. No real technical advantages that I can imagine however.

    23. Re:This is good news by ErikZ · · Score: 2, Insightful

      IBM, Novell and Sun are actually contributing to open source.

      I haven't heard of Oracle doing anything like that. What have they contributed to? Have they changed the licence of anything they own to GPL?

      If not, it doesn't sound good to me.

      --
      Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
    24. Re:This is good news by Saanvik · · Score: 2, Informative
      You mean projects like these (see Oracle's development tools page))
      • Apache ADF Faces
      • Eclipse EJB3 Tooling Project
      • Elipse JavaServer Faces Tooling Project
      • Eclipse BPEL Designer Editor Project

      Take a look at Oracle's OSS page for more projects. One of the biggest is OCFS, Oracle's clustering file system which they released with a GPL license.

      Sure most of it is to make it easier for them to sell software for Linux users, but it's out there, with various OSS licenses.

  2. Note to self: by Anonymous Coward · · Score: 5, Funny

    buy out Solid Information Technology.

    -Larry Ellison

  3. it's about time by RelliK · · Score: 2, Funny

    So mysql will now have solid storage? Finally! Oh wait, it's " Solid Information Technology". Never mind...

    --
    ___
    If you think big enough, you'll never have to do it.
  4. More Info? by logicnazi · · Score: 3, Interesting

    Does anyone know where I can find more info on the sorts of options/features this storage enginge supports?

    For that matter can anyone point me somewhere which describes the deliniation of responsibilities between generic MySQL code and the storage engines? In particular is MySQL just an SQL query parser/optimizer stuck on top of storage engines?

    --

    If you liked this thought maybe you would find my blog nice too:

    1. Re:More Info? by jadavis · · Score: 2, Informative

      can anyone point me somewhere which describes the deliniation of responsibilities between generic MySQL code and the storage engines?

      Interesting question. However, MySQL does not completely abstract the storage engine. Different storage engines have different semantics at the higher levels. For instance, MyISAM does not support transactions, while InnoDB does.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:More Info? by Antony+T+Curtis · · Score: 2, Insightful

      That is an obvious difference but not the most surprising difference. The non-transactional MyISAM tables can be very useful for referential (read mostly, update rarely) data for which transactions are not useful. There are other non-transactional storage engines such as CSV.

      I think a more startling difference for users between the different storage engines is that of Referential Integrity - foreign keys are currently only supported within InnoDB.

      This is something which I personally hope will change in the near future and become available for all (transactional) storage engines. Alas, it is not easy to do - if it was, everyone would already have multiple storage engines with it.

      (disclaimer: my views are my own and not that of my employer nor anyone else)

      --
      No sig. Move along - nothing to see here.
  5. None by mrnobo1024 · · Score: 5, Informative

    No matter which storage engine you use in MySQL, the SQL syntax is still the same. All you have to change is the ENGINE= line in your schema definitions.

  6. Solid has good stuff! by sgifford · · Score: 3, Informative

    We used to use a Solid SQL database a few years back, before I really knew anything about databases or SQL. It was extremely reliable, fast enough for everything we did, and very easy to administer (even for people who didn't know anything about databases or SQL). I haven't used it recently, but if their technology is still top-notch, this will be very good news.

  7. well, not entirely by Reality+Master+201 · · Score: 2, Informative

    You might adopt different strategies in code to deal with storage layers that supported different levels of transactionality or locking atomicity.

    1. Re:well, not entirely by jadavis · · Score: 3, Informative

      There are actually many differences. Full-text indexes (FTI) only work with MyISAM, for example.

      If you change storage engines, you certainly need to examine all non-trivial MySQL code.

      With MySQL, it's often hard to get all the features you want at one time. In the case of full text indexes, you can't also have transactions because only InnoDB has transactions.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:well, not entirely by Antony+T+Curtis · · Score: 2, Informative

      With MySQL, it's often hard to get all the features you want at one time. In the case of full text indexes, you can't also have transactions because only InnoDB has transactions.


      You know, it really depends.... If you are creative, you can have your cake and eat it too.

      The most straightforward way would be to create a MyISAM table with the same primary key as the InnoDB table. If the commit succeeds to the InnoDB table, you can safely add the row to the MyISAM table and have your fulltext indicies there. Do something similar for deleting rows and for updates if neccessary.

      It is not rocket science.
      --
      No sig. Move along - nothing to see here.
  8. Hooray by brennz · · Score: 3, Informative

    As Mysql continues to catch come towards the Mid-tier in the market, Postgresql is charging at Oracle.

    The entire Database market is heading towards OSS.

    1. Re:Hooray by leenks · · Score: 2

      It may be charging, but it's still a long long way from offering everything Oracle can offer. That said, Oracle is still quite lacking in its support for Indic and Arabic language handling, so maybe Postgres can accelerate in this area?

    2. Re:Hooray by itunes+keith · · Score: 2, Insightful

      I'm not sure I would agree 100% that everything will go to oss - even in the long-term. I've been on mainframe/db2 for three years and have inherited a lot of respect for big iron's sw abilities (and hw, of course). But, I guess, you cannot predict the future.

  9. Re:Here's an idea.. . Develop your own! by Gothmolly · · Score: 2, Interesting

    And lets all be glad that MSSQL is secretly Sybase under the covers. Because of this we have the beautiful FreeTDS packages for Perl that happily talk to MS SQL server. Those of us stranded in MS shops can actually work this way, imagine the bloodshed if MSSQL was completely proprietary!

    --
    I want to delete my account but Slashdot doesn't allow it.
  10. Something I blindly stumbled over... by Frosty+Piss · · Score: 4, Informative

    Within two clicks of the Slashdot story page, I found THIS.

    --
    If you want news from today, you have to come back tomorrow.
  11. I hope they've got a perpetual licensing agreement by WoTG · · Score: 3, Insightful

    I guess somewhere down the line MySQL users will be pressured to move off of innodb onto this Solid DB. (At which point, we might see some community backlash and a big controversial fork where the community makes a GPL-only version of MySQL to maintain InnoDB support -- which would please Oracle greatly.)

    I hope the MySQL has gotten something in paper that will make sure that this is the last time that users have to migrate. Sure, they can claim that a migration will be seamless, but who's going to be foolhardy enough to risk their data on a transition like this without significant testing?

    Actually, now that I think about it, I don't know if it is reasonable to expect users to switch "just" so that MySQL will be able to sell commercial licenses to their drivers and what not. The switch to InnoDB took years (and it's probably still ongoing for many users), but in return, those who switched got a lot of new features that made it worthwhile (probably). This time around, there is not much of an incentive for end users -- assuming that the feature sets will be roughly comparable between InnoDB and Solid.

  12. Re:Here's an idea.. . Develop your own! by jadavis · · Score: 5, Insightful

    MySQL is about choice... You can choose to use it or you can choose to use something else. You can choose to store your data in InnoDB, BerkeleyDB, Cluster, MyISAM, Memory, CSV

    "Choices" is positive spin. Some might say that MySQL is all about sacrifices. Here are some examples:

    (1) "MySQL has many applications written for it"
    * Not if you enable strict mode, or if you use storage engines that don't support the features you need.
    (2) "MySQL is optionally SQL compliant with strict mode"
    * Only if you want to forego 99% of the existing MySQL applications, and start fresh.
    (3) "MySQL has transactions"
    * Not in MyISAM, which means no full text indexing.
    (4) "MySQL is free"
    * Only if your application which links against the client library is also GPL.
    (5) "MySQL is fast"
    * Only if you use MyISAM, which means no transactions or many other features that aren't available in MyISAM.

    I could go on. Anyone can talk about how MySQL has a feature, but you have to make sacrifices for those features. And I think many of those are bad, unnecessary sacrifices. MySQL implements features not to give their users choice, but to give MySQL AB a marketing advantage. Their advocates and salespeople will always say "yes" to all of those features above, but it's not until later that the customer realizes that they can't use the features together.

    --
    Social scientists are inspired by theories; scientists are humbled by facts.
  13. Re:Full text support by mthreat · · Score: 2, Informative

    I'd suggest checking out some of the fulltext search libraries if you want flexible, fast fulltext search. It may not be as easy as using the database's built-in support, but the extra effort may pay off in performance and extensibility. For starters, check out open source Apache Lucene, which has ports to several languages, including Python, C, and .NET (C# I believe), and the original in Java. It's easy to get up and running quickly, and designed well enough to be customizable later.

  14. Re:Here's an idea.. . Develop your own! by Antony+T+Curtis · · Score: 5, Informative
    Hmm.. I'll bite.

    (1) "MySQL has many applications written for it"
    * Not if you enable strict mode, or if you use storage engines that don't support the features you need.

    If your application is designed for MySQL specificially without strict mode, then strict mode is not for you. It is more useful to people porting their applications from some other product to MySQL than to the existing MySQL user base.

    (2) "MySQL is optionally SQL compliant with strict mode"
    * Only if you want to forego 99% of the existing MySQL applications, and start fresh.

    Ditto above. Perhaps the existing MySQL user wants to go to strict mode in order to support databases *other* than MySQL. Have you concidered that?

    (3) "MySQL has transactions"
    * Not in MyISAM, which means no full text indexing.

    MyISAM was never designed with transactions in mind. It performs its intended function excellently. Not all data is useful to keep in some kind of transaction context - take for example a table mapping UPC codes to product names and descriptions: it will never need to change in a transaction so having transactional overhead would be wasteful.

    (4) "MySQL is free"
    * Only if your application which links against the client library is also GPL.

    Myth used to scare people away from opensource GPL code.

    (5) "MySQL is fast"
    * Only if you use MyISAM, which means no transactions or many other features that aren't available in MyISAM.

    Some people would disagree with that statement. Quite a lot of people have found that for their needs, MySQL is lighter and faster (or at least, as fast as the big name products) even when never using MyISAM tables.

    There will be people whose needs are best served with products from Oracle, IBM, Microsoft, Sybase... I am sure that no one in MySQL claims that it is the only solution to all problems: MySQL is a young database product which is actively being developed so it will improve.
    --
    No sig. Move along - nothing to see here.
  15. Good, but how good not known yet by PizzaFace · · Score: 4, Insightful
    Solid's database server has a good reputation. Philip Greenspun used to recommend Solid as a cheaper alternative to Oracle, though it seems he now recommends PostgreSQL. What all three systems have in common is multi-version concurrency control, which improves concurrent data access by tracking the changing versions of data rather than locking the data when a user might change it.

    I'm just worried about this quote from Solid's V.P. of Marketing:
    So we're going to make available code that works only with mySQL. On the side we have a proprietary line of products.
    It sounds like MySQL will use only a subset of the Solid product. So how good this news is will depend on how complete a subset of its product Solid opens.
  16. Preventing forking... by pieterh · · Score: 2, Funny

    If you took a look at the BDB source code, you're understand immediately why forking this is not an option unless you happen to have hired the developers.

  17. Re:LARP by bani · · Score: 4, Funny

    I have been using Perl for 5 years. After 1 month with Ruby, I'm not going back.

    That's like saying "i have been eating dogshit for 5 years. After 1 month with steak & eggs, i'm not going back.". Hardly an impressive statement at all.

  18. Re:I hope they've got a perpetual licensing agreem by Antony+T+Curtis · · Score: 4, Informative

    There will be no need to pressure existing users off from InnoDB .... InnoDB is GPL code and as such will always be available: This is the strength of open source software, it is very hard for players to pick up their toys and leave the sandbox. If they leave the sandbox, they have to leave their toys there. Besides, Oracle has stated that they do not intend to change Innobase's business. Lets hope that they keep that promise.

    Of course, MySQL can encourage people to use a particular product choice based upon future roadmaps but I don't imagine that InnoDB support will ever be axed.

    (opinions are my own, not of my employer nor anyone else)

    --
    No sig. Move along - nothing to see here.
  19. Re:and how many.... by kestasjk · · Score: 2, Informative

    Perhaps if your SQL is trivial and/or you're writing with portability in mind then abstraction is a good idea. If you're doing anything with transactions, locking, indexing, anything which requires the use of SQL which isn't available or identical on all databases then you can't (fully) abstract. If you're not writing with portability in mind abstraction is a waste of cycles and, more importantly, development time.

    --
    // MD_Update(&m,buf,j);
  20. Also reported... by Anonymous Coward · · Score: 2, Funny

    Insiders claim that the liquid storage plans went down the drain when an executive bumped into the file server and spilled hundreds of critical files.

  21. Re:Here's an idea.. . Develop your own! by Jimithing+DMB · · Score: 5, Insightful
    MyISAM was never designed with transactions in mind. It performs its intended function excellently. Not all data is useful to keep in some kind of transaction context - take for example a table mapping UPC codes to product names and descriptions: it will never need to change in a transaction so having transactional overhead would be wasteful.

    This is typical LAMP programmer thinking. What do I need transactions and data integrity in a database for? I'll just code the checks into my application. I prefer instead to put checks both in the database and in the application.

    (4) "MySQL is free" * Only if your application which links against the client library is also GPL. Myth used to scare people away from opensource GPL code.

    This is no myth. MySQL's client libraries are definitely GPL. If you link to them you must abide by the terms of the GPL. Alternatively, you can purchase a license from MySQL AB. MySQL AB spins this up so much saying that they are open source but what they really mean is that they are open so long as you are open.

    I'll stick with PostgreSQL. Unlike MySQL, PostgreSQL is a serious alternative to Oracle or MS SQL. It is also BSD licensed and thus there are zero restrictions on its usage within a commercial product and there is no need to purchase a commercial license.

    MySQL is okay for the LAMP mentality but when you start getting in to ORM/ERM (Object/Entity relational mapping) with packages like Rails's Active Record or WebObjects's Enterprise Objects you need a more serious database. As another poster has pointed out in this thread I give it only a few more years before mainstream open source web development moves into the ORM camp.

  22. postgres by jdew · · Score: 2, Interesting

    Hmmm, any real reason why they don't just take postgresql and use that as their backend?

  23. Re:Here's an idea.. . Develop your own! by Antony+T+Curtis · · Score: 2
    MyISAM was never designed with transactions in mind. It performs its intended function excellently. Not all data is useful to keep in some kind of transaction context - take for example a table mapping UPC codes to product names and descriptions: it will never need to change in a transaction so having transactional overhead would be wasteful.


    This is typical LAMP programmer thinking. What do I need transactions and data integrity in a database for? I'll just code the checks into my application. I prefer instead to put checks both in the database and in the application.


    Mmmm'kay... so if there is a performance bottleneak in accessing a table which is essentially constants, the developer decides to simply hard code all that rather than keeping it all in the database. Great. Seen it done many times.

    This is no myth. MySQL's client libraries are definitely GPL. If you link to them you must abide by the terms of the GPL. Alternatively, you can purchase a license from MySQL AB. MySQL AB spins this up so much saying that they are open source but what they really mean is that they are open so long as you are open.


    I personally know of many companies which make use of MySQL and have never publically released any code and are still abiding by the GPL. MySQL obviously encourages support contracts for companies using MySQL internally but does not force people to license MySQL in the non-GPL form if their use of MySQL is strictly internal. ie: no binary distribution etc.

    I personally use BSD-style licenses for many of my personal project code (see for example the PC-Net simulation code in Xen) but I will equally defend the GPL against FUD attacks. There is nothing stopping companies from using GPL code within their organisation.

    (opinions are my own and not of my employer)
    --
    No sig. Move along - nothing to see here.
  24. Re:LARP by SmashMacFly · · Score: 2, Insightful

    Postgres used to be superior to MySQL in many ways two versions ago. It was much stronger and faster and it used to allow you some actions that were imossible with MySQL like DELETE in multiple base at once. But Postgres also had some problems like the impossibility to alter a DB once it had been created, forcing you to re-create a DB if a minor modification was needed. Now MySQL has evolved a lot and is basicaly at the same level but indeed with a lot more support.

  25. Adopt? No! by Khanom · · Score: 2, Informative

    There is a world of difference between "MySQL to Adopt Solid Storage Engine" and getting "Solid Support", as in, from TFA: "...getting Solid Information Technology, a proprietary database vendor, to take its solidDB Storage Engine for MySQL open source, under the GPL, starting in June".

    Solid is just offering YA storage engine that works with MySQL, and they happen to be GPLing it. This does -not- mean MySQL is adopting anything from Solid.

    Slashdot editors: please read TFA once in a while and please stop writing misleading headlines.

  26. Solid(TM) and the Oracle connection by adnonsense · · Score: 2, Insightful

    Says here that the marketing VP quoted in TFA, Paola Lubet, used to work for Oracle.

    Now I wouldn't want to read anything into that, I'm guessing there's a lot of rotation between database companies, and it's a private company held by a bevvy of investors, so Larry Ellision presumably won't be able to drop it in his shopping basket when he pops out for some milk. On the other hand the investors sound like venture capitalists (I may be wrong, corporate finance is not my field) who might be interested in any short-term returns on their investment that a large, cash-rich company could offer.

  27. Self reply: perl DBI licensing info by XaXXon · · Score: 2, Interesting

    I found this page which states that DBD::mysql uses the MySQL client libraries (It says this for Net::MySQL).

    If you perldoc DBD::mysql, it says it's licensed under the same license as perl (the artistic license).

    Unless DBD::mysql is saying that their code is licensed under the artistic license, but as soon as it's built against the MySQL client library it becomes GPL (and just leaving out the last part), I don't see how the MySQL client libraries could possibly be GPL only. .. Any takers?

  28. Good by Godji · · Score: 2, Informative

    So MySQL is keeping up to Oracle's increasing power - that's good! What about PostgreSQL though? What are they doing to keep up? Anyone know?

    1. Re:Good by adnonsense · · Score: 2, Informative

      Adding new stuff all the time? Have a look at the website, it's very informative: What's New in 8.1.

  29. MySQL tries to play catch up ... by Tetard · · Score: 4, Insightful

    ... while others (PostgreSQL) have all one needs. I guess that's an unavoidable dynamic of free software (and a good one as well -- just like in other competing open source projects). So probably one day MySQL will have everything that PostgreSQL has today, but why wait ? It's mostly transparent to move from one to the other, and there are tons of guides and scripts to convert from MySQL to PgSQL. Even PhpMyAdmin has its Pg pendent (PhpPgAdmin).

    And it's painful to go back when you've learned to do proper logic separation using stored procedures, triggers, views and transactions, things that way too many projects duplicate in the PHP or Ruby front-end, relegating the DB to the "simple" role of being a storage backend (even Ruby on Rails forces you to think that way via the MVC architecture).

    For that purpose, use SQLite -- it does what you need, is very high performance (on-disk, non-concurrent access -- can't get any faster than that). For real solid DB work, with garanteed integrity, just the way RDBMS were meant to be, go for PgSQL.

  30. it is solid! by sad_ · · Score: 3, Informative

    we're using HP data protector backup/restore software, which uses solid as its database for storing all data information.
    HPDP itself is as stable as an italian taxi driver stuck behind two priests in a skoda, but thank GOD, the database is rock solid and doesn't corrupt when HPDP goes belly up again.

    so all in all, a good pick of mysql!

    --
    On a long enough timeline, the survival rate for everyone drops to zero.
  31. Re:LARP by numbware · · Score: 2, Funny
    That's like saying "i have been eating dogshit for 5 years. After 1 month with steak & eggs, i'm not going back.".

    Well, according to Google:
    "Eating Dogshit": 1,220
    "Eating Steak & Eggs": 43

    I'd say more people are eating dogshit than eating steak & eggs. Godbless the interweb!

    --
    I'm going to go create my own technology news site, with blackjack and hookers. You know what? Forget the news site.
  32. Re:Here's an idea.. . Develop your own! by kpharmer · · Score: 2, Insightful

    > Isn't it better to have a choice of technologies?

    uh, better than what? If the answer is stability, then no.

    So, MySQL has the following storage plug-ins: MyISAM, Innodb, Sleepycat, etc, etc, etc. as an enterprise data architect (ok, sounds pompous, how about someone that implements a *lot* of database solutions) I really don't care about a wide variety of storage engines that mostly don't meet my needs. Of all of the above, only Innodb is a good general-purpose solution. The others are useful only in specialized circumstances or are obsolete.

    The idea that multiple storage engines is a great idea is just market spin.

    Oracle, DB2, Informix, Sybase, SQL Server, Teradata, Postgresql, Firebird, etc - all have their own. There is no risk to the user that another company is going to buy out their storage engine, force the database vendor to perform an expensive switch and possibly impact functionality or licensing for my applications.

    If MySQL wants to support multiple storage engines that's fine. Not terribly attractive to me, but fine. But first - it needs to own its own. And its own needs to support ACID as well as non-logged activity. This shouldn't be news to anyone: this is what every single commercial database provides and has been the way to do it for 20+ years. It's still the way to do it.

    > Freedom of choice is always a good thing.
    > MySQL is not about having cheap database... MySQL is about Freedom of choice.

    How about cheap, full-featured, standards compliant & stable RDBMS? Why isn't this a possibility? This is what I want, not freedom to pick from a pack of obsolete, special-purpose or dead-end storage options.

  33. Re:Here's an idea.. . Develop your own! by kpharmer · · Score: 3, Informative

    > What would be the list of priorities for you for features/changes to be made to MySQL in order for
    > you to seriously concider it. Bear in mind that MySQL does not have an infinite amount of developers
    > so delivering on all of them overnight would not happen.

    Now that MySQL has implemented most of the standard database features, the next step is to harden them and the rest of the codebase. At this point I'm not interested so much in features as I am high-quality & robust implementations.
        - this means that if I add a column to a table I won't have to spend hours copying the data back & forth under the covers
        - it means no more gotchas - with broken date handling, exception handling, type conversions, value truncations, etc.
        - it means that individuals clients shouldn't be able to turn off strict mode.
        - it means that non-strict mode should be deprecated - and gone in a few years
        - it means that the optimizer should be able to handle very complex joins and almost always come back with the very best possible query

    Now, *after* the above have been addressed there are some additional features to add. These are mostly oriented towards reporting functionality, where I think mysql is pretty weak right now. My list would include:
          - oracle-style range partitioning: this means that you can using mysql for large reporting & warehousing applications. We're not talking union-all-views here, but the ability to attach & detach partitions, and disregard partitions of data from queries. I often see 10x performance gains from partitioning over indexing in this kind of app.
          - query parallelism: need to be able to split reporting query work across CPUs. These large queries, often scanning a 100,000+ rows can typically get linear performance improvements in my experience from query parallelism.
          - automatic query rewrite: need to be able to automatically rewrite queries in order to hit summary tables if they exist. This is critical for some types of powerful reporting tools, or reporting performance boosts for commercial apps.
          - materialized views: simple method to manage summary tables. Not critical since this can be developed in other ways, but this has become the preferred way to manage summary tables.
          - federation: the ability to redirect a query against a table to another database to be resolved. This allows you to define reference tables on one database, then share them across many.
          - query failover: the ability for the mysql client to automatically reroute a query to a failover server. This allows you to provide failover without any code changes at the application layer.

    that's all i've got time to write, but should cover most of what I'd look for first.

  34. Re:Here's an idea.. . Develop your own! by Antony+T+Curtis · · Score: 2, Informative
    this means that if I add a column to a table I won't have to spend hours copying the data back & forth under the covers

    Support for this is being implemented but it does rely on the storage engine to know what to do. Otherwise, the fallback is to do it the old slow way.

    it means no more gotchas - with broken date handling, exception handling, type conversions, value truncations, etc.
    it means that individuals clients shouldn't be able to turn off strict mode.

    Good suggestions. I'll try to make sure that they're not forgotten.

    it means that non-strict mode should be deprecated - and gone in a few years

    This would mean breaking backward compatibility - something that I think will be undesirable. There are some embedded applications which do not benefit from strict mode for example.

    it means that the optimizer should be able to handle very complex joins and almost always come back with the very best possible query

    This is the "holy grail" of database systems... What may seem trivial to us to decide what query plan is best may be non-trivial to calculate. There may be a large number of optimal paths but the optimum one may be very hard to deduce due to local minimas. Many databases have such large and complex query optimizers that the query plans have to be precalculated and cached. MySQL has a skilled query optimizer team and I am sure they will do great stuff.

    oracle-style range partitioning: this means that you can using mysql for large reporting & warehousing applications.

    Already actively in development and may be previewed in the 5.1 tree.

    query parallelism: need to be able to split reporting query work across CPUs. These large queries, often scanning a 100,000+ rows can typically get linear performance improvements in my experience from query parallelism.

    Only available in MySQL Cluster to a limited degree. Tricky to make a general solution but it is something we are aware of.

    federation: the ability to redirect a query against a table to another database to be resolved. This allows you to define reference tables on one database, then share them across many.

    Already available and in 5.0 tree, although improvements are possible.

    query failover: the ability for the mysql client to automatically reroute a query to a failover server. This allows you to provide failover without any code changes at the application layer.

    AFAIK, JDBC connector already provides this and I think the .Net connector as well. The C client I think has not implemented it yet but it is something we know about.

    --
    No sig. Move along - nothing to see here.