由MySQL中的falcon儲存引擎引申的八卦雜談

jeanron100發表於2015-05-01
今天在看<>這本書時 ,看到大師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的說法,芬蘭人的本性就是固執和討厭放棄,即使其他人都說他們做的事一點用都沒有,想想也還是蠻有道理的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1617559/,如需轉載,請註明出處,否則將追究法律責任。

相關文章