由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)
所以對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的說法,芬蘭人的本性就是固執和討厭放棄,即使其他人都說他們做的事一點用都沒有,想想也還是蠻有道理的。
MariaDB是MySQL的一個分支,也是開源社群在維護,採用GPL授權許可,完全相容MySQL,在儲存引擎方面,使用XtraDB來代替MySQL的InnoDB。
可以看到Falcon算是一個被拋棄的角色了,而技術變更也是一場沒有硝煙的戰爭,一旦失去了核心主導,一下子就沒有了發展動力。而現在InnoDB毫無疑問算是MySQL陣營中絕對的王者了,技術的發展就在這樣的競爭和創新中慢慢演進,另外值得一提的是,兩大開放原始碼陣營MySQL和Linux都是出自芬蘭人之手,按照採訪michal的說法,芬蘭人的本性就是固執和討厭放棄,即使其他人都說他們做的事一點用都沒有,想想也還是蠻有道理的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1617559/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 談談MySQL InnoDB儲存引擎事務的ACID特性MySql儲存引擎
- 小談mysql儲存引擎優化MySql儲存引擎優化
- 理解mysql的儲存引擎MySql儲存引擎
- MySQL 儲存引擎MySql儲存引擎
- MySQL儲存引擎MySql儲存引擎
- MySQLInnoDB儲存引擎(一):精談innodb的儲存結構MySql儲存引擎
- 如何選擇mysql的儲存引擎MySql儲存引擎
- 聊一聊MySQL的儲存引擎MySql儲存引擎
- MySQL系列-儲存引擎MySql儲存引擎
- MySQL InnoDB儲存引擎MySql儲存引擎
- 怎麼檢視mysql的儲存引擎MySql儲存引擎
- MySQL-05.儲存引擎MySql儲存引擎
- MySQL入門--儲存引擎MySql儲存引擎
- MySQL之四 儲存引擎MySql儲存引擎
- MySQL中InnoDB儲存引擎的實現和執行原理MySql儲存引擎
- MySQL儲存引擎:MyISAM和InnoDB的區別MySql儲存引擎
- MySQL資料庫InnoDB儲存引擎中的鎖機制GVMySql資料庫儲存引擎
- MySQL InnoDB 儲存引擎探祕MySql儲存引擎
- 2_mysql(索引、儲存引擎)MySql索引儲存引擎
- MySQL federated儲存引擎測試MySql儲存引擎
- MySQL的nnodb引擎表資料分割槽儲存MySql
- MySQL中陣列的儲存MySql陣列
- MySQL儲存引擎入門介紹MySql儲存引擎
- MySQL資料庫操作、儲存引擎MySql資料庫儲存引擎
- MySQL索引、事務與儲存引擎MySql索引儲存引擎
- 簡單認識MySQL儲存引擎MySql儲存引擎
- 【MySQL】MySQL(四)儲存引擎、索引、鎖、叢集MySql儲存引擎索引
- Mysql中儲存引擎簡介、修改、查詢、選擇MySql儲存引擎
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- MySQL資料庫儲存引擎簡介MySql資料庫儲存引擎
- Mysql之儲存引擎及字符集MySql儲存引擎
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- MySQL體系結構與儲存引擎MySql儲存引擎
- MySQL InnoDB儲存引擎體系結構MySql儲存引擎
- 儲存引擎儲存引擎
- 生產環境中如何切換MySQL儲存引擎GAMySql儲存引擎
- MySQL不同儲存引擎的資料備份與恢復MySql儲存引擎
- MySQL儲存引擎簡介及MyISAM和InnoDB的區別MySql儲存引擎