今天在看>这本书时 ,看到大师paul dubois对于falcon存储引擎的介绍,这是一种用来进行事务处理的存储引擎。在设计时增加了一些自我优化和免维护的功能,描述总体感觉和innodb很相似,不过整本书中讲解存储引擎的篇幅基本还是myisam和innodb为主。
mysql技术内幕:innodb存储引擎 高清pdf 下载
所以对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)
