JP6259868B2 - データ分配方法、データ記憶方法、関係する装置及びシステム - Google Patents

データ分配方法、データ記憶方法、関係する装置及びシステム Download PDF

Info

Publication number
JP6259868B2
JP6259868B2 JP2016111406A JP2016111406A JP6259868B2 JP 6259868 B2 JP6259868 B2 JP 6259868B2 JP 2016111406 A JP2016111406 A JP 2016111406A JP 2016111406 A JP2016111406 A JP 2016111406A JP 6259868 B2 JP6259868 B2 JP 6259868B2
Authority
JP
Japan
Prior art keywords
data
storage
data segment
stripe
segment
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.)
Active
Application number
JP2016111406A
Other languages
English (en)
Other versions
JP2017004513A (ja
Inventor
道▲輝▼ 王
道▲輝▼ 王
烽 ▲張▼
烽 ▲張▼
▲偉▼ 樊
▲偉▼ 樊
志▲楽▼ ▲張▼
志▲楽▼ ▲張▼
永▲強▼ ▲曾▼
永▲強▼ ▲曾▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017004513A publication Critical patent/JP2017004513A/ja
Application granted granted Critical
Publication of JP6259868B2 publication Critical patent/JP6259868B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明は、データ記憶の分野に関し、特にデータ分配方法、データ記憶方法、関係する装置及びシステムに関する。
現段階では、分散型記憶システムは、データを記憶するためにイレージャーコーディング(EC、Erasure coding)技術をますます使用している。イレージャーコーディング技術の原理は、データをm個のデータブロックに分割し、k個のパリティブロックを生成するために、冗長アルゴリズムを使用することによりm個のデータブロックにおいてパリティコーディングを実行することである。m個のデータブロック及びk個のパリティブロックは、1つのECストライプを構成する。各ECストライプは、k個のデータブロック又はパリティブロックの喪失を許容することができる。
イレージャーコーディング技術では、データ分配装置は、m個のデータブロック及びk個のパリティブロックを生成するためにデータにおいてイレージャーコーディングを実行し、次にm+k個の記憶ノードにm個のデータブロック及びk個のパリティブロックを分配する。複数のデータ分配装置が同じECストライプ内のデータを同時に読み取る場合又は書き込む場合、複数のデータ分配装置の間のコンフリクトの問題は、分散ロック(distributed lock)を使用することにより解決される必要がある。
しかし、分散ロックが複数のデータ分配装置の間のコンフリクトの問題を解決するために使用される場合、上位レイヤアプリケーションが異なるデータ分配装置を使用することによりIO要求を分配したときに、頻繁なロック競合及びロック切り替えがデータ分配装置の間で引き起こされる。ロック切り替えは比較的時間のかかる動作であるため、頻繁なロック切り替えは、比較的長い読み書き遅延を引き起こし、実際の適用要件を満たすことができない。
本発明の実施例は、分散型記憶システムの読み書き性能を改善するためのデータ分配方法を提供する。
本発明の実施例の第1の態様は、分散型記憶システムに適用されるデータ分配方法を提供し、分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を含み、各ECストライプのデータ部は、m個のデータブロックを含み、各ECストライプのパリティ部は、パリティコーディングがm個のデータブロックにおいて実行された後に取得されたk個のパリティブロックを含み、分散型記憶システムは、複数の記憶ノードを含み、複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、m及びkは共に正の整数であり、この方法は、記憶命令を受信するステップであり、記憶命令は、記憶されるべきデータを搬送するステップと、記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、Pは正の整数であるステップと、各データセグメントに対応する記憶ノードグループを決定するステップと、データセグメントに対応する決定された記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配するステップとを含む。
本発明の実施例の第1の態様を参照して、本発明の実施例の第1の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、記憶されるべきデータをP個のデータセグメントに分割するステップは、記憶されるべきデータの論理アドレスに従って、記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、論理パーティションの1つに入るステップを含む。
本発明の実施例の第1の態様の第1の実現方式を参照して、本発明の実施例の第1の態様の第2の実現方式では、P個のデータセグメント内の第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、P個のデータセグメント内の第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
本発明の実施例の第1の態様の第1の実現方式を参照して、本発明の実施例の第1の態様の第3の実現方式は、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録するステップを更に含み、各データセグメントに対応する記憶ノードグループを決定するステップは、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するステップを含む。
本発明の実施例の第1の態様の第3の実現方式を参照して、本発明の実施例の第1の態様の第4の実現方式では、各論理パーティションは、1つのkey値に一意に対応し、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録するステップは、各記憶ノードグループに対応するkey値を予め設定して記録するステップを含み、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するステップは、データセグメントが入る論理パーティションに従って、データセグメントのkey値を決定するステップと、データセグメントのkey値に従って、データセグメントに対応する記憶ノードグループを決定するステップとを含む。
本発明の実施例の第2の態様は、分散型記憶システムに適用されるデータ記憶方法を提供し、分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を含み、各ECストライプのデータ部は、m個のデータブロックを含み、各ECストライプのパリティ部は、パリティコーディングがm個のデータブロックにおいて実行された後に取得されたk個のパリティブロックを含み、分散型記憶システムは、複数の記憶ノードを含み、複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、m及びkは共に正の整数であり、複数の記憶ノードグループ内のいずれかの記憶ノードグループ内のプライマリ記憶ノードは、データ記憶方法を実行し、この方法は、第1のデータセグメントを受信するステップであり、第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるステップと、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含むステップと、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップであり、m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つを記憶することを担うステップとを含む。
本発明の実施例の第2の態様を参照して、本発明の実施例の第2の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、第1のデータセグメントは、論理パーティションの1つに入る。
本発明の実施例の第2の態様の第1の実現方式を参照して、本発明の実施例の第2の態様の第2の実現方式では、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配する前に、この方法は、第2のデータセグメントを受信するステップであり、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複するステップと、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含むステップとを更に含み、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップは、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するステップを具体的に含む。
本発明の実施例の第2の態様の第2の実現方式を参照して、本発明の実施例の第2の態様の第3の実現方式では、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、記憶を実行するために、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するステップは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプを分配し、m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプを分配するステップ、又は、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプを分配し、m+k個の記憶ノードが第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップを含む。
本発明の実施例の第2の態様の第1の実現方式を参照して、本発明の実施例の第2の態様の第4の実現方式では、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行する前に、この方法は、第3のデータセグメントを受信するステップであり、第3のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第3のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複しないステップと、第3のデータセグメントを第1のデータセグメントに結合し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するステップとを更に含む。
本発明の実施例の第2の態様又は第2の態様の第1〜第4の実現方式のいずれか1つを参照して、本発明の実施例の第2の態様の第5の実現方式では、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含むステップは、第1のデータセグメントのサイズがZに等しい場合、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップ、又は、第1のデータセグメントのサイズがZ未満である場合、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップを含む。
本発明の実施例の第3の態様は、分散型記憶システムに適用されるデータ分配装置を提供し、分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を含み、各ECストライプのデータ部は、m個のデータブロックを含み、各ECストライプのパリティ部は、パリティコーディングがm個のデータブロックにおいて実行された後に取得されたk個のパリティブロックを含み、分散型記憶システムは、複数の記憶ノードを含み、複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、m及びkは共に正の整数であり、データ分配装置は、記憶命令を受信するように構成された命令受信モジュールであり、記憶命令は、記憶されるべきデータを搬送する命令受信モジュールと、記憶されるべきデータをP個のデータセグメントに分割するように構成されたデータセグメント分割モジュールであり、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、Pは正の整数であるデータセグメント分割モジュールと、各データセグメントに対応する記憶ノードグループを決定するように構成されたノードグループ決定モジュールと、データセグメントに対応する決定された記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配するように構成されたデータセグメント分配モジュールとを含む。
本発明の実施例の第3の態様を参照して、本発明の実施例の第3の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、データセグメント分割モジュールは、記憶されるべきデータの論理アドレスに従って、記憶されるべきデータをP個のデータセグメントに分割するように具体的に構成され、各データセグメントは、論理パーティションの1つに入る。
本発明の実施例の第3の態様の第1の実現方式を参照して、本発明の実施例の第3の態様の第2の実現方式では、P個のデータセグメント内の第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、P個のデータセグメント内の第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
本発明の実施例の第3の態様の第1の実現方式を参照して、本発明の実施例の第3の態様の第3の実現方式では、データ分配装置は、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録するように構成された対応関係モジュールを更に含み、ノードグループ決定モジュールは、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するように具体的に構成される。
本発明の実施例の第3の態様の第3の実現方式を参照して、本発明の実施例の第3の態様の第4の実現方式では、各論理パーティションは、1つのkey値に一意に対応し、対応関係モジュールは、各記憶ノードグループに対応するkey値を予め設定して記録するように具体的に構成され、ノードグループ決定モジュールは、データセグメントが入る論理パーティションに従って、データセグメントのkey値を決定し、データセグメントのkey値に従って、データセグメントに対応する記憶ノードグループを決定するように具体的に構成される。
本発明の実施例の第4の態様は、分散型記憶システムに適用されるデータ記憶装置を提供し、分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を含み、各ECストライプのデータ部は、m個のデータブロックを含み、各ECストライプのパリティ部は、パリティコーディングがm個のデータブロックにおいて実行された後に取得されたk個のパリティブロックを含み、分散型記憶システムは、複数の記憶ノードを含み、複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、m及びkは共に正の整数であり、データ記憶装置は、複数の記憶ノードグループ内のいずれかの記憶ノードグループ内のプライマリ記憶ノードに配置され、データ記憶装置は、第1のデータセグメントを受信するように構成されたデータ受信モジュールであり、第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるデータ受信モジュールと、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するように構成されたデータコーディングモジュールであり、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含むデータコーディングモジュールと、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するように構成されたデータ分配モジュールであり、m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つを記憶することを担うデータ分配モジュールとを含む。
本発明の実施例の第4の態様を参照して、本発明の実施例の第4の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、第1のデータセグメントは、論理パーティションの1つに入る。
本発明の実施例の第4の態様の第1の実現方式を参照して、本発明の実施例の第4の態様の第2の実現方式では、データ受信モジュールは、第2のデータセグメントを受信するように更に構成され、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複し、データコーディングモジュールは、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行するように更に構成され、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含み、データ分配モジュールは、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するように具体的に構成される。
本発明の実施例の第4の態様の第2の実現方式を参照して、本発明の実施例の第4の態様の第3の実現方式では、データ分配モジュールは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプを分配し、m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプを分配するように具体的に構成される、或いは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプを分配し、m+k個の記憶ノードが第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するように具体的に構成される。
本発明の実施例の第4の態様の第1の実現方式を参照して、本発明の実施例の第4の態様の第4の実現方式では、データ受信モジュールは、第3のデータセグメントを受信するように更に構成され、第3のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第3のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複せず、データコーディングモジュールは、第3のデータセグメントが受信されたとデータ受信モジュールが決定した後に、第3のデータセグメントを第1のデータセグメントに結合し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するように更に構成される。
本発明の実施例の第4の態様又は第4の態様の第1〜第4の実現方式のいずれか1つを参照して、本発明の実施例の第4の態様の第5の実現方式では、データコーディングモジュールは、第1のデータセグメントのサイズがZに等しい場合、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するように更に構成される、或いは、第1のデータセグメントのサイズがZ未満である場合、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するように更に構成される。
本発明の実施例の第5の態様は、データ分配装置を提供し、データ分配装置は、入力装置と、出力装置と、プロセッサと、メモリとを含み、メモリに記憶された動作命令を呼び出すことにより、プロセッサは、記憶命令を受信するように構成され、記憶命令は、記憶されるべきデータを搬送し、記憶されるべきデータをP個のデータセグメントに分割するように構成され、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、Pは正の整数であり、各データセグメントに対応する記憶ノードグループを決定し、データセグメントに対応する決定された記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配するように構成される。
本発明の実施例の第5の態様を参照して、本発明の実施例の第5の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、プロセッサは、記憶されるべきデータの論理アドレスに従って、記憶されるべきデータをP個のデータセグメントに分割するように更に構成され、各データセグメントは、論理パーティションの1つに入る。
本発明の実施例の第5の態様の第1の実現方式を参照して、本発明の実施例の第5の態様の第2の実現方式では、P個のデータセグメント内の第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、P個のデータセグメント内の第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
本発明の実施例の第5の態様の第1の実現方式を参照して、本発明の実施例の第5の態様の第3の実現方式では、プロセッサは、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録し、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するように更に構成される。
本発明の実施例の第5の態様の第3の実現方式を参照して、本発明の実施例の第5の態様の第4の実現方式では、各論理パーティションは、1つのkey値に一意に対応し、プロセッサは、各記憶ノードグループに対応するkey値を予め設定して記録し、データセグメントが入る論理パーティションに従って、データセグメントのkey値を決定し、データセグメントのkey値に従って、データセグメントに対応する記憶ノードグループを決定するように更に構成される。
本発明の実施例の第6の態様は、データ記憶装置を提供し、データ記憶装置は、入力装置と、出力装置と、プロセッサと、メモリとを含み、メモリに記憶された動作命令を呼び出すことにより、プロセッサは、第1のデータセグメントを受信するように構成され、第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するように構成され、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含み、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するように構成され、m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つを記憶することを担う。
本発明の実施例の第6の態様を参照して、本発明の実施例の第6の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、第1のデータセグメントは、論理パーティションの1つに入る。
本発明の実施例の第6の態様の第1の実現方式を参照して、本発明の実施例の第6の態様の第2の実現方式では、プロセッサは、第2のデータセグメントを受信するように更に構成され、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複し、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行するように更に構成され、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含み、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するように更に構成される。
本発明の実施例の第6の態様の第2の実現方式を参照して、本発明の実施例の第6の態様の第3の実現方式では、プロセッサは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプを分配し、m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプを分配するように更に構成される、或いは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプを分配し、m+k個の記憶ノードが第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するように構成される。
本発明の実施例の第6の態様の第1の実現方式を参照して、本発明の実施例の第6の態様の第4の実現方式では、プロセッサは、第3のデータセグメントを受信するように更に構成され、第3のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第3のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複せず、第3のデータセグメントを第1のデータセグメントに結合し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するように更に構成される。
本発明の実施例の第6の態様又は第6の態様の第1〜第4の実現方式のいずれか1つを参照して、本発明の実施例の第6の態様の第5の実現方式では、プロセッサは、第1のデータセグメントのサイズがZに等しい場合、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するように更に構成される、或いは、第1のデータセグメントのサイズがZ未満である場合、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するように更に構成される。
本発明の実施例の第7の態様は、コンピュータ実行可能命令を含むコンピュータ読み取り可能媒体を提供し、コンピュータのプロセッサがコンピュータ実行可能命令を実行した場合、コンピュータは、以下の方法、すなわち、記憶命令を受信するステップであり、記憶命令は、記憶されるべきデータを搬送するステップと、記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、Pは正の整数であるステップと、各データセグメントに対応する記憶ノードグループを決定するステップと、データセグメントに対応する決定された記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配するステップとを実行する。
本発明の実施例の第7の態様を参照して、本発明の実施例の第7の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、コンピュータは、以下の方法、すなわち、記憶されるべきデータの論理アドレスに従って、記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、論理パーティションの1つに入るステップを更に実行する。
本発明の実施例の第7の態様の第1の実現方式を参照して、本発明の実施例の第7の態様の第2の実現方式では、P個のデータセグメント内の第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、P個のデータセグメント内の第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
本発明の実施例の第7の態様の第1の実現方式を参照して、本発明の実施例の第7の態様の第3の実現方式では、コンピュータは、以下の方法、すなわち、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録するステップと、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するステップとを更に実行する。
本発明の実施例の第7の態様の第3の実現方式を参照して、本発明の実施例の第7の態様の第4の実現方式では、各論理パーティションは、1つのkey値に一意に対応し、コンピュータは、以下の方法、すなわち、各記憶ノードグループに対応するkey値を予め設定して記録するステップと、データセグメントが入る論理パーティションに従って、データセグメントのkey値を決定するステップと、データセグメントのkey値に従って、データセグメントに対応する記憶ノードグループを決定するステップとを更に実行する。
本発明の実施例の第8の態様は、コンピュータ実行可能命令を含むコンピュータ読み取り可能媒体を提供し、コンピュータのプロセッサがコンピュータ実行可能命令を実行した場合、コンピュータは、以下の方法、すなわち、第1のデータセグメントを受信するステップであり、第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるステップと、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含むステップと、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップであり、m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つを記憶することを担うステップとを実行する。
本発明の実施例の第8の態様を参照して、本発明の実施例の第8の態様の第1の実現方式では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、第1のデータセグメントは、論理パーティションの1つに入る。
本発明の実施例の第8の態様の第1の実現方式を参照して、本発明の実施例の第8の態様の第2の実現方式では、コンピュータは、以下の方法、すなわち、第2のデータセグメントを受信するステップであり、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複するステップと、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含むステップと、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するステップとを更に実行する。
本発明の実施例の第8の態様の第2の実現方式を参照して、本発明の実施例の第8の態様の第3の実現方式では、コンピュータは、以下の方法、すなわち、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプを分配し、m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプを分配するステップ、又は、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプを分配し、m+k個の記憶ノードが第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップを更に実行する。
本発明の実施例の第8の態様の第1の実現方式を参照して、本発明の実施例の第8の態様の第4の実現方式では、コンピュータは、以下の方法、すなわち、第3のデータセグメントを受信するステップであり、第3のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第3のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複しないステップと、第3のデータセグメントを第1のデータセグメントに結合し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するステップとを更に実行する。
本発明の実施例の第8の態様又は第8の態様の第1〜第4の実現方式のいずれか1つを参照して、本発明の実施例の第8の態様の第5の実現方式では、コンピュータは、以下の方法、すなわち、第1のデータセグメントのサイズがZに等しい場合、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップ、又は、第1のデータセグメントのサイズがZ未満である場合、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップを更に実行する。
本発明の実施例の第9の態様は、複数の記憶ノードを含む分散型記憶システムを提供し、分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を含み、各ECストライプのデータ部は、m個のデータブロックを含み、各ECストライプのパリティ部は、パリティコーディングがm個のデータブロックにおいて実行された後に取得されたk個のパリティブロックを含み、複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、m及びkは共に正の整数であり、記憶システムは、本発明の実施例の第4の態様若しくは第4の態様の第1〜第5の実現方式のいずれか1つにより提供されるデータ記憶装置、又は本発明の実施例の第6の態様若しくは第6の態様の第1〜第5の実現方式のいずれか1つにより提供されるデータ記憶装置、又は本発明の実施例の第8の態様若しくは第8の態様の第1〜第5の実現方式のいずれか1つにより提供されるコンピュータ読み取り可能媒体を更に含む。
本発明の実施例により提供されるデータ分配方法では、データ分配装置は、記憶されるべきデータを決定し、P個のデータセグメントを取得するために、論理パーティションに従って記憶されるべきデータを分割し、各データセグメントに対応するノードグループを決定し、対応するノードグループ内のプライマリノードにデータセグメントを分配する。本発明の実施例では、データ分配装置は、記憶されるべきデータを予め設定されたサイズに分割し、次に、分散型記憶システムのノードグループ内のプライマリノードにデータを分配し、プライマリノードは、データにおいてイレージャーコーディングを実行する。データ分配装置自体は、データにおいてイレージャーコーディングを実行しない。このように、複数のデータ分配装置が同じECストライプ内のデータを同時に読み取る或いは書き込むという問題は存在せず、データ分配装置の間でコンフリクトは存在しない。従って、本発明の実施例では、分散ロックは、データ分配装置の間の読み書きのコンフリクトを解決するために、データ分配装置の間で使用される必要はなく、読み書き遅延がロック競合により引き起こされることが回避され、分散型記憶システムの読み書き性能が改善され、実際の適用要件を満たすことができる。
ECストライプの構成図 本発明の実施例による分散型記憶システムの概略構成図 本発明の実施例によるデータ分配方法の実施例のフローチャート 本発明の実施例によるデータ記憶方法の実施例のフローチャート 本発明の実施例によるデータ分配装置の実施例の構成図 本発明の実施例によるデータ記憶装置の実施例の構成図 本発明の実施例によるデータ分配装置の他の実施例の構成図 本発明の実施例によるデータ記憶装置の他の実施例の構成図
本発明の実施例は、分散型記憶システムの性能を改善するためのデータ分配方法を提供する。本発明の実施例は、関係するデータ記憶方法、関係する装置、及びシステムを更に提供し、これらについて以下に別々に説明する。
分散型記憶システムは、複数の記憶ノードを含む。上位レイヤデータ分配装置は、記憶されるべきデータを複数のデータブロックに分割し、次に、記憶を実行するために、分散型記憶システムの複数の記憶ノードにデータブロックを分配する。データの分散型記憶は、データ喪失リスクを低減し、分散型記憶システムの信頼性を改善することができる。データ分配装置は、クライアント、サーバ、又は他のデバイスでもよい。
EC技術の原理は、記憶されるべきデータをm個のデータブロックに分割し、k個のパリティブロックを生成するために、冗長アルゴリズムを使用することによりm個のデータブロックにおいてパリティコーディングを実行することである。m個のデータブロック及びk個のパリティブロックは、1つのECストライプを構成する。ECストライプの基本的な構成について、図1(a)を参照する。各データブロック又はパリティブロックは、EC blockと呼ばれてもよい。各ECストライプは、k個のEC blockの喪失を許容することができる。分散型記憶システムがデータ記憶を実行するためにEC技術を使用する場合、データ分配装置は、記憶されるべきデータに従って複数のECストライプを生成し、記憶を実行するために、分散型記憶システムのm+k個の記憶ノードに各ECストライプのm+k個のEC blockを分配する。このように、分散型記憶システム内のノードが故障した場合、故障したノードに記憶されたEC blockは、故障していないノードにおけるEC blockに従って回復されることができる。ECストライプを記憶するm+k個の記憶ノード内のk個より多くの記憶ノードが故障しない限り、ECストライプのデータは、データ分配装置により完全に読み取り又は書き込み可能である。従って、データを記憶するためにEC技術を使用する分散型記憶システムは、非常に信頼性が高い。
分散型記憶システムに記憶されたECストライプは、データ分配装置により読み取り又は上書き可能である。ECストライプを読み取る場合、データ分配装置は、ECストライプからデータを記憶するデータブロックを読み取る必要があるだけである点に留意すべきである。しかし、ECストライプが上書きされる場合、例えば、ECストライプのm個のデータブロック内の第iのデータブロックが上書きされる場合、ECストライプの他のデータブロックが変更される必要はないが、ECストライプのパリティブロックを再生成することが必要である。
複数のデータ分配装置がECストライプ内のデータを同時に読み取る場合又は書き込む場合、読み書きのコンフリクトが引き起こされる可能性があり、複数のデータ分配装置の間のコンフリクトの問題は、分散ロックを使用することにより解決される必要がある。しかし、分散ロックが複数のデータ分配装置の間のコンフリクトの問題を解決するために使用される場合、上位レイヤアプリケーションが異なるデータ分配装置を使用することによりIO要求を分配したときに、頻繁なロック競合及びロック切り替えがデータ分配装置の間で引き起こされる。ロック切り替えは比較的時間のかかる動作であるため、頻繁なロック切り替えは、比較的長い読み書き遅延を引き起こし、実際の適用要件を満たすことができない。
本発明の実施例は、前述の問題を解決するための信頼できるデータ分配方法及びデータ記憶方法を提供することに専念する。まず、本発明の実施例では、分散型記憶システム内の記憶ノードがグループ化される。具体的に、記憶ノードは、複数の記憶ノードグループにグループ化され、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノード(以下では略してプライマリノード)が各記憶ノードグループ内で指定される。プライマリ記憶ノードは、データ分配装置と相互作用することを担い、データ記憶を実行するために、プライマリ記憶ノードが属する記憶ノードグループ内のノードを制御することを更に担う。記憶ノードグループ内の他の記憶ノードは、セカンダリ記憶ノード(以下では略してセカンダリノード)である。m及びkは共に正の整数である。異なる記憶ノードグループは、二重の記憶ノードを有してもよい。例えば、記憶ノードグループ1内のプライマリノードは、記憶ノードグループ2内のセカンダリノードでもよい。図1(b)は、本発明の実施例による分散型記憶システムの概略構成図である。図1(b)は、分散型記憶システムの組成的な構成のみを示すために使用され、分散型記憶システム内に記憶ノードの他の構成が存在してもよい。
記憶ノードグループは、複数の方式で維持管理されてもよく、例えば、更なるノードグループ管理モジュールが配置されてもよい。ノードグループ管理モジュールは、データ分配装置に配置されてもよく、記憶ノードに配置されてもよい。これは、本発明の実施例では限定されない。ノードグループ管理モジュールは、各記憶ノードグループを維持管理することを担う。具体的に、ノードグループ管理モジュールは、各記憶ノードグループに含まれる記憶ノードについての情報を収集し、プライマリノードを決定し、ハートビート接続を使用することにより各記憶ノードの状態をリアルタイムで監視することを担ってもよい。記憶ノードの状態が変化した場合、又はノードグループ内のプライマリノードが変化した場合、ノードグループ管理モジュールは、収集された情報を更新する必要がある。ノードグループ管理モジュールは、各データ分配装置及び記憶ノードが各ノードグループについての情報を習得することができるように、記録するために、収集された情報を各データ分配装置及び記憶ノードに通知する。ノードグループ管理モジュールにより収集された情報は、簡単に表1の形式で表されてもよい。
Figure 0006259868
表1は、ノードグループ管理モジュールにより収集された情報の単なる表現形式である。ノードグループ管理モジュールは、収集された情報を表すために他の形式を使用してもよい。これは、本発明の実施例では限定されない。
本発明の実施例では、データ分配装置は、記憶されるべきデータを複数のデータセグメントに分割し、対応するノードグループのプライマリノードに各データセグメントを分配する。この手順については、図2を参照する。
201.記憶命令を受信する。
データ分配装置は、ユーザの記憶命令を受信し、記憶命令は、記憶されるべきデータを記憶するように命令するために使用される。
202.記憶されるべきデータをP個のデータセグメントに分割する。
データ分配装置は、記憶されるべきデータをP個のデータセグメントに分割し、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズである。
203.各データセグメントに対応する記憶ノードグループを決定する。
データ分配装置は、各データセグメントに対応する記憶ノードグループを決定する。複数の決定方法が存在し、これらについては以下の実施例で詳細に説明し、ここでは限定されない。
204.対応する記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配する。
各データセグメントに対応する記憶ノードグループを決定した後に、データ分配装置は、データセグメントに対応する記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配する。
この実施例は、データ分配方法を提供し、データ分配装置は、ユーザの記憶命令を受信し、記憶命令が記憶するように命令した記憶されるべきデータをP個のデータセグメントに分割し、各データセグメントに対応する記憶ノードグループを決定し、最後に、対応する記憶ノードグループ内のプライマリノードにデータセグメントを分配する。この実施例では、データ分配装置は、記憶ノードへの分割後に取得されたデータセグメントを直接分配し、記憶されるべきデータにおいてイレージャーコーディングをもはや実行しないため、コンフリクトの問題を解決するために分散ロックを使用する必要はなく、頻繁なロック切り替えが引き起こされず、分散型記憶システムの性能が改善される。
ステップ201において、データ分配装置は、記憶命令を解析し、記憶されるべきデータの開始アドレス、サイズ又は他の情報を取得してもよい。ステップ202において、データ分配装置によりデータセグメントを取得するために分割を実行するための複数の方法が存在する。例えば、分散型記憶システムの論理ボリューム(Logical Volume)は、複数の論理パーティションを含んでもよく、論理パーティションはそれぞれZのサイズを有し、互いに重複しない。データセグメントを取得するために分割を実行する場合、データ分配装置は、記憶されるべきデータの論理アドレスに従って、1つの論理パーティションに入るデータを1つのデータセグメントとして取得するために、分割を実行してもよい。例えば、Zが4Mである場合、分散型記憶システムの論理ボリュームは、複数の論理パーティションに分割されてもよい。第1の論理パーティションの論理アドレスは0M〜4Mであり、第2の論理パーティションの論理アドレスは4M〜8Mであり、第3の論理パーティションの論理アドレスは8M〜12M...である。記憶されるべきデータの論理アドレスが5M〜12Mであると仮定すると、5M〜8Mは第2の論理パーティションの論理アドレスの範囲に入り、8M〜12Mは第3の論理パーティションの論理アドレスの範囲に入るため、データ分配装置は、5M〜12Mの記憶されるべきデータを2つのデータセグメントに分割し、2つのデータセグメントの論理アドレスは、それぞれ5M〜8M及び8M〜12Mである。
前述の段落の例から、記憶されるべきデータを分割することにより取得されたP個のデータセグメントでは、第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
分散型記憶システムの論理ボリュームが複数の論理パーティションに分割される場合、各論理パーティションと各記憶ノードグループとの間の対応関係が予め設定されてもよい。このように、ステップ203において、データ分配装置は、各データセグメントが入る論理パーティションに対応する記憶ノードグループが、データセグメントに対応する記憶ノードグループであると決定してもよい。より具体的には、分散型記憶システムの各論理パーティションに一意のkey値が設定されてもよく、データ分配装置は、各記憶ノードグループに対応するkey値を予め設定して記録する。このように、データ分配装置は、各データセグメントが入る論理パーティションに対応するkey値がデータセグメントに対応するkey値であると決定し、次に、各データセグメントのkey値と記憶ノードグループとの間の対応関係に従って、各データセグメントに対応する記憶ノードグループを決定してもよい。
分散型記憶システム内の複数の上位レイヤデータ分配装置の全てがデータ分配を実行するためにステップ201〜ステップ204の方法を使用する場合、データセグメントが複数のデータ分配装置により分配されるとしても、分配されたデータセグメントが分散型記憶システムの同じ論理パーティションに入る限り、データセグメントは同じノードグループのプライマリノードに分配されることが認識され得る。
データ分配装置により分配されたデータセグメントを受信した後に、プライマリノードは、ECストライプを取得するために、受信したデータセグメントにおいてイレージャーコーディングを実行し、記憶を実行するために、ECストライプ内のm+k個のEC blockを、プライマリノードが属するノードグループ内のm+k個の記憶ノードに割り当てる。図2に示す実施例では、データ分配装置は、合計でP個のデータセグメントを分配するため、P個の記憶ノードグループのプライマリノードにP個のデータセグメントを分配する必要がある。図3を参照すると、以下では、説明の例として記憶ノードグループ内のプライマリノードを使用する。
301.第1のデータセグメントを受信する。
プライマリノードは、データ分配装置により分配された第1のデータセグメントを受信し、第1のデータセグメントは、データ分配装置により分配されたP個のデータセグメント内のデータセグメントである。第1のデータセグメントのサイズはZより大きくない。
特に、データ分配装置が分散型記憶システムの論理パーティションに従ってデータセグメントを取得するために分割を実行するとき、第1のデータセグメントがP個のデータセグメント内の最初又は最後のデータセグメントである場合、第1のデータセグメントのサイズはZ未満でもよい。第1のデータセグメントがP個のデータセグメント内の第2〜第(P-1)のデータセグメント内のいずれかのデータセグメントである場合、第1のデータセグメントのサイズはZに等しいべきである。
302.第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行する。
プライマリノードは、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行する。第1のECストライプは、m+k個の第1のEC blockを含み、これらは別々にm個の第1のデータブロック及びk個の第1のパリティブロックである。
303.記憶を実行するために、プライマリノードが属するノードグループ内のm+k個のノードにm+k個の第1のEC blockをそれぞれ分配する。
プライマリノードは、記憶を実行するために、プライマリノードが属する記憶ノードグループ内のm+k個の記憶ノードにそれぞれ第1のECストライプのm個の第1のデータブロック及びk個の第1のパリティブロックを分配し、m+k個の記憶ノード内の各記憶ノードは、1つの第1のEC blockに記憶することを担う。プライマリノード自体は、EC block(第1のデータブロックでもよく、第1のパリティブロックでもよい)を記憶し、次に、記憶のために、残りのm+k-1個の第1のEC blockをm+k-1個のセカンダリノードに送信してもよい。各セカンダリノードは、1つの第1のEC blockを記憶する。プライマリノードはまた、第1のEC blockを記憶せず、記憶のために、m+k個の第1のEC blockをm+k個のセカンダリノードに直接送信してもよい。これは、この実施例では限定されない。
図2に示す実施例は、データ分配装置によりデータを分配する方法を提供する。対応して、この実施例は、データ分配装置により分配されたデータを記憶するために使用されるデータ記憶方法を提供する。プライマリノードは、データ分配装置により分配された第1のデータセグメントを受信し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行し、記憶を実行するために、第1のECストライプのm+k個のデータブロックをm+k個の記憶ノードに割り当てる。従来技術と比べて、この実施例により提供される方法では、データ分配装置により元々実行されるイレージャーコーディング動作は、代わりにプライマリノードにより実行される。このように、データ分配装置により実行されるイレージャーコーディングにより引き起こされるコンフリクトの問題は存在せず、更に、コンフリクトの問題を解決するために分散ロックを使用する必要はない。従って、頻繁なロック切り替えが引き起こされず、分散型記憶システムの性能が改善される。
分散型記憶システム内のいずれかの記憶ノードグループのプライマリノードは、図3に示す実施例により提供されるデータ記憶方法を実行してもよいことが認識され得る。
前述の実施例では、分散型記憶システムの論理ボリュームが互いに重複しない複数の論理パーティションを含んでもよく、データ分配装置が1つの論理パーティションに入るデータを1つのデータセグメントとして取得するために分割を実行することが言及された。更に、記憶ノードグループと論理パーティションとの間に対応関係が存在する。この実施例では、プライマリノードにより受信される第1のデータセグメントの論理アドレスは、プライマリノードが属する記憶ノードグループに対応する論理パーティションに入るべきであることが認識され得る。異なる記憶ノードグループのプライマリノードにより受信されるデータセグメントの論理アドレスは互いに重複しないことが認識され得る。
ECストライプを生成する場合、プライマリノードは、ECストライプに対応するバージョン番号を更に生成してもよい。
実際のアプリケーションでは、第1のデータセグメントを受信する場合、プライマリノードはまた、同じ或いは他のデータ分配装置により分配されたデータセグメントを受信してもよい。この場合、プライマリノードにより実行されるイレージャーコーディングは、以下の場合に分類されてもよい。
場合1:プライマリノードは、第2のデータセグメントを受信し、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複する。プライマリノードは、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行し、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含む。プライマリノードは、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配する。具体的に、プライマリノードがまず第1のデータセグメントを受信し、次に第2のデータセグメントを受信した場合、プライマリノードは、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプのm+k個の第1のEC blockをそれぞれ分配し、m+k個の記憶ノードにより送信された応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプのm+k個の第2のEC blockをそれぞれ分配する。応答メッセージは、第1のデータセグメントがm+k個の記憶ノードに成功して記憶されたことを示すために使用され、第2のECストライプのバージョン番号は、第1のECストライプのバージョン番号より大きい。プライマリノードがまず第2のデータセグメントを受信し、次に第1のデータセグメントを受信した場合、プライマリノードは、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプのm+k個の第2のEC blockをそれぞれ分配し、次に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプのm+k個の第1のEC blockをそれぞれ分配する。第1のECストライプのバージョン番号は、第2のECストライプのバージョン番号より大きい。
場合2:プライマリノードは、第3のデータセグメントを受信し、第1のデータセグメント及び第3のデータセグメントは、同じ論理パーティションに入り、第1のデータセグメントの論理アドレスは、第3のデータセグメントの論理アドレスと重複しない。この場合、プライマリノードは、第3のデータセグメントを第1のデータセグメントに結合し、次に、結合された第1のデータセグメントを、ステップ302においてコーディングされるべき第1のデータセグメントとして使用し、次に、ステップ302及びステップ303を実行し続ける。例えば、第1のデータセグメントの論理アドレスの範囲は4M〜5Mであり、第3のデータセグメントの論理アドレスの範囲は5M〜8Mであり、第1のデータセグメント及び第3のデータセグメントの論理アドレスは、論理パーティション4M〜8Mに全て入る。プライマリノードは、第3のデータセグメントを第1のデータセグメントに結合し、次に、第1のECストライプを取得するために、結合された第1のデータセグメントに従ってイレージャーコーディングを実行する。
場合3:プライマリノードは、第4のデータセグメントを受信し、第1のデータセグメント及び第4のデータセグメントは、異なる論理パーティションに入る。一般的に、この場合は、2つ以上の記憶ノードグループ内のプライマリノードである記憶ノード、又は複数の論理パーティションに対応する同じ記憶ノードグループ内のプライマリノードで生じる。この場合、第1のデータセグメント及び第4のデータセグメントは、異なる論理パーティションに入る。従って、第1のデータセグメントの論理アドレスは、第4のデータセグメントの論理アドレスと重複せず、プライマリノードは、第1のデータセグメント及び第4のデータセグメントにおいてコーディング及びデータ分配を通常通り実行する必要があるだけである。これは、記憶のコンフリクトを引き起こさない。前述の3つの場合は、プライマリノードが2つのデータセグメントを同時に受信するシナリオだけでなく、プライマリノードが3つ以上のデータセグメントを同時に受信するシナリオにおいても使用されてもよい。これは、この実施例では限定されない。
図2に示す実施例で言及したように、分散型記憶システムの各論理パーティションは、一意のkey値に対応し、各データセグメントが入る論理パーティションのkey値は、データセグメントのkey値である。場合1では、第1のデータセグメント及び第2のデータセグメントは同じ論理パーティションに入るため、第1のデータセグメント及び第2のデータセグメントは同じkey値を有する。場合2では、第1のデータセグメント及び第3のデータセグメントは同じ論理パーティションに入るため、第1のデータセグメント及び第3のデータセグメントは同じkey値を有する。場合3では、第1のデータセグメント及び第4のデータセグメントは異なる論理パーティションに入るため、第1のデータセグメント及び第4のデータセグメントは異なるkey値を有する。プライマリノードは、データセグメントのkey値に従って、2つのデータセグメントが同じ論理パーティションに入るか否かを決定してもよい。
特に、データセグメントのkey値は、ECストライプのデータ部の論理アドレスの範囲を識別するために、対応するECストライプのkey値として使用されてもよい。ECストライプのkey値は、ECストライプの各EC block内で搬送されてもよい。
ステップ302において、プライマリノードは、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行する。具体的に、第1のデータセグメントのサイズがZである場合、第1のデータセグメントは、ちょうどm個の第1のデータブロックに分割されてもよい。次に、プライマリノードは、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行する。このように、第1のECストライプが取得される。
第1のデータセグメントのサイズがZ未満である場合、第1のデータセグメントは、m個のデータブロックへの分割には十分ではない。プライマリノードは、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントを、ステップ302においてコーディングされるべき第1のデータセグメントとして使用し、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップを実行する必要がある。第1のデータセグメントが論理パーティションに入ることができることを確保するために、プライマリノードは、第1のデータセグメントを補うために、記憶されたデータから、第1のデータセグメントの論理パーティションと同じ論理パーティションに入るデータを選択するべきである。例えば、第1のデータセグメントの論理アドレスが5M〜8Mであり、論理パーティション4M〜8Mに入る場合、プライマリノードは、論理アドレスが4M〜8Mになるように、第1のデータセグメントを補うために論理アドレスが4M〜5Mである記憶されたデータを選択するべきである。
プライマリノードにより第2、第3及び第4のデータセグメントに従ってイレージャーコーディングを実行する方法は、第1のデータセグメントに従ってイレージャーコーディングを実行する方法と同様であり、ここでは繰り返されない。
前述の実施例を理解するのを容易にするために、以下では、説明のために前述の実施例の具体的な適用シナリオを使用する。
分散型記憶システムの上位レイヤは、データ分配装置A及びデータ分配装置Bを含む。分散型記憶システムは、ECストライプを使用することによりデータを記憶し、各ECストライプは、4つのデータブロック及び2つのパリティブロックを含む。分散型記憶システムは、100個の記憶ノードグループを含み、プライマリノードが各記憶ノードグループ内で指定される。記憶ノードグループ1は6個の記憶ノードを含み、プライマリノードはノードAであり、セカンダリノードはノードB、ノードC、ノードD、ノードE及びノードFである。分散型記憶システムの論理ボリュームは、複数の論理パーティションに分割され、各論理パーティションのサイズは4Mであり、すなわち、第1の論理パーティションの論理アドレスの範囲は0M〜4Mであり、第2の論理パーティションの論理アドレスの範囲は4M〜8Mであり、第3の論理パーティションの論理アドレスの範囲は8M〜12M...である。各論理パーティションは、一意のkey値に対応し、第1の論理パーティションに対応するkey値は1であり、第2の論理パーティションに対応するkey値は2であり、第3の論理パーティションに対応するkey値は3...である。
データ分配装置Aは、ユーザの記憶命令を受信し、記憶命令は、記憶されるべきデータを搬送し、記憶されるべきデータの論理アドレスは5M〜12Mである。
5M〜8Mは第2の論理パーティションに入り、8M〜12Mは第3の論理パーティションに入るため、データ分配装置Aは、記憶されるべきデータを2つのデータセグメントに分割し、データセグメント1の論理アドレスは5M〜8Mであり、key値は2であり、データセグメント2の論理アドレスは8M〜12Mであり、key値は3である。
データ分配装置Aは、key値と記憶ノードグループとの間の対応関係を予め設定して記録し、key値2が記憶ノードグループ1に対応し、key値3が記憶ノードグループ6に対応すると決定する。
データ分配装置Aは、記憶ノードグループ1のプライマリノード(すなわち、ノードA)にデータセグメント1を分配し、記憶ノードグループ6のプライマリノードにデータセグメント2を分配する。
ノードAは、データセグメント1を受信し、その後、データ分配装置Bにより分配されたデータセグメント3を更に受信し、データセグメント3の論理アドレスは4M〜7Mである。ノードAは、データセグメント1の4M〜5Mの部分のデータを補い、次に、ECストライプ1を取得するために、補われたデータセグメント1においてイレージャーコーディングを実行する。ECストライプ1のkey値は2であり、バージョン番号は1である。ノードAは、データセグメント3の7M〜8Mの部分のデータを更に補い、次に、ECストライプ3を取得するために、補われたデータセグメント3においてイレージャーコーディングを実行する。ECストライプ3のkey値も2であり、バージョン番号は2である。各ECストライプは、6個のEC blockを含み、これらは、4つのデータブロック及び2つのパリティブロックである。
ECストライプ1について、ノードA自体は、ECストライプ1の1つのEC blockを記憶し、ノードB〜FがECストライプ1の1つのEC blockをそれぞれ記憶するように、記憶のためにノードB〜Fに5つの残りのEC blockを分配する。ECストライプ1のEC blockを成功して記憶した後に、ノードB〜Fは、応答メッセージをノードAに送信し、応答メッセージを受信した後に、ノードA自体は、ECストライプ2の1つのEC blockを記憶し、ノードB〜FがECストライプ2の1つのEC blockをそれぞれ記憶するように、記憶のためにノードB〜Fに5つの残りのEC blockを分配する。
前述は、本発明の実施例におけるデータ分配及びデータ記憶方法を詳細に説明している。以下の実施例は、前述の方法を実現する対応する装置を提供する。
図4を参照すると、本発明の実施例により提供されるデータ分配装置の基本的な構成は、記憶命令を受信するように構成された命令受信モジュール401であり、記憶命令は、記憶されるべきデータを搬送する命令受信モジュール401と、記憶されるべきデータをP個のデータセグメントに分割するように構成されたデータセグメント分割モジュール402であり、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、Pは正の整数であるデータセグメント分割モジュール402と、各データセグメントに対応する記憶ノードグループを決定するように構成されたノードグループ決定モジュール403と、ノードグループ決定モジュール403により決定された、各データセグメントに対応する決定された記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配するように構成されたデータセグメント分配モジュール404とを含む。
この実施例により提供されるデータ分配装置では、命令受信モジュール401は、ユーザの記憶命令を受信し、データセグメント分割モジュール402は、記憶命令が記憶するように命令した記憶されるべきデータをP個のデータセグメントに分割し、ノードグループ決定モジュール403は、各データセグメントに対応する記憶ノードグループを決定し、データセグメント分配モジュール404は、対応する記憶ノードグループ内のプライマリノードにデータセグメントを分配する。この実施例では、データ分配装置は、記憶ノードへの分割後に取得されたデータセグメントを直接分配し、記憶されるべきデータにおいてイレージャーコーディングをもはや実行しないため、コンフリクトの問題を解決するために分散ロックを使用する必要はなく、頻繁なロック切り替えが引き起こされず、分散型記憶システムの性能が改善される。
好ましくは、本発明の更に他の実施例では、分散型記憶システムの論理ボリュームは、複数の論理パーティションに分割され、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、データセグメント分割モジュール402は、記憶されるべきデータの論理アドレスに従って、記憶されるべきデータをP個のデータセグメントに分割するように具体的に構成され、各データセグメントは、1つの論理パーティションに入る。
好ましくは、本発明の更に他の実施例では、データセグメント分割モジュール402による分割により取得されたP個のデータセグメントにおいて、第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
好ましくは、本発明の更に他の実施例では、データ分配装置は、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録するように構成された対応関係モジュール405を更に含み、ノードグループ決定モジュール403は、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するように具体的に構成される。対応関係モジュール405は、任意選択のモジュールであり、データ分配装置は、対応関係モジュール405を有さなくてもよい。
好ましくは、本発明の更に他の実施例では、分散型記憶システムの各論理パーティションは、1つのkey値に一意に対応し、対応関係モジュール405は、記憶ノードグループに対応するkey値を予め設定して記録するように具体的に構成され、ノードグループ決定モジュール403は、データセグメントが入る論理パーティションに従って、データセグメントのkey値を決定し、データセグメントのkey値に従って、データセグメントに対応する記憶ノードグループを決定するように具体的に構成される。
本発明の実施例は、分散型記憶システムのいずれかの記憶ノードグループ内のプライマリノードに適用される関係するデータ記憶装置を更に提供する。図5を参照すると、データ記憶装置の基本的な構成は、第1のデータセグメントを受信するように構成されたデータ受信モジュール501であり、第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるデータ受信モジュール501と、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するように構成されたデータコーディングモジュール502であり、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含むデータコーディングモジュール502と、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するように構成されたデータ分配モジュール503であり、m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つを記憶することを担うデータ分配モジュール503とを含む。
図4に示す実施例は、データ分配装置を提供する。対応して、この実施例は、データ分配装置により分配されたデータを記憶するように構成されたデータ記憶装置を提供する。プライマリノードのデータ記憶装置では、データ受信モジュール501は、データ分配装置により分配された第1のデータセグメントを受信し、データコーディングモジュール502は、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行し、データ分配モジュール503は、記憶を実行するために、m+k個の記憶ノードに第1のECストライプのm+k個のデータブロックを分配する。従来技術と比べて、この実施例では、データ分配装置により元々実行されるイレージャーコーディング動作は、代わりにデータ記憶装置により実行される。このように、データ分配装置により実行されるイレージャーコーディングにより引き起こされるコンフリクトの問題は存在せず、更に、コンフリクトの問題を解決するために分散ロックを使用する必要はない。従って、頻繁なロック切り替えが引き起こされず、分散型記憶システムの性能が改善される。
好ましくは、本発明の更に他の実施例では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複しない。第1のデータセグメントは、1つの論理パーティションに入る。
好ましくは、本発明の更に他の実施例では、データ受信モジュール501は、第2のデータセグメントを受信するように更に構成され、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複し、データコーディングモジュール502は、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行するように更に構成され、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含み、データ分配モジュール503は、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、記憶を実行するために、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するように具体的に構成される。連続分配動作の目的は、m+k個の記憶ノードにおいて第1のECストライプ及び第2のECストライプの記憶のコンフリクトを回避するためのものである。m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つと、第2のECストライプのm個の第2のデータブロック又はk個の第2のパリティブロックのいずれか1つを記憶することを担う。好ましくは、本発明の更に他の実施例では、データ分配モジュール503は、以下の方法を使用することにより、連続分配順序に従って、記憶を実行するために、m+k個の記憶ノードに連続して第1のECストライプ及び第2のECストライプを連続して分配する。すなわち、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプを分配し、m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプを分配する、或いは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプを分配し、m+k個の記憶ノードが第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配する。
好ましくは、本発明の更に他の実施例では、データ受信モジュール501は、第3のデータセグメントを受信するように更に構成され、第3のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第3のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複せず、データコーディングモジュール502は、第3のデータセグメントを第1のデータセグメントに結合し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するように更に構成される。
好ましくは、本発明の更に他の実施例では、データコーディングモジュール502は、以下の方法を使用することにより、第1のデータセグメントにおいてイレージャーコーディングを実行する。すなわち、第1のデータセグメントのサイズがZに等しい場合、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行する、或いは、第1のデータセグメントのサイズがZ未満である場合、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行する。
前述の実施例を理解するのを容易にするために、以下では、説明のために前述の実施例の具体的な適用シナリオを使用する。
分散型記憶システムの上位レイヤは、データ分配装置A及びデータ分配装置Bを含む。分散型記憶システムは、ECストライプを使用することによりデータを記憶し、各ECストライプは、4つのデータブロック及び2つのパリティブロックを含む。分散型記憶システムは、100個の記憶ノードグループを含み、プライマリノードが各記憶ノードグループ内で指定される。記憶ノードグループ1は6個の記憶ノードを含み、プライマリノードはノードAであり、セカンダリノードはノードB、ノードC、ノードD、ノードE及びノードFである。分散型記憶システムの論理ボリュームは、複数の論理パーティションに分割され、各論理パーティションのサイズは4Mであり、すなわち、第1の論理パーティションの論理アドレスの範囲は0M〜4Mであり、第2の論理パーティションの論理アドレスの範囲は4M〜8Mであり、第3の論理パーティションの論理アドレスの範囲は8M〜12M...である。各論理パーティションは、一意のkey値に対応し、第1の論理パーティションに対応するkey値は1であり、第2の論理パーティションに対応するkey値は2であり、第3の論理パーティションに対応するkey値は3...である。
データ分配装置Aの命令受信モジュール401は、ユーザの記憶命令を受信し、記憶命令は、記憶されるべきデータを搬送し、記憶されるべきデータの論理アドレスは5M〜12Mである。
5M〜8Mは第2の論理パーティションに入り、8M〜12Mは第3の論理パーティションに入るため、データセグメント分割モジュール402は、記憶されるべきデータを2つのデータセグメントに分割し、データセグメント1の論理アドレスは5M〜8Mであり、key値は2であり、データセグメント2の論理アドレスは8M〜12Mであり、key値は3である。
ノードグループ決定モジュール403は、key値と記憶ノードグループとの間の対応関係を予め設定して記録し、key値2が記憶ノードグループ1に対応し、key値3が記憶ノードグループ6に対応すると決定する。
データセグメント分配モジュール404は、記憶ノードグループ1のプライマリノード(すなわち、ノードA)にデータセグメント1を分配し、記憶ノードグループ6のプライマリノードにデータセグメント2を分配する。
ノードAのデータ受信モジュール501は、データセグメント1を受信し、その後、データ分配装置Bにより分配されたデータセグメント3を更に受信し、データセグメント3の論理アドレスは4M〜7Mである。データコーディングモジュール502は、データセグメント1の4M〜5Mの部分のデータを補い、次に、ECストライプ1を取得するために、補われたデータセグメント1においてイレージャーコーディングを実行する。ECストライプ1のkey値は2であり、バージョン番号は1である。データコーディングモジュール502は、データセグメント3の7M〜8Mの部分のデータを更に補い、次に、ECストライプ3を取得するために、補われたデータセグメント3においてイレージャーコーディングを実行する。ECストライプ3のkey値も2であり、バージョン番号は2である。各ECストライプは、6個のEC blockを含み、これらは、4つのデータブロック及び2つのパリティブロックである。
データ分配モジュール503は、ECストライプ1の1つのEC blockをノードAに割り当て、ノードB〜FがECストライプ1の1つのEC blockをそれぞれ記憶するように、記憶のためにノードB〜Fに5つの残りのEC blockを分配する。ECストライプ1のEC blockを成功して記憶した後に、ノードB〜Fは、応答メッセージをノードAに送信し、ノードAが応答メッセージを受信し、ECストライプ2の1つのEC blockを記憶した後に、データ分配モジュール503は、ノードB〜FがECストライプ2の1つのEC blockをそれぞれ記憶するように、記憶のためにノードB〜Fに5つの残りのEC blockを分配する。
本発明の実施例におけるデータ分配装置は、モジュール機能エンティティの観点から前述された。以下では、ハードウェア処理の観点から本発明の実施例におけるデータ分配装置を説明する。図6を参照すると、本発明の実施例におけるデータ分配装置600の他の実施例は、入力装置601と、出力装置602と、プロセッサ603と、メモリ604とを含む(データ分配装置600に1つ以上のプロセッサ603が存在してもよく、図6では、1つのプロセッサ603が一例として使用される)。本発明の或る実施例では、入力装置601、出力装置602、プロセッサ603及びメモリ604は、バスにより或いは他の方式で接続されてもよく、図6では、バスを使用することによる接続が一例として使用される。
メモリ604に記憶された動作命令を呼び出すことにより、プロセッサ603は、以下のステップ、すなわち、記憶命令を受信するステップであり、記憶命令は、記憶されるべきデータを搬送するステップと、記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであり、Pは正の整数であるステップと、各データセグメントに対応する記憶ノードグループを決定するステップと、データセグメントに対応する決定された記憶ノードグループ内のプライマリ記憶ノードにデータセグメントを分配するステップとを実行するように構成される。
本発明の或る実施例では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、プロセッサ603は、以下のステップ、すなわち、記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、論理パーティションの1つに入るステップを実行するように更に構成される。
本発明の或る実施例では、P個のデータセグメント内の第1のデータセグメントの開始アドレスは、記憶されるべきデータの開始アドレスであり、P個のデータセグメント内の第pのデータセグメントの開始アドレスは、第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pである。
本発明の或る実施例では、プロセッサ603は、以下のステップ、すなわち、各論理パーティションと各記憶ノードグループとの間の対応関係を予め設定して記録するステップと、各論理パーティションと各記憶ノードグループとの間の対応関係に従って、データセグメントが入る論理パーティションに対応する記憶ノードグループを決定するステップとを実行するように更に構成される。
本発明の或る実施例では、各論理パーティションは、1つのkey値に一意に対応し、プロセッサ603は、以下のステップ、すなわち、各記憶ノードグループに対応するkey値を予め設定して記録するステップと、データセグメントが入る論理パーティションに従って、データセグメントのkey値を決定するステップと、データセグメントのkey値に従って、データセグメントに対応する記憶ノードグループを決定するステップとを実行するように更に構成される。
以下では、ハードウェア処理の観点から本発明の実施例におけるデータ記憶装置を説明する。図7を参照すると、本発明の実施例におけるデータ記憶装置700の他の実施例は、入力装置701と、出力装置702と、プロセッサ703と、メモリ704とを含む(データ記憶装置700に1つ以上のプロセッサ703が存在してもよく、図7では、1つのプロセッサ703が一例として使用される)。本発明の或る実施例では、入力装置701、出力装置702、プロセッサ703及びメモリ704は、バスにより或いは他の方式で接続されてもよく、図7では、バスを使用することによる接続が一例として使用される。
メモリ704に記憶された動作命令を呼び出すことにより、プロセッサ703は、以下のステップ、すなわち、第1のデータセグメントを受信するステップであり、第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるステップと、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを含むステップと、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップであり、m+k個の記憶ノード内の各記憶ノードは、第1のECストライプのm個の第1のデータブロック又はk個の第1のパリティブロックのいずれか1つを記憶することを担うステップとを実行するように構成される。
本発明の或る実施例では、分散型記憶システムの論理ボリュームは、複数の論理パーティションを含み、論理パーティションはそれぞれZのサイズを有し、互いに重複せず、第1のデータセグメントは、論理パーティションの1つに入る。
本発明の或る実施例では、プロセッサ703は、以下のステップ、すなわち、第2のデータセグメントを受信するステップであり、第2のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第2のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複するステップと、第2のECストライプを取得するために、第2のデータセグメントに従ってイレージャーコーディングを実行するステップであり、第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを含むステップと、第1のECストライプ及び第2のECストライプの連続分配順序を決定し、連続分配順序に従って、m+k個の記憶ノードに第1のECストライプ及び第2のECストライプを連続して分配するステップとを実行するように更に構成される。
本発明の或る実施例では、プロセッサ703は、以下のステップ、すなわち、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まずm+k個の記憶ノードに第1のECストライプを分配するステップと、m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第2のECストライプを分配するステップとを実行するように、或いは、第1のデータセグメントの受信時間が第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まずm+k個の記憶ノードに第2のECストライプを分配するステップと、m+k個の記憶ノードが第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、m+k個の記憶ノードに第1のECストライプを分配するステップとを実行するように更に構成される。
本発明の或る実施例では、プロセッサ703は、以下のステップ、すなわち、第3のデータセグメントを受信するステップであり、第3のデータセグメント及び第1のデータセグメントは、同じ論理パーティションに入り、第3のデータセグメントの論理アドレスは、第1のデータセグメントの論理アドレスと重複しないステップと、第3のデータセグメントを第1のデータセグメントに結合し、第1のECストライプを取得するために、第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するステップとを実行するように更に構成される。
本発明の或る実施例では、プロセッサ703は、以下のステップ、すなわち、第1のデータセグメントのサイズがZに等しい場合、第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップを実行するように、或いは、第1のデータセグメントのサイズがZ未満である場合、サイズがZに等しくなるように第1のデータセグメントを補うために記憶されたデータを使用し、次に、補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、m個の第1のデータブロックにおいてパリティコーディングを実行するステップを実行するように更に構成される。
本発明の実施例は、分散型記憶システムを更に提供する。分散型記憶システムは、複数の記憶ノードを含む。分散型記憶システムは、ECストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を含み、各ECストライプのデータ部は、m個のデータブロックを含み、各ECストライプのパリティ部は、パリティコーディングがm個のデータブロックにおいて実行された後に取得されたk個のパリティブロックを含み、複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、m及びkは共に正の整数である。
分散型記憶システムは、図5又は図7に示すデータ記憶装置を更に含む。
便利且つ簡潔な説明の目的で、前述のシステム、装置及びユニットの詳細な動作処理について、前述の方法の実施例における対応する処理に参照が行われてもよく、詳細はここでは再び説明しないことが当業者により明確に認識され得る。
本出願で提供される複数の実施例では、開示のシステム、装置及び方法は、他の方式で実現されてもよいことが認識されるべきである。例えば、記載の装置の実施例は単なる例である。例えば、ユニットの分割は、単に論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは結合されてもよく、他のシステムに統合されてもよく、いくつかの機能が無視されてもよく実行されなくてもよい。更に、表示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを通じて実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電気的、機械的又は他の形式で実現されてもよい。
別々の部分として記載したユニットは、物理的に別々でもよく別々でなくてもよく、ユニットとして表示された部分は、物理的なユニットでもよく物理的なユニットでなくてもよく、1つの位置に存在してもよく、複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施例の対策の目的を達成するために、実際のニーズに従って選択されてもよい。
更に、本発明の実施例における機能ユニットは、1つの処理ユニットに統合されてもよく、ユニットのそれぞれが物理的に単独で存在してもよく、2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形式で実現されてもよく、ソフトウェアの機能ユニットの形式で実現されてもよい。
統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立したプロダクトとして販売又は使用される場合、統合されたユニットは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、基本的に本発明の技術的対策若しくは従来技術に寄与する部分、又は技術的対策の一部若しくは全部は、ソフトウェアプロダクトの形式で実現されてもよい。コンピュータソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ又はネットワークデバイス等でもよい)に対して本発明の実施例に記載の方法のステップの全部又は一部を実行するように命令する複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読み取り専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク又は光ディスクのようなプログラムコードを記憶することができるいずれかの媒体を含む。
前述の実施例は、単に本発明の技術的対策を説明することを意図するものであり、本発明を限定することを意図するものではない。前述の実施例を参照して本発明について詳細に説明したが、当業者は、本発明の実施例の技術的対策の範囲を逸脱することなく、依然として前述の実施例に記載の技術的対策に変更を行ってもよく、そのいくつかの技術的特徴に等価置換を行ってもよいことを認識するべきである。

Claims (19)

  1. 分散型記憶システムに適用されるデータ分配方法であり、前記分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を有し、各ECストライプの前記データ部は、m個のデータブロックを有し、各ECストライプの前記パリティ部は、前記m個のデータブロックにおいて実行されるパリティコーディングの後に取得されたk個のパリティブロックを有し、前記分散型記憶システムは、複数の記憶ノードを有し、前記複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、前記m及びkは共に正の整数であり、前記分散型記憶システムの論理ボリュームは、複数の論理パーティションを有し、前記論理パーティションはそれぞれZのサイズを有し、互いに重複しないデータ分配方法であって、
    記憶命令を受信するステップであり、前記記憶命令は、記憶されるべきデータを搬送するステップと、
    前記記憶されるべきデータの論理アドレスに従って、前記記憶されるべきデータをP個のデータセグメントに分割するステップであり、各データセグメントは、前記論理パーティションの1つに入り、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、前記Zはm個のデータブロックのサイズであり、前記Pは正の整数であり、前記P個のデータセグメント内の第1のデータセグメントの開始アドレスは、前記記憶されるべきデータの開始アドレスであり、前記P個のデータセグメント内の第pのデータセグメントの開始アドレスは、前記第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pであるステップと、
    各データセグメントに対応する記憶ノードグループを決定するステップと、
    前記データセグメントに対応する前記決定された記憶ノードグループ内のプライマリ記憶ノードに前記データセグメントを分配するステップと
    を有するデータ分配方法。
  2. 各論理パーティションと各記憶ノードグループとの間の対応関係を設定するステップを更に有し、
    各データセグメントに対応する記憶ノードグループを決定するステップは、
    各論理パーティションと各記憶ノードグループとの間の前記対応関係に従って、前記データセグメントが入る論理パーティションに対応する前記記憶ノードグループを決定するステップを有する、請求項に記載のデータ分配方法。
  3. 各論理パーティションは、1つのkey値に一意に対応し、各論理パーティションと各記憶ノードグループとの間の対応関係を設定するステップは、
    各記憶ノードグループに対応するkey値を設定するステップを有し、
    各論理パーティションと各記憶ノードグループとの間の前記対応関係に従って、前記データセグメントが入る論理パーティションに対応する前記記憶ノードグループを決定するステップは、
    前記データセグメントが入る前記論理パーティションに従って、前記データセグメントのkey値を決定するステップと、
    前記データセグメントの前記key値に従って、前記データセグメントに対応する前記記憶ノードグループを決定するステップと
    を有する、請求項に記載のデータ分配方法。
  4. 分散型記憶システムに適用されるデータ記憶方法であり、前記分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を有し、各ECストライプの前記データ部は、m個のデータブロックを有し、各ECストライプの前記パリティ部は、前記m個のデータブロックにおいて実行されるパリティコーディングの後に取得されたk個のパリティブロックを有し、前記分散型記憶システムは、複数の記憶ノードを有し、前記複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、前記m及びkは共に正の整数であり、前記複数の記憶ノードグループ内のいずれかの記憶ノードグループ内のプライマリ記憶ノードが前記データ記憶方法を実行するデータ記憶方法であって、
    第1のデータセグメントを受信するステップであり、前記第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるステップと、
    第1のECストライプを取得するために、前記第1のデータセグメントに従ってイレージャーコーディングを実行するステップであり、前記第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを有するステップと、
    記憶を実行するために、m+k個の記憶ノードに前記第1のECストライプを分配するステップであり、前記m+k個の記憶ノード内の各記憶ノードは、前記第1のECストライプの前記m個の第1のデータブロック又は前記k個の第1のパリティブロックのいずれか1つを記憶することを担うステップと
    を有し、
    第1のECストライプを取得するために、前記第1のデータセグメントに従ってイレージャーコーディングを実行するステップであり、前記第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを有するステップは、
    前記第1のデータセグメントのサイズがZに等しい場合、前記第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、前記m個の第1のデータブロックにおいてパリティコーディングを実行するステップ、又は、
    前記第1のデータセグメントの前記サイズがZ未満である場合、前記サイズがZに等しくなるように前記第1のデータセグメントを補うために記憶されたデータを使用し、次に、前記補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、前記m個の第1のデータブロックにおいてパリティコーディングを実行するステップ
    を有するデータ記憶方法。
  5. 前記分散型記憶システムの論理ボリュームは、複数の論理パーティションを有し、前記論理パーティションはそれぞれZのサイズを有し、互いに重複せず、前記第1のデータセグメントは、前記論理パーティションの1つに入る、請求項に記載のデータ記憶方法。
  6. 記憶を実行するために、m+k個の記憶ノードに前記第1のECストライプを分配する前に、
    第2のデータセグメントを受信するステップであり、前記第2のデータセグメント及び前記第1のデータセグメントは、同じ論理パーティションに入り、前記第2のデータセグメントの論理アドレスは、前記第1のデータセグメントの論理アドレスと重複するステップと、
    第2のECストライプを取得するために、前記第2のデータセグメントに従ってイレージャーコーディングを実行するステップであり、前記第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを有するステップと
    を更に有し、
    記憶を実行するために、m+k個の記憶ノードに前記第1のECストライプを分配するステップは、
    前記第1のECストライプ及び前記第2のECストライプの連続分配順序を決定し、前記連続分配順序に従って、前記m+k個の記憶ノードに前記第1のECストライプ及び前記第2のECストライプを連続して分配するステップを有する、請求項に記載のデータ記憶方法。
  7. 前記第1のECストライプ及び前記第2のECストライプの連続分配順序を決定し、記憶を実行するために、前記連続分配順序に従って、前記m+k個の記憶ノードに前記第1のECストライプ及び前記第2のECストライプを連続して分配するステップは、
    前記第1のデータセグメントの受信時間が前記第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まず前記m+k個の記憶ノードに前記第1のECストライプを分配し、前記m+k個の記憶ノードが第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、前記m+k個の記憶ノードに前記第2のECストライプを分配するステップ、又は、
    前記第1のデータセグメントの受信時間が前記第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まず前記m+k個の記憶ノードに前記第2のECストライプを分配し、前記m+k個の記憶ノードが前記第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、前記m+k個の記憶ノードに前記第1のECストライプを分配するステップ
    を有する、請求項に記載のデータ記憶方法。
  8. 第1のECストライプを取得するために、前記第1のデータセグメントに従ってイレージャーコーディングを実行する前に、
    第3のデータセグメントを受信するステップであり、前記第3のデータセグメント及び前記第1のデータセグメントは、同じ論理パーティションに入り、前記第3のデータセグメントの論理アドレスは、前記第1のデータセグメントの論理アドレスと重複しないステップと、
    前記第3のデータセグメントを前記第1のデータセグメントに結合し、第1のECストライプを取得するために、前記第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するステップと
    を更に有する、請求項ないしのうちいずれか1項に記載のデータ記憶方法。
  9. 分散型記憶システムに適用されるデータ分配装置であり、前記分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を有し、各ECストライプの前記データ部は、m個のデータブロックを有し、各ECストライプの前記パリティ部は、前記m個のデータブロックにおいて実行されるパリティコーディングの後に取得されたk個のパリティブロックを有し、前記分散型記憶システムは、複数の記憶ノードを有し、前記複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、前記m及びkは共に正の整数であり、前記分散型記憶システムの論理ボリュームは、複数の論理パーティションを有し、前記論理パーティションはそれぞれZのサイズを有し、互いに重複しないデータ分配装置であって、
    記憶命令を受信するように構成された命令受信モジュールであり、前記記憶命令は、記憶されるべきデータを搬送する命令受信モジュールと、
    前記記憶されるべきデータの論理アドレスに従って、前記記憶されるべきデータをP個のデータセグメントに分割するように構成されたデータセグメント分割モジュールであり、各データセグメントは、前記論理パーティションの1つに入り、各データセグメントは、1つのECストライプに対応し、各データセグメントのサイズはZより大きくなく、前記Zはm個のデータブロックのサイズであり、前記Pは正の整数であり、前記P個のデータセグメント内の第1のデータセグメントの開始アドレスは、前記記憶されるべきデータの開始アドレスであり、前記P個のデータセグメント内の第pのデータセグメントの開始アドレスは、前記第pのデータセグメントが入る論理パーティションの開始アドレスであり、2≦p≦Pであるデータセグメント分割モジュールと、
    各データセグメントに対応する記憶ノードグループを決定するように構成されたノードグループ決定モジュールと、
    前記データセグメントに対応する前記決定された記憶ノードグループ内のプライマリ記憶ノードに前記データセグメントを分配するように構成されたデータセグメント分配モジュールと
    を有するデータ分配装置。
  10. 前記データ分配装置は、各論理パーティションと各記憶ノードグループとの間の対応関係を設定するように構成された対応関係モジュールを更に有し、
    前記ノードグループ決定モジュールは、各論理パーティションと各記憶ノードグループとの間の前記対応関係に従って、前記データセグメントが入る論理パーティションに対応する前記記憶ノードグループを決定するように構成される、請求項に記載のデータ分配装置。
  11. 各論理パーティションは、1つのkey値に一意に対応し、
    前記対応関係モジュールは、各記憶ノードグループに対応するkey値を設定するように構成され、
    前記ノードグループ決定モジュールは、前記データセグメントが入る前記論理パーティションに従って、前記データセグメントのkey値を決定し、前記データセグメントの前記key値に従って、前記データセグメントに対応する前記記憶ノードグループを決定するように構成される、請求項10に記載のデータ分配装置。
  12. 分散型記憶システムに適用されるデータ記憶装置であり、前記分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を有し、各ECストライプの前記データ部は、m個のデータブロックを有し、各ECストライプの前記パリティ部は、前記m個のデータブロックにおいて実行されるパリティコーディングの後に取得されたk個のパリティブロックを有し、前記分散型記憶システムは、複数の記憶ノードを有し、前記複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、前記m及びkは共に正の整数であり、前記データ記憶装置は、前記複数の記憶ノードグループ内のいずれかの記憶ノードグループ内のプライマリ記憶ノードに配置されるデータ記憶装置であって、
    第1のデータセグメントを受信するように構成されたデータ受信モジュールであり、前記第1のデータセグメントのサイズはZより大きくなく、Zはm個のデータブロックのサイズであるデータ受信モジュールと、
    第1のECストライプを取得するために、前記第1のデータセグメントに従ってイレージャーコーディングを実行するように構成されたデータコーディングモジュールであり、前記第1のECストライプは、m個の第1のデータブロック及びk個の第1のパリティブロックを有するデータコーディングモジュールと、
    記憶を実行するために、m+k個の記憶ノードに前記第1のECストライプを分配するように構成されたデータ分配モジュールであり、前記m+k個の記憶ノード内の各記憶ノードは、前記第1のECストライプの前記m個の第1のデータブロック又は前記k個の第1のパリティブロックのいずれか1つを記憶することを担うデータ分配モジュールと
    を有し、
    前記データコーディングモジュールは、前記第1のデータセグメントのサイズがZに等しい場合、前記第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、前記m個の第1のデータブロックにおいてパリティコーディングを実行するように更に構成される、或いは、
    前記第1のデータセグメントの前記サイズがZ未満である場合、前記サイズがZに等しくなるように前記第1のデータセグメントを補うために記憶されたデータを使用し、次に、前記補われた第1のデータセグメントをm個の第1のデータブロックに分割し、k個の第1のパリティブロックを取得するために、前記m個の第1のデータブロックにおいてパリティコーディングを実行するように更に構成されるデータ記憶装置。
  13. 前記分散型記憶システムの論理ボリュームは、複数の論理パーティションを有し、前記論理パーティションはそれぞれZのサイズを有し、互いに重複せず、前記第1のデータセグメントは、前記論理パーティションの1つに入る、請求項12に記載のデータ記憶装置。
  14. 前記データ受信モジュールは、第2のデータセグメントを受信するように更に構成され、前記第2のデータセグメント及び前記第1のデータセグメントは、同じ論理パーティションに入り、前記第2のデータセグメントの論理アドレスは、前記第1のデータセグメントの論理アドレスと重複し、
    前記データコーディングモジュールは、第2のECストライプを取得するために、前記第2のデータセグメントに従ってイレージャーコーディングを実行するように更に構成され、前記第2のECストライプは、m個の第2のデータブロック及びk個の第2のパリティブロックを有し、
    前記データ分配モジュールは、前記第1のECストライプ及び前記第2のECストライプの連続分配順序を決定し、前記連続分配順序に従って、前記m+k個の記憶ノードに前記第1のECストライプ及び前記第2のECストライプを連続して分配するように構成される、請求項13に記載のデータ記憶装置。
  15. 前記データ分配モジュールは、
    前記第1のデータセグメントの受信時間が前記第2のデータセグメントの受信時間より早い場合、記憶を実行するために、まず前記m+k個の記憶ノードに前記第1のECストライプを分配し、前記m+k個の記憶ノードが前記第1のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、前記m+k個の記憶ノードに前記第2のECストライプを分配するように構成される、或いは、
    前記第1のデータセグメントの受信時間が前記第2のデータセグメントの受信時間より遅い場合、記憶を実行するために、まず前記m+k個の記憶ノードに前記第2のECストライプを分配し、前記m+k個の記憶ノードが前記第2のECストライプを成功して記憶したことを示す応答メッセージを受信した後に、記憶を実行するために、前記m+k個の記憶ノードに前記第1のECストライプを分配するように構成される、請求項14に記載のデータ記憶装置。
  16. 前記データ受信モジュールは、第3のデータセグメントを受信するように更に構成され、前記第3のデータセグメント及び前記第1のデータセグメントは、同じ論理パーティションに入り、前記第3のデータセグメントの論理アドレスは、前記第1のデータセグメントの論理アドレスと重複せず、
    前記データコーディングモジュールは、前記第3のデータセグメントが受信されたと前記データ受信モジュールが決定した後に、前記第3のデータセグメントを前記第1のデータセグメントに結合し、第1のECストライプを取得するために、前記第1のデータセグメントに従ってイレージャーコーディングを実行するステップを起動するように更に構成される、請求項13ないし15のうちいずれか1項に記載のデータ記憶装置。
  17. コンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体であって、
    コンピュータのプロセッサが前記コンピュータ実行可能命令を実行した場合、前記コンピュータは、請求項1ないしのうちいずれか1項に記載の方法を実行するコンピュータ読み取り可能記憶媒体。
  18. コンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体であって、
    コンピュータのプロセッサが前記コンピュータ実行可能命令を実行した場合、前記コンピュータは、請求項ないしのうちいずれか1項に記載の方法を実行するコンピュータ読み取り可能記憶媒体。
  19. 複数の記憶ノードを有する分散型記憶システムであり、前記分散型記憶システムは、イレージャーコーディング(EC)ストライプを使用することによりデータを記憶し、各ECストライプは、データ部及びパリティ部を有し、各ECストライプの前記データ部は、m個のデータブロックを有し、各ECストライプの前記パリティ部は、前記m個のデータブロックにおいて実行されるパリティコーディングの後に取得されたk個のパリティブロックを有し、前記複数の記憶ノードは、複数の記憶ノードグループを構成し、各記憶ノードグループに含まれる記憶ノードの量は、m+k未満ではなく、1つのプライマリ記憶ノードが各記憶ノードグループ内で指定され、前記m及びkは共に正の整数である分散型記憶システムであって、
    請求項12ないし16のうちいずれか1項に記載のデータ記憶装置を更に有する分散型記憶システム。
JP2016111406A 2015-06-04 2016-06-03 データ分配方法、データ記憶方法、関係する装置及びシステム Active JP6259868B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510304621.3 2015-06-04
CN201510304621.3A CN104932953B (zh) 2015-06-04 2015-06-04 一种数据分发方法、数据存储方法、相关装置以及系统

Publications (2)

Publication Number Publication Date
JP2017004513A JP2017004513A (ja) 2017-01-05
JP6259868B2 true JP6259868B2 (ja) 2018-01-10

Family

ID=54120126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016111406A Active JP6259868B2 (ja) 2015-06-04 2016-06-03 データ分配方法、データ記憶方法、関係する装置及びシステム

Country Status (5)

Country Link
US (1) US20160357440A1 (ja)
EP (1) EP3101530B1 (ja)
JP (1) JP6259868B2 (ja)
CN (2) CN104932953B (ja)
BR (1) BR102016012739B1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108141228A (zh) * 2015-10-09 2018-06-08 华为技术有限公司 分布式存储系统的编码
CN105426483B (zh) * 2015-11-19 2019-01-11 华为技术有限公司 一种基于分布式系统的文件读取方法及装置
CN105404561B (zh) * 2015-11-19 2019-04-12 浙江宇视科技有限公司 一种分布式存储的纠删码实现方法及装置
CN107203559B (zh) * 2016-03-17 2021-01-01 华为技术有限公司 一种划分数据条带的方法和装置
CN106202271A (zh) * 2016-06-30 2016-12-07 携程计算机技术(上海)有限公司 Ota的产品数据库的读取方法
CN107590019B (zh) * 2016-07-07 2021-03-16 北京金山云网络技术有限公司 一种数据存储的方法和装置
CN106201354A (zh) * 2016-07-12 2016-12-07 乐视控股(北京)有限公司 数据存储方法及系统
EP3352071B1 (en) * 2016-11-25 2019-08-28 Huawei Technologies Co., Ltd. Data check method and storage system
CN108614670B (zh) * 2016-12-13 2020-07-03 杭州海康威视数字技术股份有限公司 一种信息处理方法及装置
US11461273B1 (en) * 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
CN106776146A (zh) * 2016-12-29 2017-05-31 华为技术有限公司 一种数据校验方法、装置及系统
WO2018229944A1 (ja) * 2017-06-15 2018-12-20 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US11188258B2 (en) * 2017-06-19 2021-11-30 Hitachi, Ltd. Distributed storage system
CN109213420A (zh) * 2017-06-29 2019-01-15 杭州海康威视数字技术股份有限公司 数据存储方法、装置及系统
CN112214166B (zh) * 2017-09-05 2022-05-24 华为技术有限公司 用于传输数据处理请求的方法和装置
CN107609161A (zh) * 2017-09-26 2018-01-19 北京思特奇信息技术股份有限公司 一种数据写入、读取方法和系统
CN107707395B (zh) * 2017-09-28 2021-02-02 浙江大华技术股份有限公司 一种数据传输方法、装置和系统
WO2019080015A1 (zh) * 2017-10-25 2019-05-02 华为技术有限公司 一种数据读写方法、装置和存储服务器
CN108780386B (zh) 2017-12-20 2020-09-04 华为技术有限公司 一种数据存储的方法、装置和系统
CN108897497B (zh) * 2018-06-29 2021-10-08 吴俊杰 一种无中心的数据管理方法及装置
CN109194566B (zh) * 2018-08-27 2022-01-04 惠州Tcl移动通信有限公司 一种重发信息的方法、存储介质及终端设备
CN109032536B (zh) * 2018-08-31 2021-08-10 郑州云海信息技术有限公司 基于分布式集群系统的数据存储方法、装置、系统及设备
CN109491968B (zh) * 2018-11-13 2021-01-22 恒生电子股份有限公司 一种文件处理方法、装置、设备及计算机可读存储介质
EP3889778B1 (en) * 2018-12-22 2023-05-10 Huawei Cloud Computing Technologies Co., Ltd. Distributed storage system and computer program product
CN111936960B (zh) * 2018-12-25 2022-08-19 华为云计算技术有限公司 分布式存储系统中数据存储方法、装置及计算机程序产品
CN110046160B (zh) * 2019-03-15 2021-07-20 中国科学院计算技术研究所 一种基于条带的一致性哈希存储系统构建方法
CN109977077B (zh) * 2019-03-25 2021-09-24 腾讯科技(深圳)有限公司 模型文件存储方法、装置、可读存储介质和计算机设备
CN110162525B (zh) * 2019-04-17 2023-09-26 平安科技(深圳)有限公司 基于b+树的读写冲突解决方法、装置及存储介质
CN111142799A (zh) * 2019-12-26 2020-05-12 深圳市网心科技有限公司 分布式存储方法及装置、网络节点及存储介质
US11604697B2 (en) * 2020-03-26 2023-03-14 Quantum Corporation Distributed erasure encoding in shared file system
CN111611317B (zh) * 2020-06-08 2023-05-30 杭州复杂美科技有限公司 区块链分布式存储分组方法、设备和存储介质
CN112083892B (zh) * 2020-09-25 2021-05-18 上海依图网络科技有限公司 一种数据存储方法、装置、设备和介质
WO2022198429A1 (zh) * 2021-03-23 2022-09-29 深圳市欢太科技有限公司 一种数据冗余备份方法、装置、存储介质及电子设备
CN113010119B (zh) * 2021-04-27 2022-09-30 宏图智能物流股份有限公司 一种通过主备方式实现语音数据分布式存储的方法
CN113010120B (zh) * 2021-04-27 2022-07-29 宏图智能物流股份有限公司 一种通过轮循方式实现语音数据分布式存储的方法
CN113326006B (zh) * 2021-06-17 2023-09-29 上海天玑科技股份有限公司 一种基于纠删码的分布式块存储系统
CN113419684B (zh) * 2021-07-09 2023-02-24 深圳大普微电子科技有限公司 一种数据处理方法、装置、设备及可读存储介质
CN115599315B (zh) * 2022-12-14 2023-04-07 阿里巴巴(中国)有限公司 数据处理方法、装置、系统、设备及介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3367510B2 (ja) * 1993-04-28 2003-01-14 株式会社日立製作所 データベース管理方法およびシステム
US8103789B1 (en) * 2001-03-01 2012-01-24 Juniper Networks, Inc. Method and apparatus for computing a backup path using fate sharing information
US7644136B2 (en) * 2001-11-28 2010-01-05 Interactive Content Engines, Llc. Virtual file system
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
JP4244319B2 (ja) * 2003-12-17 2009-03-25 株式会社日立製作所 計算機システム管理プログラム,記録媒体,ならびに計算機システム管理システムおよびそのための管理装置および記憶装置
US7546342B2 (en) * 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
CN101188569B (zh) * 2006-11-16 2011-05-04 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
US8255739B1 (en) * 2008-06-30 2012-08-28 American Megatrends, Inc. Achieving data consistency in a node failover with a degraded RAID array
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
US8458287B2 (en) * 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US8918534B2 (en) * 2009-09-29 2014-12-23 Cleversafe, Inc. Writing data slices to ready and non-ready distributed storage units in a distributed storage network
US20110229104A1 (en) * 2009-10-22 2011-09-22 Hundemer Hank J System And Method For Recording and Playback Of Multimedia Content
WO2014101108A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 分布式存储系统的缓存方法、节点和计算机可读介质
CN103152395B (zh) * 2013-02-05 2015-12-09 北京奇虎科技有限公司 一种分布式文件系统的存储方法及装置
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN103699494B (zh) * 2013-12-06 2017-03-15 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
CN103944981B (zh) * 2014-04-14 2017-03-22 中国科学院计算技术研究所 一种基于纠删码技术改进的云存储系统及实现方法
CN104639661A (zh) * 2015-03-13 2015-05-20 华存数据信息技术有限公司 分布式存储系统及文件存储和读取方法

Also Published As

Publication number Publication date
CN107844268A (zh) 2018-03-27
EP3101530B1 (en) 2019-05-08
BR102016012739B1 (pt) 2019-04-24
US20160357440A1 (en) 2016-12-08
EP3101530A1 (en) 2016-12-07
CN104932953B (zh) 2017-11-21
JP2017004513A (ja) 2017-01-05
BR102016012739A2 (pt) 2017-09-19
CN104932953A (zh) 2015-09-23
CN107844268B (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
JP6259868B2 (ja) データ分配方法、データ記憶方法、関係する装置及びシステム
JP6347802B2 (ja) データ記憶方法、データ回復方法、関係する装置及びシステム
CN102405460B (zh) 虚拟存储系统及其运行方法
US8639898B2 (en) Storage apparatus and data copy method
CN109828868B (zh) 数据存储方法、装置、管理设备和双活数据存储系统
US20210004171A1 (en) I/o request processing method and device
US10817376B2 (en) RAID with heterogeneous combinations of segments
US20140189128A1 (en) Cluster system with calculation and storage converged
CN107729536B (zh) 一种数据存储方法和装置
CN110096220B (zh) 一种分布式存储系统、数据处理方法和存储节点
CN109582213B (zh) 数据重构方法及装置、数据存储系统
US20180278685A1 (en) Read Performance Enhancement by Enabling Read from Secondary in Highly Available Cluster Setup
CN105988727B (zh) 一种基于raid的存储方法和存储装置
CN111949210A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
US11899533B2 (en) Stripe reassembling method in storage system and stripe server
CN113448502B (zh) 分布式存储系统和存储控制方法
US10860224B2 (en) Method and system for delivering message in storage system
CN110325958B (zh) 分布式块存储系统中数据存储方法、装置及计算机可读存储介质
US11775194B2 (en) Data storage method and apparatus in distributed storage system, and computer program product
WO2020034695A1 (zh) 数据存储方法、数据恢复方法、装置、设备及存储介质
CN112783698A (zh) 一种存储系统中的元数据的管理方法及装置
US20210243082A1 (en) Distributed computing system and resource allocation method
US11853163B2 (en) Selective rebuild of interrupted devices in data storage device arrays
US20210311654A1 (en) Distributed Storage System and Computer Program Product
EP4184306A1 (en) Redundant array of independent disks card, command processing method, and storage device and system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171211

R150 Certificate of patent or registration of utility model

Ref document number: 6259868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250