由MySQL中的falcon存储引擎引申的八卦杂谈

今天在看这本书时 ,看到大师paul Dubois对于Falcon存储引擎的介绍,这是一种用来进行事务处理的存储引擎。在设计时增加了一些自我优化和免维护的功能,描述总体感觉和InnoDB很相似,不过整本书中讲解存储引擎的篇幅基本还是MyISAM和InnoDB为主。
所以对Falcon产生了好奇,网络中对于Falcon的大体描述如下。
Falcon存储引擎是MySQL当时寄以厚望的存储引擎,主要是为了面对当时Oracle收购了InnoBase公司的情况,用来取代InnoDB的一个存储引擎。Falcon引擎的主导人员是大师Jim Starkey,从2006年开始开发,到2008年发布Beta版本,至今为止也没有走入主流。2008年中旬,Falcon的主架构师Jim Starkey宣布从MySQL公司辞职,加入了一家创业公司NimbusDB担任CEO,去设计和开发运行在云计算上面的关系/语义数据库,按照2010年目前NoSQL市场的发展来看,他的选择是正确的,但是带来的结果是Falcon陷入一个没有主导人员的地步,导致了至今都属于性能糟糕,半死不活的状态。
看了这段话,干脆把书放在一旁,开始八卦起来了。
因为Falcon是InnoDB的竞争产品,所以我们来看看InnoDB的发展历程。

可以看到InnoDB的规划时间是很早的了,发展历程竟然比MySQL还要早,时间上远远甩开了现在各种高大上的开发语言和技术,不过MySQL的雏形时间可以追溯到1979年左右,那时候关系型数据库的发展也是初期,Michael Widenius在有限的资源情况下还是坚持了下来,以坚持就是近20年,直到1996年,MySQL 1.0发布,后来逐渐迁移到linux平台,也从最初的1.0发展到了3.0, 再到1999左右,MySQL AB公司在瑞典成立,这个过程中为了支持事务,他们开发了Berkeley DB引擎,所以可以想象当时InnoDB最开始的推广也还是蛮艰难的,大概在2001年左右Heikki Tuuri向MySQL提出建议,希望能集成InnoDB,因为也是支持事务的,Berkeley DB的发展后来不知怎么样,不过现在能从官网看到已经是Oracle产品线的一部分了,直到2005年左右,oracle收购了InnoBase公司,这个时候Jim Starkey坐不住了,为了面对Oracle收购InnoBase的情况,自己主导开发Falcon这个存储引擎,这个过程持续了大概2年左右,最后出了beta版本,但是后来又是反复上线收购,MySQL被SUN收购,SUN被Oracle收购,不过从MySQL被SUN收购的那一年(2008)年,Jim Starkey就选择了离开,这个时候Falcon的发展受到了致命打击,虽然说从设计上有很多的额优势,但还是有很多的问题,至今也没发展起来。我手头有MySQL5.6版本的软件,这个时候查看存储引擎,发现falcon已经从列表中去除了。InnoDB也是拿过了MyISAM的交椅,成为了默认的存储引擎。
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.01 sec)

后来,Jim Starkey创办了NimbusDB,致力于设计和开发运行在云计算上面的关系/语义数据库,从现在的情况来看眼光还是很准的。MySQL的阵营中也是百花齐放,就有了后来的MariaDB,
MariaDB是MySQL的一个分支,也是开源社区在维护,采用GPL授权许可,完全兼容MySQL,在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。
可以看到Falcon算是一个被抛弃的角色了,而技术变更也是一场没有硝烟的战争,一旦失去了核心主导,一下子就没有了发展动力。而现在InnoDB毫无疑问算是MySQL阵营中绝对的王者了,技术的发展就在这样的竞争和创新中慢慢演进,另外值得一提的是,两大开放源码阵营MySQL和Linux都是出自芬兰人之手,按照采访michal的说法,芬兰人的本性就是固执和讨厌放弃,即使其他人都说他们做的事一点用都没有,想想也还是蛮有道理的。

时间: 2024-10-26 17:20:26

由MySQL中的falcon存储引擎引申的八卦杂谈的相关文章

MySQL 6和新存储引擎

在csdn上看到一则新闻: 在最近举行的MySQL用户大会上,MySQL的首席执行官Marten Mickos宣布,即将推出MySQL开源数据库的下一个大型版本,也就是MySQL 6.0,这个新版数据库中将加入它们自主研发的Falcon存储引擎.MySQL之所以开发Falcon存储引擎是对MySQL的竞争对手数据库厂商甲骨文进行回应. 原文地址: http://news.csdn.net/n/20070508/103685.html 原因是,MySQL依赖InnoDB为它提供最主要的存储引擎,而

MySql中启用InnoDB数据引擎的方法

1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能.这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型).MySql默认配置了许多不同的存储引擎,可以预先设置或者在MySql服务器中启用. 2.MYSQL支持的数据引擎 MyISAM:默认的MySQL插件式存储引擎,它是

MYSQL 浅谈MyISAM 存储引擎_Mysql

思维导图      介绍          mysql中用的最多存储引擎就是innodb和myisam.做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对<高性能MYSQL>书中提到的myisam的理解,请大家多多指教.    特点   > 不支持事务     证明如下:      >> 表记录:t2表的engine是myisam.       >> 操作 注意:如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否

[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型

[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型 数据库表的类型? MySQl主要使用两种存储引擎:MyISAM 和 Innodb.MyISAM是非事务的,因此拥有读取更快,然而InnoDB完全支持细颗粒度的事务锁定(比如:commit/rollback).当你创建一张新的MySQL表时,你要选择它的类型(也就是存储引擎).如果没有选择,你就会使用与预设置的默认引擎. 如果你想要知道已经存在的MySQL数据表的类型,这里有几种方法达到. 方法一 如果你可以访问phpMyAdmin

mysql不同版本和存储引擎选型的验证

Mysql的版本和存储引擎较多,为了选择最适合业务使用的系统,需要进行一定的验证,本文描述mysql的验证过程和思路. 主要涉及: Mysql的版本 v Mariadb v Tokudb v Oracle 具体的存储引擎 v Myisam v Innodb v TokuDB v Maria 如下是具体的思路 My.cnf配置 log-bin=mysql-bin 关闭,不要写日志 skip-networking 开启 安装和配置 v mariadb5.5 v Oracle v Tokudb 如上目

MYSQL 浅谈MyISAM 存储引擎

思维导图    介绍        mysql中用的最多存储引擎就是innodb和myisam.做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对<高性能MYSQL>书中提到的myisam的理解,请大家多多指教.  特点 > 不支持事务   证明如下:     >> 表记录:t2表的engine是myisam. >> 操作 注意:如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否支持事务.>> 下面请

MySQL表类型和存储引擎版本不一致解决方法

使用的是老版本的mysql客户端Navicate 8 ,mysql 服务端用的是mysql5.6的版本,在修改版本引擎的时候出现版本不对; mysql error 'TYPE=MyISAM' 解决办法: Replace TYPE=MyISAM with ENGINE=MyISAM The problem was "TYPE=MyISAM" which should be "ENGINE=MyISAM" as per MySQL version updates – a

MySQL专用开源数据库存储引擎出炉

来自国际领先的数据库厂商Solid Information Technology公司的消息宣称,该公司为MySQL量身定制的开源数据库存储引擎 ─ Solid DB Storage Engine for MySQL的Beta版,已于当地时间2006年7月25日正式对外发布.欢迎广大开源社区的用户及MySQL的忠实追随者在 http://dev.soliddb.com/download下载,抢先感受全新的.更高价值的体验. Solid公司此次面向全球开放的Solid DB Storage Engi

mysql逻辑架构及存储引擎简介

  MySQL逻辑架构: 并发控制:由锁实现 读锁:也叫共享锁,读锁互相不阻塞.A加锁表后A,b,c,d都能读该表但不能写该表. 写锁:也叫排他锁,写锁相互阻塞.A加排他锁后,其他线程不能读写该表. 锁粒度: 表锁:锁一个表,并发粒度小.代表存储引擎MyISAM 行锁:锁一行数据,并发粒度大,并发操作表性能好.代表存储引擎InnoDB.锁粒度小系统对锁的开销也大. 假如给一个表加读锁,那么其他线程也无法对该表进行写操作了,如果是加行锁那么该线程只阻塞只对这一行数据的读写,表中其他行的数据其他线程