MySQL Falcon Storage Engine Open Sourced
An anonymous reader writes "The code for the Falcon Storage Engine for MySQL has been released as open source. Jim Starkey, known as the father of Interbase, is behind its creation; previously he was involved with the Firebird SQL database project. Falcon looks to be the long-awaited open source storage engine that may become the primary choice for MySQL, and along the way offer some innovation and performance improvements over current alternatives." This is an alpha release for Windows (32-bit) and Linux (32- and 64-bit) only, and is available only in a specially forked release of MySQL 5.1.
I'd post the FIRS POST, but the db is down...
A cool open source project name. I've been waiting.
"This Falcon Storage Engine better be released as Falcon open source, or I'm gonna be Falcon pissed."
I'm a developer, but I've never used MySQL.
Isn't MySQL already open source? If so, how does the Falcon storage engine differ from the "regular" storage engine that comes with MySQL?
The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
Actually, a good question would be : What is the difference between Mysql and Mysql falcon?
No sig for now.
New Microsoft Sql Server coming soon to a store near you. Cant wait for M$ to secretly add this to their SQL server and call it innovation.
I've been very excited since I first heard about this new storage engine adapted from Netfrastructure. Not only does it give MySQL a transactional storage engine that is not controlled by a hostile company, but the engine appears to be designed from the bottom up to support web traffic. Jim gave a great talk at the Boston MySQL meetup that you can watch here http://video.google.com/videoplay?docid=1929002440 950908895
What does Falcon do that the InnoDB engine doesn't currently do? The description seems rather vague.
You stupid fucktards and your Open Source!
Give me a Goddamn Break!!!
Open Source is for Retards!!!! It's garbage!!!! GNU is shit!!!! Fuck you!!!!
I refuse to use Open Source!!!! It's shite...don't listen to these fucktards!
I mean, I've been using MySQL for years without a "storage engine" so what does this offer me that I don't have now?
Clear, Dark Skies
MySQL seems to get a different "storage engine" about every other week nowadays... with various assortments of different legal baggage to carry around for each different storage engine deployed.
This scatterbrainedness, and ridiculous inconsistency of MySQL has blown its credibility to smithereens... rendering the entire product to not be able to be taken seriously anymore. Nobody I know trusts it enough to develop any serious app around it anymore. It's now become only an academic curiosity, which is a disappointing tragedy considering so many folks once upon a time had a lot of faith in it as a powerful and nimble lightweight database. Now we have no idea where the fluck it's heading anymore.
I just setup a phpBB site that uses MySQL and I'm always keeping an eye on storage space and performance now. I don't suppose my host will upgrade MySQL any time soon, but this is still cool news...
OK, although I don't agree with it, I know that a lot of people use MySQL because it's the most common database supported by web hosts. Isn't it almost as likely for a hosting company to have PostgreSQL, though, as to upgrade to a bleeding-edge version of MySQL when this is finally readied for public consumption? Will this new backend give any extra functionality that PostgreSQL doesn't offer?
Dewey, what part of this looks like authorities should be involved?
Okay. Thanks; I didn't realize that MySQL abstracted the actual file I/O layer, although that certainly makes sense.
Clear, Dark Skies
for smaller databases, but limiting the tablespace to a single file per database/schema doesn't sound very flexible, and won't allow DBAs to maximize their disk throughput.
I am guessing that this is more of a MyISAM replacement than an InnoDB replacement, so it's not really a shot across Oracle's bow (as some comments make it sound like).
is evidence that easier trumps better when it comes to the early adoption curve, something I wish the PGSQL folks had understood (or rather cared about). PGSQL should have thrashed MySQL long ago. If you wait long enough, competing projects will gain parity and the game is over.
So if Falcon uses MVCC, does it require something like PostgreSQL's VACUUM? Or does it have some other way to detect and remove dead tuples?
Also, has anyone looked at making PostgreSQL a storage plugin for MySQL? :-)
Slashdot is a "serious" site? This place is on its deathbed. Digg has murdered /. Now they're desperately trying to emulate Digg's bookmark feature. It's a futile attempt. No site other than incestuous NewsForge has added this pathetic copycat.
I was forced to learn Postgres because I wanted to do a SELECT * FROM foo WHERE bar NOT IN ( SELECT x FROM y WHERE z > 4 ) type query - basically a negative subselect. I couldn't do (or couldn't work out how to) use table JOINs to perform the same thing, and at the time, MySQL didn't do it.
I'm so thankful. Postgres is so much better. And the table JOIns I did have ran so much faster in PG. s/mysql_/pg_/g *.php
Get your own free personal location tracker
Be warned: Java causes irreversible brain damage.
Falcon looks to be the long-awaited open source storage engine that may become the primary choice for MySQL, and along the way offer some innovation and performance improvements over current alternatives.
Come on. Give me PostgreSQL any day. After fiddling with MySQL at work for a few custom developments (both versions 4 and 5.0.2) i'm ready for anything else. Gave PSGSQL a shot at home and it runs very nice, with lots of advanced features. Anyone with real-world deploying feedback to share?
http://www.mysql.org/doc/refman/5.1/en/se-falcon-l imits.html
No foreign key support.
No "select for update".
Online backup is not supported.
Serializable isolation levels are not supported.
Yes, I'm fully aware that it is an alpha release.
Unless you think using drupal makes me a sql developer.
Clear, Dark Skies
I write device drivers, actually. I use Mysql as the backend for a club website I manage.
Clear, Dark Skies
when i first read falcon storage engine, i initially thought of a storage software called falconstor. falconstor is more in the data backup/archive/recovery market, often used as a disk-to-disk-to-tape solution, or sometimes as a virtual tape device, but i imagine that often times a name that's close but different is almost always considered "too close" and forces a name change by somebody... let's see how this gets resolved. who knows, maybe the other falcon store(NSFW) might be the winner...
three can keep a secret, if two are dead - benjamin franklin
So you posit that people are no longer using MySQL?
Many FOSS database application developers, like myself and about a dozen of my colleagues, have ceased using MySQL as our primary database platform for our projects over the past year or so... precisely because of this black cloud of uncertainty with MySQL. I've personally moved to Postgres myself, even though it was a pain to learn a new database to the degree of familiarity I had with MySQL, and rewrite a significant portion of my handy library of database code snippets I re-use most frequently.
"MyISAM - the most common and fastest. But no transactions, no ACID, etc. Good for many read-only or non critical tables. .... other storage engines also exist"
InnoDB - licensed from InnoSoft (now oracle). GPL for non commercial, extra dollars for commercial. Transactions, ACID, but a bit slow.
Unfortunately none of them handle binary blobs very well. e.g. video, audio, pictures, etc. Text is what they're optimized for.
before falcon goes the way of innodb. mysql had better develop it's *own* engine; that's the least it owes to the millions of users who built its reputation, whose data is still liable for ransom as long as mysql keeps using engines it doesn't 'own'.
The big thing Falcon brings is MVCC which allows safe simultaneous reading and and writing without locks.
Here is a good explanation of PostgreSQL's MVCC.
We don't see the world as it is, we see it as we are.
-- Anais Nin
"However, there are a few (obvious) situations where you can use GPL software for profit:
1) Server-side use - no need to provide source code."
Until GPLv3
"4) You sell the hardware, not the software."
Hello, Tivo!
I've ended up having to support and/or migrate several Access databases designed by end users ...
... ;)
These guys who've set up MySQL are gurus by all comparisons
"The large print giveth, and the small print taketh away" -- "Step Right Up", Tom Waits
The summary does not mention that the alpha only supports x86 platforms... ie, on Linux, it may be compiled for 80486 and better 32 bit IA32 compatible microprocessors, and Intel EM32T compatible 64bit microprocessors such as the AMD's Athlon 64 family and of course the newer non-Itaniam 64bit Intel microprocessors.
Support for other families of microprocessors, such as PowerPC and Sparc will come later.
No sig. Move along - nothing to see here.
There is of course a work-around. Having a search table that is MyISAM and has fulltext enabled.
Better yet, use something that's been built from the gound-up to search: Apache Lucene (which has even been ported to PHP).
Using Lucene will give you much better weighted results than the MySQL FullText, plus it has a natural language query parser so people can use the kind of search queries they are used to using in google etc.
I am NaN
good news indeed to see jim associated with this project as interbase
while weak on the reporting/crunch end speedwise it was hella fast with
basic lookup and insert speed 6-8 years ago on P2's. When you needed to pump some serious inserts on the cheap
interbase got the job done with concurency, uptime, and practically required zero maintenance
outside of just watching the file size limit before splitting it
I'm not sure why people clamor to MySQL, and all its problems; when postgres is faster, cheaper, (yes it's cheaper, look at all the database engine within database you have to muck with for mysql, TCO is not measured only in money) and Postgres won't have these "engine" problems that Mysql has.
Yes yes, I know you Mysql toilet paper crowd will stick to Mysql no matter how much it shits on you..
http://tweakers.net/reviews/657/6 -- proof's in the pudding..
I've read through all comments with 2 or more in rating, and it seems that people really underestimate what Jim is doing here.
We're talking in-memory MVCC here. This means you can add 1000 records, do a rollback, and the harddisk hasn't been accessed. Even if you commit, performance will eventually be magnificent compared with on-disk MVCC systems. You can run larger systems on one server with this, than you would be able to run on a cluster with other database systems.
This system has been designed to provide very good performance improvements for those who do know how to create SQL statements, but probably even better performance improvements for those who don't. And we don't have a tradeoff between performance and transactions any more - transactions and better performance are both included.
Also, please note that this technology will make MySQL a trustworthy data storage for many commercial applications out there, giving added value to their apps and their businesses. It will also enable small but very skilled development teams able to use MySQL as a trustworthy database for specialized applications - previously only Firebird and Postgresql were able to provide this for free, and even though Firebird has a very high deployment in USA's top 500 companies, postgresql seems to be very much *nix only in deployment statistics.
I have been programming database applications for more than 20 years, and have been programming Oracle, MSSQL, MySQL, postgresql, Firebird, dBase, Paradox, Access and other databases. I see Jim's contributions to MySQL as extremely important for the database market. Instead of having "just" a transaction layer on top of a storage layer, MySQL now provides mechanisms that give this design an advantage over those database systems where the transactions are stored on disk (like Firebird, Postgresql).
And - by the way - this has NOTHING to do with "optimizing for web applications". Web applications are just as diverse as GUI applications and other systems, and GUI applications will benefit from this as much as web applications.
This is a really good point... I just used up my mod points :(
a transactional storage engine that is not controlled by a hostile company
Which brings the total to at least 3 such so far: SolidDB, PBXT in addition to the well-known Falcon project.
If Oracle intended to weaken MySQL's market position by the acquisitions of Sleepycat and Innobase, they seriously miscalculated.
you had me at #!
About all that features, it means that was implemented based in InterBase and Firebird SQL internal Engine, two robust real Relational databases that as far as i can see are billion times better than any MySQL engine.
Sigh. You are as wrong as you are ignorant. MySQL converted their client-library licenses to GPLv2 (from LGPL) several years ago. Both the GNU zealots and MySQL believe that any applications which use libraries licensed under the GPL are derivative and thus must be wholly licensed under the GPL. This is not an academic point either as this dual-licensing model is where MySQL has derived most of their revenues from (which, depends, on the GPL's force over client libraries).
From the GPL v2:
"If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License"
From MySQL:
Previously, the MySQL client libraries were licensed under the LGPL (the Lesser General Public License) and now they use the GPL (the General Public License). What prompted this change?
MySQL's goal is to provide all its software under a free software/open source license. The change from the LGPL to the GPL for the client libraries was made in 2001 during the development of MySQL 4.0 to help MySQL AB more easily differentiate between a proprietary user who should buy a commercial license and a free software user who should use the GPL license. Previously there were people that were misusing the GPL by distributing the MySQL server tightly coupled with their applications and claiming that the GPL doesn't affect them because the client libraries were free to use.
This change has allowed MySQL to support its dual licensing model by better identifying when someone is using MySQL software in a closed source fashion without commitment to the open source philosophy. While MySQL supports the open source ideals, we also believe in the notion of "Quid Pro Quo" or fair exchange. For developers building open source applications using MySQL, the change in the client licensing policy has no effect.
Based on feedback from our users, MySQL has introduced an exception that makes it possible to combine the MySQL client libraries with software that uses various Free and Open Source software ("FOSS") licenses. This is known as the FOSS License Exception.
Also from MySQL:
"If you include one or more of the MySQL drivers in your non-GPL application (so that your application can run with MySQL), you need a commercial license for the driver(s) in question. The MySQL drivers currently include an ODBC driver, a JDBC driver and the C language library."
"If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries."
Wrong. The GPL affords no such protections. PHP and other open source projects were at risk when they made the change. MySQL had to create a special special exception for these FLOSS programs. A MySQL client-library derivative work (e.g., PHP) is OK as long as the source code is released (under one of the enumerated FLOSS licenses or GPL). MySQL, however, still claims that if you write an application on top of one of these other FLOSS programs, e.g., PHP, and is considered derivative, i.e., connects to MySQL with their libraries, then you must release your source code with your distribution. In other