亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Exadata數據庫一體機FlashCache緩存淘汰算法改進

        2020-11-11 06:28:38亓薇薇
        科技視界 2020年31期
        關鍵詞:存儲管理數據文件對象

        亓薇薇

        (山東省萊蕪職業(yè)技術學院<信息工程系>,山東 萊蕪271100)

        0 引言

        最近幾十年,我國IT及互聯網產業(yè)發(fā)展迅速,信息量也以幾何級倍數增長,這對存儲系統(tǒng)的要求也不斷提高,存儲系統(tǒng)的性能、容量、與成本之間的矛盾也日益突出。

        機械硬盤存儲容量大且技術成熟,但是它的IO性能相對比較低下,無法滿足那種對IO要求極高的業(yè)務系統(tǒng)。SSD固態(tài)硬盤[1]或者PCI-E閃存[2]這類IO設備能夠提供極高的IO性能,但價格同樣也非常高。如何利用這兩種存儲設備的優(yōu)點并避開各自的缺點,發(fā)揮出存儲設備的最大的優(yōu)勢是值得探討的問題。

        分層存儲[3]作為一種能夠有效解決上述矛盾的技術,在近年來成為熱點。所謂分層存儲,就是所有數據最終存儲在機械硬盤中,但在進行IO訪問時,通過分層存儲管理軟件自動實現熱點數據自動存儲在高性能的IO設備中,這樣就能夠充分利用SSD或者PCIE閃存這類容量小但IO性能極高的IO設備。分層存儲管理軟件目前有開源和閉源兩種:開源的存儲管理軟件,例如:Facebook公司的FlashCache,Intel公司的Open-CAS;閉源的存儲管理軟件,例如:Oracle公司的Exadata FlashCache。

        以下內容主要涉及Oracle的Exadata FlashCache的緩存算法改進,Exadata是Oracle公司的最先進的數據庫一體機,底層的數據存儲使用機械硬盤,上層用PCI-E閃存卡做成數據緩存[4],也即FlashCache。

        1 Exadata FlashCache IO請求模式

        Exadata FlashCache有write-through和writeback兩種模式[5]可以選擇,write-through模式,意味著計算節(jié)點數據庫BufferCache中的臟數據塊寫回數據文件時,是繞開FlashCache,直接寫回機械硬盤。而對于write-back模式,數據庫BufferCache中的臟數據塊寫回數據文件時,是先寫FlashCache,后期再慢慢刷回機械硬盤。

        在講解Exadata FlashCache的緩存算法之前,先介紹Exadata FlashCache的IO請求模式,也即哪些IO請求會經過PCI-E閃存設備。

        當需要被訪問的數據塊沒有被緩存在FlashCache中的情況下,IO讀請求的整個處理流程如圖1所示。

        圖1 write-through模式FlashCache數據未緩存時IO請求

        數據庫服務器向存儲管理軟件發(fā)起IO讀請求,Exadata存儲管理軟件檢測到存儲節(jié)點的FlashCache中沒有所需要的數據塊,所以只能直接從磁盤的數據文件中訪問這些IO數據塊。從磁盤的數據文件中讀取出的數據塊被返回給數據庫服務器。存儲管理軟件會決斷這些被訪問的數據塊是否滿足緩存到FlashCache的條件,如果滿足(數據緩存算法),則這些數據塊會被寫入FlashCache中。

        當需要被訪問的數據塊已經被緩存在FlashCache中的情況下,IO讀請求的整個處理流程如圖2所示。

        數據庫服務器向存儲管理軟件發(fā)起IO請求。存儲管理軟件檢測到存儲節(jié)點的FlashCache中有所需要的數據塊,所以可以直接從FlashCache中訪問這些IO數據塊。將從FlashCache中讀取出的數據塊被返回給數據庫服務器。

        數據庫服務器向存儲節(jié)點發(fā)起IO寫請求,整個處理流程如圖3所示。

        數據庫服務器向存儲管理軟件發(fā)起IO寫請求。存儲管理軟件將這些IO寫請求直接寫回磁盤上的數據文件中。數據庫服務器BufferCache中的臟數據塊完全寫入存儲節(jié)點磁盤的數據文件后,給數據庫服務器發(fā)出一個IO寫完成的響應,通過數據庫服務器已經完成IO寫入。存儲管理軟件會決斷這些被寫回數據文件的數據塊是否滿足緩存到FlashCache的條件,如果滿足,則這些數據塊會被緩存到FlashCache中。

        圖2 write-through模式FlashCache數據已緩存時IO請求

        圖3 write-through模式FlashCache寫數據時IO請求

        如果FlashCache在write-back模式下,它的IO讀操作與write-through模式完全相同,但它的IO寫操作與write-through模式則完全不同。

        下面介紹FlashCache配置為write-back模式時,IO寫操作的請求順序如圖4所示。

        數據庫服務器向存儲管理軟件發(fā)起IO寫請求。存儲管理軟件將這些IO寫請求直接寫入FlashCache中,而不是數據文件。當數據庫服務器的IO寫請求完全寫入FlashCache后,給數據庫服務器一個IO寫結束的響應。存儲管理軟件后期會將FlashCache中的臟數據塊慢慢地刷回數據文件中。

        圖4 write-back模式FlashCache寫數據時IO請求

        2 Exadata FlashCache緩存淘汰算法

        Exadata Smart FlashCache IO請求模式中可以看出:不同緩存配置模式,不同的IO請求模式,所涉及的數據塊是否會進行緩存都不盡相同。

        訪問的數據塊適不適合進行緩存,是由數據庫服務器向存儲軟件發(fā)送的數據元信息決定的,這些數據元信息類似于:請求的IO的大小或IO類型、請求的IO所屬的數據段關于cell_flash_cache屬性的設置等。

        FlashCache中數據塊的管理工作是由Exadata存儲管理軟件來完成的,FlashCache中數據塊的刷出和刷入機制使用的是最近最少使用(LRU)的算法進行自動管理。

        由PCI-E閃存組成的FlashCache緩存畢竟容量有限,當FlashCache用滿時,Exadata將FlashCache中最近很少使用的數據塊刷出FlashCache。

        FlashCache緩存淘汰算法具體如下:

        (1)當有新的數據對象需要緩存到FlashCache時,先檢查存儲節(jié)點的FlashCache是否還有可用空間?

        (2)如果存儲節(jié)點的FlashCache已經完全使用,沒有發(fā)現可用空間時,則檢查FlashCache中的哪個數據對象的hitcount最少?

        (3)將FlashCache中hitcount最少的數據對象刷出,并釋放空間。

        (4)將新的數據對象需要緩存到FlashCache。

        3 當前緩存淘汰算法缺陷

        Exadata的FlashCache使用LRU算法將數據塊淘汰出緩存,但這種緩存淘汰算法存在一些缺陷。通過下面這則案例解析,可以清楚看出當前緩存淘汰算法的缺陷在哪。

        案例概要:

        一臺Exadata上運行著A和B兩套Oracle數據庫,運行了一段時間后,A數據庫從該Exadata上遷移出去并且完全停止使用,但是A數據庫沒有刪除。某一天,發(fā)現運行的B數據庫性能比較差,主要表現在單個IO讀經常飆升到十幾毫秒左右,同時B數據庫的FlashCache的命中率比較低。

        案例分析:

        檢查FlashCache的使用情況。由于Exadata每個存儲節(jié)點都配置了5.8TB的PCI-E閃存卡,正常情況下,熱點數據都應該緩存在這些基于PCI-E閃存卡的FlashCache中,如果SQL語句需要的數據塊未緩存到FlashCache中,則需要讀取物理的數據文件,如果大量訪問物理的數據文件,則IO性能肯定會大幅下降。

        下面,進一步檢查存儲節(jié)點FlashCache的使用情況。

        從以上輸出可以看出,A數據庫還占用了4個多TB的FlashCache,而B數據庫僅僅占用了1個多TB的FlashCache資源,這其實就是為什么B數據庫單個IO讀慢的原因。

        跟客戶進一步溝通得知,A數據庫已經從Exadata上遷移出去將近2個月了,目前A數據庫處于關閉狀態(tài)。那么問題來了,既然A數據庫已經處于關閉狀態(tài),并且永遠也不會開啟,那么為什么A數據庫還有這么多的數據對象緩存在FlashCache中呢?并且也沒有立即釋放的跡象。

        通過這個案例,可以看出FlashCache緩存淘汰算法存在的一些缺陷。存在的缺陷主要在于第2步,因為它只是簡單地比較FlashCache中的哪個數據對象的hitcount最少,然后把hitcount最少的數據對象刷出FlashCache。

        該缺陷主要表現為:A數據庫已經關閉了2個多月,并且永遠也不會開啟,但A數據庫中有些數據對象的hitcount非常非常大,則這些對象有可能永遠緩存在FlashCache中。

        4 Exadata FlashCache緩存淘汰算法改進

        那么如何優(yōu)化Exadata FlashCache的淘汰算法呢?當數據對象被緩存到FlashCache之后,相應的信息都會被統(tǒng)計到flashcachecontent指標中,可以分析flashcachecontent指標,來確認FlashCache中緩存了哪些數據對象。

        查看flashcachecontent指標中包括哪些信息,具體命令如下。

        flashcachecontent指標中dbUniqueName屬性,是數據庫的唯一識別名,等同于數據庫名。objectNumber屬性,對應數據庫中dba_objects視圖的data_object_id字段,可以通過它查找出具體的數據對象名稱。

        有了數據庫名和數據對象ID這些信息,就可以與數據庫實例進行關聯查詢出這些數據對象的當前狀態(tài)。

        可以在緩存淘汰算法代碼中定期檢查FlashCache中所涉及的數據庫和數據對象的狀態(tài),如果發(fā)現FlashCache中某個數據庫已經長時間未運行,比如一個星期或半個月,則將FlashCache中該數據庫的所有對象的hitcount重置為0,同樣,如果發(fā)現FlashCache中某個對象(objectNumber)在對應的數據庫中沒有匹配的數據對象,則間接地說明了FlashCache中緩存的對象在數據庫層面已經被刪除,這類對象同樣可以將hitcount重置為0。如此一來,當需要從FlashCache中刷出數據,騰出空間給新的數據對象時,就可以優(yōu)先刷出那些被刪除的對象,或者是數據庫已經長期關閉的對象。而不是簡單地刷出hitcount最小的數據對象,因為誰也不能保證hitcount最小的數據對象在日后不會被再次訪問。

        5 結語

        前面介紹了針對Oracle公司的Exadata存儲管理軟件中對FlashCache緩存的管理,以及Exadata FlashCache緩存淘汰算法中目前存在的缺陷,給出該淘汰算法的改進建議,這個建議將有效改進FlashCache的空間使用效率,提升使用性能。

        猜你喜歡
        存儲管理數據文件對象
        神秘來電
        睿士(2023年2期)2023-03-02 02:01:09
        數據文件恢復專題問答
        攻略對象的心思好難猜
        意林(2018年3期)2018-03-02 15:17:24
        數據文件安全管控技術的研究與實現
        一種衛(wèi)星數據廣播系統(tǒng)端站存儲管理方案設計
        電子制作(2017年13期)2017-12-15 09:00:32
        SQL數據文件恢復工具
        文檔存儲管理系統(tǒng)的設計
        基于熵的快速掃描法的FNEA初始對象的生成方法
        區(qū)間對象族的可鎮(zhèn)定性分析
        省級氣象數據文件共享存儲管理系統(tǒng)研究
        丰满精品人妻一区二区 | а√天堂8资源中文在线| 亚洲精品国精品久久99热| 久久99精品久久水蜜桃| 国产农村乱辈无码| 国产欧美日韩一区二区三区在线| 久久精品人妻一区二区三区| 亚洲欧美在线播放| 把女的下面扒开添视频| 国产精品ⅴ无码大片在线看| 18禁无遮挡羞羞污污污污网站| 亚洲V日韩V精品v无码专区小说| 国产男女插插一级| 午夜无码片在线观看影院y| 亚洲日本在线中文字幕| 高清成人在线视频播放| 日韩麻豆视频在线观看| 亚洲 小说区 图片区 都市| 亚洲av无码乱码国产一区二区| 久久久精品人妻无码专区不卡| 欧美色欧美亚洲另类二区不卡| 欧美日韩中文字幕久久伊人| 亚洲国产精品成人一区二区三区| 亚洲不卡在线免费视频| 久久久久亚洲av成人人电影| 国产成人精品午夜视频| 色婷婷综合中文久久一本| 免费一区啪啪视频| 久久久久久久久高潮无码| 最新天堂一区二区三区| 国产福利一区二区三区在线视频| 少妇扒开毛茸茸的b自慰| 7878成人国产在线观看| 精品国产一区二区三区久久女人| 日本一区二区三区看片| 国产一区二区不卡av| 国产日韩精品中文字幕| 四虎成人精品国产永久免费无码| 草草久久久无码国产专区| 久久精品国产四虎| 精品亚洲视频免费观看网站|