TWI739002B - 儲存驅動器及其上的壓縮系統及壓縮其上的資料的方法 - Google Patents
儲存驅動器及其上的壓縮系統及壓縮其上的資料的方法 Download PDFInfo
- Publication number
- TWI739002B TWI739002B TW107114618A TW107114618A TWI739002B TW I739002 B TWI739002 B TW I739002B TW 107114618 A TW107114618 A TW 107114618A TW 107114618 A TW107114618 A TW 107114618A TW I739002 B TWI739002 B TW I739002B
- Authority
- TW
- Taiwan
- Prior art keywords
- compression
- compressibility
- data
- storage drive
- inputs
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
- H03M7/48—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
- G11B2020/00079—Time or data compression or expansion the compression ratio or quality level being adapted to circumstances, e.g. to the available recording space
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3097—Grammar codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種儲存驅動器上的壓縮系統、壓縮儲存驅
動器上的資料的方法及儲存驅動器。本發明的實施例包含一種壓縮系統,所述壓縮系統包含一或多個可壓縮性輸入;壓縮預測器,配置成基於一或多個可壓縮性輸入來預測資料的可壓縮性;壓縮器,配置成壓縮資料;以及一或多個壓縮輸入。壓縮預測器或壓縮器中的至少一個配置成基於一或多個壓縮輸入來確定如何壓縮資料。一或多個可壓縮性輸入包括物件擴展字典、物件簽名字典以及熵估算演算法庫中的至少一個。一或多個壓縮輸入包括服務品質簡檔、裝置性能簡檔以及壓縮演算法性能表中的至少一個。本發明的實施例所描述的預測可壓縮性並確定如何壓縮資料的方法,可優化儲存驅動器的總體性能。
Description
本申請要求2017年6月20日提交的美國臨時專利申請第62/522,423號的權益,所述申請的內容以全文引用的方式併入本文中。
本發明是有關於一種儲存系統,且特別是有關於一種具有用於預測資料的可壓縮性的壓縮預測器和用於基於預測來壓縮資料的壓縮器的壓縮系統、一種包含所述壓縮系統的驅動器以及一種用於預測和壓縮資料的方法。
壓縮資料是增大資料儲存容量的有效使用的有效方式。然而,並非所有壓縮演算法都是等同的。一些壓縮演算法對某些類型的資料比對其它類型的資料更好用,且一般來說,壓縮演算法以壓縮率換得時間/處理量。
如果儲存裝置盲目地嘗試壓縮其接收和儲存的所有資料,那麼其將造成不必要的延遲、處理量降低以及處理器迴圈浪費。這是因為並非所有傳入資料都適合於壓縮。一些資料已在主機上壓縮為單獨、顯式壓縮特徵的一部分,或是固有的,就如許多多媒體檔案類型的情況一樣。這些檔並不適合於造成處理量降低和延遲的額外壓縮。如果平均壓縮率良好,那麼這類降低是可接受的(即,空間使用率大大降低)。然而,如果平均壓縮率不佳,那麼將不能實現資料壓縮的目的且唯一結果將是性能損失。
將檔儲存於相同大小的邏輯塊中的常規塊儲存系統能夠壓縮個別邏輯塊以增大儲存容量。然而,塊系統的儲存結構使得難以基於檔案類型和格式來改進所儲存資料的壓縮,因為難以在所述塊中和在所述塊之間定位特定類型或格式的個別檔。塊儲存系統中的各邏輯塊可含有若干不同檔(或若干檔的部分),或相反地,單一資料檔案可分散於若干邏輯塊之間,從而使得難以分離特定檔案類型以用於具有最適合於壓縮所述特定類型的資料的演算法的個別和針對性壓縮。另外,邏輯塊未必含有關於各個別資料檔案的開始點和結束點的資訊或關於輸入資料格式的資訊。
類似地,關於佔據一或多個塊的檔的標識的重要中繼資料可能不存在於特定塊層級中。因此,傳統的塊系統將需要對任何塊的資料進行採樣並執行複雜的數學計算來測量塊的潛在可壓縮性。這導致額外的性能損失。另外,在基於塊的驅動器上壓縮資訊需要大量背景活動以追蹤目的檔案的各塊的位置,將那些位
置壓縮並彙編到新的塊中,隨後更新映射表以顯示所壓縮和所儲存的資訊的新位置,所述位置可能在壓縮過程中已大體上改變。
鍵值儲存系統與常規的塊儲存系統的不同在於其不含有相同大小的邏輯塊,而替代地將資料儲存為不同大小的值,其中所述值表示特定段的資料或檔。鍵值記憶體使用指向儲存於其中的特定值的鍵。鍵可含有關於所儲存資料的有效資訊,所述資訊包含邏輯位址、衍生於資料的散列值、資料格式等。
所需要的是改進的壓縮驅動器,所述改進的壓縮驅動器利用鍵值儲存系統的組織以便允許不同壓縮,所述不同壓縮改進總體儲存壓縮。舉例來說,所需要的是能夠確定在壓縮之前預期是否良好壓縮率從而避免無用壓縮和性能損失的驅動器。另外,所需要的是不僅能夠對主機資料執行壓縮且還能基於資料的性質、驅動器能力和/或終端使用者服務品質(Quality of Service,QoS)需求來確定何時且如何最好地壓縮這一資料(如果有的話)的驅動器。
本背景技術部分中所公開的以上資訊僅用於增進對本公開的背景技術的理解,且因此可含有不構成現有技術的資訊。
本發明的實施例包含一種具有用於預測資料的可壓縮性的壓縮預測器和用於基於所述預測來壓縮資料的壓縮器的壓縮系統、一種包含所述壓縮系統的驅動器以及一種用於預測和壓縮
資料的方法。
舉例來說,本發明的實施例包含一種壓縮系統,所述壓縮系統包含:一或多個可壓縮性輸入;壓縮預測器,配置成基於一或多個可壓縮性輸入來預測資料的可壓縮性;壓縮器,配置成壓縮資料;以及一或多個壓縮輸入。壓縮預測器或壓縮器中的至少一個配置成基於一或多個壓縮輸入來確定如何壓縮資料。一或多個可壓縮性輸入包含物件擴展字典、物件簽名字典以及熵估算演算法庫中的至少一個。一或多個壓縮輸入包含服務品質簡檔、裝置性能簡檔以及壓縮演算法性能表中的至少一個。
其它實施例包含一種儲存驅動器,所述儲存驅動器包含壓縮系統。
另外,實施例包含一種壓縮儲存驅動器上的資料的方法,其中所述方法包含:基於一或多個可壓縮性輸入來預測驅動器上的資料的可壓縮性;基於一或多個壓縮輸入來確定如何壓縮資料;以及基於確定如何壓縮資料來壓縮資料。一或多個可壓縮性輸入包含物件擴展字典、物件簽名字典以及熵估算演算法庫中的至少一個。一或多個壓縮輸入包含服務品質簡檔、裝置性能簡檔以及壓縮演算法性能表中的至少一個。
1:鍵
2:值/給定值
3:壓縮預測器
4:物件擴展字典/物件擴展目錄
5:物件簽名字典
6:熵估算演算法庫
7:壓縮器
10:壓縮驅動器
11:接收開關
12:出口開關/多工器
13:輸出
14:QoS簡檔
15:裝置性能簡檔
16:壓縮演算法性能表
17:壓縮演算法庫
21:預測
22:確定
23:壓縮
24:輸出
25:儲存
26:箭頭
結合圖式通過參考以下詳細描述,其它特徵和方面將變得清晰可見且易於理解。在附圖中:
圖1是示意性地示出根據示範性實施例的壓縮驅動器的流程圖。
圖2是示出在特定處理量下的某些壓縮演算法的相應壓縮率的表。
圖3是示出使用圖1的壓縮驅動器來預測和壓縮資料的方法的流程圖。
本文中所描述的電子裝置或電氣裝置和/或根據本發明的實施例的任何其它相關裝置或元件可利用任何合適的硬體、韌體(例如專用積體電路)、軟體,或韌體、固件以及硬體的組合來實施。舉例來說,這些裝置的各種元件可形成於一個積體電路(integrated circuit,IC)晶片上或形成於單獨IC晶片上。另外,這些裝置的各種元件可實施於軟性印刷電路膜、載帶封裝(tape carrier package;TCP)、印刷電路板(printed circuit board;PCB)上,或形成於一個基底上。另外,這些裝置的各種元件可以是運行於一或多個處理器上、一或多個計算裝置中,執行電腦程式指令且與其它系統元件交互以執行本文中所描述的各種功能的進程或執行緒。電腦程式指令儲存於可使用例如隨機存取記憶體(random access memory;RAM)的標準記憶體裝置在計算裝置中實施的記憶體中。電腦程式指令還可儲存於例如CD-ROM、快閃記憶體驅動器或類似物的其它非暫時性電腦可讀介質中。此外,
本領域的技術人員應認識到可在不脫離本發明的示範性實施例的精神和範圍的情況下,將各種計算裝置的功能組合或集成到單一計算裝置中,或可使特定計算裝置的功能分佈於一或多個其它計算裝置上。
本發明的實施例涉及具有改進可壓縮性的固態驅動器。最初,對儲存於驅動器上的檔的特徵進行分析來預測各檔能夠受壓縮的程度(即,檔的可壓縮性)。一旦得到關於可壓縮性的預測,將作出關於是否壓縮資料的決策。這個決策可基於所預測的資料的可壓縮性以及其它因素,例如服務品質(QoS)需求和目前裝置能力。如果作出壓縮的決策,那麼隨後作出關於如何壓縮資料的判定,考慮例如資料和裝置的特徵以及QoS需求的因素來確定在當前條件下哪一演算法將最適於使用,以優化總體性能。
圖1是示出根據一個實施例的壓縮驅動器10的流程圖。這個實施例中的驅動器10是鍵值儲存驅動器,以便利用儲存於驅動器10上所儲存的資料的鍵和值中的可易於存取的資訊。圖1的流程圖示出包含鍵1和值2的驅動器10的示範性資料集。可通過壓縮預測器3對鍵1和值2中所含有的資訊進行分析以確定值2的可壓縮性。壓縮預測器3可使用物件擴展字典4、物件簽名字典5和/或熵估算演算法庫6中所含有的資訊來確定或說明確定值2的可壓縮性。
物件擴展目錄4含有已知物件擴展(即,副檔名)列表,以及對於多種壓縮技術中的每一種來說那些類型的物件的可壓縮
程度的評估。這一資訊由物件擴展目錄4提供給壓縮預測器3以便於壓縮預測,且可引起進行一些形式的可壓縮性預測而不對值2中所含有的顯著資料量直接地進行採樣。舉例來說,鍵1可含有可提供關於檔的可壓縮性的線索的副檔名,所述副檔名指示資料檔案是PPTX、PDF、MP3、JPG等。如果鍵1指示檔含有本身已壓縮的MP3檔,那麼驅動器10可在不對值2的任何資料進行採樣的情況下瞭解到不大可能另外壓縮值2。另一方面,如果鍵1指示其儲存黑白點陣圖(bitmap;BMP)圖像,那麼驅動器10將在不對值2進行採樣的情況下瞭解到值2將是用於壓縮的良好候選。
鍵1可含有關於可壓縮性的其它線索,其包含檔簽名(即,物件簽名)。檔簽名是提供關於儲存於值2中的檔案類型的資訊的代碼行。資料類型的已知簽名列表和其可壓縮程度的評估可維持於物件簽名字典5中。因此,如果副檔名未包含於鍵1中,那麼檔簽名可以是且可提供關於儲存於值2中的檔案類型的資訊。將來自物件簽名字典5的資訊提供給壓縮預測器3以便於壓縮預測。
雖然副檔名和檔簽名用作這個實施例中的實例以顯示可說明預測可壓縮性的儲存於鍵1中的中繼資料類型,但可包含除副檔名和/或檔簽名外或代替副檔名和/或文件簽名可用於預測可壓縮性的其它中繼資料。使這一其它中繼資料與檔案類型和壓縮有效性相關聯的資訊可儲存於詞典中且可用於壓縮預測器。
如果鍵1不含中繼資料提示,那麼可能必需對值2中所含有的資料進行採樣。然而,由於驅動器10是鍵值驅動器,相較於常規基於塊的驅動器,易於定位資料集的開始點和結束點。這意味兩件事:第一,保證所取得的任何樣本僅來自所關注的資料,從而使得任何壓縮預測較準確。第二,知道資料的開始點允許易於定位值2的標頭,所述標頭可含有可在不需對值2另外採樣且不需要較複雜計算的情況下用以預測壓縮性能的線索(例如,不在鍵1中的中繼資料或簽名)。
如果副檔名和/或檔簽名並未包含於鍵1中,那麼其可包含於標頭中或在值2內的特定已知位置處。舉例來說,一些檔簽名定位於從檔的開始特定偏移處。下表1是若干常見檔案類型以及其相關聯簽名和偏移的列表。
如表1中所示出,許多檔案類型定位於0偏移處,即檔標頭的開始處,從而使得尋找檔簽名的對值2的採樣相對容易。
即使檔簽名不在標頭的開始處,可對特定偏移進行採樣以搜索常用檔案類型的簽名。因此,如果鍵1不含有關於檔案類型的資訊,那麼可對值2內的特定位置進行採樣以便快速且有效地搜索檔簽名。
雖然檔簽名用作這個實施例中的實例以顯示可儲存於可說明預測可壓縮性的標頭中的中繼資料類型,但在標頭中或在值內的可預測偏移處可包含除檔簽名外或代替檔簽名可用於預測可壓縮性的其它中繼資料。舉例來說,標頭可包含指示值的檔案格式是什麼的其它中繼資料。使其它中繼資料與檔案類型和壓縮性能相關聯的資訊可儲存於詞典中且可用於壓縮預測器。
如果與壓縮相關的中繼資料並未在鍵1中且並未在所採樣檔標頭和偏移位置中,那麼可能需要數學上較複雜的可壓縮性演算法(例如基於熵計算的測量)。
熵估算演算法庫6含有用於測試任何所採樣資料的熵並因而確定其可壓縮程度的代碼。基於熵的計算可用於檢索值2的部分以預測檔是否可壓縮。基於熵的計算在熵或亂數據較難壓縮的原則下運行。一般來說,已壓縮的檔具有較高熵特徵。未壓縮的檔更可能具有較容易壓縮的有序數據。舉例來說,壓縮演算法可將包含具有成一行的一百個“1”的重複代碼的區域的未壓縮檔壓縮為表示(本質上)在所述區域中具有“1”×100的較短、較無序代碼行。
由於資料集的開始點和結束點在鍵值系統中是已知
的,所以基於熵的計算可用於值的樣本部分以準確地預測整個值的可壓縮性。顯示高熵的結果將指示值可能不可壓縮,且顯示低熵的結果將指示值可能是可壓縮的。可將來自熵估算演算法庫6的資訊提供到壓縮預測器3以幫助預測。
除對值2的樣本執行基於熵的計算外或代替對所述值的樣本執行基於熵的計算,可對值2的一部分執行樣本壓縮以估算可壓縮性。舉例來說,值2的區域(例如,已知且相對較小區域)可使用測試演算法來壓縮。如果空間節省超出某一閾值(指示可壓縮性是合理的),那麼將是可壓縮性的積極指示,且可將測試壓縮的結果發送到驅動器10上的壓縮器7以幫助壓縮值2。在一些實施例中,多個演算法可使用於值2的相同區域上,以使得可較好地優化壓縮。然而,這類方法將消耗較多時間和資源且用戶可能僅想在QoS需求較低時進行這類過程。
總之,存在可檢查的各種位置和可在鍵值裝置中執行以預測可壓縮性的分析,且這些位置和分析可混合和匹配以在變化速度下提供不同準確度。一般來說,預測的準確度和實現預測的速度是成反比相關的。舉例來說,相較於掃描值2的樣本部分並執行基於熵的計算,搜索鍵1和值2的標頭以審查關於可壓縮性(例如,根據副檔名或檔簽名)的中繼資料線索相對較快。然而,中繼資料線索理論上相較於基於熵的計算更不精確。
除上述中繼資料資訊和分析外,壓縮預測器3可考慮各種其它因素以預測可壓縮性,所述因素包含QoS需求和驅動器10
的性能能力。
QoS需求和資訊可併入到QoS簡檔14中。QoS簡檔14併入例如使用者的當前性能需求和需要的考慮因素,以使得執行的任何壓縮演算法將不會不利地影響使用者的性能需求。QoS資訊可告知驅動器10的機載控制器其需要的性能參數以維持對終端使用者是可接受的,機載控制器在所述驅動器中處理性能管理任務。QoS資訊可由壓縮預測器3使用來確定是否預測壓縮率符合QoS需求。另外,QoS資訊可用於設置機制,可壓縮性可通過所述機制由壓縮預測器3預測。舉例來說,QoS需求可限制可用於壓縮的處理量水準和頻寬,且可將由壓縮引起的延遲的可接受量限制到不會不利地影響使用者的需要的限值。另外,用戶的QoS需求可要求一定量的處理器功率來執行供用戶使用的應用、方法等。這些需求限制壓縮演算法(且潛在地限制再壓縮工作期間的減壓演算法),所述壓縮演算法可用於當時並未超出用戶的頻寬、處理量、延遲、處理器或其它需求的演算法。
驅動器10的性能能力可儲存於裝置性能簡檔15中。裝置性能簡檔15追蹤驅動器10的性能的靜態方面和動態方面。這一資訊由壓縮預測器3使用以確定值是否可充分壓縮(且如果是,程度)以符合QoS 14和驅動器10兩者的需要。
上述中繼資料資訊、基於熵的計算、樣本壓縮、QoS需求以及裝置資訊中的一些或全部可由壓縮預測器3分析以預測壓縮值2是否將得到有用壓縮率,和/或其是否將不利地影響QoS。
考慮這些因素中的一些或全部,最終預測可以是基於閾值的。舉例來說,在一些實施例中,如果預測可壓縮性高於預定閾值(考慮與預測可壓縮性相關的上述因素中的任一個或全部,可由使用者指定和輸入閾值),那麼壓縮預測器3將確定壓縮應進行。如果預測可壓縮性低於預定閾值,那麼壓縮預測器3將確定不應壓縮值2。在其它實施例中,決策可以是多個閾值檢查點的結果。舉例來說,例如QoS需求、基於熵的計算、樣本壓縮等的不同因素可具有將考慮到以便確定壓縮是否應進行的不同閾值或若干閾值。如果這些閾值中的任何一個或在一些實施例中這些閾值的任何組合不符合,那麼將不會進行壓縮。關於這些閾值的資訊可維持於決策表中。除例如預測壓縮率、當前系統性能特徵以及各種QoS需求的因素外,決策表將包含類似於上述因素的因素,在下文更詳細地論述。這些各種因素的分析可用於確定可壓縮性是否應發生。
最終,無論預測方法是什麼,將進行關於值的可壓縮程度的預測。這一決策可基於一或多個閾值,例如速度或可壓縮性閾值、決策表或其類似物。
一旦通過壓縮預測器3進行關於是否壓縮值2的確定,將這一結果提供到接收開關11。接收開關11接收值2,且基於來自壓縮預測器3的結果,在將值2輸出到壓縮器7或避開壓縮器7與將值2直接發送到輸出13的出口開關12之間切換。因此,如果壓縮預測器3確定壓縮應進行,那麼接收開關11將將值2發送
到壓縮器7,而如果壓縮預測器3確定壓縮不應進行,那麼接收開關11將將值2發送到輸出13的出口開關12。
如果發現值2許可壓縮且將所述值發送到壓縮器7,那麼壓縮器7隨後將確定如何壓縮驅動器10。替代地,壓縮預測器3可確定在將值2發送到壓縮器7之前如何壓縮驅動器10。確定如何壓縮檔可需要考慮各種因素,因為並非所有壓縮演算法都是相等的。一些演算法比其它演算法更好地運行來壓縮一些形式的資料,一些演算法比其它演算法要求更多的處理器或記憶體能力,一些演算法比其它演算法具有更大處理量,且一些演算法比其它演算法提供總體更好的壓縮率。在確定如何壓縮值2中,壓縮器7(或壓縮預測器3)可考慮來自包含QoS簡檔14、裝置性能簡檔15以及壓縮演算法性能表16的各種輸入的資訊以確定何種壓縮演算法適用於資料。
來自QoS簡檔14的QoS資訊可用於確定給定壓縮演算法的性能特徵是否符合終端使用者的需要。
來自裝置性能簡檔15的資訊可用於確定何種壓縮演算法將最有效地利用裝置資源、待壓縮的給定值2。
壓縮演算法性能表16含有關於多個壓縮演算法的資訊,所述資訊包含各演算法的平均壓縮率(單獨或通過檔案類型)、各演算法的處理量以及各演算法的計算和記憶體資源需求。壓縮演算法性能表16允許基於檔案類型和可用的處理量(所述處理量可以通過來自QoS簡檔14的QoS需要來確定)以及基於裝
置性能簡檔15的裝置能力來選擇特定演算法。如上文所論述,特定壓縮演算法可提供更大壓縮率以用於特定資料格式且因此可相較於其它壓縮演算法是優選的。圖2簡單地示出多種本領域常用壓縮演算法(和演算法設置)的比較。各演算法/設置具有處理量和所壓縮檔大小的特徵化組合(用於常量目的檔案)。一般來說,可看到壓縮愈多檔(較小壓縮檔大小),處理量愈低。因此,所要求的發明考慮儲存系統的各種屬性以選取當時用於系統的處理量與壓縮大小的最佳平衡。另外,如圖2所示,某些壓縮演算法在特定可用的處理量下相對於其它壓縮演算法具有更好的壓縮率。考慮當前QoS和處理量的裝置需求,考慮例如圖2中所含有的資訊允許選擇優化壓縮率的壓縮演算法。
因此,視當前QoS需要(如由QoS簡檔14提供)和驅動器10的性能能力(如由裝置性能簡檔15提供)而定,特定演算法相較於其它演算法可以是優選的。
通過考慮所有這些因素,驅動器10可確定何種壓縮演算法在當前條件下適用於值2。視環境而定,一種壓縮技術可比其它壓縮技術更適合於一種情形。這一實施例考慮待壓縮的資料類型、驅動器上可用的資源以及將壓縮演算法動態指派到待壓縮資料的使用者QoS需求,以使得SSD的總體性能得到優化。這一確定可視當前條件和QoS需求而定使得不同壓縮演算法應用於特定值。舉例來說,如果來自裝置上的其它活動的當前性能需求較高,那麼可選擇具有相對低的壓縮率的壓縮演算法以使得使用者的總
體性能需要不受不利的影響。
雖然在這個實施例中,考慮來自QoS簡檔14、裝置性能簡檔15以及壓縮演算法性能表16的資訊,但在其它實施例中,可能僅考慮上文所論述因素中之一些來確定待使用的壓縮演算法。另外,還可能考慮可影響用於特定值的優選的壓縮演算法的額外資訊。
一旦壓縮演算法選定,那麼壓縮演算法庫17將向壓縮器7提供代碼以啟動給定值2的壓縮。壓縮演算法庫17含有用於執行壓縮演算法的代碼。一旦壓縮完成,那麼將經由多工器12將壓縮值輸出到輸出13。
在一些模式(尤其其中對資料進行串聯壓縮而非靜止壓縮的那些模式,或在即時QoS需求允許最小處理時)中,在一個寫入處所實現的實際壓縮率可能不是理想壓縮率。這可能由例如寫入緩衝器分配給傳入資料的有限空間引起(使得並非可一次分析和壓縮所有資料),或由於驅動器由其它高值任務佔據,從而迫使低強度壓縮。
舉例來說,同時,QoS需求可要求“快速而粗糙的(quick and dirty)”壓縮(其中快速壓縮資料,但未必達到其最理想壓縮)以維持使用者所需要的驅動器10的性能能力。在這類情境中,有可能驅動器可隨後更高效地再壓縮資料。舉例來說,稍後當磁片是空閒或必須另外讀取和寫入主題資訊(IE,垃圾收集/耗損均衡)時,可能對已壓縮值進行減壓且再次分析(使用上述方法)以確
定是否可實現更佳壓縮。
以這樣的方式,例如原先串聯壓縮的資料流程可隨後在“靜止”情形中更充分地壓縮。
為便於這類再壓縮,可將編碼壓縮資訊的隱藏鍵添加到原始鍵。由於正常鍵處理例如指數建構、檢索等的操作,所以可忽略這一隱藏鍵,但當壓縮相關活動相關時,例如當QoS需求低時,可存取所述隱藏鍵。隱藏鍵可包含關於當前使用的壓縮類型和啟動再壓縮的命令的資訊。不論何時新的壓縮方案應用於值,可更新隱藏鍵。
在使用中,如圖3中所示,壓縮驅動器10使用預測壓縮器3來首先預測21特定鍵值資料集的可壓縮性。取決於硬體處理能力或由QoS需求施加的限制,可分別地或同時進行若干資料集的可壓縮性預測。預測可基於來自副檔名、檔簽名、基於熵的計算、樣本壓縮、QoS資訊和/或裝置性能資訊的資訊,如上文關於圖1所論述。
舉例來說,驅動器10的機載控制器或驅動器10上的處理器可搜索可提供關於可壓縮性的線索的用於副檔名或簽名的鍵1。如果定位副檔名或檔簽名,那麼可分別對其進行分析且與由物件擴展字典4和物件簽名字典5提供到壓縮預測器3的資訊進行比較以說明預測值2的可壓縮性。在其它實施例中,或在文件簽名和副檔名未定位於鍵1中的情況下,驅動器10可搜索值2的標頭或特定偏移以用於文件簽名。如果定位檔簽名,那麼可對其進
行分析且與由物件簽名字典5提供到壓縮預測器3的資訊進行比較以說明預測值2的可壓縮性。如果副檔名或檔簽名兩者都未定位於鍵1或值2中,那麼驅動器10可使用由熵估算演算法庫6提供的資訊來執行基於熵的計算,或驅動器10可執行如上文所論述的樣本壓縮。在一些實施例中,壓縮預測器3還可分析由QoS簡檔14和/或裝置性能簡檔15提供的資訊以說明估算可壓縮性。
預測可以是基於閾值的,以使得如果符合特定閾值或由用戶設置的閾值(可由用戶指定和輸入或輸入作為決策表的部分的一或多個閾值,考慮與預測可壓縮性相關的上述因素中的任一個或全部),那麼將壓縮值2。舉例來說,如果預測可壓縮性高於預定閾值,那麼壓縮預測器3將確定壓縮可進行。如果預測可壓縮性低於預定閾值,那麼壓縮預測器3將確定不應壓縮值2。
如果壓縮預測器3確定應壓縮值2,那麼經由接收開關11將資料發送到壓縮器7。壓縮器隨後確定22如何壓縮值2。在確定如何壓縮值2中,壓縮器7可考慮來自包含QoS簡檔14、裝置性能簡檔15以及壓縮演算法性能表16的各種輸入的資訊以確定何種壓縮演算法適用於值2。
一旦壓縮演算法選定,將使用由壓縮演算法庫17提供的代碼來壓縮23值2以啟動給定值2的壓縮。壓縮後,將經由出口開關12從壓縮器7輸出24壓縮值。
如果壓縮預測器3確定不應壓縮值2,那麼將經由出口開關12輸出24資料。
從壓縮器7中輸出24後,可將關於壓縮類型和再壓縮值2的命令的資訊儲存25於鍵1的隱藏部分(即,隱藏鍵)中。可隨後,例如當QoS需求較低和/或驅動器10靜止時,存取這一資訊以確定是否再壓縮值2以便優化壓縮。
另外,輸出24且不壓縮後,可包含關於是否隨後嘗試壓縮值2(例如,是否QoS需求防止先前嘗試的壓縮)的資訊。這一資訊可包含嘗試壓縮的命令。當QoS需求低和/或驅動器10靜止時可嘗試這一壓縮(參見箭頭26)。
雖然上述實施例將壓縮器7描述為確定如何壓縮值2,但這一過程也可由壓縮預測器3執行。在確定如何壓縮值2中,壓縮器3可類似地考慮來自包含(例如)QoS簡檔14、裝置性能簡檔15以及壓縮演算法性能表16的各種輸入的資訊以確定何種壓縮演算法適用於值2。一旦壓縮預測器3確定應用的壓縮演算法,所述壓縮預測器可將資訊輸出到壓縮器7以用於壓縮。
雖然上述實施例參考鍵值驅動器描述,但如上文所描述的預測可壓縮性並確定如何壓縮資料的方法也可用於傳統的基於塊的驅動器。由於基於塊的驅動器並不包含大量的鍵值驅動器中所包含的中繼資料,所以本方法將可能要求比鍵值驅動器更多時間和處理功率。
雖然已描述本發明的示範性實施例,但應理解本發明不應限於這些示範性實施例,而是可在如上文由所附申請專利範圍和其等效物所要求的本發明的精神和範圍內由本領域的普通技術
人員作出各種改變和修改。
1:鍵
2:值/給定值
3:壓縮預測器
4:物件擴展字典/物件擴展目錄
5:物件簽名字典
6:熵估算演算法庫
7:壓縮器
10:壓縮驅動器
11:接收開關
12:出口開關/多工器
13:輸出
14:QoS簡檔
15:裝置性能簡檔
16:壓縮演算法性能表
17:壓縮演算法庫
Claims (20)
- 一種儲存驅動器上的壓縮系統,包括:一或多個可壓縮性輸入;壓縮預測器,配置成基於所述一或多個可壓縮性輸入來預測資料的可壓縮性;壓縮器,配置成壓縮所述資料;一或多個壓縮輸入,其中所述壓縮預測器或所述壓縮器中的至少一個配置成基於所述一或多個壓縮輸入來確定如何壓縮所述資料;其中所述一或多個可壓縮性輸入包括物件擴展字典、物件簽名字典以及熵估算演算法庫中的至少一個;且其中所述一或多個壓縮輸入包括服務品質簡檔、裝置性能簡檔以及壓縮演算法性能資料庫中的至少一個。
- 如申請專利範圍第1項所述的儲存驅動器上的壓縮系統,其中所述一或多個可壓縮性輸入至少包括所述物件擴展字典。
- 如申請專利範圍第1項所述的儲存驅動器上的壓縮系統,其中所述一或多個可壓縮性輸入至少包括所述物件簽名字典。
- 如申請專利範圍第1項所述的儲存驅動器上的壓縮系統,其中所述一或多個壓縮輸入至少包括所述服務品質簡檔。
- 如申請專利範圍第2項所述的儲存驅動器上的壓縮系統,其中所述壓縮預測器配置成基於兩個或大於兩個可壓縮性輸入來預測所述資料的所述可壓縮性,且其中所述兩個或大於兩個 可壓縮性輸入包括所述物件擴展字典、所述物件簽名字典、所述熵估算演算法庫、所述服務品質簡檔以及所述裝置性能簡檔中的至少兩個。
- 如申請專利範圍第3項所述的儲存驅動器上的壓縮系統,其中所述壓縮器配置成基於兩個或大於兩個壓縮輸入來確定如何壓縮所述資料,且其中所述兩個或大於兩個壓縮輸入包括所述服務品質簡檔、所述裝置性能簡檔以及壓縮演算法性能表中的至少兩個。
- 一種壓縮儲存驅動器上的資料的方法,所述方法包括:基於一或多個可壓縮性輸入來預測所述儲存驅動器上的所述資料的可壓縮性,其中所述一或多個可壓縮性輸入包括物件擴展字典、物件簽名字典以及熵估算演算法庫中的至少一個;基於一或多個壓縮輸入來確定如何壓縮所述資料,其中所述一或多個壓縮輸入包括服務品質簡檔、裝置性能簡檔以及壓縮演算法性能表中的至少一個;以及基於如何壓縮所述資料的所述確定來壓縮所述資料。
- 如申請專利範圍第7項所述的壓縮儲存驅動器上的資料的方法,其中所述儲存驅動器是具有鍵以及值的鍵值儲存驅動器。
- 如申請專利範圍第8項所述的壓縮儲存驅動器上的資料的方法,其中所述一或多個可壓縮性輸入至少包括所述物件擴展字典。
- 如申請專利範圍第8項所述的壓縮儲存驅動器上的資 料的方法,其中所述一或多個可壓縮性輸入至少包括所述物件簽名字典。
- 如申請專利範圍第9項所述的壓縮儲存驅動器上的資料的方法,其中預測所述資料的所述可壓縮性另外包括搜索用於副檔名或檔簽名的所述鍵。
- 如申請專利範圍第11項所述的壓縮儲存驅動器上的資料的方法,其中預測所述資料的所述可壓縮性另外包括定位文件擴展或文件簽名;以及分別將所述文件擴展或所述文件簽名與由所述物件擴展字典或所述物件簽名字典提供的資訊進行分析以及比較。
- 如申請專利範圍第7項所述的壓縮儲存驅動器上的資料的方法,另外包括將關於所述資料的所述壓縮的資訊儲存於隱藏鍵中。
- 如申請專利範圍第13項所述的壓縮儲存驅動器上的資料的方法,另外包括將啟動所述資料的再壓縮的命令儲存於所述隱藏鍵中。
- 一種儲存驅動器,包括:壓縮系統,在所述儲存驅動器上,所述壓縮系統包括:一或多個可壓縮性輸入;壓縮預測器,配置成基於所述一或多個可壓縮性輸入來預測資料的可壓縮性;壓縮器,配置成壓縮所述資料; 一或多個壓縮輸入,其中所述壓縮預測器或所述壓縮器中的至少一個配置成基於所述一或多個壓縮輸入來確定如何壓縮所述資料;其中所述一或多個可壓縮性輸入包括物件擴展字典、物件簽名字典以及熵估算演算法庫中的至少一個;且其中所述一或多個壓縮輸入包括服務品質簡檔、裝置性能簡檔以及壓縮演算法性能表中的至少一個。
- 如申請專利範圍第15項所述的儲存驅動器,其中所述一或多個可壓縮性輸入至少包括所述物件擴展字典。
- 如申請專利範圍第15項所述的儲存驅動器,其中所述一或多個可壓縮性輸入至少包括所述物件簽名字典。
- 如申請專利範圍第15項所述的儲存驅動器,其中所述儲存驅動器是鍵值儲存驅動器。
- 如申請專利範圍第16項所述的儲存驅動器,其中所述壓縮預測器配置成基於兩個或大於兩個可壓縮性輸入來預測所述資料的所述可壓縮性,其中所述兩個或大於兩個可壓縮性輸入包括所述物件擴展字典、所述物件簽名字典、所述熵估算演算法庫、所述服務品質簡檔以及所述裝置性能簡檔中的至少兩個。
- 如申請專利範圍第18項所述的儲存驅動器,其中所述壓縮器配置成基於兩個或大於兩個壓縮輸入來確定如何壓縮所述資料,其中所述兩個或大於兩個壓縮輸入包括所述服務品質簡檔、所述裝置性能簡檔以及所述壓縮演算法性能表中的至少兩個。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762522423P | 2017-06-20 | 2017-06-20 | |
US62/522,423 | 2017-06-20 | ||
US15/688,779 | 2017-08-28 | ||
US15/688,779 US10097202B1 (en) | 2017-06-20 | 2017-08-28 | SSD compression aware |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201906326A TW201906326A (zh) | 2019-02-01 |
TWI739002B true TWI739002B (zh) | 2021-09-11 |
Family
ID=63685472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107114618A TWI739002B (zh) | 2017-06-20 | 2018-04-30 | 儲存驅動器及其上的壓縮系統及壓縮其上的資料的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10097202B1 (zh) |
JP (1) | JP7169098B2 (zh) |
KR (1) | KR102378463B1 (zh) |
CN (1) | CN109101524B (zh) |
TW (1) | TWI739002B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10097202B1 (en) * | 2017-06-20 | 2018-10-09 | Samsung Electronics Co., Ltd. | SSD compression aware |
US11200004B2 (en) * | 2019-02-01 | 2021-12-14 | EMC IP Holding Company LLC | Compression of data for a file system |
JP2020154525A (ja) | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび情報処理システム |
CN112099725A (zh) * | 2019-06-17 | 2020-12-18 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
US11494127B2 (en) * | 2019-07-22 | 2022-11-08 | EMC IP Holding Company LLC | Controlling compression of input/output (I/O) operations) |
JP2022128110A (ja) | 2021-02-22 | 2022-09-01 | キオクシア株式会社 | メモリシステム |
US11853160B2 (en) * | 2022-05-27 | 2023-12-26 | Western Digital Technologies, Inc. | Variable length ECC code according to data entropy in NVMe key value pair devices |
US11962333B2 (en) | 2022-08-19 | 2024-04-16 | Hong Kong Applied Science and Technology Research Institute Company Limited | Predicting compression ratio of data with compressible decision |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023511A (zh) * | 2012-12-05 | 2013-04-03 | 云之朗科技有限公司 | 一种应用的压缩编码方法及装置 |
US20140215170A1 (en) * | 2013-01-31 | 2014-07-31 | Futurewei Technologies, Inc. | Block Compression in a Key/Value Store |
US9246511B2 (en) * | 2012-03-20 | 2016-01-26 | Sandisk Technologies Inc. | Method and apparatus to process data based upon estimated compressibility of the data |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
US5467087A (en) * | 1992-12-18 | 1995-11-14 | Apple Computer, Inc. | High speed lossless data compression system |
US7190284B1 (en) | 1994-11-16 | 2007-03-13 | Dye Thomas A | Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent |
JPH08191427A (ja) * | 1995-01-09 | 1996-07-23 | Hitachi Ltd | 情報記録再生装置 |
US20030069963A1 (en) * | 2001-09-27 | 2003-04-10 | Nikil Jayant | System and method of quality of service signaling between client and server devices |
US8363837B2 (en) | 2005-02-28 | 2013-01-29 | HGST Netherlands B.V. | Data storage device with data transformation capability |
US7881544B2 (en) * | 2006-08-24 | 2011-02-01 | Dell Products L.P. | Methods and apparatus for reducing storage size |
US20100011012A1 (en) | 2008-07-09 | 2010-01-14 | Rawson Andrew R | Selective Compression Based on Data Type and Client Capability |
IL197882A (en) | 2009-03-24 | 2015-03-31 | Oleg Litvak | A method and device for compression of communication signals |
JP2011215986A (ja) * | 2010-04-01 | 2011-10-27 | Hitachi Solutions Ltd | ファイル圧縮管理システム |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
KR20120084180A (ko) * | 2011-01-19 | 2012-07-27 | 삼성전자주식회사 | 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치 |
US8527467B2 (en) * | 2011-06-30 | 2013-09-03 | International Business Machines Corporation | Compression-aware data storage tiering |
KR20130061254A (ko) * | 2011-12-01 | 2013-06-11 | 한국전자통신연구원 | 사전 자료구조 구현체에서의 압축/복원 방법 및 그 장치 |
US8751830B2 (en) | 2012-01-23 | 2014-06-10 | International Business Machines Corporation | Memory address translation-based data encryption/compression |
US8996787B2 (en) | 2012-02-06 | 2015-03-31 | Sandisk Technologies Inc. | Storage device aware of I/O transaction and stored data |
US9048862B2 (en) * | 2012-04-11 | 2015-06-02 | Netapp, Inc. | Systems and methods for selecting data compression for storage data in a storage system |
CN102761540B (zh) * | 2012-05-30 | 2014-11-19 | 北京奇虎科技有限公司 | 数据压缩方法、装置、系统以及服务器 |
US9355112B1 (en) | 2012-12-31 | 2016-05-31 | Emc Corporation | Optimizing compression based on data activity |
US20140244604A1 (en) * | 2013-02-28 | 2014-08-28 | Microsoft Corporation | Predicting data compressibility using data entropy estimation |
US9442949B2 (en) * | 2013-03-14 | 2016-09-13 | Futurewei Technologies, Inc. | System and method for compressing data in a database |
US9448738B2 (en) | 2013-03-15 | 2016-09-20 | Western Digital Technologies, Inc. | Compression and formatting of data for data storage systems |
WO2014155490A1 (ja) * | 2013-03-25 | 2014-10-02 | 三菱電機株式会社 | データ送信装置及びデータ送信方法及びプログラム |
US9575982B1 (en) | 2013-04-29 | 2017-02-21 | Amazon Technologies, Inc. | Size targeted database I/O compression |
KR101468336B1 (ko) * | 2013-11-25 | 2014-12-04 | 성균관대학교산학협력단 | 데이터 압축률 예측 기법에 기반한 데이터 분산 저장 방법, 이를 이용한 저장 장치 및 시스템 |
KR20160070512A (ko) * | 2014-12-10 | 2016-06-20 | 삼성전자주식회사 | 반도체 장치 및 그 동작 방법 |
WO2016105241A1 (en) | 2014-12-23 | 2016-06-30 | Emc Corporation | Selective compression in data storage systems |
CN105893337B (zh) * | 2015-01-04 | 2020-07-10 | 伊姆西Ip控股有限责任公司 | 用于文本压缩和解压缩的方法和设备 |
JP2016170453A (ja) | 2015-03-11 | 2016-09-23 | 日本電気株式会社 | データ格納制御装置、データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム |
US9940028B2 (en) * | 2015-11-13 | 2018-04-10 | Samsung Electronics Co., Ltd | Multimode storage device |
US10303759B2 (en) * | 2015-12-03 | 2019-05-28 | International Business Machines Corporation | Memory preserving parse tree based compression with entropy coding |
US10097202B1 (en) * | 2017-06-20 | 2018-10-09 | Samsung Electronics Co., Ltd. | SSD compression aware |
-
2017
- 2017-08-28 US US15/688,779 patent/US10097202B1/en active Active
-
2018
- 2018-04-20 KR KR1020180046218A patent/KR102378463B1/ko active IP Right Grant
- 2018-04-30 TW TW107114618A patent/TWI739002B/zh active
- 2018-06-15 CN CN201810620352.5A patent/CN109101524B/zh active Active
- 2018-06-19 JP JP2018115907A patent/JP7169098B2/ja active Active
- 2018-08-23 US US16/111,112 patent/US10461775B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9246511B2 (en) * | 2012-03-20 | 2016-01-26 | Sandisk Technologies Inc. | Method and apparatus to process data based upon estimated compressibility of the data |
CN103023511A (zh) * | 2012-12-05 | 2013-04-03 | 云之朗科技有限公司 | 一种应用的压缩编码方法及装置 |
US20140215170A1 (en) * | 2013-01-31 | 2014-07-31 | Futurewei Technologies, Inc. | Block Compression in a Key/Value Store |
Also Published As
Publication number | Publication date |
---|---|
US20190007058A1 (en) | 2019-01-03 |
JP2019008792A (ja) | 2019-01-17 |
US10097202B1 (en) | 2018-10-09 |
US10461775B2 (en) | 2019-10-29 |
KR20180138121A (ko) | 2018-12-28 |
JP7169098B2 (ja) | 2022-11-10 |
CN109101524A (zh) | 2018-12-28 |
KR102378463B1 (ko) | 2022-03-24 |
CN109101524B (zh) | 2023-11-24 |
TW201906326A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI739002B (zh) | 儲存驅動器及其上的壓縮系統及壓縮其上的資料的方法 | |
US10715177B2 (en) | Lossy compression drive | |
EP3108371B1 (en) | Modified memory compression | |
KR102069940B1 (ko) | 페이지 기반 압축 저장 관리 | |
JP5425286B2 (ja) | データ処理システムのメモリ使用状況を追跡する方法 | |
US10649905B2 (en) | Method and apparatus for storing data | |
CN111742291A (zh) | 具有用户空间闪存转换层的用户空间存储i/o栈的方法和系统 | |
CN113296709B (zh) | 用于去重的方法和设备 | |
JP2013521579A (ja) | データベースサーバのためのバッファプール拡張 | |
JP2008065834A (ja) | フュージョンメモリ装置及び方法 | |
CN105700821B (zh) | 半导体装置及其压缩/解压缩方法 | |
TW201512981A (zh) | 記憶體管理方法及記憶體管理裝置 | |
CN117407324B (zh) | 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 | |
US20220357980A1 (en) | Selectively offloading the compression and decompression of files to a hardware controller | |
US11714560B2 (en) | System and method for managing memory compression security | |
US11336294B2 (en) | Hybrid, adaptive virtual memory compression | |
US11431349B2 (en) | Method, electronic device and computer program product for processing data | |
CN111597773B (zh) | 一种压缩处理的方法、装置、计算机存储介质及终端 |