Slashdot Log In
MySQL Falcon Storage Engine Open Sourced
Posted by
kdawson
on Tue Jan 02, 2007 03:52 PM
from the stooping-to-conquer dept.
from the stooping-to-conquer dept.
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.
This discussion has been archived.
No new comments can be posted.
MySQL Falcon Storage Engine Open Sourced
|
Log In/Create an Account
| Top
| 235 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Overheard a few days earlier (Score:1, Funny)
Please explain (Score:3, Interesting)
(http://www.bernsrite.com/ | Last Journal: Monday June 27 2005, @11:36PM)
Isn't MySQL already open source? If so, how does the Falcon storage engine differ from the "regular" storage engine that comes with MySQL?
Re:Please explain (Score:5, Informative)
MySQL has no "native" way to store or obtain data - everything goes through plugins, some of which ship with MySQL some don't.
MyISAM - the most common and fastest. But no transactions, no ACID, etc. Good for many read-only or non critical tables.
InnoDB - licensed from InnoSoft (now oracle). GPL for non commercial, extra dollars for commercial. Transactions, ACID, but a bit slow.
Re:Please explain (Score:4, Insightful)
This is easy and one of the tenants of so-called dual licensing setups...
Basically, if you don't want to pay to use the software, you are bound to the terms of the GPL. If you don't want to be bound to the terms of the GPL, you gotta pay.
Re:Please explain (Score:5, Informative)
(http://slashdot.org/)
Falcon has been specially developed for systems that are able to support larger memory architectures and multi-threaded or multi-core CPU environments. Most 64-bit architectures are ideal platforms for the Falcon engine, where there is a larger available memory space and 2-, 4- or 8-core CPUs available. It can also be deployed within a standard 32-bit environment.
The Falcon storage engine is designed to work within high-traffic transactional applications. It supports a number of key features that make this possible:
* True Multi Version Concurrency Control (MVCC) enables records and tables to be updated without the overhead associated with row-level locking mechanisms. The MVCC implementation virtually eliminates the need to lock tables or rows during the update process.
* Flexible locking, including flexible locking levels and smart deadlock detection keep data protected and transactions and operations flowing at full speed.
* Optimized for modern CPUs and environments to support multiple threads allowing multiple transactions and fast transaction handling.
* Transaction-safe (fully ACID-compliant) and able to handle multiple concurrent transactions.
* Serial Log provides high performance and recovery capabilities without sacrificing performance.
* Advanced B-Tree indexes.
* Data compression stores the information on disk in a compressed format, compressing and decompressing data on the fly. The result is in smaller and more efficient physical data sizes.
* Intelligent disk management automatically manages disk file size, extensions and space reclamation.
* Data and index caching provides quick access to data without the requirement to load index data from disk.
* Implicit savepoints ensure data integrity during transactions.
Re:VACUUM? (Score:4, Funny)
(http://www.gavinroy.com)
Re:Please explain (Score:5, Interesting)
(http://hive.ro/)
MySQL's counter-attack to Oracle's advances (Score:5, Informative)
InnoDB (Score:2)
(http://www.friedo.com/)
MVCC: Multi-Version Concurrency Control (Score:5, Informative)
Here is a good explanation of PostgreSQL's MVCC [onlamp.com].
Okay, I'm stupid. What is a storage engine? (Score:1)
(http://www.chesmontastro.org/)
Re:Eh. MySQL user, actually. (Score:5, Interesting)
It's just a function of how easy MySQL is to set up. It's trivial to set up, but a lot of the default decisions are generally bad for an SQL database, and the documentation -- while good -- never encourages you to go beyond the defaults.
It's like hearing someone say they can design websites, and then finding out they mean with FrontPage.
Drupal is one example of something that works great with MySQL. I can argue about MySQL's faults over and over, but at the end of the day it's easy to use and it's good enough for most people. CMS systems and forums are where MySQL really shines.
Sweet... but one of those long-term things :-( (Score:2)
(http://trollchat.org/)
Why not PostgreSQL? (Score:2, Insightful)
(http://honeypot.net/ | Last Journal: Friday April 07 2006, @09:33AM)
Re:Why not PostgreSQL? (Score:5, Interesting)
(http://www.webworks.se/)
1) Get better performance on multiprocessor systems
2) Get a decent storage engine that is not controlled by MySQL competitors
As far as I can tell there is nothing in it that you can't get in Postgresql.
Postgresql already performs better than the standard MySQL on multiprocessor systems.
It remains to be seen if Falcon will be better than Postgresql once its production
ready. Well, there is one thing, Falcon compresses data while Postgresql doesn't. can't help wondering what this will do to performance.
On the other hand there seam to be a lot missing from Falcon that you find in Postgresql.
If you read the Falcon limits page on the mysql site you find that it lacks e.g:
- SELECT FOR UPDATE
- No online backup
- No foreign keys
All in all, I would say Postgresql would be a better choice, if your web hosting company allows you to use it.
MySQL have a tendency to slow down on many concurrent or complex queries. Postgresql is far better at handling triggers and can be programmed in many different programming languages. Support for domains and much more. MySQL also lacks EXCEPT, this makes some types of queries (relational division) much more complex than they have to be.
Still for people that aren't free to choose their database, it is nice to see that MySQL
makes some progress. Besides a little competition never hurts.
It might have potential... (Score:2)
(http://ghostofcorporatefuture.blogspot.com/)
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).
I had to drop MySQL (Score:2, Informative)
(http://calum.org/)
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
Oh, please (Score:4, Informative)
Come on. Give me PostgreSQL [postgresql.org] 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?
i see a naming conflict on the horizon... (Score:2)
(http://www.doink.org/)
Platforms for Falcon (Score:2)
(http://www.mysql.com/ | Last Journal: Wednesday December 27 2006, @03:53PM)
Support for other families of microprocessors, such as PowerPC and Sparc will come later.
Don't underestimate this one (Score:5, Informative)
(http://www.dybdahl.dk/ | Last Journal: Monday November 25 2002, @06:23PM)
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.
Re:New Microsoft Sql Server (Score:1, Offtopic)
(http://www.nojailforpot.com/)
Re:Please explain part 2 (Score:5, Funny)
Mysql maximizes rich channels and empowers cross-platform convergence letting you drive mission-critical niches whereas Falcon utilizes scalable initiatives by scaling end-to-end networks for reintermediate granular platforms (win32 and linux 32/64).
Re:MySQL versus PostgreSQL (Score:2)
(http://dstupid.com/geeklog/public_html/index.php)
Re:MySQL versus PostgreSQL (Score:5, Insightful)
(http://honeypot.net/ | Last Journal: Friday April 07 2006, @09:33AM)
But in something as mission-critical as a database, of all things, reliability trumps everything. I don't think they could have developed PostgreSQL any other way and still supported its primary goal of safety.
What gave you the (wrong) impression that PostgreSQL folks have been sitting around twiddling their thumbs? Version 8.2 just came out within the month and includes several performance boosts that make it fly on our production systems.
Re:New Microsoft Sql Server (Score:2, Informative)
Laugh all you want, but MS is one of the leaders in the database world with SQL Server for Windows, and have been for a while now. SQLS is by a long, long shot the best software product Microsoft has ever released, IMHO, and keep doing, right to the latest version. It works great.
Re:New Microsoft Sql Server (Score:5, Insightful)
This is a nice step forward for MySQL, but for the most part it is just a means for catching up to the other commercial DBs and PostgreSQL. ACID compliance, granular locking, MVCC, and multithreading are *not* differentiating features in the database world.
Re:It's only a matter of time (Score:4, Informative)
(http://www.hiveminds.org/)
MySQL *have* done so with Falcon. MySQL *do* own Falcon.
[Jim has worked on other RDBMS in the past] != [MySQL do not own the one he's currently working on]