Facebook數(shù)據(jù)庫(kù)工具Flashcache初探
Flashcache是Facebook技術(shù)團(tuán)隊(duì)的又一力作,最初是為加速M(fèi)ySQL設(shè)計(jì)的。Flashcache是在Linux層面的,所以任何受磁盤IO困繞的軟件或應(yīng)用都可以方便的使用之。
隨著時(shí)間的流逝,網(wǎng)站上的數(shù)據(jù)一直在不停的積累。如果你經(jīng)營(yíng)的只是一個(gè)博客的話,這不會(huì)是問題,因?yàn)?0G的空間,大概就夠你寫一輩子了(如果放在硬盤上,其實(shí)一輩子很短)。如果你恰巧在一個(gè)快速增長(zhǎng)的公司,數(shù)據(jù)會(huì)越來(lái)越多,從MB,到GB,再到TB。
如果將這些數(shù)據(jù)全部放在大容量的SATA、SAS盤上時(shí),會(huì)發(fā)現(xiàn)性能(響應(yīng)時(shí)間)不夠;如果全放在SSD上時(shí),又會(huì)發(fā)現(xiàn)成本很高。即使公司能夠大氣到都放到SSD上,你會(huì)發(fā)現(xiàn)1TB的數(shù)據(jù)里面可能只有200G是經(jīng)常被訪問的,300G可能偶爾被訪問到,***剩下的500G可能已經(jīng)成為歷史數(shù)據(jù)了,幾乎不被訪問到,如果全部都放在SSD上有略有浪費(fèi)。于是就有了Flashcache。
Flashcache一個(gè)非常不錯(cuò)的軟件(準(zhǔn)確的說是一個(gè)Linux的模塊),可以動(dòng)態(tài)加載。Flashcache通過在文件系統(tǒng)(VFS)和設(shè)備驅(qū)動(dòng)之間新增了一次緩存層,來(lái)實(shí)現(xiàn)對(duì)熱門的緩存。Flashcache是另一種緩存,一般用SSD作為介質(zhì)的緩存(一般的緩存用的是內(nèi)存),通過將傳統(tǒng)硬盤上的熱門數(shù)據(jù)緩存到SSD上,然后利用SSD優(yōu)秀的讀性能,來(lái)加速系統(tǒng)。這個(gè)方法較之內(nèi)存緩存,沒有內(nèi)存快,但是空間可以比內(nèi)存大很多。
本文是一個(gè)關(guān)于Flashcache的初步介紹。
數(shù)據(jù)量很大(例如4TB),熱門數(shù)據(jù)也很大(800GB),不必要或者不舍得全部買內(nèi)存來(lái)緩存。
數(shù)據(jù)量不大的話,一般Flashcache就沒什么用武之地了,內(nèi)存就可以幫你解決問題了;
不差錢,買內(nèi)存唄;
另外Flashcache的加入也使得系統(tǒng)的復(fù)雜度增加了一層,如果你堅(jiān)持KISS原則(Keep it simple, Stupid!),也可以棄用之。
上圖中,F(xiàn)lashcache將普通的SAS盤(/dev/sda)和一個(gè)高速的SSD(/dev/sdb)虛擬成一個(gè)帶緩存的塊設(shè)備(/dev/mapper/cachedev)。后續(xù)還將會(huì)有更多關(guān)于Flashcache相關(guān)的文章出現(xiàn),敬請(qǐng)期待。
對(duì)于當(dāng)前,PCI接口的SSD價(jià)格還十分昂貴,而隨著時(shí)間的推移,價(jià)格會(huì)降;另外,根據(jù)摩爾定律,未來(lái)會(huì)有更快的設(shè)備出現(xiàn),所以Flashcache是一個(gè)“持久的”產(chǎn)品,還只是一個(gè)過渡軟件,這并不好說。
原文鏈接:http://www.orczhou.com/index.php/2010/09/flachcache-first-view/
【編輯推薦】