JP2017208096A5 - - Google Patents

Download PDF

Info

Publication number
JP2017208096A5
JP2017208096A5 JP2017099688A JP2017099688A JP2017208096A5 JP 2017208096 A5 JP2017208096 A5 JP 2017208096A5 JP 2017099688 A JP2017099688 A JP 2017099688A JP 2017099688 A JP2017099688 A JP 2017099688A JP 2017208096 A5 JP2017208096 A5 JP 2017208096A5
Authority
JP
Japan
Prior art keywords
hash
data
bucket
stored
plid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017099688A
Other languages
English (en)
Other versions
JP6920107B2 (ja
JP2017208096A (ja
Filing date
Publication date
Priority claimed from US15/161,136 external-priority patent/US9983821B2/en
Priority claimed from US15/162,517 external-priority patent/US10496543B2/en
Priority claimed from US15/476,757 external-priority patent/US10678704B2/en
Application filed filed Critical
Publication of JP2017208096A publication Critical patent/JP2017208096A/ja
Publication of JP2017208096A5 publication Critical patent/JP2017208096A5/ja
Application granted granted Critical
Publication of JP6920107B2 publication Critical patent/JP6920107B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (21)

  1. 重複除去モジュールに関連するメモリに格納されたデータを回収する方法であって、
    前記データの論理的アドレスを識別する段階と、
    変換テーブルの前記論理的アドレスの少なくとも一部を検索し前記論理的アドレスに従って、前記データがハッシュテーブルに格納されたか又はオーバーフローメモリ領域に格納されたかを示す第1識別子を含む前記データのPLID(物理的ラインID)を識別する段階と、
    前記第1識別子を用いて、前記データが前記ハッシュテーブルに格納されているか又は前記オーバーフローメモリ領域に格納されているかを判断する段階と、
    前記PLIDに対応す物理的ラインの位置を特定する段階と、
    前記物理的ラインから前記データを回収する段階と、を有し、
    前記データを回収する段階はハッシュシリンダ読出しキャッシュにコピーする段階を含み、
    前記ハッシュシリンダは、
    前記物理的ラインを含ハッシュバケットと、
    前記物理的ラインに関連す参照カウンターを含参照カウンターバケットと、を含むことを特徴とする方法。
  2. 前記PLIDは、前記データに適用された第1ハッシュ関数を利用して生成され、
    前記PLIDは、前記ハッシュテーブルの位置を示すアドレスを更に含むことを特徴とする請求項1に記載の方法。
  3. 前記PLIDは、
    前記データが格納された行を示す第2識別子と、
    前記データが格納された列を示す第3識別子と、を更に含むことを特徴とする請求項に記載の方法。
  4. 前記参照カウンターバケットは、参照カウンターテーブルの一部であり、
    前記ハッシュテーブル及び前記参照カウンターテーブルは、複合型データ構造の一部であり、
    前記複合型データ構造は、各署名バケットが複数の署名を含む複数の署名バケットを含む署名テーブルを更に含み、
    前記ハッシュシリンダは、前記複数の署名バケットのそれぞれの署名バケットを更に含み、
    前記それぞれの署名バケットは、前記物理的ラインに関連するそれぞれの署名を含むことを特徴とする請求項1に記載の方法。
  5. 前記PLIDは、前記データに適用された第1ハッシュ関数を利用して生成され、
    前記PLIDは、前記ハッシュテーブルの位置を示すアドレスを含み、
    前記複数の署名は、前記第1ハッシュ関数よりも小さい第2ハッシュ関数を利用して生成されることを特徴とする請求項に記載の方法。
  6. 前記参照カウンターは、前記ハッシュテーブルに格納された該当データに対する重複除去回数を追跡することを特徴とする請求項1に記載の方法。
  7. 重複除去エンジンに関連するメモリにデータを格納する方法であって、
    格納されるデータを識別する段階と、
    第1ハッシュ関数を利用して、前記データが前記メモリのハッシュテーブルに格納されなければならない物理的ラインに対応する第1ハッシュ値を決定する段階と、
    前記物理的ラインが利用可能な場合は前記第1ハッシュ値に対応する前記ハッシュテーブルの位置に、前記物理的ラインが利用できない場合はオーバーフローメモリ領域に対応する位置に前記データを格納する段階と、
    前記位置に応じて、前記データが前記ハッシュテーブルに格納されたか又は前記オーバーフローメモリ領域に格納されたかを示す第1識別子を含む前記データのPLID(物理的ラインID)を設定する段階と、
    前記第1ハッシュ関数よりも小さい第2ハッシュ関数を利用して前記データが格納されなければならない位置に対応する第2ハッシュ値を決定する段階と、
    前記メモリの変換テーブルに前記第1ハッシュ値を格納する段階と、
    前記メモリの署名テーブルに前記第2ハッシュ値を格納する段階と、を有することを特徴とする方法。
  8. 前記データに対応す参照カウンターテーブルの参照カウンターを増加させる段階を更に含むことを特徴とする請求項に記載の方法。
  9. 前記メモリは、
    複数のデータを格納する前記ハッシュテーブルと、
    前記第1ハッシュ関数を利用して生成される複数のPLID格納する前記変換テーブルと、
    前記第2ハッシュ関数を利用して生成される複数の署名を格納する前記署名テーブルと、
    各参照カウンターが前記ハッシュテーブルに格納された該当データに対する重複除去回数を追跡する複数の参照カウンターを格納する参照カウンターテーブルと、
    前記オーバーフローメモリ領域と、を含むことを特徴とする請求項に記載の方法。
  10. 前記複数のPLIDの各々は、
    前記データが格納された行を示す第2識別子と、
    前記データが格納された列を示す第3識別子と、を更に含むことを特徴とする請求項に記載の方法。
  11. 前記ハッシュテーブル、前記署名テーブル、及び前記参照カウンターテーブルは、複合型データ構造に統合され、
    前記複合型データ構造は、複数のハッシュシリンダを含み、
    各ハッシュシリンダは、
    複数の物理的ラインを含むハッシュバケットと、
    前記複数の物理的ラインに対応するそれぞれの署名を含む署名バケットと、
    前記複数の物理的ラインに対応するそれぞれの参照カウンターを含む参照カウンターバケットと、を含むことを特徴とする請求項に記載の方法。
  12. 前記第1ハッシュ値に対応する前記ハッシュテーブルの位置に前記データを格納する段階は、前記第1ハッシュ値に対応する前記ハッシュバケットに前記データを格納する段階を含み、
    前記メモリの署名テーブルに前記第2ハッシュ値を格納する段階は、前記データが格納された前記ハッシュバケットに対応する前記署名バケットに前記第2ハッシュ値を格納する段階を含むことを特徴とする請求項11に記載の方法。
  13. 読出しキャッシュと、
    ホストシステムからデータ回収要請を受信する重複除去エンジンと、
    メモリと、を備え、
    前記メモリは、変換テーブル及び複合型データ構造を含み、
    前記複合型データ構造は、
    各ハッシュバケットが各物理的ラインにデータを格納する複数の物理的ラインを含む複数のハッシュバケットを含むハッシュテーブルと、
    各参照カウンターバケットが複数の参照カウンターを含む複数の参照カウンターバケットを含む参照カウンターテーブルと、
    各ハッシュシリンダが前記ハッシュバケットの中の1つ及び前記参照カウンターバケットの中の1つを含む複数のハッシュシリンダと、を含み、
    前記データ回収要請は、前記重複除去エンジンが、
    前記データの論理的アドレスを識別し、
    前記変換テーブルの前記論理的アドレスの少なくとも一部を検索し前記論理的アドレスに従って、前記データが前記ハッシュテーブルに格納されたか又はオーバーフローメモリ領域に格納されたかを示す第1識別子を含む前記データのPLID(物理的ラインID)を識別し、
    前記第1識別子を用いて、前記データが前記ハッシュテーブルに格納されているか又は前記オーバーフローメモリ領域に格納されているかを判断し、
    前記PLIDに対応する前記複数の物理的ラインのそれぞれの物理的ラインの位置を特定し、
    前記ハッシュテーブル内又は前記オーバーフローメモリ領域内の前記それぞれの物理的ラインから前記データを回収することをもたらし、
    前記データの回収は、前記複数のハッシュシリンダのそれぞれのハッシュシリンダを前記読出しキャッシュにコピーすることを含み、
    前記それぞれのハッシュシリンダは、
    前記それぞれの物理的ラインを含む前記複数のハッシュバケットのそれぞれのハッシュバケットと、
    前記それぞれの物理的ラインに関連するそれぞれの参照カウンターを含む前記複数の参照カウンターバケットのそれぞれの参照カウンターバケットと、を含むことを特徴とする重複除去モジュール。
  14. 前記データ回収要請は、前記重複除去エンジンが、前記PLIDに基づいて、前記データが前記ハッシュテーブルに格納されていると判断することを更にもたらすことを特徴とする請求項13に記載の重複除去モジュール。
  15. 前記PLIDは、前記データに適用された第1ハッシュ関数を利用して生成され、
    前記PLIDは、前記ハッシュテーブルの位置を示すアドレスを含むことを特徴とする請求項13に記載の重複除去モジュール。
  16. 前記PLIDは、
    前記データが格納された行を示す第2識別子と、
    前記データが格納された列を示す第3識別子と、を更に含むことを特徴とする請求項15に記載の重複除去モジュール。
  17. 前記複合型データ構造は、各署名バケットが複数の署名を含む複数の署名バケットを含む署名テーブルを更に含み、
    前記それぞれのハッシュシリンダは、前記複数の署名バケットのそれぞれの署名バケットを更に含み、
    前記それぞれの署名バケットは、前記それぞれの物理的ラインに関連するそれぞれの署名を含むことを特徴とする請求項13に記載の重複除去モジュール。
  18. 前記PLIDは、前記データに適用された第1ハッシュ関数を利用して生成され、
    前記PLIDは、前記ハッシュテーブルの位置を示すアドレスを含み、
    前記複数の署名は、前記第1ハッシュ関数よりも小さい第2ハッシュ関数を利用して生成されることを特徴とする請求項17に記載の重複除去モジュール。
  19. 各参照カウンターは、前記ハッシュテーブルに格納された該当データに対する重複除去回数を追跡することを特徴とする請求項13に記載の重複除去モジュール。
  20. ホストインターフェイスと、
    前記ホストインターフェイスを通じてホストシステムからデータ伝送要請を受信する伝送管理部と、
    複数のパーティションと、を備え、
    各パーティションは、
    前記伝送管理部からパーティションデータ要請、及び前記ホストシステムからのデータ回収要請を受信する重複除去エンジンと、
    複数のメモリコントローラと、
    前記重複除去エンジンと前記メモリコントローラとの間に提供されるメモリ管理部と、
    各メモリモジュールが前記複数のメモリコントローラの中の1つに連結される複数のメモリモジュールと、を含み、
    前記データ回収要請は、前記重複除去エンジンが、
    前記メモリモジュール内の前記データの論理的アドレスを識別し、
    変換テーブル内の前記論理的アドレスの少なくとも一部を検索し、前記論理的アドレスに従って、前記データがハッシュテーブルに格納されたか又はオーバーフローメモリ領域に格納されたかを示す第1識別子を含む前記データのPLID(物理的ラインID)を識別し、
    物理的ラインの位置を特定し、
    前記PLIDに対応する前記ハッシュテーブル内又は前記オーバーフローメモリ領域内の前記物理的ラインから前記データを回収することをもたらすことを特徴とする重複除去モジュール。
  21. 読出しキャッシュと、
    メモリと、
    複数のハッシュバケットの第1ハッシュバケットに対するV個の仮想バケットを識別する重複除去エンジンと、を備え、
    前記メモリは、
    変換テーブルと、
    各ハッシュバケットが各物理的ラインにデータを格納する複数の物理的ラインを含む複数のハッシュバケットを含むハッシュテーブルと、
    各参照カウンターバケットが複数の参照カウンターを含む複数の参照カウンターバケットを含む参照カウンターテーブルと、を含み、
    前記仮想バケットは、前記第1ハッシュバケットに隣接する前記複数のハッシュバケットの中の他のものであり、
    前記仮想バケットは、前記第1ハッシュバケットがフルに満たされた場合、前記第1ハッシュバケットのデータの一部を格納し、
    前記Vは、前記第1ハッシュバケットの仮想バケットがフルに満たされた場合に動的に調節される整数であることを特徴とする重複除去モジュール。
JP2017099688A 2016-05-20 2017-05-19 データの取得方法及び格納方法並びに重複除去モジュール Active JP6920107B2 (ja)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
US15/161,136 2016-05-20
US15/161,136 US9983821B2 (en) 2016-03-29 2016-05-20 Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US15/162,517 US10496543B2 (en) 2016-03-31 2016-05-23 Virtual bucket multiple hash tables for efficient memory in-line deduplication application
US15/162,517 2016-05-23
US201662368775P 2016-07-29 2016-07-29
US62/368,775 2016-07-29
US201762450502P 2017-01-25 2017-01-25
US62/450,502 2017-01-25
US201762451157P 2017-01-27 2017-01-27
US62/451,157 2017-01-27
US201762453461P 2017-02-01 2017-02-01
US62/453,461 2017-02-01
US15/476,757 US10678704B2 (en) 2016-03-29 2017-03-31 Method and apparatus for enabling larger memory capacity than physical memory size
US15/476,757 2017-03-31

Publications (3)

Publication Number Publication Date
JP2017208096A JP2017208096A (ja) 2017-11-24
JP2017208096A5 true JP2017208096A5 (ja) 2020-07-02
JP6920107B2 JP6920107B2 (ja) 2021-08-18

Family

ID=60404742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017099688A Active JP6920107B2 (ja) 2016-05-20 2017-05-19 データの取得方法及び格納方法並びに重複除去モジュール

Country Status (4)

Country Link
JP (1) JP6920107B2 (ja)
KR (1) KR102190403B1 (ja)
CN (1) CN107402889B (ja)
TW (1) TWI804466B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983821B2 (en) * 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10705969B2 (en) * 2018-01-19 2020-07-07 Samsung Electronics Co., Ltd. Dedupe DRAM cache
KR102540964B1 (ko) * 2018-02-12 2023-06-07 삼성전자주식회사 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작
US11023374B2 (en) 2018-07-09 2021-06-01 Silicon Motion, Inc. Apparatus and method and computer program product for controlling data access
CN110765156A (zh) * 2018-07-09 2020-02-07 慧荣科技股份有限公司 链表搜索装置及方法
US10628072B2 (en) * 2018-08-21 2020-04-21 Samsung Electronics Co., Ltd. Scalable architecture enabling large memory system for in-memory computations
US11079954B2 (en) * 2018-08-21 2021-08-03 Samsung Electronics Co., Ltd. Embedded reference counter and special data pattern auto-detect
CN109299215B (zh) * 2018-09-28 2024-06-18 平安科技(深圳)有限公司 倒排索引查询的资源分配方法、装置及存储介质、服务器
CN112181242B (zh) * 2019-07-02 2021-11-02 北京百度网讯科技有限公司 页面展示方法及装置
CN114253472B (zh) * 2021-11-29 2023-09-22 郑州云海信息技术有限公司 一种元数据管理方法、设备及存储介质
KR102467372B1 (ko) * 2022-01-06 2022-11-14 삼성전자주식회사 스토리지 장치 및 이의 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796939A (en) * 1997-03-10 1998-08-18 Digital Equipment Corporation High frequency sampling of processor performance counters
JP2003030040A (ja) * 2001-07-12 2003-01-31 Nec Commun Syst Ltd オブジェクトデータベースシステムの複数ハッシュインデックスおよび非ユニークインデックス管理方式
US8407428B2 (en) 2010-05-20 2013-03-26 Hicamp Systems, Inc. Structured memory coprocessor
JP5026213B2 (ja) * 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
CN101655861B (zh) * 2009-09-08 2011-06-01 中国科学院计算技术研究所 基于双计数布鲁姆过滤器的哈希方法和哈希装置
US8370593B2 (en) * 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
JP5603997B2 (ja) 2010-10-26 2014-10-08 株式会社日立製作所 ストレージ装置及びデータ制御方法
US9047304B2 (en) * 2011-11-28 2015-06-02 International Business Machines Corporation Optimization of fingerprint-based deduplication
US8688661B2 (en) * 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9069782B2 (en) * 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9792063B2 (en) 2014-01-15 2017-10-17 Intel Corporation Deduplication-based data security
US9983821B2 (en) * 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10496543B2 (en) * 2016-03-31 2019-12-03 Samsung Electronics Co., Ltd. Virtual bucket multiple hash tables for efficient memory in-line deduplication application

Similar Documents

Publication Publication Date Title
JP2017208096A5 (ja)
US11216443B2 (en) Processing device configured for data integrity testing utilizing signature-based multi-phase write operations
US9891858B1 (en) Deduplication of regions with a storage system
US10761758B2 (en) Data aware deduplication object storage (DADOS)
US11620064B2 (en) Asynchronous semi-inline deduplication
EP3095029B1 (en) Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US20190391738A1 (en) Processing device configured for data integrity testing utilizing replicated test metadata file
US10127242B1 (en) Data de-duplication for information storage systems
US20180113631A1 (en) Enhancing flash translation layer to improve performance of databases and filesystems
TWI683217B (zh) 使用去重複dram系統演算法架構的去重複記憶體模組及其方法
US9779026B2 (en) Cache bypass utilizing a binary tree
US10254964B1 (en) Managing mapping information in a storage system
TW201741883A (zh) 能使記憶體容量較實體記憶體大小大的方法與去重複模組
WO2014018742A1 (en) Contention-free multi-path storage access in distributed compute systems
WO2016054212A1 (en) Efficient metadata in a storage system
US9110820B1 (en) Hybrid data storage system in an HPC exascale environment
US8799595B1 (en) Eliminating duplicate data in storage systems with boot consolidation
WO2015162469A1 (en) Unified caching of storage blocks and memory pages in a compute-node cluster
US10114566B1 (en) Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots
JP2017049806A (ja) ストレージ制御装置およびストレージ制御プログラム
US10528284B2 (en) Method and apparatus for enabling larger memory capacity than physical memory size
US9009204B2 (en) Storage system
CN110647476B (zh) 一种固态硬盘写数据的方法、装置、设备及存储介质
CN108614781B (zh) 基于NANDflash的有效数据查找方法和NANDflash存储设备
KR101341995B1 (ko) 공유 데이터 저장소 관리 장치 및 방법