一種復合文檔存儲、讀寫方法和裝置的制作方法

            文檔序號:6597535閱讀:248來源:國知局
            專利名稱:一種復合文檔存儲、讀寫方法和裝置的制作方法
            技術領域
            本發明涉及數據處理領域,尤其涉及一種復合文檔存儲、讀寫方法和裝置。
            背景技術
            復合文檔不僅包含文本而且包括圖形、電子表格數據、聲音、視頻圖像以及其它信 息。如即時通訊客戶端的文件就可以使用復合文檔來保存,比如消息記錄、表情文件等,隨 著及時通訊工具使用時間的增長,其相應的復合文檔會越來越大。如圖1所示為一種復合文檔的存儲(Morage)和流(Stream)的邏輯結構示意圖。 復合文檔的邏輯結構與文件系統的非常相似,每個文檔有一個根存儲(Root Storage),每 個存儲下面可以有0到多個存儲或流。每個存儲和流都有一個名字,該名字通常由16位的 Unicode字符構成,最大名字長度為31個字符。同一個存儲下的存儲或流的名字不能相同, 不同存儲下的存儲或流的名字可以相同。復合文檔除了頭結構以外,所有的數據都以流的形式組織。復合文檔的所有流都 被分成更小的數據塊,叫做扇區。扇區可能包含控制數據或用戶數據。整個復合文檔包含 一個頭結構,跟在頭結構后面的是一系列的扇區。所有扇區的大小都相同,這個大小值在頭 結構中設定。扇區以其在文件中的順序列舉,扇區的索引(從0開始)叫做扇區標識(SID),它 是一個有符號的32位整型值。如果一個SID不小于0,那么它一定指向一個存在的扇區; 如果SID值為負,那么它可能有特殊的含義。構成一個流的所有扇區所形成的鏈表叫做扇區鏈,扇區鏈中相鄰的扇區在物理上 不一定相鄰,為了方便地表示扇區鏈中各個扇區的相對位置關系,引入了扇區標識鏈的概 念。扇區標識鏈是一個扇區標識的數組。扇區標識鏈以流中第一個扇區的扇區標識開始, 順次記錄流中扇區的扇區標識,以鏈表結束(-2)結尾。而復合文檔中的流按用途分,可以分為內部控制流和用戶數據流。內部控制流有 目錄流,主扇區分配表(MSAT),扇區分配表(SAT),短扇區分配表(SSAT),短流存放流。其中,主扇區配置表(MSAT,MasterSector Allocation Table)是一個 SID 數組, 順序指明了用于存放扇區配置表的扇區的SID。MSAT的大小等于用于存放SAT的扇區的個 數,這個值存放在頭結構中。扇區配置表(SAT,Sector Allocation Table)是一個扇區標識的數組,它包含了 所有的用戶數據流和內部控制流,SAT的大小等于整個復合文檔中存在的扇區個數。SAT數 組元素的索引就是該元素代表的扇區標識,而元素的值則為該元素代表的扇區在扇區鏈中 的下一個節點。SAT可能在任意位置包含Free SID (-1),這些扇區將不被任何流使用;如果 該位置包含End of SIDChain(-2),表示一個流的結束;如果該位置包含SAT HD(_3),表示 所代表的扇區用于存放SAT ;如果該位置包含MSAT SID(-4),表示所代表的扇區用于存放 MSAT0短流存放流與其他的長度不小于標準流長度的普通用戶流一樣。它的扇區鏈中第一個扇區的SID存放在根存儲(Root Morage)的目錄項里。短流存放流的扇區標識鏈可 以從SAT中獲得。短扇區分配表(SSAT,Short Sector Allocation Table)就是一個扇區標識的數 組,包含了所有短流的扇區標識鏈。SSAT作為一個內部控制流,它的創建過程與普通的流 的創建過程一致。SSAT的第一個扇區標識存放在頭結構中。SSAT作為一個扇區分配表,他 的作用與SAT極為相似,唯一的區別就是SSAT中的扇區標識指向的是短扇區而不是普通扇區。目錄流是一個內部控制流,它包含了一個目錄項數組,每一個目錄項指向復合 文檔中的一個存儲或流,目錄流中以O為開始的目錄項索引稱為目錄項標識(directory entry identifier,DID)。在上述的復合文檔中沒有對扇區分配進行控制,導致大量碎片,1/0不停的在整個 復合文檔中跳轉,嚴重影響性能。其中主扇區分配表(MSAT)、扇區分配表(SAT)、短扇區分 配表(SSAT)、目錄項遍布于整個復合文檔中,嚴重影響復合文檔的打開、遍歷、讀寫等性能, 而對于流和短流,過小的分配單元和完全沒有控制的扇區分配,也造成了大量碎片。

            發明內容
            本發明實施例所要解決的技術問題在于,提供一種復合文檔存儲、讀寫方法和裝 置,以減少復合文檔中的碎片。為此,本發明實施例提供了一種復合文檔存儲方法,包括為復合文檔的內部控制 流預分配初始存儲區域,所述初始存儲區域為連續的扇區或扇區簇;在所述初始存儲區域內存儲所述內部控制流,并當所述內部控制流大小超出所述 初始存儲區域時,預分配第二存儲區域以便存儲超出的內部控制流,所述第二存儲區域也 為連續的扇區或扇區簇。相應地,本發明實施例還提供了一種復合文檔讀寫方法,所述復合文檔采用如前 所述的方法存儲內部控制流,所述復合文檔讀寫方法包括在讀取內部控制流的扇區時,判斷該扇區的相鄰的一個或多個扇區中是否也存儲 了與該內部控制流同類的內部控制流;若判斷結果為是,則將所述扇區以及與其相鄰的一個或多個扇區存儲的數據一次 性讀入。同時,本發明實施例還提供了一種復合文檔存儲裝置,該裝置包括控制流初始預分配模塊,用于為復合文檔的內部控制流預分配初始存儲區域,所 述初始存儲區域為連續的扇區或扇區簇;控制流第二預分配模塊,用于在所述初始存儲區域內存儲所述內部控制流,并當 所述內部控制流大小超出所述初始存儲區域時,預分配第二存儲區域以便存儲超出的內部 控制流,所述第二存儲區域也為連續的扇區或扇區簇。本發明實施例還提供了一種復合文檔讀寫裝置,所述復合文檔采用如前所述的裝 置存儲內部控制流,所述復合文檔讀寫裝置包括扇區判斷模塊,用于在讀取內部控制流的扇區時,判斷該扇區的相鄰的一個或多 個扇區中是否也存儲了與該內部控制流同類的內部控制流;
            6
            控制流讀取模塊,用于若判斷結果為是,則將所述扇區以及與其相鄰的一個或多 個扇區存儲的數據一次性讀入。在本發明實施例所提供的方案中,對內部控制流采用預分配存儲空間的策略進行 存儲,減少了復合文檔中的內部控制流的碎片。相應的,由于預分配存儲空間,使得復合文 檔中的內部控制流連續存儲的概論增加,可引入讀緩存和批量寫入的策略來優化1/0,提高
            讀寫效率。


            圖1是現有技術中的一種復合文檔的存儲和流的邏輯結構示意圖;圖2是本發明實施例中的關于內部控制流的預分配策略下的存儲方法的一個流 程示意圖;圖3是本發明實施例中的用戶數據流的預分配存儲空間的存儲方法一個流程示 意圖;圖4是在圖3中的存儲方法中記錄為各用戶數據流預留的數據存儲空間的狀態的 一個流程示意圖;圖5是本發明實施例中的復合文檔存儲裝置的一個流程示意圖;圖6是本發明實施例中的復合文檔存儲裝置的另一個流程示意圖;圖7是本發明實施例中的復合文檔存儲裝置的另一個流程示意圖;圖8是本發明實施例中的復合文檔存儲裝置的另一個流程示意圖;圖9是本發明實施例中的復合文檔讀寫裝置的一個流程示意圖;圖10是本發明實施例中的復合文檔讀寫裝置的另一個流程示意圖;圖11是本發明實施例中的復合文檔讀寫裝置的另一個流程示意圖;圖12是用微軟復合文檔接口打開dbl的耗時和本發明實施例中的復合文檔接口 打開db2耗時的結果對比示意圖;圖13是用微軟復合文檔接口模擬讀取dbl中7個好友的消息記錄和本發明實施 例中的復合文檔接口模擬讀取db2中7個好友消息記錄的耗時對比示意圖;圖14是用微軟復合文檔接口模擬寫入7個好友的消息記錄和用本發明實施例中 的復合文檔接口模擬寫入7個好友消息記錄的耗時對比示意圖。
            具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。為了解決現有的復合文檔的碎片多導致的文件打開、讀寫性能差問題,本發明實 施例提出了一種完全兼容現有復合文檔格式的新復合文檔。在本發明實施例中的復合文檔 中,采用預分配策略(即對內部控制流或/和用戶數據流預分配一定大小的存儲空間,以進 行相應的存儲)進行復合文檔的存儲,以保證數據塊的連續性,減少碎片的產生;另外,相 應于本發明實施例中的復合文檔的存儲方式,本發明實施例還提出了一種采取緩存讀取和批量寫入策略來優化輸入/輸出(I/O),從而提升復合文檔的打開、讀寫性能。同時,在本發明實施例中的復合文檔可以以扇區為單位進行存儲,也可以以扇區 簇為單位進行存儲。在前期的研究發現,現有的復合文檔(如微軟復合文檔)的MSAT,目 錄項,SSAT每個扇區都不連續。其分配粒度是512字節的扇區,分配粒度過小,增加了碎 片形成的幾率,為從根源上減少碎片,本發明實施例中重新定義一個比較大一點的分配粒 度——扇區簇(類似磁盤管理中的簇)。按復合文檔的規范,小于4K字節GX IOM字節, 或表示為4KB)的即為短流。因此可以選擇大于4K字節的粒度值,如8K字節做為簇的大小。 為實現簇分配單元模式,定義了一個非常簡單的原則,即每次分配都按照8K字節邊界對齊 分配扇區,這樣保證分配粒度始終不小于一個扇區簇。因為簇大小8K字節正好是512字節 的整數倍,所以能完全兼容現有復合文檔格式。當然,根據具體的情況扇區簇的大小也可以 是其他數值,如為扇區大小的整數倍數值等。如前所述,在本發明實施例中的復合文檔中,采用預分配策略來進行復合文檔的 存儲。由于內部控制流和用戶數據流的性質的不同,其具體的預分配策略是不同的。如圖 2所示,為本發明實施例中的關于內部控制流的預分配策略下的存儲方法,包括201、為復合文檔的內部控制流預分配初始存儲區域,所述初始存儲區域為連續的 扇區或扇區簇。在本實施例,以及本發明的其他實施例中所涉及的存儲區域的單位,既可以 是扇區,也可以是前述的扇區簇;但,不論是扇區還是扇區簇,在某一具體實施例中,并不會 存在采用扇區和扇區簇混合作為存儲單位的情況,即在某一復合文檔的實現中,要么都是 采用扇區作為基本存儲單位,要么都是采用扇區簇作為基本存儲單位(在同一實施例中, 包括內部控制流和后述的用戶數據流都采用相同的基本存儲單位進行存儲)。其中,本實施例中的內部控制流可以是主扇區分配表、扇區分配表、短流存放流、 短扇區分配表及目錄流中的一種或多種。即可以是對復合文檔中的上述的某一種具體的內 部控制流(如MSAT)采用本實施例中的預分配存儲區域的方案進行存儲,也可以是對復合 文檔中的多種或全部的內部控制流都采用本實施例中的預分配存儲區域的方案進行存儲。需要說明的是,若是對復合文檔中的多種或全部的內部控制流,所述為復合文檔 的內部控制流預分配初始存儲區域是指,分別為各種不同的內部控制流預分配不同的初始 存儲區域。202、在所述初始存儲區域內存儲所述內部控制流,并當所述內部控制流大小超出 所述初始存儲區域時,預分配第二存儲區域以便存儲超出的內部控制流,所述第二存儲區 域也為連續的扇區或扇區簇。在本發明實施例中,由于內部控制流(如SAT)較大,或是由于復合文件的增長導 致SAT的增長,可能原來已分配的初始存儲區域以及第二存儲區域都不夠用,則還可以根 據預分配空間策略預分配新的存儲區域存儲內部控制流。其中,所述預分配空間策略是指, 在存儲內部控制流時,當已分配的存儲區域不夠使用時,總是預分配新的存儲區域來存儲 內部控制流,所有預分配的存儲區域都分別為連續的扇區或扇區簇。并且,在上述實施例中,扇區簇及預分配的存儲空間的大小具體可以是,扇區簇是 指大小為池字節的連續完整的扇區;預分配的初始存儲區域大小為池字節,預分配新的存 儲區域的大小依次為80k字節(即第二存儲區域)、800k字節、IM(兆)字節,當前一次預分 配的存儲區域大小為IM字節時,其后預分配的存儲區域大小均為IM字節。當然,上述的扇區簇也可以是4k字節的整數倍大小的連續完整的扇區。以下根據內部控制流的具體類型,給出一些進行預分配存儲的實施例1)主扇區分配表的預分配方法若每個MSAT扇區可以容納1 個SAT扇區的SID,則每個SAT扇區容納1 個扇 區SID,這樣IG字節的文件共需要64K字節大小的主扇區分配表。在復合文檔的文件頭,包 含109個MSAT SID0這樣即使不使用附加的MSAT,支持最大6. 8M字節的復合文檔。其中, IG = 1024M = 1024X1024K。主扇區分配表的預分配方法即為,根據MSAT的大小及增長情況,不斷分配新的存 儲區域進行存儲,如設定初始存儲區域大小為8K,第二存儲區域為80K,其他不斷預分配的 存儲區域大小依次為80K、800K、1M、1M、1M...。即,對于預分配的存儲區域的大小的設定策 略可為,對于小于IM的按10的倍數增長,大于IM的則固定為1M。對于已經使用的預分配 的存儲區域,把已使用的全部扇區串成MSAT扇區鏈,在MSAT扇區中對不存在的SAT的SID 填-1。對小于1.28G的文件,除了文件頭外,只有一處MSAT碎片,所以可以不考慮合并MSAT 的問題。2)扇區分配表的預分配方法按復合文檔的格式定義,SAT的大小與文件大小是直接對應的關系,理論上當SAT 表增加時,復合文檔大小也要增加,但是復合文檔中存放的數據流大小可以不變。因為,現 有技術中的復合文檔(如,微軟的復合文檔),是沒有預分配的概念,它的SAT表是隨著復合 文檔大小增加而同時增加了 ;但是本發明實施例中的復合文檔與現有技術中的復合文檔不 同的是,本發明實施例中的復合文檔中的SAT表可以預先分配,復合文檔大小增加的同時, 復合文檔中存放的數據大小是可以不增加的。每個SAT扇區容納1 個扇區SID,這樣IG的文件共需要8M大小的主扇區分配表。類似MSAT的預分配情況,SAT的存儲區域的預分配初始值也可為8k,以后分配的 依次為80K、800K、1M、1M、1M...,即小于IM的按10的倍數增長,大于IM的固定為1M。對于 小于800M的文件,共有8個SAT碎片。這種模式SAT碎片比較少,可以不用實現SAT合并。由于SAT表中4個字節可以指向1個數據流的扇區(512字節),如果沒有預分配, SAT占用空間是復合文檔的4/512即1/128 ;本發明實施例中實現的預分配SAT的空間最大 是當前已經使用的SAT空間的10倍。因此有,SAT預分配最大消耗10/1 = 8%的復合文 檔空間。3)短流存放流的預分配方法短流存放流是一個流的容器,用于存放用戶所有小于4K的流。一般在即時通訊工 具中大多數流都屬于短流,例如gif或bmp資源類文件等等,以及小的配置類文件。因此短 流存放流的碎片將極大影響復合文檔的性能。類似MSAT的預分配情況,短流存放流的存儲區域的預分配初始值也可為池,其余 依次為80K、800K、1M、1M、1M...,即小于IM的按10的倍數增長,大于IM的固定為1M。若, 預分配存儲區域按IM固定預分配,則每次可以增加256個短流,按實際使用經驗這個速度 足以滿足要求。4)短扇區分配表的預分配方法
            雖然看上去SSAT與短流存放流大小必須成正比,實際上Windows生成的復合文檔 中的SSAT可以超出這個數值。這樣SSAT不必從512字節起始大小開始增長,其預分配方 法和短流存放流的預分配方法一樣,也使用模型按8K、80K、800K、1M、1M、1M...增長。因為短流存放流同SSAT不需要完全匹配,所以短流存放流擴容的觸發點是在每 次寫入,當容量不夠時再擴容(注意擴容后的最大值不能超過與SSAT匹配的尺寸)。5)目錄流的預分配方法以微軟復合文檔為例,其格式定義中每個目錄項固定1 個字節。目錄流的預分配方法使用預分配模型為初始為8K (可以容納64個目錄項),按 8K、80K、800K、1M、1M、1M...增長,其中對于未用的目錄項置為空目錄項。這樣若少于6400 個目錄項,只有80K、800K兩處碎片,可以不實現合并目錄流。在上述各內部控制流的預分配存儲方法中,可根據上述的預分配模型在當前預分 配容量不夠時,進行擴容,如,SAT的擴容觸發點是寫入數據流容量不夠時;MSAT的擴容觸 發點是隨著SAT表增加導致存放MSAT表空間不夠時。以上描述了內部控制流的預分配的存儲方法,如圖3所示,則為用戶數據流(或稱 數據流)的預分配存儲空間的存儲方法,包括301、為當前正處于打開狀態的復合文檔,預留數據流存儲空間。即,用戶數據流的 預分配都采用了預留空間模式,每次分配新的扇區簇或扇區,便預留指定大小的空間,隨后 的其它對象都不得使用該空間。如,寫入一個數據流時,分配一塊大小比當前寫入的數據大 小更大的連續的扇區簇供該流寫入,因為當寫入該流時,很有可能會稍后再次寫入該流;為 了 2次寫入的數據連續,可在寫入的時候預留連續的一塊空間供下次寫入使用。其中,數據流存儲空間可以包括普通流存儲空間或/和短流存儲空間。則部分實 施例中的普通流存儲空間大小可為相應的當前流長度的50%或以上,所述短流存儲空間大 小為4k字節。302、在預留的所述數據流存儲空間中存儲所述復合文檔的數據流。303、當該復合文檔關閉時,釋放預留的數據流存儲空間中未使用的空間。由于當前,可能存在多個用戶數據流需要進行處理,則需要記錄為各用戶數據流 預留的數據流存儲空間的狀態,以便當需要預留新的數據流存儲空間時參考已預留的數據 流存儲空間的狀態,則上述實施例中還包括401、記錄當前處于打開狀態的復合文檔的預留數據流存儲空間的狀態。如,可在 打開到關閉復合文檔的生命周期中,在內存中建立一張預留空間狀態表,保持對該復合文 檔預留空間狀態的跟蹤,用于請求空閑扇區簇時的參考。由于可能同時打開多個復合文檔, 因此在實現上述預留空間狀態表時,如,采用代碼實現上這個表時,該表可以是一個全局的 地圖(map),因此,各個復合文檔的數據流預留的空間情況各個復合文檔是相互知道的。402、當需要為復合文檔申請預留數據流存儲空間時,在扇區分配表中查找沒有被 使用的扇區或扇區簇,確認該沒有被使用的扇區或扇區簇不是已預留的數據流存儲空間, 將該沒有被使用的也不是已預留的數據流存儲空間的扇區或扇區簇分配為該復合文檔的 預留數據流存儲空間。如,當申請新的扇區簇時,首先從SAT中找到沒有被使用的扇區簇, 同時確認該扇區簇不屬于其它對象的預留空間才分配。預留的空間在SAT中不記錄扇區鏈 fn息ο
            403、當該復合文檔關閉時,刪除關于該復合文檔的預留數據流存儲空間的狀態的 信息。如,當復合文檔關閉時,預留空間狀態表也同時銷毀,不寫入任何信息到文件。根據上述實施例中描述的存儲方法以下,根據用戶數據流的類型描述不同數據流 的實現預分配方法的一些實施例1)普通流的預分配方法普通流的預分配使用預留空間模式由于在大多數時候,當前打開并有過寫入操 作的流只占少部分,這樣可以為這部分流預留比較大的空間,每次預留大小定義為當前流 長度的50%,從而保持更小的碎片。如果這個預留空間在當前打開期間不能被利用到,下次 打開復合文檔會被別的流使用。2)短流的預分配方法按照微軟復合文檔格式的規定,小于4K的流即為短流。短流的預分配使用預留空 間模式為避免單個短流出現碎片,每個短流不論大小,統一為其預留4K空間。在實現時, 按起始地址4K對齊的原則分配扇區,保證每個短流都有4K空間。通過上述描述可知,采用預分配策略對復合文件中的內部控制流和用戶數據流進 行存儲,可以減少復合文檔中碎片的產生,并保證數據的連續性。使用本發明實施例中的預分配策略后,復合文件系統里面的數據理論上已經是一 大塊一大塊的,這其中的一些內部控制流,例如SSAT/SAT需要經常訪問,反復訪問頻率會 比較高。Windows雖然有緩沖預測算法,反復訪問的內容會優先加入到緩存,但是由于它不 理解文件中數據的具體應用,不知道數據的緩存優先級別,預測算法做不到100%可靠。因 此,對于采用前述的實施例中描述的方法存儲的復合文檔,其讀寫可以相應的采用下述的 方法進行,以進一步提高復合文檔的讀寫效率。本發明實施例中的一種復合文檔讀寫方法 中,在讀取內部控制流時,包括Al、在讀取內部控制流的扇區或扇區簇時,判斷該扇區或扇區簇的相鄰的一個或 多個扇區或扇區簇中是否也存儲了與該內部控制流同類的內部控制流。其中,內部控制流 為主扇區分配表、扇區分配表、短流存放流、短扇區分配表及目錄流中的一種A2、若判斷結果為是,則將所述扇區或扇區簇以及與其相鄰的一個或多個扇區或 扇區簇存儲的數據一次性讀入。如,在本發明實施例中當要讀取SAT某個扇區(或扇區簇)時,會先判斷一下與其 左右相鄰的數個扇區(或扇區簇)是否也是存放的SAT (SAT數組中存放的扇區標識有一些 特殊標識,比如-3代表該扇區存放的是SAT),如果是,那就把這一塊數據一次性讀入。由 于I/O消耗主要在磁頭跳轉,既然花了大量的時間跳到了目的地,就應該多讀一點數據。因 此,采用上述方案,不替代Windows緩存機制,只是簡單的對需要經常訪問的數據主動預讀 取一個大塊,而不是按需要每次都讀固定的塊數,可以極大的提高I/O的效率。另一方面在讀取用戶數據流時,現有技術中的復合文檔,如微軟實現的復合文檔, 按kctor為單位讀寫,如果讀取一大塊數據,需要一個一個依次調用ktFiIePointerEx和 ReadFile,這種方式有幾個負面影響(1)當讀取一個扇區時,系統會預讀取后面一大片數 據并緩存起來,如果請求的數據塊大于系統預計緩存的大小,會發生磁盤尋道(一般硬盤 平均尋道時間在IOms以上)。(2)ktFilePointerEx和ReadFile屬于內核調用,調用本身
            11會有消耗,僅在在Hummer登錄過程中,ReadFile和^itFilePointerEx調用總和超過4萬 次。(3)頻繁I/O也會影響到即將開發的事務性文件系統性能。因此,本發明實施例中,在讀取數據流時,則采用以下方法Bi、在讀取數據流時,判斷該數據流中是否存在連續的數據塊;B2、當判斷結果為是時,按最大連續快分批讀取該數據流。因為數據流預留空間策略保證了流數據的連續性,因此本發明實施例中的復合文 檔的讀取緩存策略是盡量緩存當前讀取流的數據;而現有技術中的復合文檔的讀緩存只是 緩存了當前扇區的后面一部分扇區的數據,同時,由于有技術中的復合文檔碎片多,這部分 數據極有可能并不是當前流的數據。因此,采用上述本發明實施例中的讀取數據的方法,可 以解決上述現有技術中的問題。另一方面,由于分配和釋放扇區鏈表時需要頻繁寫入/擦除SAT/SSAT項,在本發 明實施例中的流的數據塊是成塊連續的,相應的SAT表項也是連續的,因此在操作SAT表項 時可采用如下步驟Cl、在分配和釋放扇區鏈表時,判斷相應的內部控制流項是否連續;C2、當判斷結果為連續時,對該連續的內部控制流項進行批量操作。相應于上述各方法的實施例,本發明實施例也提供了相應的實現裝置,如圖5所 示,為相應的復合文檔存儲裝置1,該裝置包括控制流初始預分配模塊10,用于為復合文檔的內部控制流預分配初始存儲區域, 所述初始存儲區域為連續的扇區或扇區簇。控制流第二預分配模塊12,用于在所述初始存儲區域內存儲所述內部控制流,并 當所述內部控制流大小超出所述初始存儲區域時,預分配第二存儲區域以便存儲超出的內 部控制流,所述第二存儲區域也為連續的扇區或扇區簇。其中,內部控制流為主扇區分配表、扇區分配表、短流存放流、短扇區分配表及目 錄流中的一種或多種;并當所述內部控制流為主扇區分配表、扇區分配表、短流存放流、短 扇區分配表及目錄流中的多種時,所述控制流初始預分配模塊10用于分別為各種不同的 內部控制流預分配不同的初始存儲區域。如圖6所示,該裝置1還可包括控制流策略預分配模塊14,用于當所述超出的內部控制流超過第二存儲區域大小 時,根據預分配空間策略預分配新的存儲區域存儲內部控制流;其中,所述預分配空間策略 是指,在存儲內部控制流時,當已分配的存儲區域不夠使用時,總是預分配新的存儲區域來 存儲內部控制流,所有預分配的存儲區域都分別為連續的扇區或扇區簇。其中,在部分實施例中,扇區簇是指大小為池字節的連續完整的扇區;預分配的 初始存儲區域大小為池字節,預分配新的存儲區域的大小依次為80k字節、800k字節、IM 字節,當前一次預分配的存儲區域大小為IM字節時,其后預分配的存儲區域大小均為IM字 節。如圖7和8所示,該裝置1還可包括數據流預留模塊11,用于為當前正處于打開狀態的復合文檔,預留數據流存儲空 間;數據流存儲模塊13,用于在預留的所述數據流存儲空間中存儲所述復合文檔的數據流;數據流預留釋放模塊15,用于當該復合文檔關閉時,釋放預留的數據流存儲空間 中未使用的空間。狀態記錄模塊17,用于記錄當前處于打開狀態的復合文檔的預留數據流存儲空間 的狀態。若包括狀態記錄模塊17則數據流預留模塊15還用于當需要為復合文檔申請預留 數據流存儲空間時,在扇區分配表中查找沒有被使用的扇區或扇區簇,確認該沒有被使用 的扇區或扇區簇不是已預留的數據流存儲空間,將該沒有被使用的也不是已預留的數據流 存儲空間的扇區或扇區簇分配為該復合文檔的預留數據流存儲空間;數據流預留釋放模塊 15還用于當該復合文檔關閉時,刪除關于該復合文檔的預留數據流存儲空間的狀態的信 肩、ο在圖7和圖8中虛線表示的模塊和連線,表示該復合文檔存儲裝置可以包括該模 塊也可以不包括。其中,在部分實施例中,數據流存儲空間包括普通流存儲空間或/和短流存儲空 間,所述普通流存儲空間大小為相應的當前流長度的50%或以上,所述短流存儲空間大小 為4k字節。相應的如圖9 11所示,為本發明實施例中的復合文檔讀寫裝置2,其包括扇區判斷模塊20,用于在讀取內部控制流的扇區或扇區簇時,判斷該扇區或扇 區簇的相鄰的一個或多個扇區或扇區簇中是否也存儲了與該內部控制流同類的內部控制 流;控制流讀取模塊22,用于若判斷結果為是,則將所述扇區或扇區簇以及與其相鄰 的一個或多個扇區或扇區簇存儲的數據一次性讀入。數據流讀取模塊M,用于在讀取數據流時,判斷該數據流中是否存在連續的數據 塊,當判斷結果為是時,按最大連續快分批讀取該數據流。控制流項判斷模塊沈,用于在分配和釋放扇區鏈表時,判斷相應的內部控制流項 是否連續;批量操作模塊觀,用于當判斷結果為連續時,對該連續的內部控制流項進行批量 操作。其中,內部控制流為主扇區分配表、扇區分配表、短流存放流、短扇區分配表及目 錄流中的一種。上述裝置實施例中的具體概念和執行方式與前述的方法實施例中的一致,此處不 做贅述。運用本發明實施例提出的預分配策略存儲復合文檔,并同時采取讀緩存和批量寫 入的策略進行1/0,可以大幅提升復合文檔的打開、讀寫性能。同時,采用本發明實施例中的 復合文檔的存儲方法獲得的復合文檔完全兼容現有的復合文檔。與現有的微軟復合文檔相比,本發明實施例中的復合文檔的讀取的速度是微軟復 合文檔的4倍左右,寫入的速度新復合文檔是微軟復合文檔的100倍左右。如圖12 14 可以看出新復合文檔的性能要遠遠超過微軟的復合文檔。在圖12 14中,示意了采用本發明實施例中的方法與采用現有技術的方法的耗 時對比。其中,圖12是用微軟復合文檔(現有技術中的一種復合文檔)接口打開dbl的耗時和本發明實施例中的復合文檔接口打開cft2耗時的結果對比;圖13是用微軟復合文檔接 口模擬讀取dbl中7個好友的消息記錄和本發明實施例中的復合文檔接口模擬讀取db2中 7個好友消息記錄的耗時對比;圖14則是用微軟復合文檔接口模擬寫入7個好友的消息記 錄和用本發明實施例中的復合文檔接口模擬寫入7個好友消息記錄的耗時對比。其中,上述3次實驗用到的復合文檔db是模擬即時通訊工具的消息記錄的生成過 程生成的用微軟的復合文檔接口產生一個600M字節的復合文檔數據(稱為dbl)和用本 發明實施例中的復合文檔接口產生一個600M字節的復合文檔數據(稱為db2)。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可 借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上 述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該 計算機軟件產品可以存儲在計算機可讀存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指 令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施 例或者實施例的某些部分所述的方法。以上所述的實施方式,并不構成對該技術方案保護范圍的限定。任何在上述實施 方式的精神和原則之內所作的修改、等同替換和改進等,均應包含在該技術方案的保護范 圍之內。
            1權利要求
            1.一種復合文檔存儲方法,其特征在于,該方法包括為復合文檔的內部控制流預分配初始存儲區域,所述初始存儲區域為連續的扇區或扇 區簇;在所述初始存儲區域內存儲所述內部控制流,并當所述內部控制流大小超出所述初始 存儲區域時,預分配第二存儲區域以便存儲超出的內部控制流,所述第二存儲區域也為連 續的扇區或扇區簇。
            2.如權利要求1所述的方法,其特征在于,所述內部控制流為主扇區分配表、扇區分配表、短流存放流、短扇區分配表及目錄流中 的一種或多種;并當所述內部控制流為主扇區分配表、扇區分配表、短流存放流、短扇區分配表及目錄 流中的多種時,所述為復合文檔的內部控制流預分配初始存儲區域是指,分別為各種不同 的內部控制流預分配不同的初始存儲區域。
            3.如權利要求2所述的方法,其特征在于,所述方法還包括,當所述超出的內部控制流超過第二存儲區域大小時,根據預分配空間策略預分配新的 存儲區域存儲內部控制流;其中,所述預分配空間策略是指,在存儲內部控制流時,當已分配的存儲區域不夠使用 時,總是預分配新的存儲區域來存儲內部控制流,所有預分配的存儲區域都分別為連續的 扇區或扇區簇。
            4.如權利要求3所述的方法,其特征在于,所述扇區簇是指大小為池字節的連續完整 的扇區;所述預分配空間策略中,預分配的初始存儲區域大小為池字節,預分配新的存儲 區域的大小依次為80k字節、800k字節、IM字節,當前一次預分配的存儲區域大小為IM字 節時,其后預分配的存儲區域大小均為IM字節。
            5.如權利要求1至4中任一項所述的方法,其特征在于,所述方法還包括為當前正處于打開狀態的復合文檔,預留數據流存儲空間;在預留的所述數據流存儲空間中存儲所述復合文檔的數據流;當該復合文檔關閉時,釋放預留的數據流存儲空間中未使用的空間。
            6.如權利要求5所述的方法,其特征在于,所述方法還包括記錄當前處于打開狀態的復合文檔的預留數據流存儲空間的狀態;所述為當前正處于打開狀態的復合文檔,預留數據流存儲空間包括當需要為復合文 檔申請預留數據流存儲空間時,在扇區分配表中查找沒有被使用的扇區或扇區簇,確認該 沒有被使用的扇區或扇區簇不是已預留的數據流存儲空間,將該沒有被使用的也不是已預 留的數據流存儲空間的扇區或扇區簇分配為該復合文檔的預留數據流存儲空間;所述當該復合文檔關閉時,釋放預留的數據流存儲空間中未使用的空間還包括當該 復合文檔關閉時,刪除關于該復合文檔的預留數據流存儲空間的狀態的信息。
            7.一種復合文檔讀寫方法,其特征在于,所述復合文檔采用如權利要求1所述的方法 存儲內部控制流,所述復合文檔讀寫方法包括在讀取內部控制流的扇區或扇區簇時,判斷該扇區或扇區簇的相鄰的一個或多個扇區 或扇區簇中是否也存儲了與該內部控制流同類的內部控制流;若判斷結果為是,則將所述扇區或扇區簇以及與其相鄰的一個或多個扇區或扇區簇存儲的數據一次性讀入。
            8.如權利要求7所述的方法,其特征在于,所述內部控制流為主扇區分配表、扇區分配 表、短流存放流、短扇區分配表及目錄流中的一種。
            9.如權利要求7所述的方法,其特征在于,所述復合文檔采用預留數據流存儲空間存 儲數據流,所述復合文檔讀寫方法還包括在讀取數據流時,判斷該數據流中是否存在連續的數據塊,當判斷結果為是時,按最大 連續快分批讀取該數據流;在分配和釋放扇區鏈表時,判斷相應的內部控制流項是否連續,當判斷結果為連續時, 對該連續的內部控制流項進行批量操作。
            10.一種復合文檔存儲裝置,其特征在于,該裝置包括控制流初始預分配模塊,用于為復合文檔的內部控制流預分配初始存儲區域,所述初 始存儲區域為連續的扇區或扇區簇;控制流第二預分配模塊,用于在所述初始存儲區域內存儲所述內部控制流,并當所述 內部控制流大小超出所述初始存儲區域時,預分配第二存儲區域以便存儲超出的內部控制 流,所述第二存儲區域也為連續的扇區或扇區簇。
            11.如權利要求10所述的裝置,其特征在于,所述內部控制流為主扇區分配表、扇區分 配表、短流存放流、短扇區分配表及目錄流中的一種或多種;并當所述內部控制流為主扇區分配表、扇區分配表、短流存放流、短扇區分配表及目錄 流中的多種時,所述控制流初始預分配模塊用于分別為各種不同的內部控制流預分配不同 的初始存儲區域。
            12.如權利要求11所述的裝置,其特征在于,所述裝置還包括,控制流策略預分配模塊,用于當所述超出的內部控制流超過第二存儲區域大小時,根 據預分配空間策略預分配新的存儲區域存儲內部控制流;其中,所述預分配空間策略是指,在存儲內部控制流時,當已分配的存儲區域不夠使用 時,總是預分配新的存儲區域來存儲內部控制流,所有預分配的存儲區域都分別為連續的 扇區或扇區簇。
            13.如權利要求12所述的裝置,其特征在于,所述扇區簇是指大小為池字節的連續完 整的扇區;所述預分配空間策略中,預分配的初始存儲區域大小為池字節,預分配新的存 儲區域的大小依次為80k字節、800k字節、IM字節,當前一次預分配的存儲區域大小為IM 字節時,其后預分配的存儲區域大小均為IM字節。
            14.如權利要求10至13中任一項所述的裝置,其特征在于,所述裝置還包括數據流預留模塊,用于為當前正處于打開狀態的復合文檔,預留數據流存儲空間;數據流存儲模塊,用于在預留的所述數據流存儲空間中存儲所述復合文檔的數據流;數據流預留釋放模塊,用于當該復合文檔關閉時,釋放預留的數據流存儲空間中未使 用的空間。
            15.如權利要求14所述的裝置,其特征在于,所述裝置還包括狀態記錄模塊,用于記錄當前處于打開狀態的復合文檔的預留數據流存儲空間的狀態;數據流預留模塊還用于當需要為復合文檔申請預留數據流存儲空間時,在扇區分配表中查找沒有被使用的扇區或扇區簇,確認該沒有被使用的扇區或扇區簇不是已預留的數據 流存儲空間,將該沒有被使用的也不是已預留的數據流存儲空間的扇區或扇區簇分配為該 復合文檔的預留數據流存儲空間;數據流預留釋放模塊還用于當該復合文檔關閉時,刪除關于該復合文檔的預留數據流 存儲空間的狀態的信息。
            16.一種復合文檔讀寫裝置,其特征在于,所述復合文檔采用如權利要求10所述的裝 置存儲內部控制流,所述復合文檔讀寫裝置包括扇區判斷模塊,用于在讀取內部控制流的扇區或扇區簇時,判斷該扇區或扇區簇的相 鄰的一個或多個扇區或扇區簇中是否也存儲了與該內部控制流同類的內部控制流;控制流讀取模塊,用于若判斷結果為是,則將所述扇區或扇區簇以及與其相鄰的一個 或多個扇區或扇區簇存儲的數據一次性讀入。
            17.如權利要求16所述的裝置,其特征在于,所述內部控制流為主扇區分配表、扇區分 配表、短流存放流、短扇區分配表及目錄流中的一種;所述復合文檔采用預留數據流存儲空間存儲數據流,所述復合文檔讀寫裝置還包括 數據流讀取模塊,用于在讀取數據流時,判斷該數據流中是否存在連續的數據塊,當判 斷結果為是時,按最大連續快分批讀取該數據流;控制流項判斷模塊,用于在分配和釋放扇區鏈表時,判斷相應的內部控制流項是否連續;批量操作模塊,用于當判斷結果為連續時,對該連續的內部控制流項進行批量操作。
            全文摘要
            本發明公開了一種復合文檔存儲、讀寫方法和裝置,該方法包括為復合文檔的內部控制流預分配初始存儲區域,所述初始存儲區域為連續的扇區或扇區簇;在所述初始存儲區域內存儲所述內部控制流,并當所述內部控制流大小超出所述初始存儲區域時,預分配第二存儲區域以便存儲超出的內部控制流,所述第二存儲區域也為連續的扇區或扇區簇。采用本方法或裝置,可減少了復合文檔中的用戶數據流和內部控制流的碎片。相應的,由于預分配存儲空間,使得復合文檔中的用戶數據流和內部控制流連續存儲的概論增加,可引入讀緩存和批量寫入的策略來優化I/O,提高讀寫效率。
            文檔編號G06F17/30GK102122284SQ20101004269
            公開日2011年7月13日 申請日期2010年1月8日 優先權日2010年1月8日
            發明者鄧立波, 陳祎 申請人:騰訊科技(深圳)有限公司
            網友詢問留言 已有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久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品