Archive for the ‘MySQL’ category

Oracle buying Sun – what does this mean for MySQL?

April 20th, 2009

Just woke up this morning to news that Oracle is buying Sun.  After cursing myself for not having bought some JAVA last week when it was in the 6 range (pre-market now at 9.10), I started thinking about what this might mean for MySQL.

About a year ago, Sun purchased MySQL.  Although a lot of hooha was made about what might happen to MySQL at that time, Sun made it pretty clear that they wouldn’t be changing too much of the company they were purchasing.  They’d wanted to have a good story on the low-end of computing (from what I remember) and the LAMP stack (where M was for MySQL) dominated much of the low-end of web development.  While it was never on the same level as Ebay buying Skype, I think a lot of people were confused by how Sun would be able to get back the billion dollars they expended on the MySQL deal.

Fast forward a year.  Some of the key MySQL core team have left, forking the MySQL product in the process (drizzle).  Is the MySQL branch of Sun very attractive?  I imagine Oracle was looking more at the hardware and consulting side of the Sun acquisition, not the database side, but this won’t site well with many in the MySQL world.

The MySQL community has always been a bit suspicious of Oracle.  Many were quite alarmed when Oracle purchased InnoDB, the company that made the innodb MySQL table engine, and that was something that spurred on work on other transaction engines in the MySQL world.  Nothing has yet come to be adopted as widely as innodb yet, and Oracle’s control of InnoDB has continued to be a bit of concern for some in the community. 

Is Oracle getting much on the database front when they purchase Sun?  There’s probably not enough of a marketshare between the two to claim that there’s some sort of monopoly anti-trust considerations to take in to account (MSSQL, DB2 and PostgreSQL – what is their combined marketshare?) 

Is there a danger that “MySQL” as a product will be a name brand, but that many people will just start using community forks?  I can see that “MySQL” as a database engine might end up being a generic term, somewhat like “Linux”, in that there are many distros out there serving different needs.  Not sure if the MySQL licensing would ever allow for that degree of diversity, but maybe we’ll see something like this in reaction to the Oracle purchase. 

Side question – what will this do to Java and OpenOffice?  Hopefully Oracle will leave these (and MySQL) intact, and just focus on integrating these technologies in to their sales and consulting process, but leave the tech direction alone.

PHP addslashes alternatives comparison

June 12th, 2008

My brother Mark has put together a comparison of addslashes() alternatives over at his blog.  He starts off with:

I’ve seen a lot of people talking about mysql_real_escape_string() vs addslashes() vs addcslashes(). There seems to be a lot of real confusion about what these functions do (even with the php.net manual around), especially when it comes to character sets. I feel that some people are being scared into using some escaping methods with which they are not very familiar. So, I’ve decided to lay it all out in a few charts so there is no confusion about what each function does and how each can help protect against SQL injection attacks.

Read on if you’re interested in this sort of thing, and to get his final conclusion.

WebDevRadio podcast series – Interview with Brian Moon on scaling LAMP

May 3rd, 2008

This is the last in my MySQL conference series.  Brian Moon, author of Phorum and Sr Developer at Dealnews.com, sat down and gave a recap of his two presentations.  We have here nearly a full hour of his insights in to PHP/MySQL scalability, both with an app like Phorum and a more complex environment like Dealnews.  The sound was pretty good, although there was a hum in the background I tried to get rid of via ‘noise removal’.  I think this still sounds decent.  Let me know if the sound is too awkward and I’ll give it another pass if need be.

Thanks to Brian for going over things in such detail!  I hardly asked any questions, as I was trying to soak up as much as possible for myself, and I picked up more than a few useful nuggets.  He also touched on the future of the PHP//MySQL combination with the MyQSLnd (“next driver”?  I forget now!) driver being developed.  There’s some great info in here – listen up!

Also, as a reminder, if you have any job postings for your company, please help build up the WebDevRadio Jobs board at http://jobs.webdevradio.com, and thanks to the first few posters who’ve helped get things rolling.  :)

New WebDevRadio podcast up – SilverStripe CMS interview

April 26th, 2008

SilverStripe is a PHP5-based CMS from down under (New Zealand!).  I had a chance to meet with Sigurd Magnusson, one of the project’s founders, and discuss the project’s history, current status as an open source project (BSD-licensed), and where it’s heading.  Have a listen!

Blob Streaming with MySQL

April 16th, 2008

I’m sitting in on the Blob Streaming with MySQL session.  The project is at http://blobstreaming.org.  Coincidentally,  my brother had put together a proof of concept for streaming blobs from MySQL a few months ago before either of us heard about this project.

Why to put blobs in a database?  The biggest pro seems to be for transactional reasons.  File systems directly aren’t always transactional.  Also replication and HA solutions then get applied right to that data as well as the rest of your data.

Are there reasons to not put blobs in a database?  They can make the table slow, the database can become too big to snapshot or backup (practically, if not in theory), and replication can be too slow.  The blobstreaming.org project seems to alleviate the replication slowness problem.  How?  The blobstreaming project stores the blob data in the database, but not in the rowdata itself (which just holds a reference).  The goodness of the database functionality is there, but the replications aren’t slowed down by the blob data.  I think I’m getting this right…

Basically the BlobStreamer is another engine type, but it’s not a table type you can create directly – it has to hook in to another table type.  The only one demoed is PBXT (blobstreaming was put together by PrimeBase as well, so this makes sense).  Perhaps this would work with innodb as well…?  The BS engine type exposes an HTTP interface as well for basic reading and writing of blob data.

An interesting project which may come in handy for some large file/video projects.

Generational developers

April 16th, 2008

I’m seeing a large cross section of age groups represented at the MySQL conference.  The typical late teens through mid twenties are here, as expected, but I’m seeing a high number of people who are clearly older than that – many likely mid 40s or higher.  It could just be that database work is typically suited for older workers looking for more stability (‘keep the systems running day in day out’), but it might also represent an uptake of MySQL at more established companies as well.

Anyway, that’s not quite what I was writing about.  What crossed my mind was the children of many of these older people.  Will they grow up in to software people as well?  Will we perhaps see consultancies handed down from generation to generation over the next several decades?  Software as an industry has barely been around 30 years, so I’m not sure it’s been on too many peoples’ minds, but I still wonder.  My dad is an accountant, but didn’t bring me up to be one, and I had little interest.  Some of that may have been because I had no way of having visibility in to his profession.  Beyond ‘take you child to work’ days, there’s not too many professions where children can get hands-on experience of what their parents do.  With many types of software, that’s not the case.  Anyone can get started with most tools, especially with Open Source.  Put another way, will Linus’ kids take over the kernel in another 20 years?  :)

Watching OBM presentation

April 16th, 2008

The KickFire people stayed too long in the room before OBM, so I think they’re having to cut short the presentation – there were some display problems too which took some time.  Given that, the presentation has been good, if a bit rushed so far.  OBM has been developed in France for the past 10 years, and it looks like they’d like to get in to the US market.

The product itself is a GPL2 messaging and groupware system, with sync capabilities for Outlook, various PDAs, Thunderbird and Sunbird(!).  It also has a fairly advanced project management tool, which I got a demo of.  It’s rather complex looking, but no more so than just about any other tools.  It looks like they’d be competing against both Zimbra and Salesforce and SugarCRM.

The speed has been something Pierre (the presenter) said was has been a focus, and I think he’s on to something here.  He described some techniques they take to precomputing things like group hierarchy membership data.  He acknowledged that the data tables are much larger than they might otherwise be, but the benefit is data can be retrieved in one query, and indexed properly is lightning fast.  He laid down a friendly challenge to test out responsiveness against other messaging solutions.  I saw Zimbra last year, but it was not overly fast.  Some of the speed was achieved by a browser plugin which sped things up.  I see no browser plugin here.

OBM has numerous plugins – the CRM functionality is a plugin, and there’s a org chart tool.  Lots of nice stuff in there.  I have to say I was a little shocked at some of the requirements – I need magic_quotes_gpc to be ‘on’, for example.  For a php5 app, this seems a bit aniquated, and I hope it’s something they’ll rectify in a future version.  :)

MySQL day 2

April 16th, 2008

Met with some interesting people last night, and I’ll be posting the contents on webdevradio.com later.  Met with JasperReports people today and obm.org people.  OBM looks pretty powerful.  Currently sitting in the ‘MySQL sandbox’ presentation.

MySQL conference – xaware session

April 15th, 2008

Xaware.org looks prett slick.  I’m in a session with one of the xaware guys going through the process of using xaware.

OK – we had a long intro, but are finally seeing some screenshots, which look useful.  Xaware will bring value to scenarios with many complex XML documents.  The fewer or less complex your XML files are, the less useful Xaware will be (from the presenter).

I’m not 100% sure why this is necessarily more useful than accessing data directly via XML in Groovy, for example (println results.users.user.name.first for example).  Certainly having a graphic tool to manage the mappings would be useful, but I’m not sure this is a requirement.  Well, nothing is a requirement, I guess.  I think 3-4 years ago I’d have jumped all over this, but I’m not sure it’s targetted at me now.  However, I’m not working on projects with numerous disparate XML data sources.  If I was, perhaps I might see more use.

I wonder if this is 2 way?  Can I publish data to a java data source (exposed via xaware) that would WRITE or MODIFY XML for me?  Don’t know yet.

The demo has been interesting, but the session as a whole didn’t quite match up to the session name = “taming your messy mashups”.  I was expecting more code, not a tool.  It’s not bad, but not what I was expecting.   Watching a visual mapping between COBOL file data and XML structure was interesting.

Still, xaware.org might be a tool you’d be interested in using for XML mapping and reading.

MySQL conference first session

April 15th, 2008

I just got here a few minutes ago and am sitting in in the ‘Future of MySQL’ with Robin Schumacher and Rob Young. Interesting – 5.1.24 RC announced at the conference yesterday. GA scheduled for end of Q2 – 2008. It’s close.

Some nice new things – job scheduling, row-based/hybrid replication, faster full-text search, better “problem SQL” identification, better table/index partitioning. However, as with everything with MySQL, there’s always some catches. With the partitioning, for example, it’s not parallel, nor does it support indexes yet. I hope I heard that wrong, but I don’t think I did (I’m recording it as well).

The Falcon engine is available in MySQL 6.0 alpha, scheduled for the end of 2008. What I’m hearing is that the first Falcon engine betas are now being tuned for performance. The chart I’m seeing is that for many tasks Falcon is 30-50% faster than InnoDB at higher concurrency. Low concurrency (8-16 connections) InnoDB is a bit better. Higher concurrency Falcon is much better.

MySQL 6.0 will have a better backup solution, except there will be no support for clustering. Clustering support has its own backup tool, so there wasn’t a major issue to roll out day one. Apparently the MySQL 6.0 backup will be SQL driven, and was inspired somewhat by MSSQL. “Logical based” backup – it’s writing the insert commands directly, but will be faster than mysqldump. Restore is reportedly much better too.

Power just fluttered and we lost the mic and projector for a bit. Having this happen right during a backup/restore section was priceless.

Restore is a ‘blocking’ restore, so it’ll stop whatever you’re doing. Backup commands will be non-blocking on transactional engines (innodb, falcon) – backup on myisam will still block. :( Plugins coming for non-blocking myisam native backup. Other features (or plugins?) will be encryption and compression for backups ‘on the fly’. Idea is that it’ll use much less disk space.

Massive improvement in optimizations in 6.0. A MySQL 5.0 query that took 12 minutes now is 1.8 seconds. No word on whether that was Falcon engine or not.

Replication for clusters? Interesting in 5.1.

There was some mention of bundling memcached in to MySQL, but I may have misheard that. Woud be cool if so. Looks like a q2 thing.

MySQL workbench – I missed the demo of this, but it’s being reported here as massively upgraded. I hope so – it’s basically been broken for a long time (at least, my experiences under Linux were). Hopefully that’s better now.

Talking about zmanda.com backup tool now.

New engine type – Maria – MyISAM with crash recovery. Slated for 6.0.

This seems to jive up somewhat with Jay Pipes mentioned to me in January at Codemash. Some “optimizer enhancements” are slated in the next year or so, but Jay had said it’d likely be 2010 before there’s massive attention paid to it. Bit of a shame, but it looks like some optimizer changes are hitting some relatively low hanging fruit already.

“Citadel” – dynamic encryption without functions, better security, data auditing (who changed what, etc?). I’ve been wondering for years why SQL databases don’t have an option to log all database changes in to shadow tables. Many people end up writing trigger for that functionality anyway. Doesn’t sound like this Citadel release (next version after 6.0) will have that level of logging, but it’d be cool if it did. :)

InfoBright Data Warehouse Engine – automatic indexing and partitioning – looks like they’re going after the data warehouse market big time.

Rob Young is talking now… I may do more updates on his section too…