基於SSD讀性能,產生的Flashcache技術

## flashcache出現的背景環境
1.長期積攢的大數據量如果將這些數據全部放在大容量的SATA、SAS盤上時,會發現性能(響應時間)不夠;
2.如果全放在SSD上時,又會發現成本很高。
3.即使公司能夠大氣到都放到SSD上,你會發現1TB的數據裏面可能只有200G是經常被訪問的,300G可能偶爾被訪問到,最後剩下的500G可能已經成爲歷史數據了,幾乎不被訪問到,如果全部都放在SSD上有略有浪費。於是就有了Flashcache

## 什麼是flashcache
1.Facebook發佈了通過將數據緩存在SSD硬盤加速MySQL的內核模塊Flashcache。代碼已經放到Github上
2.Flashcache一個非常不錯的軟件(準確的說是一個Linux的模塊),可以動態加載
3.Flashcache通過在文件系統(VFS)和設備驅動之間新增了一次緩存層,來實現對熱門的緩存
4.Flashcache可以理解爲是一種緩存,一般用SSD作爲緩存的介質(一般緩存的介質用的都是內存),通過將傳統硬盤上的熱門數據緩存到SSD上,然後利用SSD優秀的讀性能,來加速系統
5.這個方法較之內存緩存,沒有內存快,但是空間可以比內存大很多
6.但是SSD有個先天性缺陷,那就是寫入數據之前必須先進行擦除,這是爲什麼呢,這和SSd的原理有關,電位的轉化問題,就是先把空間全部置位,再進行加電變化每個cell的正確電位,那麼勢必會影響SSd的壽命,相當於一次寫轉化爲了兩次寫
7.如果SSD的使用沒有進過良好的優化,那麼會SSD的使用壽命將會受限,因此損耗均衡算法也是SSD研究關注的重點,貌似現在有了成熟的解決方案。
8.儘管SSD設備都具備了良好的損耗均衡,但是使用者都是熟知SSD的缺陷,所以不得不小心應對,因此SSD在存儲中的位置,通常作爲讀緩存,用於提高系統的IO性能。
9.FlashCache便是以此爲目的的使用SSD設備的

## 誰適合用Flashcache
1.數據量很大(例如4TB),熱門數據也很大(800GB),不必要或者不捨得全部買內存來緩存

## 誰不適合用Flashcache
1.數據量不大的話,一般Flashcache就沒什麼用武之地了,內存就可以幫你解決問題了
2.不差錢的情況,買內存上大內存

## 爲什麼flashcache適用於mysql
1.傳統磁盤的對於(mysql需求的)隨機寫/隨機讀效率都相當低下,需要進行機械化的尋道讀取。
2.SSD因爲是固態存儲器,即不存在機械尋道和磁化問題,而是通過電位標註01,隨機讀寫效率都相當優秀。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章