基于SSD的Key-Value型本地存儲方法及系統的制作方法

            文檔序號:6370226閱讀:343來源:國知局
            專利名稱:基于SSD的Key-Value型本地存儲方法及系統的制作方法
            技術領域
            該發明涉及本地數據存儲管理系統,尤其涉及基于SSD (固態硬盤)的Key-Value(鍵值)型本地存儲方法及系統。
            背景技術
            數據的組織管理主要分為三步,一是數據的在線存取,主要指的是獲得數據和提供讀取服務,即面向傳統的OLTP型負載,二是數據的組織,傳統上指的是將OLTP型數據庫中的數據轉為適合數據倉庫的數據格式,即稱為ETL的過程。三是數據分析,指的是進行長時間,復雜的數據挖掘等工作來發現數據中的聯系和潛在價值,也就是OLAP型任務。本文中,我們關注的是數據的在線存取部分。
            傳統的方案中,滿足數據在線存取任務的是以MySQL為代表的關系型數據庫。關系型數據庫是上世紀70年代的產物,產生伊始的主體架構沿襲至今。關系型數據庫是數據存儲管理發展史上的里程碑,其特點是擅長嚴格事務處理,提供數據安全性保障等。但對于大數據時代的新型負載,關系型數據庫體現出了其固有的局限性其一,大數據負載的規模變化快,當新業務上線時,相關的數據量往往急速上升,而當業務調整時,數據量又可能會快速收縮,轉移到別的業務上去。而在傳統數據庫面向的應用場景一般都是在比較靜態的用戶群體中進行,擴展和收縮會牽涉到數據庫的分庫分表操作。這些復雜的行為一是會耗費大量人力物力,二是可能導致相關業務的暫時下線,這是目前的互聯網服務商很難接受的。其二,大數據負載的形式變化快。傳統的數據庫在線事務處理中,一般面向的文書,報表等,都具有比較固定的格式內容,而正如上文已經提到的那樣,現今面臨的負載中,越來越多的卻是沒有固定范式,或者經常根據業務需要進行調整的的非結構化數據或半結構化數據。這種靈活性是傳統的關系型數據庫所不具備的。其三,事務性支持的需求與以往有變化。傳統關系型數據庫都提供了嚴格的ACID事務支持,但目前來說這種事務支持從兩個方面引起人們的重新考量。第一是因為現在以互聯網應用為典型的新型業務需求中,相對來說對ACID的特性并沒有嚴格遵循的需求,比如對于博客文章,相關評論,相冊圖片,甚至網上店鋪的庫存,暫時的不一致狀態對于用戶來說都是可以接受的。第二,嚴格的ACID特性限制使得數據庫整體的性能和擴展性難以提高,這主要是復雜的鎖機制,日志機制等造成的。正是由于關系型數據庫存在的這些問題,使得被稱為NoSQL類型的新一代存儲系統漸漸崛起,并被廣為使用。NoSQL這個名稱意味著它和關系型數據庫有截然不同的地方,一般不再支持SQL語句的復雜功能,同時另一個重要區別的是大多數的NoSQL系統放棄了ACID的完整支持,它們的特點可以大致歸納如下因為放棄一些復雜的但是不實用的特性,NoSQL系統得以規避了很大一部分復雜的設計實現。NoSQL系統可以提供明顯高于傳統數據庫的數據吞吐能力。
            具有良好的水平擴展能力,并適合運行在一般的廉價PC服務器硬件上。Key-Value型存儲系統固然具有這些優勢,但數據負載的增長一直保持著迅猛的態勢,同時也對存儲系統層面造成越來越大的壓力。我們可以看到,計算機硬件特別是CPU和內存容量一直保持著高速發展的態勢,而作為持久化存儲設備的硬盤的讀寫能力卻一直都沒有突破性的進展,這是由于磁盤的結構涉及到機械運動的本質決定的,隨機讀寫中機械尋道動作造成的響應速度限制恐怕是傳統磁盤結構中無法解決的問題。這樣一來,隨著計算速度快速提高,磁盤讀寫能力的瓶頸問題越來越突出。有部分的Key-Value型系統使用全內存的架構,避免磁盤讀寫瓶頸來獲得極高的性能。但在實際應用中,這種系統只被用來作為數據庫的前端緩存,難以成為數據的最終落腳之處。內存型數據庫的局限之處在于放置在內存中的數據容易在系統崩潰等意外中丟失,安全性得不到保障,另外內存的價格和能耗依然遠高于磁盤,出于數據訪問的二八原貝U,將其全部放置于內存不符合經濟方面的考量,將冷數據放置在磁盤等二級存儲可以做 到不大幅降低性能的同時降低系統的整體成本。SSD的出現有利于這個問題的解決,SSD存儲介質相比較磁盤的優勢和劣勢都很明顯,優勢是隨機讀寫性能大大提高,劣勢是單位存儲容量的成本大大高于磁盤。但從另一個角度來說,單位隨機讀寫性能的成本SSD卻比磁盤更低。所以在要求高隨機IOPS (每秒讀寫請求響應數)的場景中,SSD有應用的價值,從實際情況來看,各大互聯網公司已經開始在存儲架構中大量使用SSD來提高系統的整體性能。但從SSD的特點來說,小粒度隨機寫的性能較差,而且從實測性能來看,FTL (閃存翻譯層)的技術并無法完全解決這個問題。小粒度隨機寫造成性能下降的原因主要是所以為了最大程度地發揮出SSD的性能優勢,存儲系統的讀寫模式需要針對其進行優化。現有的同類系統中,Flashstore和FAWN等系統,利用的是Hash式數據索引的機制,這種索引方式主要存在兩個問題,一是Hash式數據索引需要在內存占用量和硬盤讀取次數之間做權衡,難以獲得兩者兼得的效果。二是Hash式數據索引難以實現范圍查找的操作。對于以Berkeley DB為代表的許多利用傳統B+樹索引機制的系統來說,在SSD上使用主要面臨的問題其數據插入會造成大量的原地更新寫入操作,這是不利于SSD性能的IO模式,另一方面,對于并發支持來說,B+樹索引需要引入復雜的鎖機制,不利于系統的整體性能。而較晚出現的LSM-tree索引結構被應用在LevelDB等系統中,其優勢在于寫入模式為大粒度連續寫,非常利于SSD的性能發揮,但LSM-tree作為一種傾向于寫優化的機制,讀操作因為引入的讀硬盤次數較多,使得其性能較低。綜上所述,現有的Key-Value系統不能滿足當前的應用需求,主要體現在以下兩
            占-
            ^ \\\ 第一,以鎖機制為基礎的并發控制技術難以滿足高并發讀寫負載的要求;第二,現有系統的寫入模式不適應SSD的特性。

            發明內容
            為了應對非結構化數據的管理這一突出需求的問題,本發明實現一個面向高并發負載,基于SSD的Key-Value型本地存儲方法及系統。本發明公開一種基于SSD的Key-Value型本地存儲方法,包括步驟1,對于數據采用內存快照B+樹索引結構,進行內存中的讀寫分離操作;步驟2,經過索引后的數據,針對B+樹頁面使用FIFO隊列管理緩存;步驟3,對所述數據頁面追加寫入SSD,通過空洞文件機制在日志型追加寫入的數據中實現邏輯頁號和物理位置的映射管理。所述的基于SSD的Key-Value型本地存儲方法,所述步驟I包括步驟21,根節點A為B+樹根節點,如對首節點D做一次更新操作;首先將首節點D頁面進行拷貝,拷貝的副本頁面為首節點D’,然后在首節點D’頁面中進行所需要的更新;步驟22,進行完這個操作以后,需要對中間節點B中對首節點D’的索引也做更新,根據內存快照的原則,為了防止讀寫競爭,需要先對中間節點B進行拷貝,然后在副本中間節點B’中進行更新操作;依次操作,所述拷貝過程也在根節點A上發生;步驟23,當整個更新操作完成時,形成了一棵以根節點A’為根節點的新B+樹,根節點A’相比較A,指向B’的索引有變化,而其他索引仍然不變;步驟24,中間節點B’更新了指向首節點D’的頁面,其他索引沒有變化。所述的基于SSD的Key-Value型本地存儲方法,所述步驟2包括 步驟31,FIFO頁級寫緩存的設計使用環形隊列的結構,整個環劃分為write區域和read區域,write區域中為正在進行寫操作,尚未提交的頁面,read區域中為已經完成寫操作并提交的頁面,可以供讀操作從緩存中獲得;步驟32, write指針指向write區域的末尾,該指針也是下一個寫操作向寫緩存申請新頁面時裝載的位置,在系統運行時,write指針位置不斷獲得新頁面并沿著環形隊列前移,同時完成寫操作的頁面提交為read區域,并由read指針指向新近提交的頁面位置;步驟33,在這個過程中,后臺異步寫入線程將以適合應用需求的速度將read區域依次持久化到SSD中,已經完成持久化的頁面區域稱為flush區域,一個flush指針指向下一個要做持久化的頁面,flush區域為read區域的一部分,供write指針獲得新頁面的區域;步驟34,在后臺異步寫入線程將相應頁面寫入SSD中的過程中,已經在環形隊列中存在更新拷貝的頁面屬于冗余頁面,不需要進行寫入,本方法中將跳過該種頁面,同時在SSD的數據文件中制造同樣大小的文件空洞,該文件空洞不占用實際空間也不進行實際寫入操作,但保持了邏輯頁號和數據頁面在文件中位移的對應關系。所述的基于SSD的Key-Value型本地存儲方法,所述步驟3讀出操作包括步驟41,獲得當前的B+樹根節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖;步驟42,對于包括根節點在內的中間節點頁面進行頁面內部的折半查找,取得正確的索引項,獲得下一個需要進行查找的頁面邏輯頁號,這一查找過程直到獲得葉子節點后終結;因為內存快照技術的使用,讀操作無需對頁面進行加鎖;步驟43,通過邏輯頁號獲得物理頁面的操作通過調用內存池管理模塊完成;內存池管理模塊將該頁號與FIFO隊列中最小的頁號相比較,判斷是否在隊列中,如果比最小頁號大,也就是緩存命中的情況,直接返回內存池管理中的頁面引用;
            步驟44,如果沒有命中緩沖,則需要分配額外頁面空間,然后到SSD中讀取;用邏輯頁號獲得SSD中的數據需要通過調用日志型數據管理模塊的功能來完成;因為文件空洞機制的作用,日志型數據管理模塊此時的任務非常簡單,只需要用邏輯頁號乘以頁面大小,然后讀取相應頁面即可;步驟45,最后在葉子節點頁面中完成最終的Key-Value對查找,返回結果。所述的基于SSD的Key-Value型本地存儲方法,所述步驟3寫入操作流程還包括步驟51,通過B+樹的查找來確定要插入新數據記錄的正確位置,獲得當前的B+樹根節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖;對于內存池管理模塊中的FIFO環形隊列Read Region的改變全部發生在寫線程中,所以寫線程本身對于頁面緩存命中的判斷就不需要進行加鎖; 步驟52,完成查找正確插入位置的操作時,寫線程將根節點到插入位置頁面整條路徑的頁面壓入一個棧結構中,該棧結構中除了保存指向對應頁面的指針外,還保存了路徑中的中間節點指向子節點的頁內索引號;步驟53,寫入頁面的過程將會依次彈出棧中頁指針,這里使用內存快照的技術來避免加鎖保護,對一個頁面的修改,需要先調用內存池管理的接口來請求一個新的頁面,然后將源頁面的內容拷貝到新頁面中,再進行修改操作;在隨后彈出的父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號;步驟54,父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號,這個修改也同樣是利用內存快照完成;如果子節點發生了分裂,則還需要插入分裂點;步驟55,當整個寫操作完成后,進行提交,需要進行的操作是將已經完成寫入或者更新的所有頁面并入Read Region中,然后修改新的B+樹根節點為當前的索引B+樹根節點。本發明還公開一種基于SSD的Key-Value型本地存儲系統,包括內存快照B+樹索引模塊,用于對于數據采用內存快照B+樹索引結構,進行內存中的讀寫分離操作;內存池管理模塊,用于經過索引后的數據,針對B+樹頁面使用FIFO隊列管理緩存;日志型數據管理模塊,用于對所述數據頁面追加寫入SSD,通過空洞文件機制在日志型追加寫入的數據中實現邏輯頁號和物理位置的映射管理。所述的基于SSD的Key-Value型本地存儲系統,所述內存快照B+樹索引模塊包括首節點更新操作模塊,用于根節點A為B+樹根節點,如對首節點D做一次更新操作;首先將首節點D頁面進行拷貝,拷貝的副本頁面為首節點D’,然后在首節點D’頁面中進行所需要的更新;中間節點更新操作模塊,用于進行完這個操作以后,需要對中間節點B中對首節點D’的索引也做更新,根據內存快照的原則,為了防止讀寫競爭,需要先對中間節點B進行拷貝,然后在副本中間節點B’中進行更新操作;依次操作,所述拷貝過程也在根節點A上發生;更新完成模塊,用于當整個更新操作完成時,形成了一棵以根節點A’為根節點的新B+樹,根節點A’相比較A,指向B’的索引有變化,而其他索引仍然不變;頁面指向模塊,用于中間節點B’更新了指向首節點D’的頁面,其他索引沒有變化。所述的基于SSD的Key-Value型本地存儲系統,所述內存池管理模塊包括形成隊列結構模塊,用于FIFO頁級寫緩存的設計使用環形隊列的結構,整個環劃分為write區域和read區域,write區域中為正在進行寫操作,尚未提交的頁面,read區域中為已經完成寫操作并提交的頁面,可以 供讀操作從緩存中獲得;指針位置前移模塊,用于write指針指向write區域的末尾,該指針也是下一個寫操作向寫緩存申請新頁面時裝載的位置,在系統運行時,write指針位置不斷獲得新頁面并沿著環形隊列前移,同時完成寫操作的頁面提交為read區域,并由read指針指向新近提交的頁面位置;持久化模塊,用于在這個過程中,后臺異步寫入線程將以適合應用需求的速度將read區域依次持久化到SSD中,已經完成持久化的頁面區域稱為flush區域,一個flush指針指向下一個要做持久化的頁面,flush區域為read區域的一部分,供write指針獲得新頁面的區域;對應寫入模塊,用于在后臺異步寫入線程將相應頁面寫入SSD中的過程中,已經在環形隊列中存在更新拷貝的頁面屬于冗余頁面,不需要進行寫入,本系統中將跳過該種頁面,同時在SSD的數據文件中制造同樣大小的文件空洞,該文件空洞不占用實際空間也不進行實際寫入操作,但保持了邏輯頁號和數據頁面在文件中位移的對應關系。所述的基于SSD的Key-Value型本地存儲系統,所述日志型數據管理模塊包括索引入口模塊,用于獲得當前的B+樹根節點,作為B+樹索引查找的起點;獲得索引項模塊,用于對于包括根節點在內的中間節點頁面進行頁面內部的折半查找,取得正確的索引項,獲得下一個需要進行查找的頁面邏輯頁號,這一查找過程直到獲得葉子節點后終結;因為內存快照技術的使用,讀操作無需對頁面進行加鎖;調用內存池管理模塊,用于通過邏輯頁號獲得物理頁面的操作通過調用內存池管理模塊完成;內存池管理模塊將該頁號與FIFO隊列中最小的頁號相比較,判斷是否在隊列中,如果比最小頁號大,也就是緩存命中的情況,直接返回內存池管理模塊中的頁面引用;分配頁面空間模塊,用于如果沒有命中緩沖,則需要分配額外頁面空間,然后到SSD中讀取;用邏輯頁號獲得SSD中的數據需要通過調用日志型數據管理模塊的功能來完成;因為文件空洞機制的作用,日志型數據管理模塊此時的任務非常簡單,只需要用邏輯頁號乘以頁面大小,然后讀取相應頁面即可;完成查找I旲塊,用于最后在葉子節點頁面中完成最終的Key-Value對查找,返回結果。所述的基于SSD的Key-Value型本地存儲系統,所述日志型數據管理模塊還包括插入位置模塊,用于通過B+樹的查找來確定要插入新數據記錄的正確位置,獲得當前的B+樹根節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖;對于內存池管理模塊中的FIFO環形隊列Read Region的改變全部發生在寫線程中,所以寫線程本身對于頁面緩存命中的判斷就不需要進行加鎖;
            頁面壓入模塊,用于完成查找正確插入位置的操作時,寫線程將根節點到插入位置頁面整條路徑的頁面壓入一個棧結構中,該棧結構中除了保存指向對應頁面的指針外,還保存了路徑中的中間節點指向子節點的頁內索引號;頁面修改模塊,用于寫入頁面的過程將會依次彈出棧中頁指針,這里使用內存快照的技術來避免加鎖保護,對一個頁面的修改,需要先調用內存池管理模塊的接口來請求一個新的頁面,然后將源頁面的內容拷貝到新頁面中,再進行修改操作;在隨后彈出的父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號;修改邏輯頁號模塊,用于父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號,這個修改也同樣是利用內存快照完成;如果子節點發生了分裂,則還需要插入分裂點;提交模塊,用于當整個寫操作完成后,進行提交,需要進行的操作是將已經完成寫入或者更新的所有頁面并入Read Region中,然后修改新的B+樹根節點為當前的索引B+樹根節點。本發明的有益效果為I :內存快照B+樹索引結構與基于FIFO (先入先出)隊列頁級緩存結合使用。B+樹索引是磁盤上存儲數據常用索引機制,可以提供按頁聚合有效減少讀寫次數,同時因為數據局部性方面的優勢,相比較Hash類索引在范圍檢索上有更好的性能。但是,過去的基于磁盤的B+樹索引,需要大量小粒度的就地更新操作(in place updates),這種讀寫模式是不合適SSD的。因為這樣不僅寫入性能低,而且加速SSD磨損。本發明采用內存快照技術,在內存中實現數據的讀寫分離,提高系統的讀寫并發度。而內存快照的特性使得使用FIFO緩存策略可以有效體現數據時間局部性的特點,免去額外的緩存替換算法,并且使得命中判斷更加簡單和快速。2 :追加寫入數據與空洞文件相結合。使用FIFO型緩存的換出頁直接寫入SSD中,不覆蓋原有數據,使用的是追加的寫入方式,利用標準輸出庫的用戶態緩存聚合寫粒度,實現大粒度寫入的目的,并且由于追加 寫入的天然特性決定了適合實現數據一致性,可靠性。本發明使用不間斷快照的技術保障數據的高可靠性,并提供高效的故障恢復機制。但追加寫入需要在寫入時去除冗余數據,使得頁面邏輯編號與實際位置不相對應,如果另外加一層映射管理勢必增加了元數據負擔和不一致的風險,本發明中利用文件系統本身具有的空洞文件機制,使得頁面邏輯編號與實際位置建立起簡單對應的關系,大大降低了數據放置的管理難度。總的技術效果系統利用內存快照B+樹的數據索引結構可提供高讀寫并發性能。利用基于追加寫入的IO模式,并使用文件空洞,不間斷快照機制,可以提供適合SSD特性,并提供數據高可靠性的數據放置機制。


            圖I為本發明系統整體存儲組織架構;圖2為本發明頁級寫緩存結構圖3為本發明內存快照B+樹示例說明;圖4為本發明LogManager工作原理示意圖;圖5為本發明讀出操作流程;圖6為本發明寫入操作流程。
            具體實施例方式下面給出本發明的具體實施方式
            ,結合附圖對本發明做出了詳細描述。(Tree Index)內存快照B+樹索引模塊利用內存快照B+樹技術,實現數據索引機制。
            (Memory Pool)內存池管理模塊進行B+樹頁面的空間分配,緩存管理。(Log Manager)日志型數據管理模塊對數據持久化功能進行具體的讀寫操作,并通過空洞文件機制實現邏輯頁號和物理位置的映射管理。內存快照B+樹索引B+樹是數據庫和文件系統中常用的數據索引結構,優點是保持存儲數據穩定有序,插入和修改擁有較穩定的對數時間復雜度。本發明使用內存快照機制改進傳統B+樹數據索引機制來滿足新的需求。B+樹的結構以頁為單位,各個頁為樹結構中的節點。B+樹種存在中間節點和葉子節點兩類節點,中間節點由B+樹根節點開始向下延伸,各個節點的頁中記錄子節點的頁索弓丨,根節點在B+樹末端,根節點對應頁中存放實際key-value數據。B+樹節點頁面的組織包括頁頭保持的頁面元數據信息,已經頁面其余部分保持的數據列表,其中葉子節點的數據列表為存儲在系統中的Key-Value對,中間節點的數據列表存儲Key-Index對,Index項指向該條記錄指向的子節點頁面,Key項保存該條記錄指向的子頁面中最小的Key作為子樹的分離值。任意Key在B+樹中的位置可以由根節點開始順著分離值索引到葉子節點找至IJ。隨著Key-Value對的插入,某頁面放滿數據時會進行分裂操作,并加深B+樹,這樣來保證B+樹的平衡性,提供穩定的插入和檢索性能。本小節將敘述如何利用內存快照技術來改進B+樹索引結構,實現高并發特性。圖3展示了內存快照技術的運作機理。圖中標明B+樹的一部分,A節點為B+樹根節點,現在需要對D節點做一次更新操作。則我們首先將D節點頁面進行拷貝,拷貝的副本頁面為D’,然后在D’頁面中進行所需要的更新。進行完這個操作以后,需要對B中對D’的索引也做更新,那么根據內存快照的原則,為了防止讀寫競爭,也需要先對B進行拷貝,然后在副本B’中進行更新操作。依次類推,這個拷貝也在根節點A上發生了。當整個更新操作完成時,形成了一棵以A’為根節點的新B+樹,值得注意的是,A’相比較A來說,指向B’的索引有變化,而其他索引仍然不變。同樣的,B’更新了指向D’的頁面,其他索引沒有變化,如圖中的C頁面,依然可由B’中的索引項找到。若以A’頁面為根節點則當前形成了一個新的B+樹結構,當更新操作完成時,要提交該操作達到新的一致狀態,只需要將存儲系統索引的B+樹索引根節點變更為A’節點即可。后續操作將從A’為起點進入B+樹索引中,然后開始查找,當然可以成功地體現出對D頁面的更新效果。而在提交A’成為新的B+樹根節點之前,并發的讀操作線程將從A節點頁面進入到B+樹索引中,它們進行的查找操作均不會受到在拷貝頁面中進行的更新操作的影響,不會發生讀寫競爭。上圖中演示的是最簡單的快照技術應用,實際中的情況要更為復雜。比如當對D頁面的操作引發了頁面分裂,則B’中不僅需要更新索引,還需要插入新的索引項。同樣,對B’頁面的插入操作也可能會造成B’頁面的分裂,這種具體的情形和傳統B+樹操作的情況基本類似,也就不在此贅述。總結而言,本章節闡述了內存快照技術在改進B+樹索引結構并發性上的設計和實現,通過該技術的應用,使得處理讀請求的線程不需要對索引中的數據結構進行加鎖而可以做到直接訪問,這種技術在讀占優的負載中可以顯著提高系統整體的并發性。FIFO頁緩存管理機制本發明提出的緩存管理策略是面向內存快照B+樹頁面的,其本身具有負載特殊性。我們知道,在B+樹索引結構中,所有的讀寫操作都需要從B+樹的根節點頁面進入索引結構,進行查找定位的工作。從這個特性可以看出,B+樹中訪問最頻繁的恰恰是樹結構中 位于較高層次的節點頁面。與內存快照技術相結合來看,每次的更新寫入操作都會引起重新為對應的B+樹路徑上的頁面分配新頁面以進行拷貝操作。這種特點造成的結果是,經常處于B+樹查找路徑上的頁面,也就是較高層次的頁面,會經常因為被拷貝而出現在新分配的頁面中。也就是說,在內存快照的B+樹索引結構中,頁面的分配順序本身就體現出了很強的訪問時間局部性特征。在這種特征下,基于FIFO替換算法的緩存管理成為一種可能的選擇。FIFO(First-In First-Out)算法,即是由一個先進先出的隊列來對緩存頁面的替換進行管理。每次分配新的頁面時,都會將其放入FIFO隊列中,隊列滿時,發生替換的原則就是選擇隊尾頁面進行替換。這也就是實現了駐留緩存中的頁面是新分配的頁面,根據前一段中的論述,分配順序體現了內存快照B+樹索引頁面的時間局部性。FIFO頁級寫緩存的設計使用環形隊列的結構,整個環劃分為write區域和read區域,write區域中為正在進行寫操作,尚未提交的頁面,read區域中為已經完成寫操作并提交的頁面,可以供讀操作從緩存中獲得。write指針指向write區域的末尾,該指針也是下一個寫操作向寫緩存申請新頁面時裝載的位置,在系統運行時,write指針位置不斷獲得新頁面并沿著環形隊列前移,同時完成寫操作的頁面提交為read區域,并由一 read指針指向新近提交的頁面位置。在這個過程中,一個后臺異步寫入線程將以適合應用需求的速度將read區域依次持久化到SSD中,已經完成持久化的頁面區域稱為flush區域,一個flush指針指向下一個要做持久化的頁面,flush區域為read區域的一部分,也是可以供write指針獲得新頁面的區域。利用空洞文件機制的追加寫對于SSD來說,追加寫入方式的優點主要是不會產生原地更新操作,以及容易進行大粒度聚合的寫入。這可以更加充分地利用寫入帶寬,同時減少小粒度隨機寫類型的操作對于垃圾回收和數據碎片化帶來的壓力。所以追加寫入方式是一種適合SSD特性的寫入模式優化。另外,Log-Structured日志型追加方式進行寫入內存快照B+樹這種解決方案可以保證B+樹中的父節點頁面總是要在子節點頁面之后再進行寫入。每次實際寫入B+樹的根節點,即表明一個完整而且一致的B+樹索引結構以及被持久化到SSD中。在發生系統崩潰,而需要進行故障恢復的時候,只需要在日志型寫入的數據文件中,找到最靠近末尾的B+樹根節點,就可以順利恢復一個全局一致的索引和數據結構。也就是說,我們通過一種不間斷快照的手段,達到了數據高可靠的目的,避免了數據損壞的場景,而且使得故障恢復的時間與總數據集大小無關。內存快照技術分配產生的所有內存頁面如果全部由Log-Structured型寫入持久化到SSD中,則會產生過多的冗余數據,使得SSD寫入帶寬的利用率過于低下。為了解決這一問題,我們在實際寫入的時候對頁面必須進行過濾。已經被快照的頁面,也就是說更新的版本的版本存在于內存中,那么在一般情況下,就不需要將其寫入到SSD中去。在B+樹型索引結構中,父節點頁面對子節點頁面的索引是由邏輯頁號來表示的。對于內存快照B+樹結構來說,邏輯頁號就是頁面分配的順序編號,如果將所有分配的頁面依次寫入SSD,則頁面在SSD上的物理位移與邏輯頁號就建立了一種簡單的一一對應關系,即可以由索引子節點頁面的邏輯頁面直接計算獲得物理位移,冗余頁面過濾的過程實際上也就跳過了部分分配的頁面而沒有將其真正寫入,那么前文提到的分配頁面的邏輯頁號和寫入SSD的物理位移之間的簡單對應關系也就不存在了。那么我們必須要對這個對應關系進行一些額外的管理以使得可以順利通過邏輯頁號找到物理的頁面位置。·
            我們提出利用文件系統空洞文件的支持來管理邏輯頁號和實際物理位置的關系,大大降低了系統的實現和邏輯復雜度,并且通過對內核級功能支持的靈活運用,保證了實現的性能。持久化寫入的具體事項通過在頁級緩存中運行的后臺異步Flush線程完成,該線程持續將頁面寫入SSD。而根據內存快照的特性,每個提交的根節點都代表了一個一致的數據視圖,只要確保將當前的B+樹根節點Flush到SSD中,并記錄下根節點所在位置,就相當于建立了一個數據快照。Flush線程需要跳過已被拷貝的頁,這樣的跳過使得邏輯的頁編號與實際的頁物理位置不相對應,故本系統中利用文件系統的空洞文件機制,跳過頁面時寫入空洞,保持了兩者的對應的邏輯對應關系,這樣就不必引入額外的頁面映射管理層。頁面索引號實際就是順序寫入SSD的序號,通過索引號的計算可以直接判斷該頁是否在寫緩存中,如果沒有命中(頁框已經被寫請求回收)則根據索引號可以找到該頁在SSD中的位置,然后讀取。操作示例I、后臺異步寫入線程的運行過程說明圖4顯示圖3中發生的寫入操作在實際物理寫入層面的視圖。因為發生D頁面的寫入,拷貝生成3個新頁面D’,B’,A’,按照分配的次序出現在右邊的FIFO頁面緩存隊列中(實際上是用環形隊列實現,這里做了簡化,但不影響原理說明)。后臺有并發的異步寫入線程會在FIFO隊列上順著頁面分配順序運行,將相應位置上的頁面寫入到SSD中去。我們在寫入A,B,D頁面的時候,已經知道它們是冗余頁面(已經被拷貝),不應該實際將其寫入存儲設備中。這里我們引入文件空洞的機制,檢查到冗余頁面時,雖然不進行數據寫入,但是利用Iseek系統調用在目前的Log-Structured數據文件末尾形成一個頁面大小的文件空洞,依次類推,直到非冗余頁面的時候,才真正寫入數據。比如在例子中,后臺Flush線程首先跳過D頁面,形成一個頁面大小的空洞,隨后發現C頁面是有效數據,就將其寫入空洞之后,隨后又需要跳過A和B頁面,形成又一個空洞,大小為兩個頁面,隨后的A’,B’,C’頁面則正常進行寫入。在這些頁面分配的過程中,邏輯頁號都是順次遞增分配的,在使用文件空洞機制之后,我們可以發現,所有頁面還是可以由邏輯頁號乘以頁面大小產生的位移來直接進行訪問,而實際寫入文件的量卻減少為4個頁面,起到了過濾冗余寫入的作用。2、讀出操作流程讀出記錄操作指給定一個Key的情況下,存儲系統返回該Key對應的Value (Key和Value均以字符串表示)。如圖5,讀操作的流程大致如下I、從系統獲得出當前的B+樹根節點,作為B+樹索引查找的起點。因為前文所述的內存快照技術的運用,讀操作無需對頁面進行加鎖。
            2、對于包括根節點在內的中間節點頁面進行頁面內部的折半查找,取得正確的索引項,獲得下一個需要進行查找的頁面邏輯頁號。這一查找過程直到獲得葉子節點后終結。3、通過邏輯頁號獲得物理頁面的操作通過調用Memory Pool模塊完成。MemoryPool模塊將該頁號與目前FIFO隊列中最小的頁號相比較,判斷是否在隊列中。如果比最小頁號大,也就是緩存命中的情況,可以直接返回Memory Pool中的頁面引用。4、如果沒有命中緩沖,則需要分配額外頁面空間,然后到SSD中讀取。用邏輯頁號獲得SSD中的數據需要通過調用Log Manager模塊的功能來完成。因為文件空洞機制的作用,Log Manager模塊此時的任務非常簡單,只需要用邏輯頁號乘以頁面大小,然后讀取相應頁面即可。5、最后在葉子節點頁面中完成最終的Key-Value對查找,返回結果。(3)寫入操作流程寫入記錄操作指的是將一個Key值和一個Value值以數據對的方式寫入到存儲系統中,供以后的讀取。存儲系統采用單寫多讀的線程模型,寫線程進入索引結構時始終面對最新的B+樹根節點,這點不同于讀線程面對的情況。如圖6,寫操作的流程大致如下I、寫操作需要進行的第一步和讀操作是一致的,是通過一次B+樹的查找來確定要插入新數據記錄的正確位置,所進行的操作與讀操作基本一樣,就不再贅述。有一點不同的是,因為對于Memory Pool模塊中的FIFO環形隊列Read Region的改變全部發生在寫線程中,所以寫線程本身對于頁面緩存命中的判斷就不需要進行加鎖了。2、完成查找正確插入位置的操作時,寫線程將根節點到插入位置頁面整條路徑的頁面壓入一個棧結構中,該棧結構中除了保存指向對應頁面的指針外,還保存了路徑中的中間節點指向子節點的頁內索引號。3、寫入頁面的過程將會依次彈出棧中頁指針,這里使用內存快照的技術來避免加鎖保護,對一個頁面的修改,需要先調用Memory Pool的接口來請求一個新的頁面,然后將源頁面的內容拷貝到新頁面中,再進行修改操作。在隨后彈出的父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號。4、父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號,這個修改也同樣是利用內存快照機制完成的。如果子節點發生了分裂,則還需要插入分裂點。5、當整個寫操作完成后,進行提交,需要進行的操作是將已經完成寫入或者更新的所有頁面并入Read Region中,然后修改新的B+樹根節點為當前的索引B+樹根節點。本發明還公開一種基于SSD的Key-Value型本地存儲系統,包括內存快照B+樹索引模塊,用于對于數據采用內存快照B+樹索引結構,進行內存中的讀寫分離操作;內存池管理模塊,用于經過索引后的數據,針對B+樹頁面使用FIFO隊列管理緩存;日志型數據管理模塊,用于對所述數據頁面追加寫入SSD,通過空洞文件機制在日志型追加寫入的數據中實現邏輯頁號和物理位置的映射管理。所述的基于SSD的Key-Value型本地存儲系統,所述內存快照B+樹索引模塊包括
            首節點更新操作模塊,用于根節點A為B+樹根節點,如對首節點D做一次更新操作;首先將首節點D頁面進行拷貝,拷貝的副本頁面為首節點D’,然后在首節點D’頁面中進行所需要的更新;中間節點更新操作模塊,用于進行完這個操作以后,需要對中間節點B中對首節點D’的索引也做更新,根據內存快照的原則,為了防止讀寫競爭,需要先對中間節點B進行拷貝,然后在副本中間節點B’中進行更新操作;依次操作,所述拷貝過程也在根節點A上發生;更新完成模塊,用于當整個更新操作完成時,形成了一棵以根節點A’為根節點的新B+樹,根節點A’相比較A,指向B’的索引有變化,而其他索引仍然不變;頁面指向模塊,用于中間節點B’更新了指向首節點D’的頁面,其他索引沒有變化。所述的基于SSD的Key-Value型本地存儲系統,所述內存池管理模塊包括形成隊列結構模塊,用于FIFO頁級寫緩存的設計使用環形隊列的結構,整個環劃分為write區域和read區域,write區域中為正在進行寫操作,尚未提交的頁面,read區域中為已經完成寫操作并提交的頁面,可以供讀操作從緩存中獲得;指針位置前移模塊,用于write指針指向write區域的末尾,該指針也是下一個寫操作向寫緩存申請新頁面時裝載的位置,在系統運行時,write指針位置不斷獲得新頁面并沿著環形隊列前移,同時完成寫操作的頁面提交為read區域,并由read指針指向新近提交的頁面位置;持久化模塊,用于在這個過程中,后臺異步寫入線程將以適合應用需求的速度將read區域依次持久化到SSD中,已經完成持久化的頁面區域稱為flush區域,一個flush指針指向下一個要做持久化的頁面,flush區域為read區域的一部分,供write指針獲得新頁面的區域;對應寫入模塊,用于在后臺異步寫入線程將相應頁面寫入SSD中的過程中,已經在環形隊列中存在更新拷貝的頁面屬于冗余頁面,不需要進行寫入,本系統中將跳過該種頁面,同時在SSD的數據文件中制造同樣大小的文件空洞,該文件空洞不占用實際空間也不進行實際寫入操作,但保持了邏輯頁號和數據頁面在文件中位移的對應關系。所述的基于SSD的Key-Value型本地存儲系統,所述日志型數據管理模塊包括索引入口模塊,用于獲得當前的B+樹根節點,作為B+樹索引查找的起點;
            獲得索引項模塊,用于對于包括根節點在內的中間節點頁面進行頁面內部的折半查找,取得正確的索引項,獲得下一個需要進行查找的頁面邏輯頁號,這一查找過程直到獲得葉子節點后終結;因為內存快照技術的使用,讀操作無需對頁面進行加鎖;調用內存池管理模塊,用于通過邏輯頁號獲得物理頁面的操作通過調用內存池管理模塊完成;內存池管理模塊將該頁號與FIFO隊列中最小的頁號相比較,判斷是否在隊列中,如果比最小頁號大,也就是緩存命中的情況,直接返回內存池管理模塊中的頁面引用;分配頁面空間模塊,用于如果沒有命中緩沖,則需要分配額外頁面空間,然后到SSD中讀取;用邏輯頁號獲得SSD中的數據需要通過調用日志型數據管理模塊的功能來完成;因為文件空洞機制的作用,日志型數據管理模塊此時的任務非常簡單,只需要用邏輯頁號乘以頁面大小,然后讀取相應頁面即可;完成查找I旲塊,用于最后在葉子節點頁面中完成最終的Key-Value對查找,返回
            結果。 所述的基于SSD的Key-Value型本地存儲系統,所述日志型數據管理模塊還包括插入位置模塊,用于通過B+樹的查找來確定要插入新數據記錄的正確位置,獲得當前的B+樹根節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖;對于內存池管理模塊中的FIFO環形隊列Read Region的改變全部發生在寫線程中,所以寫線程本身對于頁面緩存命中的判斷就不需要進行加鎖;頁面壓入模塊,用于完成查找正確插入位置的操作時,寫線程將根節點到插入位置頁面整條路徑的頁面壓入一個棧結構中,該棧結構中除了保存指向對應頁面的指針外,還保存了路徑中的中間節點指向子節點的頁內索引號;頁面修改模塊,用于寫入頁面的過程將會依次彈出棧中頁指針,這里使用內存快照的技術來避免加鎖保護,對一個頁面的修改,需要先調用內存池管理模塊的接口來請求一個新的頁面,然后將源頁面的內容拷貝到新頁面中,再進行修改操作;在隨后彈出的父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號;修改邏輯頁號模塊,用于父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號,這個修改也同樣是利用內存快照完成;如果子節點發生了分裂,則還需要插入分裂點;提交模塊,用于當整個寫操作完成后,進行提交,需要進行的操作是將已經完成寫入或者更新的所有頁面并入Read Region中,然后修改新的B+樹根節點為當前的索引B+樹根節點。本領域的技術人員在不脫離權利要求書確定的本發明的精神和范圍的條件下,還可以對以上內容進行各種各樣的修改。因此本發明的范圍并不僅限于以上的說明,而是由權利要求書的范圍來確定的。
            權利要求
            1.一種基于SSD的Key-Value型本地存儲方法,其特征在于,包括 步驟1,對于數據采用內存快照B+樹索引結構,進行內存中的讀寫分離操作; 步驟2,經過索引后的數據,針對B+樹頁面使用FIFO隊列管理緩存; 步驟3,對所述數據頁面追加寫入SSD,通過空洞文件機制在日志型追加寫入的數據中實現邏輯頁號和物理位置的映射管理。
            2.如權利要求I所述的基于SSD的Key-Value型本地存儲方法,其特征在于,所述步驟I包括 步驟21,根節點A為B+樹根節點,如對首節點D做一次更新操作;首先將首節點D頁面進行拷貝,拷貝的副本頁面為首節點D’,然后在首節點D’頁面中進行所需要的更新;步驟22,進行完這個操作以后,需要對中間節點B中對首節點D’的索引也做更新,根據內存快照的原則,為了防止讀寫競爭,需要先對中間節點B進行拷貝,然后在副本中間節點 B’中進行更新操作;依次操作,所述拷貝過程也在根節點A上發生; 步驟23,當整個更新操作完成時,形成了一棵以根節點A’為根節點的新B+樹,根節點A’相比較A,指向B’的索引有變化,而其他索引仍然不變; 步驟24,中間節點B’更新了指向首節點D’的頁面,其他索引沒有變化。
            3.如權利要求I所述的基于SSD的Key-Value型本地存儲方法,其特征在于,所述步驟2包括 步驟31,FIFO頁級寫緩存的設計使用環形隊列的結構,整個環劃分為write區域和read區域,write區域中為正在進行寫操作,尚未提交的頁面,read區域中為已經完成寫操作并提交的頁面,可以供讀操作從緩存中獲得; 步驟32, write指針指向write區域的末尾,該指針也是下一個寫操作向寫緩存申請新頁面時裝載的位置,在系統運行時,write指針位置不斷獲得新頁面并沿著環形隊列前移,同時完成寫操作的頁面提交為read區域,并由read指針指向新近提交的頁面位置; 步驟33,在這個過程中,后臺異步寫入線程將以適合應用需求的速度將read區域依次持久化到SSD中,已經完成持久化的頁面區域稱為flush區域,一個flush指針指向下一個要做持久化的頁面,flush區域為read區域的一部分,供write指針獲得新頁面的區域;步驟34,在后臺異步寫入線程將相應頁面寫入SSD中的過程中,已經在環形隊列中存在更新拷貝的頁面屬于冗余頁面,不需要進行寫入,本方法中將跳過該種頁面,同時在SSD的數據文件中制造同樣大小的文件空洞,該文件空洞不占用實際空間也不進行實際寫入操作,但保持了邏輯頁號和數據頁面在文件中位移的對應關系。
            4.如權利要求I所述的基于SSD的Key-Value型本地存儲方法,其特征在于,所述步驟3讀出操作包括 步驟41,獲得當前的B+樹根節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖; 步驟42,對于包括根節點在內的中間節點頁面進行頁面內部的折半查找,取得正確的索引項,獲得下一個需要進行查找的頁面邏輯頁號,這一查找過程直到獲得葉子節點后終結;因為內存快照技術的使用,讀操作無需對頁面進行加鎖; 步驟43,通過邏輯頁號獲得物理頁面的操作通過調用內存池管理模塊完成;內存池管理模塊將該頁號與FIFO隊列中最小的頁號相比較,判斷是否在隊列中,如果比最小頁號大,也就是緩存命中的情況,直接返回內存池管理中的頁面引用; 步驟44,如果沒有命中緩沖,則需要分配額外頁面空間,然后到SSD中讀取;用邏輯頁號獲得SSD中的數據需要通過調用日志型數據管理模塊的功能來完成;因為文件空洞機制的作用,日志型數據管理模塊此時的任務非常簡單,只需要用邏輯頁號乘以頁面大小,然后讀取相應頁面即可; 步驟45,最后在葉子節點頁面中完成最終的Key-Value對查找,返回結果。
            5.如權利要求I所述的基于SSD的Key-Value型本地存儲方法,其特征在于,所述步驟3寫入操作流程還包括 步驟51,通過B+樹的查找來確定要插入新數據記錄的正確位置,獲得當前的B+樹根 節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖;對于內存池管理模塊中的FIFO環形隊列Read Region的改變全部發生在寫線程中,所以寫線程本身對于頁面緩存命中的判斷就不需要進行加鎖; 步驟52,完成查找正確插入位置的操作時,寫線程將根節點到插入位置頁面整條路徑的頁面壓入一個棧結構中,該棧結構中除了保存指向對應頁面的指針外,還保存了路徑中的中間節點指向子節點的頁內索引號; 步驟53,寫入頁面的過程將會依次彈出棧中頁指針,這里使用內存快照的技術來避免加鎖保護,對一個頁面的修改,需要先調用內存池管理的接口來請求一個新的頁面,然后將源頁面的內容拷貝到新頁面中,再進行修改操作;在隨后彈出的父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號; 步驟54,父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號,這個修改也同樣是利用內存快照完成;如果子節點發生了分裂,則還需要插入分裂點; 步驟55,當整個寫操作完成后,進行提交,需要進行的操作是將已經完成寫入或者更新的所有頁面并入Read Region中,然后修改新的B+樹根節點為當前的索引B+樹根節點。
            6.一種基于SSD的Key-Value型本地存儲系統,其特征在于,包括 內存快照B+樹索引模塊,用于對于數據采用內存快照B+樹索引結構,進行內存中的讀寫分離操作; 內存池管理模塊,用于經過索引后的數據,針對B+樹頁面使用FIFO隊列管理緩存; 日志型數據管理模塊,用于對所述數據頁面追加寫入SSD,通過空洞文件機制在日志型追加寫入的數據中實現邏輯頁號和物理位置的映射管理。
            7.如權利要求6所述的基于SSD的Key-Value型本地存儲系統,其特征在于,所述內存快照B+樹索引模塊包括 首節點更新操作模塊,用于根節點A為B+樹根節點,如對首節點D做一次更新操作;首先將首節點D頁面進行拷貝,拷貝的副本頁面為首節點D’,然后在首節點D’頁面中進行所需要的更新; 中間節點更新操作模塊,用于進行完這個操作以后,需要對中間節點B中對首節點D’的索引也做更新,根據內存快照的原則,為了防止讀寫競爭,需要先對中間節點B進行拷貝,然后在副本中間節點B’中進行更新操作;依次操作,所述拷貝過程也在根節點A上發生; 更新完成模塊,用于當整個更新操作完成時,形成了一棵以根節點A’為根節點的新B+樹,根節點A’相比較A,指向B’的索引有變化,而其他索引仍然不變; 頁面指向模塊,用于中間節點B’更新了指向首節點D’的頁面,其他索引沒有變化。
            8.如權利要求6所述的基于SSD的Key-Value型本地存儲系統,其特征在于,所述內存池管理模塊包括 形成隊列結構模塊,用于FIFO頁級寫緩存的設計使用環形隊列的結構,整個環劃分為write區域和read區域,write區域中為正在進行寫操作,尚未提交的頁面,read區域中為已經完成寫操作并提交的頁面,可 以供讀操作從緩存中獲得; 指針位置前移模塊,用于write指針指向write區域的末尾,該指針也是下一個寫操作向寫緩存申請新頁面時裝載的位置,在系統運行時,write指針位置不斷獲得新頁面并沿著環形隊列前移,同時完成寫操作的頁面提交為read區域,并由read指針指向新近提交的頁面位置; 持久化模塊,用于在這個過程中,后臺異步寫入線程將以適合應用需求的速度將read區域依次持久化到SSD中,已經完成持久化的頁面區域稱為flush區域,一個flush指針指向下一個要做持久化的頁面,flush區域為read區域的一部分,供write指針獲得新頁面的區域; 對應寫入模塊,用于在后臺異步寫入線程將相應頁面寫入SSD中的過程中,已經在環形隊列中存在更新拷貝的頁面屬于冗余頁面,不需要進行寫入,本系統中將跳過該種頁面,同時在SSD的數據文件中制造同樣大小的文件空洞,該文件空洞不占用實際空間也不進行實際寫入操作,但保持了邏輯頁號和數據頁面在文件中位移的對應關系。
            9.如權利要求6所述的基于SSD的Key-Value型本地存儲系統,其特征在于,所述日志型數據管理模塊包括 索引入口模塊,用于獲得當前的B+樹根節點,作為B+樹索引查找的起點; 獲得索引項模塊,用于對于包括根節點在內的中間節點頁面進行頁面內部的折半查找,取得正確的索引項,獲得下一個需要進行查找的頁面邏輯頁號,這一查找過程直到獲得葉子節點后終結;因為內存快照技術的使用,讀操作無需對頁面進行加鎖; 調用內存池管理模塊,用于通過邏輯頁號獲得物理頁面的操作通過調用內存池管理模塊完成;內存池管理模塊將該頁號與FIFO隊列中最小的頁號相比較,判斷是否在隊列中,如果比最小頁號大,也就是緩存命中的情況,直接返回內存池管理模塊中的頁面引用; 分配頁面空間模塊,用于如果沒有命中緩沖,則需要分配額外頁面空間,然后到SSD中讀取;用邏輯頁號獲得SSD中的數據需要通過調用日志型數據管理模塊的功能來完成;因為文件空洞機制的作用,日志型數據管理模塊此時的任務非常簡單,只需要用邏輯頁號乘以頁面大小,然后讀取相應頁面即可; 完成查找模塊,用于最后在葉子節點頁面中完成最終的Key-Value對查找,返回結果。
            10.如權利要求6所述的基于SSD的Key-Value型本地存儲系統,其特征在于,所述日志型數據管理模塊還包括 插入位置模塊,用于通過B+樹的查找來確定要插入新數據記錄的正確位置,獲得當前的B+樹根節點,作為B+樹索引查找的起點;讀操作無需對頁面進行加鎖;對于內存池管理模塊中的FIFO環形隊列Read Region的改變全部發生在寫線程中,所以寫線程本身對于頁面緩存命中的判斷就不需要進行加鎖;頁面壓入模塊,用于完成查找正確插入位置的操作時,寫線程將根節點到插入位置頁面整條路徑的頁面壓入一個棧結構中,該棧結構中除了保存指向對應頁面的指針外,還保存了路徑中的中間節點指向子節點的頁內索引號; 頁面修改模塊,用于寫入頁面的過程將會依次彈出棧中頁指針,這里使用內存快照的技術來避免加鎖保護,對一個頁面的修改,需要先調用內存池管理模塊的接口來請求一個新的頁面,然后將源頁面的內容拷貝到新頁面中,再進行修改操作;在隨后彈出的父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號; 修改邏輯頁號模塊,用于父節點頁面中,需要將原先指向子節點的索引頁號修改為新的邏輯頁號,這個修改也同樣是利用內存快照完成;如果子節點發生了分裂,則還需要插入分裂點; 提交模塊,用于當整個寫操作完成后,進行提交,需要進行的操作是將已經完成寫入或者更新的所有頁面并入Read Region中,然后修改新的B+樹根節點為當前的索引B+樹根節點。
            全文摘要
            本發明公開一種基于SSD的Key-Value型本地存儲方法和系統,所述方法包括步驟1,對于數據采用內存快照B+樹索引結構,進行內存的讀寫分離操作;步驟2,經過索引后的數據,針對B+樹使用FIFO隊列管理緩存;步驟3,對所述數據進行讀寫操作,通過空洞文件機制在日志型追加寫入的數據中實現邏輯頁號和物理位置的映射管理。
            文檔編號G06F12/08GK102722449SQ20121016505
            公開日2012年10月10日 申請日期2012年5月24日 優先權日2012年5月24日
            發明者劉凱捷, 孫凝暉, 熊勁 申請人:中國科學院計算技術研究所
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品