JP2015525392A - 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 - Google Patents

分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 Download PDF

Info

Publication number
JP2015525392A
JP2015525392A JP2015514321A JP2015514321A JP2015525392A JP 2015525392 A JP2015525392 A JP 2015525392A JP 2015514321 A JP2015514321 A JP 2015514321A JP 2015514321 A JP2015514321 A JP 2015514321A JP 2015525392 A JP2015525392 A JP 2015525392A
Authority
JP
Japan
Prior art keywords
lock
data stripe
client node
owner
node
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
JP2015514321A
Other languages
English (en)
Other versions
JP6301318B2 (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 JP2015525392A publication Critical patent/JP2015525392A/ja
Application granted granted Critical
Publication of JP6301318B2 publication Critical patent/JP6301318B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、分散ストレージシステムのキャッシュ処理方法、ノード及びコンピュータ可読媒体を提供する。ロッククライアントノードがデータストライプに関するロック通知を送信し、当該ロック通知が最初に受信したリードロック通知又はライトロック通知である場合、データストライプオーナサーバノードは、ロッククライアントノードをデータストライプのオーナとして記録し、ロッククライアントノードはデータストライプをキャッシュし、ロック通知が最初に受信していないリードロック通知である場合、ロッククライアントノードは、データストライプのオーナであるロッククライアントノードのキャッシュからデータストライプを読む。

Description

本発明は、ストレージ技術に関し、特に分散ストレージシステムのキャッシュ処理方法、ノード及びコンピュータ可読媒体に関する。
分散ストレージシステムでは、複数のノード装置が、クラスタを形成するよう接続され、そこでは、複数のノード装置の全てがデータストレージ機能を有する。全てのノード装置は、フロントエンドネットワーク(Front−End Network)及びバックエンドネットワーク(Back−End Network)を介し接続される。フロントエンドネットワークは、ユーザサービスと分散ストレージシステムとの間のリクエスト及びデータの交換のため利用され、バックエンドネットワークは、分散ストレージシステム内のノード装置間のリクエスト及びデータの交換のため利用される。
分散ストレージシステムでは、ユーザデータは、ストライプ(Stripe)にストリップ処理され、その後、ストライプのデータストリップ(Strip)は、異なるノード装置のハードディスクに分散され、そこに格納される。ユーザデータにアクセスする際、アプリケーションサーバはまずフロントエンドネットワークを介し1つのノード装置にアクセスリクエストを送信し、その後、ノード装置は、バックエンドネットワークを介しユーザデータがローカルノード装置に配置されるデータストリップを読み、ディスクアレイ(Redundant Array of Independent Disk,略してRAID)アルゴリズム又はイレージャコードアルゴリズムを用いることによって、データストリップをユーザデータに復元し、フロントエンドネットワークを介しアプリケーションサーバにユーザデータを返す。
上記のユーザデータアクセス処理では、キャッシュ処理技術が利用される。あるキャッシュ処理方法では、各ノード装置は、それのキャッシュにローカルノード装置のホットスポットデータブロックをキャッシュする。ノード装置がデータストリップを取得する必要があるとき、ノード装置は、ノード装置のキャッシュからデータストリップを構成するデータブロックを取得する必要がある。要求されるデータブロックがノード装置のキャッシュから取得できない場合、ノード装置は更に、ノード装置のハードディスクにアクセスし、ハードディスクからデータブロックを取得する必要がある。その後、ノード装置は、データストライプを取得するため、取得したデータブロックを集約、再構成及び冗長性チェックを実行する。他のキャッシュ処理方法では、各ノード装置は、それのキャッシュにノード装置により統計に従って取得されたホットスポットファイルデータストライプをキャッシュする。ノード装置がデータストライプを取得する必要があるとき、ノード装置はまず、自らのキャッシュからデータストライプを取得する。要求されるデータストライプがノード装置のキャッシュから取得できない場合、ノード装置は更に、次の他のノード装置からデータストライプを取得する必要がある。データストライプが当該他のノード装置のキャッシュから取得できない場合、ノード装置は、ノード装置のハードディスクからデータストライプを取得する必要がある。
現在、分散ストレージシステムにおいて採用されるデータキャッシュ処理技術は、上述した2つのキャッシュ処理方法の一方又はそれらの組み合わせである。分散ストレージシステムにおいて現在のキャッシュ処理方法を利用することによって、各ノード装置は、アクセス統計に従ってそれのハードディスクに格納されているコンテンツからホットスポットコンテンツを決定し、当該ホットスポットコンテンツをキャッシュにキャッシュする。各ノード装置はキャッシュ処理を独立に実行するため、同じコンテンツが異なるノード装置にキャッシュされる可能性がある。この結果、ノード装置のキャッシュ利用率は低くなる。
一態様では、本発明は、従来技術の問題点を解消し、ノード装置のキャッシュ利用率を向上させるため、分散ストレージシステムのキャッシュ処理方法を提供する。
他の態様では、本発明は、従来技術の問題点を解消し、ノード装置のキャッシュ利用率を向上させるため、データストライプオーナサーバノード及びロッククライアントノードを提供する。
更なる他の態様では、本発明は、従来技術の問題点を解消し、ノード装置のキャッシュ利用率を向上させるため、コンピュータ可読媒体を提供する。
第1の態様では、本発明は、分散ストレージシステムのキャッシュ処理方法であって、
データストライプオーナサーバノードが、ロッククライアントノードからデータストライプに関するロック通知を受信し、前記ロック通知を判断するステップと、
前記ロック通知が最初に受信したリードロック通知又はライトロック通知であるとき、前記データストライプオーナサーバノードが、前記ロッククライアントノードを前記データストライプのオーナとして記録し、前記ロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返すステップと、
前記ロック通知が最初に受信していないリードロック通知であるとき、前記データストライプオーナサーバノードが、前記ロッククライアントノードが前記データストライプのオーナのキャッシュから前記データストライプを読むように、前記データストライプのオーナ情報を有するレスポンスメッセージを前記ロッククライアントノードに返すステップと、
を有する方法を提供する。
上記態様又は何れか可能な実現方法によると、
前記データストライプオーナサーバノードが、ロッククライアントノードからデータストライプに関するロック通知を受信した後、当該方法は更に、前記ロック通知がリードロック通知であるとき、前記データストライプオーナサーバノードが、前記データストライプの属性情報を記録されたデータストライプの属性情報から検索し、前記データストライプの属性情報が検出されなかった場合、前記リードロック通知が最初に受信されたリードロック通知であると判定するステップを有する、実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、
前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返した後、当該方法は更に、
前記データストライプオーナサーバノードが、前記ロッククライアントノードから前記データストライプのオーナを他のロッククライアントノードに変更するためのリクエストメッセージを受信するステップと、
前記データストライプオーナサーバノードが、前記データストライプのオーナを前記他のロッククライアントノードに変更するステップと、
前記データストライプオーナサーバノードが、前記ロッククライアントノードがローカルキャッシュから前記データストライプを削除し、前記他のロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナの変更の成功を示すレスポンスメッセージを前記ロッククライアントノードに返すステップと、
を有する、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、
前記データストライプオーナサーバノードがロックサーバノード装置に統合されるとき、
前記リードロック通知はリードロックリクエストを有し、
前記ライトロック通知はライトロックリクエストを有し、
前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返すステップは更に、ロック成功レスポンスメッセージを前記ロッククライアントノードに返すことを含み、
前記データストライプのオーナ情報を有するレスポンスメッセージを前記ロッククライアントノードに返すステップは更に、ロック成功レスポンスメッセージを前記ロッククライアントノードに返すことを含む、
実現方法が更に提供される。
他の態様では、本発明は、分散ストレージシステムのキャッシュ処理方法であって、
ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するステップと、
前記ロッククライアントノードが、前記データストライプオーナサーバノードから前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信すると、前記ロッククライアントノードが、前記データストライプをキャッシュするステップと、
前記ロッククライアントノードが前記データストライプオーナサーバノードから前記データストライプのオーナの識別情報IDを受信すると、前記ロッククライアントノードが、前記データストライプオーナのIDと前記ロッククライアントノードのIDとを比較し、当該2つのIDが異なる場合、前記ロッククライアントノードが、前記データストライプオーナのIDに対応するロッククライアントノードのキャッシュから前記データストライプを読むステップと、
を有する方法を提供する。
上記態様又は何れか可能な実現方法によると、前記ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信した後、前記ロッククライアントノードが前記データストライプオーナサーバノードから前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信する前、当該方法は更に、前記データストライプに関する最初に受信したリードロック通知又はライトロック通知を受信すると、前記データストライプオーナサーバノードが、前記ロッククライアントノードを前記データストライプのオーナとして記録するステップを有する、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、当該方法は、
前記ロッククライアントノードによって前記オーナサーバノードに送信されるロック通知が前記データストライプに関するライトロック通知である場合、前記ロッククライアントノードが、前記データストライプをキャッシュし、その後、前記ロックサーバノードが前記記録を前記ロッククライアントノードが前記データストライプに関するリードロックを保持していることに変更するように、デグレードロックリクエストをロックサーバノードに送信するステップと更に有する、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、前記ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信する前、当該方法は更に、
前記ロッククライアントノードが、アプリケーションサーバから前記データストライプに関するリードリクエスト又はライトリクエストを受信するステップと、
前記ロッククライアントノードが、前記データストライプに関するリードロック又はライトロックをローカルに検索するステップと、
前記データストライプに関するリードロック又はライトロックが検出された場合、前記データストライプに関するリードロック又はライトロックに従って前記データストライプのオーナを決定し、前記データストライプのオーナから前記データストライプを読むか、又は前記データストライプのオーナに前記データストライプを書き込むステップと、
前記データストライプに関するリードロック又はライトロックが検出されない場合、前記クロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するステップを実行するステップと、
を有する、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、当該方法は、
単位時間における前記ロッククライアントノードのキャッシュ削除率が前記ロッククライアントノードのトータルキャッシュ量の所定の比率以上であるとき、前記ロッククライアントノードが、前記データストライプオーナサーバノードが前記データストライプのオーナをターゲットロッククライアントノードに変更するように、前記データストライプのオーナを前記ターゲットロッククライアントノードに変更するためのリクエストメッセージを前記データストライプオーナサーバノードに送信するステップと、
前記ロッククライアントノードが、前記データストライプオーナサーバノードから前記データストライプのオーナの変更の成功を示すレスポンスメッセージを受信し、ローカルキャッシュから前記データストライプを削除し、前記ターゲットロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプを前記ターゲットロッククライアントノードに送信するステップと、
を更に有する、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、前記ロッククライアントノードが、前記データストライプオーナのIDに対応するロッククライアントノードのキャッシュから前記データストライプを読むステップは、具体的には、
前記ロッククライアントノードが、前記データストライプオーナのIDに対応するロッククライアントノードに前記データストライプに関するリードリクエストを送信するステップを有し、これにより、前記データストライプオーナのIDに対応するロッククライアントノードが前記データストライプをローカルにキャッシュされているデータから検索し、前記データストライプが検出される場合、前記データストライプを前記ロッククライアントノードに返し、そうでない場合、前記分散ストレージシステムのロッククライアントノードから前記データストライプのデータストリップを読み、前記データストライプを構成し、前記データストライプを前記ロッククライアントノードに返す、
実現方法が更に提供される。
他の態様では、本発明は、データストライプオーナサーバノードであって、
ロッククライアントノードからデータストライプに関するロック通知を受信するよう構成される受信部と、
前記ロック通知を判断するよう構成される判断部と、
前記ロック通知が最初に受信したリードロック通知又はライトロック通知であると前記判断部が判断すると、前記ロッククライアントノードを前記データストライプのオーナとして記録するよう構成される記録部と、
前記ロック通知が最初に受信したリードロック通知又はライトロック通知であると前記判断部が判断したとき、前記ロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返し、前記ロック通知が最初に受信していないリードロック通知であると前記判断部が判断したとき、前記ロッククライアントノードが前記データストライプのオーナのキャッシュから前記データストライプを読むように、前記データストライプのオーナ情報を有するレスポンスメッセージを前記ロッククライアントノードに返す送信部と、
を有するノードを提供する。
上記態様又は何れか可能な実現方法によると、
前記判断部は、具体的には、前記ロック通知がリードロック通知であるとき、前記データストライプの属性情報を記録されたデータストライプの属性情報から検索し、前記データストライプの属性情報が検出されなかった場合、前記リードロック通知が最初に受信されたリードロック通知であると判定するよう構成される、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、
前記受信部は更に、前記ロッククライアントノードから前記データストライプのオーナを他のロッククライアントノードに変更するためのリクエストメッセージを受信するよう構成され、
前記記録部は更に、前記データストライプのオーナを前記他のロッククライアントノードに変更するよう構成され、
前記送信部は更に、前記ロッククライアントノードがローカルキャッシュから前記データストライプを削除し、前記他のロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナの変更の成功を示すレスポンスメッセージを前記ロッククライアントノードに返すよう構成される、実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、
前記データストライプオーナサーバノードがロックサーバノード装置に統合されるとき、
前記リードロック通知はリードロックリクエストを有し、
前記ライトロック通知はライトロックリクエストを有し、
前記送信部は更に、ロック成功レスポンスメッセージを前記ロッククライアントノードに返すよう構成される、
実現方法が更に提供される。
他の態様では、本発明は、ロッククライアントノードであって、
データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するよう構成される送信部と、
前記データストライプオーナサーバノードから前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信するか、又は前記データストライプオーナサーバノードから前記データストライプのオーナのIDを受信するよう構成される受信部と、
前記データストライプオーナのIDと前記ロッククライアントノードのIDとを比較し、当該2つのIDが異なる場合、リードライト部を起動するよう構成される比較部と、
前記受信部が前記データストライプオーナサーバノードから、前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信すると、前記データストライプをキャッシュするよう構成されるキャッシュ処理部と、
前記データストライプオーナのIDに対応するロッククライアントノードのキャッシュから前記データストライプを読むよう構成されるリードライト部と、
を有するノードを提供する。
上記態様又は何れか可能な実現方法によると、
前記送信部は更に、前記ロックサーバノードが記録を前記ロッククライアントノードが前記データストライプに関するリードロックを保持していることに変更するように、デグレードロックリクエストをロックサーバノードに送信するよう構成される、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、ロッククライアントノードは、検索部を更に有し、
前記受信部は更に、アプリケーションサーバから前記データストライプに関するリードリクエスト又はライトリクエストを受信するよう構成され、
前記検索部は、前記データストライプに関するリードロック又はライトロックをローカルに検索し、前記データストライプに関するリードロック又はライトロックが検出された場合、前記データストライプに関するリードロック又はライトロックに従って前記データストライプのオーナを決定し、前記リードライト部を起動し、前記データストライプに関するリードロック又はライトロックが検出されない場合、前記送信部を起動するよう構成され、
前記リードライト部は更に、前記データストライプのオーナから前記データストライプを読むか、又は前記データストライプのオーナに前記データストライプを書き込むよう構成される、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、
前記キャッシュ処理部は更に、単位時間における削除率が前記ロッククライアントノードのトータルキャッシュ量の所定の比率以上であるとき、前記データストライプのオーナをターゲットロッククライアントノードに変更するためのリクエストメッセージを前記データストライプオーナサーバノードに送信するよう前記送信部を制御するよう構成され、前記受信部により受信され、前記データストライプのオーナの変更の成功を示すレスポンスメッセージに従って、ローカルキャッシュから前記データストライプを削除し、前記データストライプを前記ターゲットロッククライアントノードに送信するよう前記送信部を制御するよう構成され、
前記送信部は更に、前記キャッシュ処理部の制御に従って、前記データストライプオーナサーバノードが前記データストライプのオーナを前記ターゲットロッククライアントノードに変更するように、前記データストライプのオーナを前記ターゲットロッククライアントノードに変更するためのリクエストメッセージを前記データストライプオーナサーバノードに送信するよう構成され、更に前記ターゲットロッククライアントノードが前記データストライプをキャッシュするように、前記キャッシュ処理部の制御に従って前記データストライプを前記ターゲットロッククライアントノードに送信するよう構成され、
前記受信部は更に、前記データストライプオーナサーバノードから前記データストライプのオーナの変更の成功を示すレスポンスメッセージを受信するよう構成される、
実現方法が更に提供される。
上記態様又は何れか可能な実現方法によると、
前記リードライト部は、具体的には前記データストライプオーナのIDに対応するロッククライアントノードが前記データストライプをローカルにキャッシュされたデータから検索するように、前記データストライプオーナのIDに対応するロッククライアントノードに前記データストライプに関するリードリクエストを送信し、前記データストライプが検出された場合、前記データストライプを前記リードライト部に返し、そうでない場合、分散ストレージシステムのロッククライアントノードから前記データストライプのデータストリップを読み、前記データストライプを構成し、前記データストライプを前記リードライト部に返すよう構成される、
実現方法が更に提供される。
他の態様では、本発明は、プロセッサ、メモリ、通信インタフェース及びバスを有するデータストライプオーナサーバノードであって、前記プロセッサ、前記メモリ及び前記通信インタフェースは、前記バスを介し通信し、前記メモリは、実行命令を格納するよう構成され、前記通信インタフェースは、第1ロッククライアントノードと第2ロッククライアントノードと通信するよう構成され、当該データストライプオーナサーバノードが実行中であるとき、前記プロセッサは、当該データストライプオーナサーバノードが上述した分散ストレージシステムのキャッシュ処理方法の何れか1つを実行するように、前記メモリにより格納されている実行命令を実行するデータストライプオーナサーバノードを提供する。
他の態様では、本発明は、プロセッサ、メモリ、通信インタフェース及びバスを有するロッククライアントノードであって、前記プロセッサ、前記メモリ及び前記通信インタフェースは、前記バスを介し通信し、前記メモリは、実行命令を格納するよう構成され、前記通信インタフェースは、データストライプオーナサーバノードと他のロッククライアントノードと通信するよう構成され、当該ロッククライアントノードが実行中であるとき、前記プロセッサは、当該ロッククライアントノードが上述した分散ストレージシステムのキャッシュ処理方法の何れか1つを実行するように、前記メモリにより格納されている実行命令を実行するロッククライアントノードを提供する。
他の態様では、本発明は、コンピュータ実行命令を有するコンピュータ可読媒体であって、前記コンピュータ実行命令は、上述した方法の何れか1つを実行するようロッククライアントノードに指示するのに利用されるコンピュータ可読媒体を提供する。
他の態様では、本発明は、コンピュータ実行命令を有するコンピュータ可読媒体であって、前記コンピュータ実行命令は、上述した方法の何れか1つを実行するようロッククライアントノードに指示するのに利用されるコンピュータ可読媒体を提供する。
上記概要から理解できるように、データストライプに関する最初に受信したリードロック通知又はライトロック通知を受信すると、データストライプオーナサーバノードは、当該通知を発信したロッククライアントノードをデータストライプのオーナとして記録し、ロッククライアントノードは当該データストライプをキャッシュし、最初に受信していないデータストライプに関するリードロック通知を受信すると、データストライプオーナサーバノードは、当該記録に従って当該通知を発信したロッククライアントノードにデータストライプのオーナを通知し、当該通知を発信したロッククライアントノードは、オーナのキャッシュからデータストライプを読む。データストライプオーナサーバノードは、1つのデータストライプが分散ストレージシステムにおいてそれのオーナに1回のみキャッシュされるように、データストライプのオーナを記録及び通知し、ロッククライアントノードは、オーナからデータストライプを読むことができる。これは、同一のデータストライプが異なるノード装置にキャッシュされるという問題を回避し、ノード装置のキャッシュ利用率を向上させる。
本発明の実施例又は従来技術の技術的手段をより明確に説明するため、以下において、実施例又は従来技術を説明するのに必要とされる添付図面が簡単に紹介される。明らかに、以下の説明の添付図面は、本発明の単なる一部の実施例を示し、当業者は、創作的な労力なくこれらの添付図面から他の図面を依然として導出してもよい。
図1は、本発明の実施例1による分散ストレージシステムの概略構成図である。 図2aは、本発明の実施例2による分散ストレージシステムのキャッシュ処理方法の概略フローチャートである。 図2bは、本発明の実施例2によるN個のデータストライプの属性情報の概略構成図である。 図3は、本発明の実施例3による分散ストレージシステムのキャッシュ処理方法の概略フローチャートである。 図4は、本発明の実施例4による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。 図5は、本発明による実施例5による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。 図6は、本発明による実施例6による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。 図7は、本発明による実施例7による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。 図8は、本発明による実施例8による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。 図9は、本発明の実施例9によるデータストライプオーナサーバノードの概略構成図である。 図10は、本発明の実施例10によるロッククライアントノードの概略構成図である。 図11は、本発明の実施例11によるデータストライプオーナサーバノードの概略構成図である。 図12は、本発明の実施例12によるロッククライアントノードの概略構成図である。
以下において、本発明の実施例の技術的手段が、本発明の実施例の添付図面を参照して明確かつ完全に説明される。明らかに、説明される実施例は、本発明の実施例の全てでなく単なる一部である。創造的な努力なく本発明の実施例に基づき当業者により取得される他の全ての実施例は、本発明の保護範囲内に属する。
本発明の以降の実施例は、分散ストレージシステムのノード装置のハードディスクにデータが格納された後にデータがアクセスされる具体例としてキャッシュ処理を実行することによって説明される。
図1は、本発明の実施例1による分散ストレージシステムの概略構成図である。本発明の実施例1の分散ストレージシステムは、本発明の以降の実施例におけるキャッシュ処理方法に適用可能である。従来技術では、分散ストレージシステムは、複数のロッククライアントノードと複数のロックサーバノードとを有する。本発明の実施例1による分散ストレージシステムでは、1以上のデータストライプオーナサーバノードが、従来技術の分散ストレージシステムの基礎に追加される。1つの処理プロセスは、複数のロッククライアントノード、1つのロックサーバノード及び1つのデータストライプオーナサーバノードに関する。図1に示されるように、分散ストレージシステムにおける複数のロッククライアントノード、1つのロックサーバノード及び1つのデータストライプオーナサーバノードが図1に示され、他のロックサーバノード及び他のデータストライプオーナサーバノードは示されない。本発明の実施例では、ロッククライアントノード、ロックサーバノード及びデータストリップオーナノードは別々に設定されることが想定される。実際のアプリケーションでは、1つのロッククライアントノード、1つのロックサーバノード及び1つのデータストライプオーナサーバノードが、各ノード装置上で同時に設定され、各処理プロセスでは、1つのノード装置に設定されるロックサーバノードは、当該処理のロックサーバノードとして動作し、ノード装置に設定されるデータストライプオーナサーバノードは、当該処理のデータストライプオーナサーバノードとして動作する。
実際のアプリケーションでは、データストライプオーナサーバノード及びロックサーバノードは、別々に設定され、それら各自の機能を実行してもよい。あるいは、データストライプオーナサーバノード及びロックサーバノードは、組み合わせて設定されてもよく、すなわち、従来技術のロックサーバノードは、従来技術のロックサーバノードにより実行される処理に基づき本発明の実施例に開示されるデータストライプオーナサーバノードにより実行される処理を実行するため改良される。
データストライプオーナサーバノード及びロックサーバノードが別々に設定されるケースにおけるキャッシュ処理方法は、本発明の実施例2及び実施例3を用いることによって以下に説明される。
図2aは、本発明の実施例2による分散ストレージシステムのためのキャッシュ処理方法の概略フローチャートである。図2に示されるように、当該方法は以下のプロセスを含む。
ステップ101:データストライプオーナサーバノードが、ロッククライアントノードからデータストライプに関するロック通知を受信し、当該ロック通知を判断する。
ステップ102:ロック通知が最初に受信したリードロック通知又はライトロック通知であるとき、データストライプオーナサーバノードが、ロッククライアントノードをデータストライプのオーナとして記録し、ロッククライアントノードがデータストライプをキャッシュするように、データストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージをロッククライアントノードに返す。
当該ステップでは、データストライプオーナサーバノードは第1ロッククライアントノードからデータストライプに関して最初に受信したリードロック通知又は当該データストライプに関するライトロック通知を受信する。データストライプオーナサーバノードは、データストライプのオーナとして第1ロッククライアントノードを記録し、第1ロッククライアントノードがデータストライプをキャッシュするように、データストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第1ロッククライアントノードに返す。ロックサーバノードからリードロック許可又はライトロック許可を取得した後、第1ロッククライアントノードは、オーナサーバノードにロック通知を送信し、ここで、当該通知は、ロックに対応するデータストライプの識別を搬送し、当該ロックがリードロックであるときはリードロック識別子、又は当該ロックがライトロックであるときはライトロック識別子を搬送し、当該ロック通知を通じて、第1ロッククライアントノードがデータストライプに関するリードロック又はライトロックを取得したことをオーナサーバノードに通知する。データストライプの属性情報は、データストライプオーナサーバノードに記録される。オーナサーバノードは、第1ロッククライアントノードにより送信されたロック通知を受信し、ロック通知に搬送されたデータストライプ識別に従ってデータストライプの記録されている属性情報を検索する。ロック通知がリードロック識別子を搬送し、データストライプに対応するリードロックがデータストライプの記録された属性情報に検出されない場合、オーナサーバノードは、データストライプに関するリードロック通知が最初に受信されたと判断する。
図2bは、本発明の実施例2のN個のデータストライプの属性情報の概略構成図である。図2bに示されるように、各データストライプの属性情報では、データストライプの識別(identity、略してID)が記録され、対応して、データストライプに対するロックを現在保持するロッククライアントノードのID、ロックタイプ及びデータストライプのオーナのIDが記録される。ロックタイプは、データストライプのロックがリードロック又はライトロックであることを示すのに利用される。データストライプに対するリードロックを保持するロッククライアントノードは、データストライプを読むことができ、データストライプに対するライトロックを保持するロッククライアントノードは、データストライプを書き込むか又は修正することができる。ライトロックは、リードロックに対するプライオリティを有する。ロッククライアントノードがデータストライプに対してリードロックを保持するとき、他のロッククライアントノードはまた、データストライプに対するリードロックを保持し、ロッククライアントノードがデータストライプに対するライトロックを保持するとき、他のロッククライアントノードは、データストライプに対するリードロック又はライトロックを保持することが禁止される。一例として、図2bに示される各データストライプの属性情報において、データストライプに対するロックを現在保持する3つのロッククライアントノードが記録される。本発明の実施例は、データストライプに対するロックを現在保持するロッククライアントノードに限定しないことが理解できる。
ステップ103:ロック通知が最初に受信していないリードロック通知であるとき、データストライプオーナサーバノードが、ロッククライアントノードがデータストライプのオーナのキャッシュからデータストライプを読むように、データストライプのオーナ情報を有するレスポンスメッセージをロッククライアントノードに返す。
このステップでは、データストライプオーナサーバノードが第2ロッククライアントノードから最初に受信していないデータストライプに関するリードロック通知を受信したと仮定すると、データストライプオーナサーバノードは、第2ロッククライアントノードが第1ロッククライアントノードのキャッシュからデータストライプを読めるように、データストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第2ロッククライアントノードに返す。
上記実施例では、データストライプに関する最初に受信したリードロック通知又はライトロック通知を受信すると、データストライプオーナサーバノードは、データストライプのオーナとして通知を発信したロッククライアントノードを記録し、ロッククライアントノードは、データストライプをキャッシュし、最初に受信していないデータストライプに関するリードロック通知を受信すると、データストライプオーナサーバノードは、レコードに従ってデータストライプのオーナの通知を発信したロッククライアントノードに通知し、当該通知を発信したロッククライアントノードは、オーナのキャッシュからデータストライプを読む。データストライプオーナサーバノードは、1つのデータストライプが分散ストレージシステム全体のデータストライプに対応するロッククライアントノードに1回のみキャッシュされるように、データストライプのオーナを記録及び通知し、ロッククライアントノードは、オーナからデータストライプを読むことができる。これは、同じデータストライプが異なるノード装置にキャッシュされるという問題を回避し、ノード装置のキャッシュ利用率を増加させる。
上記技術的手段に基づき、さらにステップ101の後、本方法は更に、ロック通知がリードロック通知であるとき、データストライプオーナサーバノードがデータストライプの属性情報を記録されたデータストライプの属性情報から検索し、データストライプの属性情報が検出されなかった場合、リードロック通知が最初に受信されたリードロック通知であると判定することを含むものであってもよい。
上記技術的手段に基づき、さらにデータストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第1ロッククライアントノードに返した後、本方法は更に、データストライプオーナサーバノードが、第1ロッククライアントノードからデータストライプのオーナを第3ロッククライアントノードに変更するためのリクエストメッセージを受信し、データストライプオーナサーバノードが、データストライプのオーナを第3ロッククライアントノードに変更し、データストライプオーナサーバノードが、第1ロッククライアントノードがローカルキャッシュからデータストライプを削除し、第3ロッククライアントノードがデータストライプをキャッシュするように、データストライプのオーナの変更の成功を示すレスポンスメッセージを第1ロッククライアントノードに返すことを含む。
上記の実現方法を利用することによって、第1ロッククライアントノードがメモリ不足であり、データストライプを格納することができないとき、データストライプのオーナシップが第3ロッククライアントノードに移転される。これは、データストライプのオーナの動的な変更を実現し、第1ロッククライアントノードのキャッシュロードを解放し、これにより、データストライプキャッシュ処理におけるより良好なロードバランシングを実現する。
上記技術的手段に基づき、さらにデータストライプオーナサーバノードがロックサーバノード装置と統合されるとき、リードロック通知はリードロックリクエストであってもよく、ライトロック通知はライトロックリクエストであってもよい。これに対応して、データストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第1ロッククライアントノードに返すステップは更に、ロック成功レスポンスメッセージを第1ロッククライアントノードに返すことを含む。データストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第2クライアントノードに返すステップは更に、ロック成功レスポンスメッセージを第2ロッククライアントノードに返すことを含む。
データストライプオーナサーバノードをロックサーバノード装置に統合することによって、ロッククライアントノードはリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するとき、当該通知はまた、ロックサーバノード装置に対するリードロックリクエスト又はライトロックリクエストを搬送する。これは、ロックサーバノード装置に対する他のリードロックリクエスト又はライトロックリクエストを送信することを回避し、システム装置間のシグナリングを減少し、データストライプを読み書きする際の効率性を向上させる。
図3は、本発明の実施例3による分散ストレージシステムのためのキャッシュ処理方法の概略フローチャートである。図3に示されるように、本方法は以下のプロセスを含む。
ステップ201:ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信する。
ステップ202:ロッククライアントノードが、データストライプオーナサーバノードからデータストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージを受信し、ロッククライアントノードが、データストライプをキャッシュする。
ステップ203:ロッククライアントノードがデータストライプオーナサーバノードからデータストライプオーナの識別情報IDを受信すると、ロッククライアントノードが、データストライプオーナのIDとロッククライアントノードのIDとを比較し、当該2つのIDが異なる場合、ロッククライアントノードが、データストライプオーナのIDに対応するロッククライアントノードのキャッシュからデータストライプを読む。
上記技術的手段に基づき、さらにロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信した後、ロッククライアントノードがデータストライプオーナサーバノードからデータストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージを受信する前、本方法は更に、データストライプに関する最初に受信したリードロック通知又はライトロック通知を受信すると、データストライプオーナサーバノードが、ロッククライアントノードをデータストライプのオーナとして記録することを含む。
上記技術的手段に基づき、さらに本方法は更に、ロッククライアントノードによってオーナサーバノードに送信されるロック通知がデータストライプに関するライトロック通知である場合、ロッククライアントノードが、データストライプをキャッシュし、その後、ロックサーバノードが記録をロッククライアントノードがデータストライプに関するリードロックを保持していることに変更するように、デグレードロックリクエストをロックサーバノードに送信することを含む。ライトロックを保持するロッククライアントノードがデータストライプをローカルにキャッシュした後、ロッククライアントノードが常時ライトロックを保持する場合、他のロッククライアントがリードロックをリクエストすると、ライトロックは取り消される必要がある。本発明の実施例では、ライトロックを保持するロッククライアントノードがデータストライプをローカルにキャッシュした後、ロッククライアントノードは、他のロッククライアントがリードロックをリクエストすると、ライトロックを取り消すことが不要になるように、ライトロックをリードロックにデグレードするためのデグレードリクエストをロックサーバノードに自発的に送信する。これは、以降にリードロック処理を開始するための時間を節約し、キャッシュ処理の効率性を向上させる。
上記技術的手段に基づき、ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信する前、本方法は更に、ロッククライアントノードが、アプリケーションサーバからデータストライプに関するリードリクエスト又はライトリクエストを受信し、ロッククライアントノードが、データストライプに関するリードロック又はライトロックをローカルに検索し、データストライプに関するリードロック又はライトロックが検出された場合、データストライプに関するリードロック又はライトロックに従ってデータストライプのオーナを決定し、データストライプのオーナからデータストライプを読むか、又はデータストライプのオーナにデータストライプを書き込み、データストライプに関するリードロック又はライトロックが検出されない場合、クロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するステップを実行することを含む。
上記技術的手段に基づき、さらに本方法は更に、単位時間におけるロッククライアントノードのキャッシュ削除率がロッククライアントノードのトータルキャッシュ量の所定の比率以上であるとき、ロッククライアントノードが、データストライプオーナサーバノードがデータストライプのオーナをターゲットロッククライアントノードに変更するように、データストライプのオーナをターゲットロッククライアントノードに変更するためのリクエストメッセージをデータストライプオーナサーバノードに送信し、ロッククライアントノードが、データストライプオーナサーバノードからデータストライプのオーナの変更の成功を示すレスポンスメッセージを受信し、ローカルキャッシュからデータストライプを削除し、ターゲットロッククライアントノードがデータストライプをキャッシュするように、データストライプをターゲットロッククライアントノードに送信することを含む。データストライプは、ロッククライアントノードのキャッシュ間で動的にマイグレートする。これは、ロッククライアントノード上の頻繁なキャッシュ削除のため、キャッシュ利用率が低くなるという問題点を解消し、システム全体における各ロッククラインとノードのバランスされたキャッシュ利用を維持することが可能であり、キャッシュ利用率を向上させる。
上記技術的手段に基づき、さらにロッククライアントノードが、データストライプオーナのIDに対応するロッククライアントノードからデータストライプを読むことは、具体的には、ロッククライアントノードが、データストライプオーナのIDに対応するロッククライアントノードにデータストライプに関するリードリクエストを送信することを含み、これにより、データストライプオーナのIDに対応するロッククライアントノードがデータストライプをローカルにキャッシュされているデータから検索し、データストライプが検出される場合、データストライプをロッククライアントノードに返し、そうでない場合、分散ストレージシステムのロッククライアントノードからデータストライプのデータストリップを読み、データストライプを構成し、データストライプをロッククライアントノードに返す。
本発明の実施例3では、ロッククライアントノードがデータストライプに関する最初に受信したリードロック通知又はライトロック通知を送信すると、ロッククライアントノードはデータストライプをキャッシュし、データストライプオーナサーバノードは、データストライプのオーナとしてロッククライアントノードを記録し、ロッククライアントノードが最初に受信していないデータストライプに関するリードロック通知を送信すると、データストライプオーナサーバノードは、レコードに従ってデータストライプのオーナの通知をロッククライアントノードに通知し、ロッククライアントノードは、オーナのキャッシュからデータストライプを読む。データストライプオーナサーバノードは、1つのデータストライプが分散ストレージシステム全体においてそれのオーナに1回のみキャッシュされるように、データストライプのオーナを記録及び通知し、ロッククライアントノードは、オーナからデータストライプを読むことができる。これは、同じデータストライプが異なるノード装置にキャッシュされるという問題を回避し、ノード装置のキャッシュ利用率を増加させる。
データストライプオーナサーバノード及びロックサーバノードが別々に設定されるケースにおけるキャッシュ処理方法が、本発明の実施例2及び実施例3を用いることによって説明される。実際のアプリケーションでは、オーナサーバノード及びロックサーバノードは更に組み合わされてもよく、1つのノードがオーナサーバノードとロックサーバノードとの双方の処理を実行するよう構成される。例えば、従来技術によるロックサーバノードは、従来技術によるロックサーバノードにより実行される処理に基づき本発明の実施例に開示されるオーナサーバノードにより実行される処理を実行するよう改良されてもよい。以降において、本発明により開示されるキャッシュ処理方法が、オーナサーバノードとロックサーバノードとの双方の処理を1つのノードが実行すると仮定することによって、本発明の第4〜8実施例において更に説明され、すなわち、上記の改良されたロックサーバノードは、従来技術によるロックサーバノードの処理と、本発明の実施例に開示されるオーナサーバノードの処理とを実行するよう構成される。本発明の第4〜8実施例に開示されるロックサーバノードは、上記の改良されたロックサーバノードであり、ロッククライアントノードによってロックサーバノードに送信されるロックリクエストは、ロック通知として取得される。例えば、ロッククライアントノードがリードロックリクエストをロックサーバノードに送信する場合、ロックサーバノードは、従来技術によるロックサーバノードの処理を実行し、またロックサーバノードは、リードロックリクエストをリードロック通知として取得し、本発明により開示されるオーナサーバノードの処理を実行する。同様に、ロッククライアントノードがライトロックリクエストをロックサーバノードに送信する場合、ロックサーバノードは、従来技術によるロックサーバノードの処理を実行し、また、ロックサーバノードは、ライトロックリクエストをライトロック通知として取得し、本発明により開示されるオーナサーバノードの処理を実行する。
図4は、本発明の実施例4による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。本発明の実施例4では、分散ストレージシステムにおいて、データストライプに対するリードロック処理が最初に行われるか、又はデータストライプの削除後にデータストライプに対するリードロック処理が最初に行われると仮定される。図4に示されるように、本方法は以下のプロセスを含む。
ステップ301:第1ロッククライアントノードが、アプリケーションサーバからデータストライプに関するリードリクエストを受信する。
このステップでは、第1ロッククライアントノードがアプリケーションサーバからデータストライプに関するリードリクエストを受信した後、第1ロッククライアントノードは、データストライプに関するリードロックをローカルに検索し、リードロックが検出された場合、データストライプのオーナであって、データストライプに関するリードロックに示されるロッククライアントノードからデータストライプを読む。そうでない場合、ステップ302が実行される。本発明の実施例では、リードロックは検出されないと仮定される。
ステップ302:第1ロッククライアントノードが、ロックサーバノードにデータストライプに関するリードロックリクエストを送信する。
ステップ303:ロックサーバノードが、データストライプのオーナとして第1ロッククライアントノードを記録する。
このステップでは、ストライプロックリクエストを受信した後、ロックサーバノードはまず、データストライプの属性情報がレコードに存在するか確認し、データストライプの属性情報が存在しない場合、データストライプの属性情報レコードを生成し、そうでない場合、ロックを保持するロッククライアントノードに関する情報のためデータストライプの属性情報を確認する。本発明の実施例4では、データストライプの属性情報は存在しないと仮定される。データストライプに関するレコードが存在しない場合、それは、データストライプがシステムにおいて最初にリクエストされたか、又は削除後に最初にリクエストされたことを示す。ロックサーバノードは、ロックを現在リクエストしている第1ロッククライアントノードに関する情報をレコードに追加し、第1ロッククライアントノードをデータストライプのオーナとして記録し、第1ロッククライアントノードに対応するオーナIDを第1ロッククライアントノードのIDとして記録する。
ステップ304:ロックサーバノードが、データストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第1ロッククライアントノードに返す。
このステップではロックサーバノードは、ロック成功レスポンスメッセージを第1ロッククライアントノードに返し、ここで、当該メッセージは、データストライプのオーナが第1ロッククライアントノードであることを第1ロッククライアントノードに示し、第1ロッククライアントノードは、データストライプのオーナIDが第1ロッククライアントノードのIDであることをローカルに記録する。
ステップ305:第1ロッククライアントノードが、データストライプをキャッシュする。
このステップでは、第1ロッククライアントノードは、ロックサーバノードによって返された情報に従って、第1ロッククライアントノード自体がデータストライプのオーナであることを検出する。第1ロッククライアントノードは、ローカルグローバルユニフォームキャッシュからのキャッシュスペースをリクエストし、他のロッククライアントノードからデータストライプのデータストリップを読み、ローカルグローバルユニフォームキャッシュにおいてデータストライプを構成し、データストライプをアプリケーションサーバに返す。他のロッククライアントノードからデータストライプのデータストリップを読み、データストリップに従ってデータストライプを構成し、当該構成を完了させた後、第1ロッククライアントノードは、データストリップ及びデータストリップの冗長データを取得することができる。本発明の実施例4では、第1ロッククライアントノードは、データストライプをキャッシュするだけでなく、データストライプの冗長データをキャッシュし、分散ストレージシステムのノードのキャッシュ利用率を更に向上させることができる。本発明の他の実施例では、ロッククライアントノードがデータストライプをキャッシュすると、この方法はまたキャッシュ処理を実行するため採用されてもよい。
図5は、本発明の実施例5による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。本発明の実施例5では、分散ストレージシステムにおいて、第1ロッククライアントノードがデータストライプをキャッシュした後、第2ロッククライアントノードはデータストライプを読むと仮定される。図5に示されるように、本方法は以下のプロセスを含む。
ステップ401:第2ロッククライアントノードが、アプリケーションサーバからデータストライプに関するリードリクエストを受信する。
このステップでは、第2ロッククライアントノードは、データストライプに関するリードロックをローカルに検索し、リードロックが検出された場合、データストライプのオーナであって、データストライプのリードロックに示されるロッククライアントノードからデータストライプを読む。そうでない場合、ステップ402が実行される。本発明の実施例では、リードロックは検出されないと仮定される。
ステップ402:第2ロッククライアントノードが、データストライプに関するリードロックリクエストをロックサーバノードに送信する。
ステップ403:ロックサーバノードが、データストライプのオーナが第1ロッククライアントノードであることを示すレスポンスメッセージを第2ロッククライアントノードに返す。
このステップでは、ストライプロックリクエストを受信した後、ロックサーバノードはまず、データストライプの属性情報がレコードに存在するか確認し、データストライプの属性情報が存在しない場合、データストライプの属性情報レコードを生成し、そうでない場合、ロックを保持するロッククライアントノードに関する情報のためデータストライプの属性情報を確認する。本発明の実施例5では、データストライプの属性情報は存在すると仮定される。データストライプの属性情報が存在する場合、ロックサーバノードは、属性情報に従ってデータストライプのオーナを知ることができる。データストライプのオーナが第1ロッククライアントノードであると仮定すると、ロックサーバノードは、ロックを現在リクエストしている第2ロッククライアントノードのIDをデータストライプの属性情報に追加し、第2ロッククライアントノードのIDに対応するオーナフラグを非オーナを示す所定値に設定する。ロックサーバノードは、ロック成功レスポンスメッセージを第2ロッククライアントノードに返し、ここで、当該メッセージは、データストライプのオーナが第1ロッククライアントノードであることを第2ロッククライアントノードに示す。
ステップ403の後、第2ロッククライアントノードは、第1ロッククライアントノードのキャッシュからデータストライプを読み、具体的には以下のステップを含む。
ステップ404:第2ロッククライアントノードは、データストライプに関するリードリクエストを第1ロッククライアントノードに送信する。
このステップでは、第2ロッククライアントノードは、ロックサーバノードにより返された情報に従って、データストライプのオーナIDが第1ロッククライアントノードのIDであることをローカルに記録する。第2ロッククライアントノードは、データストライプのオーナでないことを知り、その後、データストライプに関するリードリクエストを生成し、当該リクエストをバックエンドネットワークを介し第1ロッククライアントノードに送信する。
ステップ405:第1ロッククライアントノードは、データストライプを第2ロッククライアントノードに返す。
このステップでは、第2ロッククライアントノードのデータストライプに関するリードリクエストを受信した後、第1ロッククライアントノードは、ローカルグローバルユニフォームキャッシュからデータストライプを取得し、当該データストライプを第2ロッククライアントノードに直接返す。
ステップ406:第2ロッククライアントノードは、データストライプをアプリケーションサーバに返す。
このステップでは、第2ロッククライアントノードは、第1ロッククライアントノードのリードデータストライプレスポンスを受信した後、アプリケーションサーバにデータストライプを送信する。
図6は、本発明の実施例6による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。本発明の実施例6では、分散ストレージシステムにおいて、第1ロッククライアントノードがデータストライプをキャッシュした後、第2ロッククライアントノードがデータストライプを書き込むことが仮定される。図6に示されるように、本方法は以下のプロセスを含む。
ステップ501:第2ロッククライアントノードは、アプリケーションサーバからデータストライプに関するライトリクエストを受信する。
このステップでは、第2ロッククライアントノードがアプリケーションサーバからデータストライプに関するライトリクエストを受信した後、第2ロッククライアントノードは、データストライプに関するライトロックをローカルに検索し、ライトロックが検出された場合、データストライプのオーナであって、データストライプに関するライトロックに示されるロッククライアントノードにデータストライプを書き込む。第2ロッククライアントノードがデータストライプに関するライトロックをローカルに検出した場合、それは、当該時点前にロックサーバノードが第2ロッククライアントノードにデータストライプに関するライトロックをすでに付与したことを示す。ライトロック付与ルールに従って、ライトロックを第2ロッククライアントノードに付与する前、ロックサーバノードは、データストライプのオーナを第2ロッククライアントノードとして記録する。従って、第2ロッククライアントノードがデータストライプに関するライトロックをローカルに検出した場合、データストライプのオーナであって、データストライプのライトロックに示されるロッククライアントノードが第2ロッククライアントノードである。第2ロッククライアントノードがデータストライプに関するライトロックをローカルに検出しなかった場合、ステップ502が実行される。本発明の実施例では、ライトロックは検出されないことが仮定される。
ステップ502:第2ロッククライアントノードは、データストライプに関するライトロックリクエストをロックサーバノードに送信する。
ステップ503:ロックサーバノードは、データストライプに関するロック取り消しリクエストを第1ロッククライアントノードに送信する。
このステップでは、ストライプロックリクエストを受信した後、ロックサーバノードはまず、データストライプの属性情報がレコードにあるか確認し、データストライプの属性情報が存在しない場合、データストライプの属性情報レコードを生成し、そうでない場合、ロックを保持するロッククライアントノードに関する情報のためデータストライプの属性情報を確認する。本発明の実施例6では、データストライプの属性情報が存在すると仮定される。データストライプの属性情報が存在する場合、ロックサーバノードは、データストライプに関するリードロック又はライトロックを保持するロッククライアントノードを知ることができる。ロックサーバノードは、これらのロッククライアントノードにより保持されるデータストライプのロックを取り消すためのリクエストを生成し、当該リクエストを対応するロッククライアントノードに送信する。第1ロッククライアントノードがデータストライプに関するリードロックを保持すると仮定すると、ロックサーバノードは、第1ロッククライアントノードにより保持されるデータストライプのリードロックを取り消すためのリクエストを生成し、当該リクエストを第1ロッククライアントノードに送信する。
ステップ504:第1ロッククライアントノードは、ロック取り消し成功レスポンスメッセージをロックサーバノードに返す。
このステップでは、ロック取り消しリクエストを受信した後、第1ロッククライアントノードはまず、ロックが依然として使用中であるか確認する。ロックが使用中でない場合、第1ロッククライアントノードは、ロック取り消し成功レスポンスメッセージをロックサーバノードに直接返す。ロックが使用中である場合、第1ロッククライアントノードは、ロックの解放を待機し、その後、ロック取り消し成功レスポンスメッセージをロックサーバノードに返す。第1ロッククライアントノードがデータストライプのオーナである場合、ロック取り消し成功レスポンスメッセージを送信する前、第1ロッククライアントノードはまず、グローバルユニフォームキャッシュから第1ロッククライアントノードのグローバルユニフォームキャッシュにおけるデータストライプを削除する。
ステップ505:ロックサーバノードは、データストライプのオーナとして第2ロッククライアントノードを記録する。
このステップでは、ロック取り消し成功レスポンスメッセージを受信した後、ロックサーバノードは、データストライプのライトロックをリクエストした第2ロッククラインとノードをデータストライプの属性情報に記録し、第2ロッククライアントノードをデータストライプのオーナとして記録する。
ステップ506:ロックサーバノードは、ストライプライトロック成功レスポンスメッセージを第2ロッククライアントノードに返す。
ステップ507:第2ロッククライアントノードは、データストライプをキャッシュする。
このステップでは、ロックサーバノードのストライプライトロック成功レスポンスメッセージを受信した後、第2ロッククライアントノードは、ローカルグローバルユニフォームキャッシュからストライプキャッシュスペースをリクエストし、アプリケーションサーバから書き込みが必要とされるデータストライプを受信し、データストライプをローカルグローバルユニフォームキャッシュに格納し、その後、データストライプのデータストリップを対応するロッククライアントノードに書き込む。
ステップ508:第2ロッククライアントノードは、デグレードロックリクエストをロックサーバノードに送信する。
このステップでは、データの書き込みに成功した後、第2ロッククライアントノードは、デグレードロックリクエストを生成し、当該リクエストをロックサーバノードに送信し、ここで、当該リクエストは、データストライプに対するライトロックをリードロックにデグレードすることを示す。
ステップ509:ロックサーバノードは、レコードを第2ロッククライアントノードがデータストライプに関するリードロックを保持することに変更する。
このステップでは、デグレードロックリクエストを受信した後、ロックサーバノードは、第2ロッククライアントノードに対応するロックタイプを“ライトロック”から“リードロック”に変更する。
図7は、本発明の実施例7による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。本発明の実施例7では、オーナである第1ロッククライアントノードがキャッシュ処理スペースの不足のためデータが削除されると、第2ロッククライアントノードは、第1ロッククライアントノードからデータストライプを読むと仮定される。図7に示されるように、本方法は以下のプロセスを含む。
ステップ601:第2ロッククライアントノードは、データストライプに関するリードリクエストを第1ロッククライアントノードに送信する。
このステップでは、データストライプのオーナは第1ロッククライアントノードである。データストライプを読むと、第2ロッククライアントノードは、第1ロッククライアントノードがオーナであることを知り、第1ロッククライアントノードのキャッシュからデータストライプの読み込みをリクエストするため、データストライプに関するリードリクエストを第1ロッククライアントノードに送信する。
ステップ602:第1ロッククライアントノードは、データストライプをキャッシュされたリソースにおいて検索する。
このステップでは、第1ロッククライアントノードはまず、キャッシュされているリソースからデータストライプを検索する。データストライプが検出された場合、第1ロッククライアントノードは、データストライプを第2ロッククライアントノードに直接返し、データストライプが検出されなかった場合、それは、第1ロッククライアントノードにおいてデータ削除が行われ、データストライプが削除されたることを示し、ステップ603が実行される。本発明の実施例7において、データストライプは検出されないと仮定される。
ステップ603:第1ロッククライアントノードは、分散ストレージシステムにおいてロッククライアントノードからデータストライプのデータストリップを読み、データストライプを構成する。
このステップでは、第1ロッククライアントノードがそれのキャッシュにおいてデータストライプを検出しない場合、第1ロッククライアントノードは、分散ストレージシステムのロッククライアントノードにデータリードリクエストを自発的に発信し、ロッククライアントノードからデータストライプのデータストリップを読み、第1ロッククライアントノードのグローバルキャッシュにおいてデータストライプを再構成する。
ステップ604:第1ロッククライアントノードは、データストライプを第2ロッククライアントノードに返す。
図8は、本発明の実施例8による分散ストレージシステムのキャッシュ処理方法のシグナリングフローチャートである。本発明の実施例8では、データストライプはロッククライアントノード間で動的にマイグレート又は移動すると仮定される。本発明の実施例では、キャッシュがロッククライアントノードのグローバルユニフォームキャッシュに作成されるとき、基本ルールは、データストライプに最初にアクセスするロッククライアントノードにデータストライプをキャッシュすることである。しかしながら、異なるロッククライアントノードを介しアプリケーションサーバによってアクセスされるデータストライプが少数のロッククライアントノードに中央的にキャッシュされるとき、キャッシュ削除がキャッシュ処理のためロッククライアントノードにおいて頻繁に行われることになり、キャッシュ処理の価値に重大な影響を与える。キャッシュにおいて頻繁にアクセスされるデータストライプは、キャッシュホットスポットと呼ばれる。従って、システム全体の各ストレージサーバ上でバランスされたキャッシュ利用を維持するため、ホットスポットは、ロッククライアントノードのキャッシュ間で動的にマイグレートすることが可能である必要がある。
図8に示されるように、本方法は以下のプロセスを含む。
ステップ701:第1ロッククライアントノードは、動的なマイグレーションを有効にするか判断する。
このステップでは、グローバルユニフォームキャッシュのホットスポットの動的なマイグレーションの具体的な実現形態において、各ロッククライアントノードは、キャッシュホットスポットがそれのキャッシュにあるか判断し、キャッシュホットスポットがある場合、動的なマイグレーションを有効にする。分散ストレージシステムのグローバルユニフォームキャッシュにキャッシュホットスポットがあるか検出する方法は、単位時間において各ロッククライアントノードのキャッシュ削除率を定期的に検出し、単位時間におけるロッククライアントノードのキャッシュ削除率がロッククライアントノードのトータルのキャッシュ量の所定の比率を超過すると、キャッシュホットスポットがロッククライアントノードにあり、ホットスポットマイグレーション処理が必要であると決定することを含み、ここで、ロッククライアントノードは、動的にキャッシュホットスポットを他のロッククライアントノードに自発的に転送する。例えば、所定の比率は20%であってもよい。
第1ロッククライアントノードは、動的なマイグレーションを有効にするか判断する。単位時間における第1ロッククライアントノードのキャッシュ削除率が第1ロッククライアントノードのトータルのキャッシュ量の所定の比率以上であるとき、第1ロッククライアントノードは、動的なマイグレーションを有効にすることを決定する。本発明の実施例では、単位時間における第1ロッククライアントノードのキャッシュ削除率は、第1ロッククライアントノードのトータルのキャッシュ量の所定の比率以上であると仮定される。
実現形態の方法は、ロッククライアントノードに接続されるモニタを設定し、各ロッククライアントノードが、単位時間におけるロッククライアントノードのキャッシュ削除率を定期的にモニタに報告することを含む。モニタは、ロッククライアントノードのキャッシュ利用状態を定期的に収集し、キャッシュホットスポット情報をロッククライアントノードにプッシュする。ここで、キャッシュホットスポット情報は、キャッシュホットスポット条件を充足するロッククライアントノードのIDを含む。各ロッククライアントノードは、キャッシュホットスポット情報がロッククライアントノードのIDを含むかに従って、それがキャッシュスポットホットであるか判断し、それがキャッシュホットスポットである場合、動的なキャッシュマイグレーションタスクを有効にする。動的なキャッシュマイグレーションタスクの実行サイクルは、ロッククライアントノードがそれらの削除率をモニタに報告するハートビートサイクルと、モニタがロッククライアントノードの削除率を取得するサイクルとの和である。マイグレーションの終了条件は、現在の実行サイクルが終了し、次のキャッシュホットスポット情報がロッククライアントノードのIDを含まないということである。
ステップ702:第2ロッククライアントノードは、データストライプに関するリードリクエストを第1ロッククライアントノードに送信する。
このステップでは、データストライプのオーナが第1ロッククライアントノードであることが仮定される。
ステップ702は、任意的なステップである。第1の実現方法では、第2ロッククライアントノードがステップ701の終了によりストライプリードロックの取得に成功した場合、ステップ702がまず実行され、第2ロッククライアントノードが、データストライプに関するリードリクエストを第1ロッククライアントノードに送信し、その後、ステップ703が実行される。第2の実現方法では、第2ロッククライアントノードがステップ701の終了によりストライプリードロックの取得に成功しなかった場合、ステップ702を実行する必要はなく、代わりにステップ703が直接実行される。
ステップ703:第1ロッククライアントノードは、オーナ変更のためのリクエストメッセージをロックサーバノードに送信する。
このステップでは、第1ロッククライアントノードは、オーナ変更のためのリクエストメッセージをロックサーバノードに送信し、ここで、当該メッセージは、データストライプのIDとターゲットロッククライアントノードのIDとを含み、データストライプのオーナの変更のリクエストをターゲットロッククライアントノードに通知する。すなわち、第1ロッククライアントノードは、データストライプのオーナをターゲットロッククライアントノードに変更するためのリクエストメッセージをロックサーバノードに送信する。本発明の実施例では、ターゲットロッククライアントノードは第2ロッククライアントノードであると仮定される。
第1の実現方法では、第1ロッククライアントノードは、第2ロッククライアントノードからデータストライプに関するリードリクエストを受信した後、オーナ変更リクエストを生成する。第2の実現方法では、第1ロッククライアントノードは、オーナ変更のためのリクエストメッセージを自発的に生成する。
ステップ704:ロックサーバノードは、データストライプのオーナをターゲットロッククライアントノードに変更する。
このステップでは、第1ロッククライアントノードからオーナ変更のためのリクエストメッセージを受信した後、ロックサーバノードは、データストライプのオーナをターゲットロッククライアントノードに変更するため、データストライプのオーナ情報を修正する。
ステップ705:ロックサーバノードは、データストライプのオーナの変更の成功を示すレスポンスメッセージを第1ロッククライアントノードに返す。
ステップ706:第1ロッククライアントノードは、データストライプを第2ロッククライアントノードに送信する。
このステップでは、上記プロセスがステップ702を含む場合、当該ステップにおいて、第1ロッククライアントノードは更に、リードデータ成功レスポンスメッセージを第2ロッククライアントノードに返す。
ステップ707:第1ロッククライアントノードは、ローカルキャッシュからデータストライプを削除する。
このステップでは、データストライプのオーナの変更の成功を示すレスポンスメッセージの受信後、第1ロッククライアントノードは、第1ロッククライアントノードのキャッシュからデータストライプを自発的に削除する。
ステップ708:第2ロッククライアントノードは、データストライプをキャッシュする。
このステップでは、上記プロセスがステップ702を含む場合、リードデータ成功レスポンスメッセージの受信後、第2ロッククライアントノードは、第2ロッククライアントノードのローカルグローバルキャッシュにデータストライプをキャッシュし、レスポンスメッセージをアプリケーションサーバに返す。上記プロセスがステップ702を含まない場合、第1ロッククライアントノードは、第2ロッククライアントノードのローカルグローバルキャッシュにデータストライプを自発的にプッシュする。
図9は、本発明の実施例9によるデータストライプオーナサーバノードの概略構成図である。図9に示されるように、データストライプオーナサーバノードは、少なくとも受信部91、記録部92、送信部93及び判断部94を含む。
受信部91は、ロッククライアントノードからデータストライプに関するロック通知を受信するよう構成される。
判断部94は、ロック通知を判断するよう構成される。
記録部92は、ロック通知が最初に受信したリードロック通知又はライトロック通知であると判断部が判断すると、ロッククライアントノードをデータストライプのオーナとして記録するよう構成される。
送信部93は、ロック通知が最初に受信したリードロック通知又はライトロック通知であると判断部が判断したとき、ロッククライアントノードがデータストライプをキャッシュするように、データストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージをロッククライアントノードに返し、ロック通知が最初に受信していないリードロック通知であると判断部が判断したとき、ロッククライアントノードがデータストライプのオーナのキャッシュからデータストライプを読むように、データストライプのオーナ情報を有するレスポンスメッセージをロッククライアントノードに返すよう構成される。
上記技術的手段に基づき、さらに判断部94は、具体的には、ロック通知がリードロック通知であるとき、データストライプの属性情報を記録されたデータストライプの属性情報から検索し、データストライプの属性情報が検出されなかった場合、リードロック通知が最初に受信されたリードロック通知であると判定するよう構成される。
上記技術的手段に基づき、さらに受信部91は更に、ロッククライアントノードからデータストライプのオーナを他のロッククライアントノードに変更するためのリクエストメッセージを受信するよう構成される。対応して、記録部92は更に、データストライプのオーナを他のロッククライアントノードに変更するよう構成される。対応して、送信部92は更に、ロッククライアントノードがローカルキャッシュからデータストライプを削除し、他のロッククライアントノードがデータストライプをキャッシュするように、データストライプのオーナの変更の成功を示すレスポンスメッセージをロッククライアントノードに返すよう構成される。
上記技術的手段に基づき、さらにデータストライプオーナサーバノードがロックサーバノード装置に統合されるとき、リードロック通知はリードロックリクエストを有し、ライトロック通知はライトロックリクエストを有する。対応して、送信部93は更に、ロック成功レスポンスメッセージをロッククライアントノードに返すよう構成される。
本発明の実施例9のデータストライプオーナサーバノードは、本発明の第2〜8実施例のキャッシュ処理方法を実行するよう構成可能である。データストライプオーナサーバノードの具体的な実現プロセス及び技術的効果について、本発明の第2〜8実施例が参照されてもよく、ここでは詳細は再度説明されない。
図10は、本発明の実施例10によるロッククライアントノードの概略構成図である。図10に示されるように、ロッククライアントノードは、少なくとも送信部1001、受信部1002、比較部1003、キャッシュ処理部1004及びリードライト部1005を有する。
送信部1001は、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するよう構成される。
受信部1002は、データストライプオーナサーバノードからデータストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージを受信するか、又はデータストライプオーナサーバノードからデータストライプのオーナのIDを受信するよう構成される。
比較部1003は、データストライプオーナのIDとロッククライアントノードのIDとを比較し、当該2つのIDが異なる場合、リードライト部1005を起動するよう構成される。
キャッシュ処理部1004は、受信部がデータストライプオーナサーバノードから、データストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージを受信すると、データストライプをキャッシュするよう構成される。
リードライト部1005は、データストライプオーナのIDに対応するロッククライアントノードのキャッシュからデータストライプを読むよう構成される。
上記技術的手段に基づき、さらに送信部は、ロックサーバノードが記録をロッククライアントノードがデータストライプに関するリードロックを保持していることに変更するように、デグレードロックリクエストをロックサーバノードに送信するよう構成される。
上記技術的手段に基づき、さらにロッククライアントノードは検索部1006を有してもよい。対応して、受信部1002は更に、アプリケーションサーバからデータストライプに関するリードリクエスト又はライトリクエストを受信するよう構成される。対応して、検索部1006は、データストライプに関するリードロック又はライトロックをローカルに検索し、データストライプに関するリードロック又はライトロックが検出された場合、データストライプに関するリードロック又はライトロックに従ってデータストライプのオーナを決定し、リードライト部1005を起動し、データストライプに関するリードロック又はライトロックが検出されない場合、送信部1001を起動するよう構成される。対応して、リードライト部1005は更に、データストライプのオーナからデータストライプを読むか、又はデータストライプのオーナにデータストライプを書き込むよう構成される。
上記技術的手段に基づき、さらにキャッシュ処理部1004は更に、単位時間における削除率がロッククライアントノードのトータルキャッシュ量の所定の比率以上であるとき、データストライプのオーナをターゲットロッククライアントノードに変更するためのリクエストメッセージをデータストライプオーナサーバノードに送信するよう送信部1001を制御するよう構成され、受信部1002により受信され、データストライプのオーナの変更の成功を示すレスポンスメッセージに従って、ローカルキャッシュからデータストライプを削除し、データストライプをターゲットロッククライアントノードに送信するよう送信部1001を制御するよう構成される。対応して、送信部1001は更に、キャッシュ処理部1004の制御に従って、データストライプオーナサーバノードがデータストライプのオーナをターゲットロッククライアントノードに変更するように、データストライプのオーナをターゲットロッククライアントノードに変更するためのリクエストメッセージをデータストライプオーナサーバノードに送信するよう構成される。送信部1001は更に、ターゲットロッククライアントノードがデータストライプをキャッシュするように、キャッシュ処理部1004の制御に従ってデータストライプをターゲットロッククライアントノードに送信するよう構成される。対応して、受信部1002は更に、データストライプオーナサーバノードからデータストライプのオーナの変更の成功を示すレスポンスメッセージを受信するよう構成される。
上記技術的手段に基づき、さらにリードライト部1005は、具体的にはデータストライプオーナのIDに対応するロッククライアントノードがデータストライプをローカルにキャッシュされたデータから検索するように、データストライプオーナのIDに対応するロッククライアントノードにデータストライプに関するリードリクエストを送信し、データストライプが検出された場合、データストライプをリードライト部1005に返し、そうでない場合、分散ストレージシステムのロッククライアントノードからデータストライプのデータストリップを読み、データストライプを構成し、データストライプをリードライト部1005に返すよう構成される。
本発明の実施例10のロッククライアントノードは、本発明の第2〜8実施例のキャッシュ処理方法を実行するよう構成可能である。ロッククライアントノードの具体的な実現プロセス及び技術的効果について、本発明の第2〜8実施例が参照されてもよく、ここでは詳細は再度説明されない。
図11は、本発明の実施例11によるデータストライプオーナサーバノードの概略構成図である。図11に示されるように、データストライプオーナサーバノードは、少なくともプロセッサ1101、メモリ1102、通信インタフェース1103及びバス1104を有する。プロセッサ1101、メモリ1102及び通信インタフェース1103は、バス1104を介し通信する。
メモリ1102は、プログラムを格納するよう構成される。具体的には、プログラムは、コンピュータ実行命令を含むプログラムコードを含む。メモリ1102は、高速RAMメモリ又は不揮発性メモリ(non−volatile memory)であってもよく、例えば、少なくとも1つの磁気ディスクメモリであってもよい。
通信インタフェース1103は、第1ロッククライアントノード及び第2ロッククライアントノードと通信するよう構成される。
プロセッサ1101は、メモリ1102により格納される実行命令を実行するよう構成され、本発明の実施例を実現するよう割り当てられたシングルコア若しくはマルチコア中央処理ユニット(Central Processing Unit,CPU)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)又は1以上の集積回路であってもよい。
データストライプオーナサーバノードが実行中であるとき、プロセッサ1101は、以下の命令を実行するためのプログラムを実行する。
データストライプオーナサーバノードが、ロッククライアントノードからデータストライプに関するロック通知を受信し、ロック通知を判断し、
ロック通知が最初に受信したリードロック通知又はライトロック通知であるとき、データストライプオーナサーバノードは、ロッククライアントノードをデータストライプのオーナとして記録し、ロッククライアントノードがデータストライプをキャッシュするように、データストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージをロッククライアントノードに返し、
ロック通知が最初に受信したリードロック通知であるとき、データストライプオーナサーバノードは、ロッククライアントノードがデータストライプのオーナのキャッシュからデータストライプを読むように、データストライプのオーナ情報を含むレスポンスメッセージをロッククライアントノードに返す。
本発明の実施例11のデータストライプオーナサーバノードは、本発明の第2〜8実施例のキャッシュ処理方法を実行するよう構成できる。データストライプオーナサーバノードの具体的な実現プロセス及び技術的効果について、本発明の第2〜8実施例が参照されてもよく、ここでは詳細は再度説明されない。
図12は、本発明の実施例12によるロッククライアントノードの概略構成図である。図12に示されるように、ロッククライアントノードは、少なくともプロセッサ1201、メモリ1202、通信インタフェース1203及びバス1204を有する。プロセッサ1201、メモリ1202及び通信インタフェース1203は、バス1204を介し通信する。
メモリ1202は、プログラムを格納するよう構成される。具体的には、プログラムは、コンピュータ実行命令を含むプログラムコードを含む。メモリ1202は、高速RAMメモリ又は不揮発性メモリ(non−volatile memory)であってもよく、例えば、少なくとも1つの磁気ディスクメモリであってもよい。
プロセッサ1201は、メモリ1202により格納される実行命令を実行するよう構成され、本発明の実施例を実現するよう割り当てられたシングルコア若しくはマルチコア中央処理ユニット(Central Processing Unit,CPU)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)又は1以上の集積回路であってもよい。
通信インタフェース10203は、データストライプオーナサーバノード及び他のロッククライアントノードと通信するよう構成される。
ロッククライアントノードが実行中であるとき、プロセッサ1202は、以下の命令を実行するためのプログラムを実行する。
データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信し、
ロッククライアントノードがデータストライプオーナサーバノードからデータストライプのオーナがロッククライアントノードであることを示すレスポンスメッセージを受信すると、ロッククライアントノードがデータストライプをキャッシュし、
データストライプオーナサーバノードからデータストライプのオーナの識別IDを受信すると、データストライプオーナのIDとロッククライアントノードのIDとを比較し、当該2つのIDが異なるとき、データストライプオーナのIDに対応するロッククライアントノードからデータストライプを読む。
本発明の実施例12のロッククライアントノードは、本発明の第2〜8実施例のキャッシュ処理方法を実行するよう構成できる。ロッククライアントノードの具体的な実現プロセス及び技術的効果について、本発明の第2〜8実施例が参照されてもよく、ここでは詳細は再度説明されない。
本発明の実施例13は、データストライプオーナサーバノードに本発明の実施例2の方法を実行するよう指示するのに用いられるコンピュータ実行命令を含むコンピュータ可読媒体を提供する。
本発明の実施例14は、ロッククライアントノードに本発明の実施例3の方法を実行するよう指示するのに用いられるコンピュータ実行命令を含むコンピュータ可読媒体を提供する。説明の簡単化のため、上記の方法の実施例は全て動作の組み合わせとして説明されたが、当業者は本発明が説明された動作シーケンスに限定されるものでないことを知るべきであることに留意すべきである。本発明によると、いくつかのステップは他のシーケンスにより実行されてもよく、又は同時に実行されてもよい。また、当業者は、ここに説明された実施例が単なる一例となる実施例であることを知るべきであり、含まれている動作及びモジュールは本発明に必須でない。
上記実施例では、実施例の説明は各自の強調を有し、実施例に詳細に説明されないパーツについて、他の実施例の関連する説明が参照できる。
実現方法の上記の説明から、当業者は、本発明がハードウェア、ファームウェア又はこれらの組み合わせにより実現可能であることが明らかであるかもしれない。本発明がソフトウェアを用いることによって実現されるとき、上述した機能はコンピュータ可読媒体に格納されるか、又はコンピュータ可読媒体の1以上の命令又はコードとして転送されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み、ここで、通信媒体は、ある場所から他の場所へのコンピュータプログラムの転送を実現する何れかの媒体を含む。記憶媒体は、利用可能な何れかのコンピュータアクセス可能な媒体であってもよい。例えば、限定することなく、コンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、他の光ディスクストレージ若しくは磁気ディスク記憶媒体、他の磁気記憶装置、又は命令若しくはデータ構造の形式により所望のプログラムコードを担持若しくは格納するのに利用可能であって、コンピュータによりアクセス可能な他の何れかの媒体を含むものであってもよい。さらに、適切であるとき、何れかの接続はコンピュータ可読媒体とすることが可能である。例えば、ソフトウェアがウェブサイト、サーバ又は他のリモートソースから同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)又は赤外線、無線及びマイクロ波などの無線技術を利用することによって転送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL若しくは赤外線、無線及びマイクロ波などの無線技術は全て、媒体の定義の範囲内に属する。例えば、本発明において用いられるディスク(disk)及びディスク(disc)は、コンパクトディスク(CD)、レーザディスク、DVD(Digital Versatile Disc)、フロッピー(登録商標)ディスク及びブルーレイディスクを含み、ここで、ディスク(disk)は一般にデータを磁気的に複製し、ディスク(disc)はレーザを用いてデータを光学的に複製する。上記の組み合わせはまた、コンピュータ可読媒体の保護範囲内に属する。
最後に、上記実施例は本発明を限定するのでなく、本発明の技術的手段を説明することを単に意図することに留意すべきである。本発明が上記実施例を参照して詳細に説明されたが、当業者は、上記実施例において説明した技術的手段に対する修正又はこれらの一部の技術的特徴に対する等価な置換が、当該修正又は置換が対応する技術的手段の本質を本発明の実施例の技術的手段の趣旨及び範囲から逸脱させるものでない限り、依然として可能であることを理解すべきである。

Claims (23)

  1. 分散ストレージシステムのキャッシュ処理方法であって、
    データストライプオーナサーバノードが、ロッククライアントノードからデータストライプに関するロック通知を受信し、前記ロック通知を判断するステップと、
    前記ロック通知が最初に受信したリードロック通知又はライトロック通知であるとき、前記データストライプオーナサーバノードが、前記ロッククライアントノードを前記データストライプのオーナとして記録し、前記ロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返すステップと、
    前記ロック通知が最初に受信していないリードロック通知であるとき、前記データストライプオーナサーバノードが、前記ロッククライアントノードが前記データストライプのオーナのキャッシュから前記データストライプを読むように、前記データストライプのオーナ情報を有するレスポンスメッセージを前記ロッククライアントノードに返すステップと、
    を有する方法。
  2. 前記データストライプオーナサーバノードが、ロッククライアントノードからデータストライプに関するロック通知を受信した後、当該方法は更に、前記ロック通知がリードロック通知であるとき、前記データストライプオーナサーバノードが、前記データストライプの属性情報を記録されたデータストライプの属性情報から検索し、前記データストライプの属性情報が検出されなかった場合、前記リードロック通知が最初に受信されたリードロック通知であると判定するステップを有する、請求項1記載の方法。
  3. 前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返した後、当該方法は更に、
    前記データストライプオーナサーバノードが、前記ロッククライアントノードから前記データストライプのオーナを他のロッククライアントノードに変更するためのリクエストメッセージを受信するステップと、
    前記データストライプオーナサーバノードが、前記データストライプのオーナを前記他のロッククライアントノードに変更するステップと、
    前記データストライプオーナサーバノードが、前記ロッククライアントノードがローカルキャッシュから前記データストライプを削除し、前記他のロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナの変更の成功を示すレスポンスメッセージを前記ロッククライアントノードに返すステップと、
    を有する、請求項1又は2記載の方法。
  4. 前記データストライプオーナサーバノードがロックサーバノード装置に統合されるとき、
    前記リードロック通知はリードロックリクエストを有し、
    前記ライトロック通知はライトロックリクエストを有し、
    前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返すステップは更に、ロック成功レスポンスメッセージを前記ロッククライアントノードに返すことを含み、
    前記データストライプのオーナ情報を有するレスポンスメッセージを前記ロッククライアントノードに返すステップは更に、ロック成功レスポンスメッセージを前記ロッククライアントノードに返すことを含む、請求項1乃至3何れか一項記載の方法。
  5. 分散ストレージシステムのキャッシュ処理方法であって、
    ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するステップと、
    前記ロッククライアントノードが、前記データストライプオーナサーバノードから前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信すると、前記ロッククライアントノードが、前記データストライプをキャッシュするステップと、
    前記ロッククライアントノードが前記データストライプオーナサーバノードから前記データストライプのオーナの識別情報IDを受信すると、前記ロッククライアントノードが、前記データストライプオーナのIDと前記ロッククライアントノードのIDとを比較し、当該2つのIDが異なる場合、前記ロッククライアントノードが、前記データストライプオーナのIDに対応するロッククライアントノードのキャッシュから前記データストライプを読むステップと、
    を有する方法。
  6. 前記ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信した後、前記ロッククライアントノードが前記データストライプオーナサーバノードから前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信する前、当該方法は更に、前記データストライプに関する最初に受信したリードロック通知又はライトロック通知を受信すると、前記データストライプオーナサーバノードが、前記ロッククライアントノードを前記データストライプのオーナとして記録するステップを有する、請求項5記載の方法。
  7. 前記ロッククライアントノードによって前記オーナサーバノードに送信されるロック通知が前記データストライプに関するライトロック通知である場合、前記ロッククライアントノードが、前記データストライプをキャッシュし、その後、前記ロックサーバノードが前記記録を前記ロッククライアントノードが前記データストライプに関するリードロックを保持していることに変更するように、デグレードロックリクエストをロックサーバノードに送信するステップと更に有する、請求項5又は6記載の方法。
  8. 前記ロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信する前、当該方法は更に、
    前記ロッククライアントノードが、アプリケーションサーバから前記データストライプに関するリードリクエスト又はライトリクエストを受信するステップと、
    前記ロッククライアントノードが、前記データストライプに関するリードロック又はライトロックをローカルに検索するステップと、
    前記データストライプに関するリードロック又はライトロックが検出された場合、前記データストライプに関するリードロック又はライトロックに従って前記データストライプのオーナを決定し、前記データストライプのオーナから前記データストライプを読むか、又は前記データストライプのオーナに前記データストライプを書き込むステップと、
    前記データストライプに関するリードロック又はライトロックが検出されない場合、前記クロッククライアントノードが、データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するステップを実行するステップと、
    を有する、請求項5乃至7何れか一項記載の方法。
  9. 単位時間における前記ロッククライアントノードのキャッシュ削除率が前記ロッククライアントノードのトータルキャッシュ量の所定の比率以上であるとき、前記ロッククライアントノードが、前記データストライプオーナサーバノードが前記データストライプのオーナをターゲットロッククライアントノードに変更するように、前記データストライプのオーナを前記ターゲットロッククライアントノードに変更するためのリクエストメッセージを前記データストライプオーナサーバノードに送信するステップと、
    前記ロッククライアントノードが、前記データストライプオーナサーバノードから前記データストライプのオーナの変更の成功を示すレスポンスメッセージを受信し、ローカルキャッシュから前記データストライプを削除し、前記ターゲットロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプを前記ターゲットロッククライアントノードに送信するステップと、
    を更に有する、請求項5乃至8何れか一項記載の方法。
  10. 前記ロッククライアントノードが、前記データストライプオーナのIDに対応するロッククライアントノードのキャッシュから前記データストライプを読むステップは、具体的には、
    前記ロッククライアントノードが、前記データストライプオーナのIDに対応するロッククライアントノードに前記データストライプに関するリードリクエストを送信するステップを有し、これにより、前記データストライプオーナのIDに対応するロッククライアントノードが前記データストライプをローカルにキャッシュされているデータから検索し、前記データストライプが検出される場合、前記データストライプを前記ロッククライアントノードに返し、そうでない場合、前記分散ストレージシステムのロッククライアントノードから前記データストライプのデータストリップを読み、前記データストライプを構成し、前記データストライプを前記ロッククライアントノードに返す、請求項5乃至9何れか一項記載の方法。
  11. データストライプオーナサーバノードであって、
    ロッククライアントノードからデータストライプに関するロック通知を受信するよう構成される受信部と、
    前記ロック通知を判断するよう構成される判断部と、
    前記ロック通知が最初に受信したリードロック通知又はライトロック通知であると前記判断部が判断すると、前記ロッククライアントノードを前記データストライプのオーナとして記録するよう構成される記録部と、
    前記ロック通知が最初に受信したリードロック通知又はライトロック通知であると前記判断部が判断したとき、前記ロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを前記ロッククライアントノードに返し、前記ロック通知が最初に受信していないリードロック通知であると前記判断部が判断したとき、前記ロッククライアントノードが前記データストライプのオーナのキャッシュから前記データストライプを読むように、前記データストライプのオーナ情報を有するレスポンスメッセージを前記ロッククライアントノードに返す送信部と、
    を有するノード。
  12. 前記判断部は、具体的には、前記ロック通知がリードロック通知であるとき、前記データストライプの属性情報を記録されたデータストライプの属性情報から検索し、前記データストライプの属性情報が検出されなかった場合、前記リードロック通知が最初に受信されたリードロック通知であると判定するよう構成される、請求項11記載のノード。
  13. 前記受信部は更に、前記ロッククライアントノードから前記データストライプのオーナを他のロッククライアントノードに変更するためのリクエストメッセージを受信するよう構成され、
    前記記録部は更に、前記データストライプのオーナを前記他のロッククライアントノードに変更するよう構成され、
    前記送信部は更に、前記ロッククライアントノードがローカルキャッシュから前記データストライプを削除し、前記他のロッククライアントノードが前記データストライプをキャッシュするように、前記データストライプのオーナの変更の成功を示すレスポンスメッセージを前記ロッククライアントノードに返すよう構成される、請求項11又は12記載のノード。
  14. 前記データストライプオーナサーバノードがロックサーバノード装置に統合されるとき、
    前記リードロック通知はリードロックリクエストを有し、
    前記ライトロック通知はライトロックリクエストを有し、
    前記送信部は更に、ロック成功レスポンスメッセージを前記ロッククライアントノードに返すよう構成される、請求項11乃至13何れか一項記載のノード。
  15. ロッククライアントノードであって、
    データストライプに関するリードロック通知又はライトロック通知をデータストライプオーナサーバノードに送信するよう構成される送信部と、
    前記データストライプオーナサーバノードから前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信するか、又は前記データストライプオーナサーバノードから前記データストライプのオーナのIDを受信するよう構成される受信部と、
    前記データストライプオーナのIDと前記ロッククライアントノードのIDとを比較し、当該2つのIDが異なる場合、リードライト部を起動するよう構成される比較部と、
    前記受信部が前記データストライプオーナサーバノードから、前記データストライプのオーナが前記ロッククライアントノードであることを示すレスポンスメッセージを受信すると、前記データストライプをキャッシュするよう構成されるキャッシュ処理部と、
    前記データストライプオーナのIDに対応するロッククライアントノードのキャッシュから前記データストライプを読むよう構成されるリードライト部と、
    を有するノード。
  16. 前記送信部は更に、前記ロックサーバノードが記録を前記ロッククライアントノードが前記データストライプに関するリードロックを保持していることに変更するように、デグレードロックリクエストをロックサーバノードに送信するよう構成される、請求項15記載のノード。
  17. 検索部を更に有し、
    前記受信部は更に、アプリケーションサーバから前記データストライプに関するリードリクエスト又はライトリクエストを受信するよう構成され、
    前記検索部は、前記データストライプに関するリードロック又はライトロックをローカルに検索し、前記データストライプに関するリードロック又はライトロックが検出された場合、前記データストライプに関するリードロック又はライトロックに従って前記データストライプのオーナを決定し、前記リードライト部を起動し、前記データストライプに関するリードロック又はライトロックが検出されない場合、前記送信部を起動するよう構成され、
    前記リードライト部は更に、前記データストライプのオーナから前記データストライプを読むか、又は前記データストライプのオーナに前記データストライプを書き込むよう構成される、請求項15又は16記載の方法。
  18. 前記キャッシュ処理部は更に、単位時間における削除率が前記ロッククライアントノードのトータルキャッシュ量の所定の比率以上であるとき、前記データストライプのオーナをターゲットロッククライアントノードに変更するためのリクエストメッセージを前記データストライプオーナサーバノードに送信するよう前記送信部を制御するよう構成され、前記受信部により受信され、前記データストライプのオーナの変更の成功を示すレスポンスメッセージに従って、ローカルキャッシュから前記データストライプを削除し、前記データストライプを前記ターゲットロッククライアントノードに送信するよう前記送信部を制御するよう構成され、
    前記送信部は更に、前記キャッシュ処理部の制御に従って、前記データストライプオーナサーバノードが前記データストライプのオーナを前記ターゲットロッククライアントノードに変更するように、前記データストライプのオーナを前記ターゲットロッククライアントノードに変更するためのリクエストメッセージを前記データストライプオーナサーバノードに送信するよう構成され、更に前記ターゲットロッククライアントノードが前記データストライプをキャッシュするように、前記キャッシュ処理部の制御に従って前記データストライプを前記ターゲットロッククライアントノードに送信するよう構成され、
    前記受信部は更に、前記データストライプオーナサーバノードから前記データストライプのオーナの変更の成功を示すレスポンスメッセージを受信するよう構成される、請求項15乃至17何れか一項記載のノード。
  19. 前記リードライト部は、具体的には前記データストライプオーナのIDに対応するロッククライアントノードが前記データストライプをローカルにキャッシュされたデータから検索するように、前記データストライプオーナのIDに対応するロッククライアントノードに前記データストライプに関するリードリクエストを送信し、前記データストライプが検出された場合、前記データストライプを前記リードライト部に返し、そうでない場合、分散ストレージシステムのロッククライアントノードから前記データストライプのデータストリップを読み、前記データストライプを構成し、前記データストライプを前記リードライト部に返すよう構成される、請求項15乃至18何れか一項記載のノード。
  20. プロセッサ、メモリ、通信インタフェース及びバスを有するデータストライプオーナサーバノードであって、
    前記プロセッサ、前記メモリ及び前記通信インタフェースは、前記バスを介し通信し、
    前記メモリは、実行命令を格納するよう構成され、
    前記通信インタフェースは、第1ロッククライアントノードと第2ロッククライアントノードと通信するよう構成され、
    当該データストライプオーナサーバノードが実行中であるとき、前記プロセッサは、当該データストライプオーナサーバノードが請求項1乃至4何れか一項記載の分散ストレージシステムのキャッシュ処理方法を実行するように、前記メモリにより格納されている実行命令を実行するデータストライプオーナサーバノード。
  21. プロセッサ、メモリ、通信インタフェース及びバスを有するロッククライアントノードであって、
    前記プロセッサ、前記メモリ及び前記通信インタフェースは、前記バスを介し通信し、
    前記メモリは、実行命令を格納するよう構成され、
    前記通信インタフェースは、データストライプオーナサーバノードと他のロッククライアントノードと通信するよう構成され、
    当該ロッククライアントノードが実行中であるとき、前記プロセッサは、当該ロッククライアントノードが請求項5乃至10何れか一項記載の分散ストレージシステムのキャッシュ処理方法を実行するように、前記メモリにより格納されている実行命令を実行するロッククライアントノード。
  22. コンピュータ実行命令を有するコンピュータ可読媒体であって、前記コンピュータ実行命令は、請求項1乃至4何れか一項記載の方法を実行するようロッククライアントノードに指示するのに利用されるコンピュータ可読媒体。
  23. コンピュータ実行命令を有するコンピュータ可読媒体であって、前記コンピュータ実行命令は、請求項5乃至10何れか一項記載の方法を実行するようロッククライアントノードに指示するのに利用されるコンピュータ可読媒体。
JP2015514321A 2012-12-28 2012-12-28 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 Active JP6301318B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087842 WO2014101108A1 (zh) 2012-12-28 2012-12-28 分布式存储系统的缓存方法、节点和计算机可读介质

Publications (2)

Publication Number Publication Date
JP2015525392A true JP2015525392A (ja) 2015-09-03
JP6301318B2 JP6301318B2 (ja) 2018-03-28

Family

ID=49535837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015514321A Active JP6301318B2 (ja) 2012-12-28 2012-12-28 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体

Country Status (7)

Country Link
US (1) US9424204B2 (ja)
EP (1) EP2830284B1 (ja)
JP (1) JP6301318B2 (ja)
CN (1) CN103392167B (ja)
AU (1) AU2012398211B2 (ja)
CA (1) CA2896123C (ja)
WO (1) WO2014101108A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413217A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559319B (zh) * 2013-11-21 2017-07-07 华为技术有限公司 分布式集群文件系统的缓存同步方法和设备
CN104113587B (zh) * 2014-06-23 2017-08-01 华中科技大学 一种分布式文件系统客户端元数据缓存优化方法
CN104536916B (zh) * 2014-12-18 2018-04-10 华为技术有限公司 一种多核系统的仲裁方法及多核系统
CN104932953B (zh) * 2015-06-04 2017-11-21 华为技术有限公司 一种数据分发方法、数据存储方法、相关装置以及系统
US20170097887A1 (en) * 2015-10-02 2017-04-06 Netapp, Inc. Storage Controller Cache Having Reserved Parity Area
CN105183670B (zh) * 2015-10-27 2018-11-27 北京百度网讯科技有限公司 用于分布式缓存系统的数据处理方法和装置
EP3217248B1 (en) 2015-12-31 2019-04-03 Huawei Technologies Co., Ltd. Method and system for writing data
CN105573682B (zh) * 2016-02-25 2018-10-30 浪潮(北京)电子信息产业有限公司 一种san存储系统及其数据读写方法
CN107239474B (zh) * 2016-03-29 2021-05-04 创新先进技术有限公司 一种数据记录方法及装置
CN106156334B (zh) * 2016-07-06 2019-11-22 益佳科技(北京)有限责任公司 内存数据处理设备及内存数据处理方法
US10191854B1 (en) * 2016-12-06 2019-01-29 Levyx, Inc. Embedded resilient distributed dataset systems and methods
CN106850856A (zh) * 2017-03-28 2017-06-13 南京卓盛云信息科技有限公司 一种分布式存储系统及其同步缓存方法
CN107239235B (zh) * 2017-06-02 2020-07-24 苏州浪潮智能科技有限公司 一种多控多活raid同步方法及系统
CN107330061B (zh) * 2017-06-29 2021-02-02 苏州浪潮智能科技有限公司 一种基于分布式存储的文件删除方法及装置
CN107608626B (zh) * 2017-08-16 2020-05-19 华中科技大学 一种基于ssd raid阵列的多级缓存及缓存方法
CN107623722A (zh) * 2017-08-21 2018-01-23 云宏信息科技股份有限公司 一种远端数据缓存方法、电子设备及存储介质
US10685010B2 (en) * 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
US10474545B1 (en) * 2017-10-31 2019-11-12 EMC IP Holding Company LLC Storage system with distributed input-output sequencing
US10365980B1 (en) * 2017-10-31 2019-07-30 EMC IP Holding Company LLC Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization
US11209997B2 (en) 2017-11-22 2021-12-28 Blackberry Limited Method and system for low latency data management
CN110347516B (zh) * 2019-06-27 2023-03-24 河北科技大学 一种面向细粒度读写锁的软件自动重构方法及装置
CN110442558B (zh) * 2019-07-30 2023-12-29 深信服科技股份有限公司 数据处理方法、分片服务器、存储介质及装置
US20210232442A1 (en) * 2020-01-29 2021-07-29 International Business Machines Corporation Moveable distributed synchronization objects
CN111651464B (zh) * 2020-04-15 2024-02-23 北京皮尔布莱尼软件有限公司 数据处理方法、系统及计算设备
US20230146076A1 (en) * 2021-11-08 2023-05-11 Rubrik, Inc. Backing file system with cloud object store
WO2024026784A1 (zh) * 2022-08-04 2024-02-08 华为技术有限公司 事务处理方法、装置、节点及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244606A (ja) * 1994-03-04 1995-09-19 Mitsubishi Electric Corp データリンク情報制御方式
JP2000187609A (ja) * 1998-11-20 2000-07-04 Internatl Business Mach Corp <Ibm> 要求されたオブジェクトを検索する方法及び記録デバイス
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム
US20030159001A1 (en) * 2002-02-19 2003-08-21 Chalmer Steven R. Distributed, scalable data storage facility with cache memory
JP2008506195A (ja) * 2004-07-07 2008-02-28 ヨッタヨッタ インコーポレイテッド 分散キャッシュ・コヒーレンスを提供するシステムおよび方法
WO2010046985A1 (ja) * 2008-10-23 2010-04-29 富士通株式会社 認証システム、認証プログラム、認証サーバおよび副認証サーバ
JP2012018607A (ja) * 2010-07-09 2012-01-26 Nomura Research Institute Ltd 分散キャッシュシステム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6446237B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6742135B1 (en) * 2000-11-07 2004-05-25 At&T Corp. Fault-tolerant match-and-set locking mechanism for multiprocessor systems
US7406519B2 (en) * 2001-11-13 2008-07-29 Microsoft Corporation Method and system for locking resources in a distributed environment
US7200715B2 (en) * 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
US6990560B2 (en) * 2003-01-16 2006-01-24 International Business Machines Corporation Task synchronization mechanism and method
US8543781B2 (en) * 2004-02-06 2013-09-24 Vmware, Inc. Hybrid locking using network and on-disk based schemes
US8103838B2 (en) * 2009-01-08 2012-01-24 Oracle America, Inc. System and method for transactional locking using reader-lists
CN101706802B (zh) * 2009-11-24 2013-06-05 成都市华为赛门铁克科技有限公司 一种数据写入、修改及恢复的方法、装置及服务器
US8103904B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8156368B2 (en) * 2010-02-22 2012-04-10 International Business Machines Corporation Rebuilding lost data in a distributed redundancy data storage system
CN102387204B (zh) * 2011-10-21 2014-12-10 中国科学院计算技术研究所 维护集群缓存一致性的方法及系统
US9383932B2 (en) * 2013-12-27 2016-07-05 Intel Corporation Data coherency model and protocol at cluster level

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244606A (ja) * 1994-03-04 1995-09-19 Mitsubishi Electric Corp データリンク情報制御方式
JP2000187609A (ja) * 1998-11-20 2000-07-04 Internatl Business Mach Corp <Ibm> 要求されたオブジェクトを検索する方法及び記録デバイス
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム
US20030159001A1 (en) * 2002-02-19 2003-08-21 Chalmer Steven R. Distributed, scalable data storage facility with cache memory
JP2008506195A (ja) * 2004-07-07 2008-02-28 ヨッタヨッタ インコーポレイテッド 分散キャッシュ・コヒーレンスを提供するシステムおよび方法
WO2010046985A1 (ja) * 2008-10-23 2010-04-29 富士通株式会社 認証システム、認証プログラム、認証サーバおよび副認証サーバ
JP2012018607A (ja) * 2010-07-09 2012-01-26 Nomura Research Institute Ltd 分散キャッシュシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413217A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
CN110413217B (zh) * 2018-04-28 2023-08-11 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品

Also Published As

Publication number Publication date
AU2012398211A1 (en) 2015-07-30
EP2830284A4 (en) 2015-05-20
CN103392167A (zh) 2013-11-13
EP2830284B1 (en) 2017-03-22
AU2012398211B2 (en) 2016-12-08
CA2896123A1 (en) 2014-07-03
US9424204B2 (en) 2016-08-23
US20150026417A1 (en) 2015-01-22
WO2014101108A1 (zh) 2014-07-03
EP2830284A1 (en) 2015-01-28
CA2896123C (en) 2018-02-13
JP6301318B2 (ja) 2018-03-28
CN103392167B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
JP6301318B2 (ja) 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体
CN103827843B (zh) 一种写数据方法、装置和系统
US7467263B2 (en) Storage system, management apparatus &amp; method for determining a performance problem using past &amp; current performance values of the resources
EP3553647B1 (en) Data write method, apparatus, and system
CN108363641B (zh) 一种主备机数据传递方法、控制节点以及数据库系统
WO2018068626A1 (zh) 一种磁盘锁的管理方法、装置和系统
US9940042B2 (en) Distributed storage system, and data-access method therefor
CN109302448B (zh) 一种数据处理方法及装置
WO2018176265A1 (zh) 分布式存储系统的访问方法和相关装置和相关系统
US8230191B2 (en) Recording medium storing allocation control program, allocation control apparatus, and allocation control method
CN105549905A (zh) 一种多虚拟机访问分布式对象存储系统的方法
US20180046692A1 (en) Secure deletion operations in a wide area network
US7725631B2 (en) Information system and information storage method of information system
CN107329704B (zh) 一种缓存镜像方法及控制器
WO2019062856A1 (zh) 数据重构方法及装置、数据存储系统
WO2014015782A1 (zh) 分布式文件系统、文件访问方法以及客户端
CN109254958B (zh) 分布式数据读写方法、设备及系统
US9348847B2 (en) Data access control apparatus and data access control method
CN112860480A (zh) 一种双活存储系统及其处理数据的方法
CN106790458B (zh) 一种跨局域网的Memcache数据共享方法及系统
JP6172294B2 (ja) トランザクション分散処理装置、方法、システム、および、記憶媒体
US20150100573A1 (en) Method for processing data
CN109947704A (zh) 一种锁类型切换方法、装置及集群文件系统
US10938701B2 (en) Efficient heartbeat with remote servers by NAS cluster nodes
CN115878584A (zh) 一种数据访问方法、存储系统及存储节点

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160408

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170126

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20170331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180228

R150 Certificate of patent or registration of utility model

Ref document number: 6301318

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250