(57)【要約】      （修正有）【課題】クラスタ内のロック管理方法、ロックサーバ及びクライアントを提供する。【解決手段】クラスタは、クライアントとロックサーバとを含む。ロックサーバであって、インタフェースカードとメモリとを含み、メモリは、読み取りロックを求めて待機するか、或いは読み取りロック要求キューを記憶する。また、メモリは、書き込みロックを求めて待機するか、或いは書き込みロック要求キューを更に記憶する。メモリは、読み取りロック割り当てカウントと書き込みロック割り当て識別子とを更に含む。読み取りロック割り当てカウントは、割り当てられた読み取りロックを記録するために使用される。書き込みロック割り当て識別子は、書き込みロックが割り当てられているか否かを示すために使用される。クライアントは、ロック操作を実行するために、RDMAプロトコルを使用することによりロックサーバのインタフェースカードと通信する。【選択図】図２
2018110031.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ内のロック管理方法であり、前記クラスタは、複数のクライアントとロックサーバとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶し、前記書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、前記クラスタ内のクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための前記書き込みロックが割り当てられたか否かを示すために使用され、前記読み取りロック割り当てカウントは、前記共有リソースのために割り当てられた読み取りロックの数量を示すために使用される方法であって、
前記インタフェースカードにより、前記複数のクライアント内の第１のクライアントにより送信された第１の書き込みロック要求を受信するステップであり、前記第１の書き込みロック要求は、前記第１のクライアントの識別子と前記書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送するステップと、
前記インタフェースカードにより、前記第１のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込み、前記インタフェースカードにより、読み取りロックが割り当てられているか否かを決定するために、前記読み取りロック割り当てカウントに問い合わせ、前記読み取りロックが割り当てられない場合、前記インタフェースカードにより、前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定し、前記インタフェースカードにより、前記第１のクライアントが前記書き込みロックを取得することを示すためのメッセージを前記第１のクライアントに送信するステップと、
前記読み取りロックが割り当てられている場合、前記インタフェースカードにより、第２のメッセージを前記第１のクライアントに送信するステップであり、前記第２のメッセージは、前記第１のクライアントが書き込みロック待機状態にあることを示すステップと
を含む方法。
【請求項２】
前記インタフェースカードにより、前記複数のクライアント内の第２のクライアントにより送信された第２の書き込みロック要求を受信するステップであり、前記第２の書き込みロック要求は、前記第２のクライアントの識別子と前記書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、前記第１のメモリアドレスは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを除き、前記第２のクライアントの前記識別子が書き込まれることができる、前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスであるステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子を前記書き込みロック要求キュー内の前記第１のメモリアドレスに書き込むステップと、
前記インタフェースカードにより、前記第２のクライアントが書き込みロック待機状態にあることを示すためのメッセージを前記第２のクライアントに送信するステップと
を更に含む、請求項１に記載の方法。
【請求項３】
前記ロックサーバの前記メモリは、読み取りロック要求キューを更に含み、前記読み取りロックが割り当てられていることを前記読み取りロック割り当てカウントが示す場合、前記読み取りロック要求キューは、前記共有リソースのための前記読み取りロックを取得する、前記クラスタ内にある第３のクライアントの識別子を記録するために使用される、請求項１に記載の方法。
【請求項４】
前記第１の書き込みロック要求は、ロックリースを更に搬送し、前記ロックリースは、前記書き込みロックの有効期間を示すために使用される、請求項１に記載の方法。
【請求項５】
前記第１のクライアントが前記書き込みロックを取得した後に、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック解放要求を受信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスから前記第１のクライアントの前記識別子を削除するステップと
を更に含む、請求項２に記載の方法。
【請求項６】
前記インタフェースカードにより、前記書き込みロック待機状態にある前記第２のクライアントを決定するために、前記書き込みロック要求キューに問い合わせるステップと、
前記インタフェースカードにより、前記第２のクライアントに対して前記書き込みロックを求めて前記インタフェースカードに申請するように命令するための通知を前記第２のクライアントに送信するステップと
を更に含む、請求項５に記載の方法。
【請求項７】
前記第１のクライアントが前記書き込みロックを取得した後に故障になった場合、
前記インタフェースカードにより、前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスから前記第１のクライアントの前記識別子を削除するステップと
を更に含む、請求項１に記載の方法。
【請求項８】
前記インタフェースカードにより、前記第１のクライアントを除き前記クラスタ内のクライアントに通知を送信するステップであり、前記通知は、前記第１のクライアントにより保持された前記書き込みロックが解放されていることを示すステップを更に含む、請求項７に記載の方法。
【請求項９】
クラスタ内のロック管理方法であり、前記クラスタは、複数のクライアントとロックサーバとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶し、前記書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、前記クラスタ内のクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための前記書き込みロックが割り当てられたか否かを示すために使用され、前記読み取りロック割り当てカウントは、前記共有リソースのために割り当てられた読み取りロックの数量を示すために使用される方法であって、
前記複数のクライアント内の第１のクライアントにより、第１の書き込みロック要求を前記ロックサーバの前記インタフェースカードに送信するステップであり、前記第１の書き込みロック要求は、前記第１のクライアントの識別子と前記書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された第１のメッセージを受信するステップであり、前記第１のメッセージは、前記インタフェースカードが前記第１のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込むことを示し、前記第１のクライアントが前記書き込みロックを取得するか、或いは書き込みロック待機状態にあることを示すステップと、
前記インタフェースカードが前記第１のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込むことに失敗したことを前記第１のメッセージが示す場合、前記第１のクライアントにより、第２の書き込みロック要求を前記インタフェースカードに送信するステップであり、前記第２の書き込みロック要求は、前記第１のクライアントの前記識別子と前記書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、前記第１のメモリアドレスは、前記第１のクライアントの前記識別子が書き込まれることができる、前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスであるステップと
を含む方法。
【請求項１０】
前記第１の書き込みロック要求及び前記第２の書き込みロック要求は、ロックリースを更に搬送し、前記ロックリースは、前記書き込みロックの有効期間を示すために使用される、請求項９に記載の方法。
【請求項１１】
前記第１のクライアントが前記書き込みロックを取得した後に、
前記第１のクライアントにより、書き込みロック解放要求を前記インタフェースカードに送信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップを更に含む、請求項９に記載の方法。
【請求項１２】
クラスタ内のロック管理方法であり、前記クラスタは、複数のクライアントとロックサーバとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、前記クラスタ内にあるクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための書き込みロックが割り当てられたか否かを示すために使用される方法であって、
前記インタフェースカードにより、前記複数のクライアント内の第１のクライアントにより送信された第１の読み取りロック要求を受信するステップであり、前記第１の読み取りロック要求は、前記第１のクライアントの識別子と前記読み取りロック要求キュー内の第１のメモリアドレスとを搬送するステップと、
前記インタフェースカードにより、前記第１のクライアントの前記識別子を前記読み取りロック要求キュー内の前記第１のメモリアドレスに書き込むステップと、
前記インタフェースカードにより、第１のメッセージを前記第１のクライアントに送信するステップであり、前記第１のメッセージは、前記書き込みロック割り当て識別子を搬送するステップと
を含む方法。
【請求項１３】
前記書き込みロックが割り当てられていることを前記書き込みロック割り当て識別子が示す場合、前記第１のメッセージは、前記第１のクライアントが読み取りロック待機状態にあることを示す、請求項１２に記載の方法。
【請求項１４】
前記メモリは、読み取りロック割り当てカウントを更に記憶し、前記読み取りロック割り当てカウントは、前記共有リソースのために割り当てられた読み取りロックの数量を示すために使用され、前記書き込みロックが割り当てられないことを前記書き込みロック割り当て識別子が示す場合、前記インタフェースカードは、前記第１のクライアントに割り当てられた読み取りロックの数量に従って前記読み取りロック割り当てカウントを増加させ、前記第１のメッセージは、前記第１のクライアントが読み取りロックを取得することを示す、請求項１２に記載の方法。
【請求項１５】
前記複数のクライアントは、第２のクライアントを更に含み、前記メモリは、書き込みロック要求キューを更に記憶し、前記書き込みロック要求キューは、前記共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、前記共有リソースのための前記書き込みロックを取得するクライアントの識別子とを含む、前記クラスタ内のクライアントの識別子を記録するために使用され、前記書き込みロックが割り当てられていることを前記書き込みロック割り当て識別子が示す場合、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶される、請求項１３に記載の方法。
【請求項１６】
前記複数のクライアントは、第３のクライアントを更に含み、前記第３のクライアントの識別子は、前記読み取りロック要求キューのキュー先頭のメモリアドレスに記憶され、
前記読み取りロック要求キュー内の、前記第１の読み取りロック要求で搬送された前記第１のメモリアドレスは、前記第１のクライアントの前記識別子が書き込まれることができる、前記読み取りロック要求キューの前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである、請求項１２に記載の方法。
【請求項１７】
前記第１の読み取りロック要求は、ロックリースを更に搬送し、前記ロックリースは、読み取りロックの有効期間を示すために使用される、請求項１２に記載の方法。
【請求項１８】
前記第１のクライアントが前記読み取りロックを取得した場合、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記第１のメモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記第１のクライアントに割り当てられた前記読み取りロックの数量に従って前記メモリ内の前記読み取りロック割り当てカウントを減少させるステップと、
前記インタフェースカードにより、前記読み取りロック要求キュー内の前記第１のメモリアドレスから前記第１のクライアントの前記識別子を削除するステップと
を更に含む、請求項１４に記載の方法。
【請求項１９】
前記第１のクライアントが前記読み取りロックを取得した後に故障になった場合、
前記インタフェースカードにより、前記第１のクライアントに割り当てられた前記読み取りロックの数量に従って前記メモリ内の前記読み取りロック割り当てカウントを減少させるステップと、
前記インタフェースカードにより、前記読み取りロック要求キュー内の前記第１のメモリアドレスから前記第１のクライアントの前記識別子を削除するステップと
を更に含む、請求項１４に記載の方法。
【請求項２０】
クラスタ内のロック管理方法であり、前記クラスタは、複数のクライアントとロックサーバとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、前記クラスタ内にあるクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための書き込みロックが割り当てられたか否かを示すために使用される方法であって、
前記複数のクライアント内の第１のクライアントにより、第１の読み取りロック要求を前記インタフェースカードに送信するステップであり、前記第１の読み取りロック要求は、前記第１のクライアントの識別子と前記読み取りロック要求キュー内の第１のメモリアドレスとを搬送するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された第１のメッセージを受信するステップであり、前記第１のメッセージは、前記書き込みロック割り当て識別子を搬送するステップと
を含む方法。
【請求項２１】
前記書き込みロックが割り当てられていることを前記書き込みロック割り当て識別子が示す場合、前記第１のメッセージは、前記第１のクライアントが読み取りロック待機状態にあることを示す、請求項２０に記載の方法。
【請求項２２】
前記書き込みロックが割り当てられないことを前記書き込みロック割り当て識別子が示す場合、前記第１のメッセージは、前記第１のクライアントが読み取りロックを取得することを示す、請求項２０に記載の方法。
【請求項２３】
前記複数のクライアントは、第２のクライアントを更に含み、前記第２のクライアントの識別子は、前記読み取りロック要求キューのキュー先頭のメモリアドレスに記憶され、
前記読み取りロック要求キュー内の、前記第１の読み取りロック要求で搬送された前記第１のメモリアドレスは、前記第１のクライアントの前記識別子が書き込まれることができる、前記読み取りロック要求キューの前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである、請求項２０に記載の方法。
【請求項２４】
前記第１の読み取りロック要求は、ロックリースを更に搬送し、前記ロックリースは、読み取りロックの有効期間を示すために使用される、請求項２０に記載の方法。
【請求項２５】
前記第１のクライアントが前記読み取りロックを取得した場合、
前記第１のクライアントにより、読み取りロック解放要求を前記インタフェースカードに送信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップを更に含む、請求項２２に記載の方法。
【請求項２６】
ロックサーバであり、前記ロックサーバは、クラスタに適用され、前記クラスタは、複数のクライアントを更に含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶するように構成され、前記書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、前記クラスタ内のクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための前記書き込みロックが割り当てられたか否かを示すために使用され、前記読み取りロック割り当てカウントは、前記共有リソースのために割り当てられた読み取りロックの数量を示すために使用されるロックサーバであって、
前記インタフェースカードは、前記複数のクライアント内の第１のクライアントにより送信された第１の書き込みロック要求を受信するように構成され、前記第１の書き込みロック要求は、前記第１のクライアントの識別子と前記書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送し、
前記インタフェースカードは、前記第１のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込み、読み取りロックが割り当てられているか否かを決定するために、前記読み取りロック割り当てカウントに問い合わせ、前記読み取りロックが割り当てられない場合、前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定し、前記第１のクライアントが前記書き込みロックを取得することを示すためのメッセージを前記第１のクライアントに送信するように更に構成され、
前記読み取りロックが割り当てられている場合、第２のメッセージを前記第１のクライアントに送信するように更に構成され、前記第２のメッセージは、前記第１のクライアントが書き込みロック待機状態にあることを示す、ロックサーバ。
【請求項２７】
前記インタフェースカードは、前記複数のクライアント内の第２のクライアントにより送信された第２の書き込みロック要求を受信するように更に構成され、前記第２の書き込みロック要求は、前記第２のクライアントの識別子と前記書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、前記第１のメモリアドレスは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを除き、前記第２のクライアントの前記識別子が書き込まれることができる、前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスであり、前記第２のクライアントの前記識別子を前記書き込みロック要求キュー内の前記第１のメモリアドレスに書き込み、前記第２のクライアントが書き込みロック待機状態にあることを示すためのメッセージを前記第２のクライアントに送信する、請求項２６に記載のロックサーバ。
【請求項２８】
前記メモリは、読み取りロック要求キューを記憶するように更に構成され、前記読み取りロックが割り当てられていることを前記読み取りロック割り当てカウントが示す場合、前記読み取りロック要求キューは、前記共有リソースのための前記読み取りロックを取得する、前記クラスタ内にある第３のクライアントの識別子を記録するために使用される、請求項２６に記載のロックサーバ。
【請求項２９】
前記第１のクライアントが前記書き込みロックを取得した後に、
前記インタフェースカードは、前記第１のクライアントにより送信された書き込みロック解放要求を受信するように更に構成され、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスから前記第１のクライアントの前記識別子を削除するように更に構成される、請求項２６に記載のロックサーバ。
【請求項３０】
前記第１のクライアントが前記書き込みロックを取得した後に故障になった場合、
前記インタフェースカードは、前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスから前記第１のクライアントの前記識別子を削除するように更に構成される、請求項２６に記載のロックサーバ。
【請求項３１】
クライアントであり、前記クライアントは、クラスタ内の複数のクライアント内の第１のクライアントに適用され、前記クラスタは、ロックサーバを更に含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶し、前記書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、前記クラスタ内のクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための前記書き込みロックが割り当てられたか否かを示すために使用され、前記読み取りロック割り当てカウントは、前記共有リソースのために割り当てられた読み取りロックの数量を示すために使用されるクライアントであって、前記第１のクライアントは、
第１の書き込みロック要求を前記ロックサーバの前記インタフェースカードに送信するように構成された送信ユニットであり、前記第１の書き込みロック要求は、前記第１のクライアントの識別子と前記書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送する送信ユニットと、
前記インタフェースカードにより送信された第１のメッセージを受信するように構成された受信ユニットであり、前記第１のメッセージは、前記インタフェースカードが前記第１のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込むことを示し、前記第１のクライアントが前記書き込みロックを取得するか、或いは書き込みロック待機状態にあることを示す受信ユニットと
を含み、
前記送信ユニットは、前記インタフェースカードが前記第１のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込むことに失敗したことを前記第１のメッセージが示す場合、第２の書き込みロック要求を前記インタフェースカードに送信するように更に構成され、前記第２の書き込みロック要求は、前記第１のクライアントの前記識別子と前記書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、前記第１のメモリアドレスは、前記第１のクライアントの前記識別子が書き込まれることができる、前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである、クライアント。
【請求項３２】
前記送信ユニットは、前記第１のクライアントが前記書き込みロックを取得した後に、書き込みロック解放要求を前記インタフェースカードに送信するように更に構成され、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送する、請求項３１に記載のクライアント。
【請求項３３】
ロックサーバであり、前記ロックサーバは、クラスタに適用され、前記クラスタは、複数のクライアントを更に含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶するように構成され、前記読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、前記クラスタ内にあるクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための書き込みロックが割り当てられたか否かを示すために使用されるロックサーバであって、
前記インタフェースカードは、前記複数のクライアント内の第１のクライアントにより送信された第１の読み取りロック要求を受信するように構成され、前記第１の読み取りロック要求は、前記第１のクライアントの識別子と前記読み取りロック要求キュー内の第１のメモリアドレスとを搬送し、前記第１のクライアントの前記識別子を前記読み取りロック要求キュー内の前記第１のメモリアドレスに書き込み、第１のメッセージを前記第１のクライアントに送信するように構成され、前記第１のメッセージは、前記書き込みロック割り当て識別子を搬送する、ロックサーバ。
【請求項３４】
前記書き込みロックが割り当てられていることを前記書き込みロック割り当て識別子が示す場合、前記第１のメッセージは、前記第１のクライアントが読み取りロック待機状態にあることを示す、請求項３３に記載のロックサーバ。
【請求項３５】
前記メモリは、読み取りロック割り当てカウントを更に記憶し、前記読み取りロック割り当てカウントは、前記共有リソースのために割り当てられた読み取りロックの数量を示すために使用され、前記書き込みロックが割り当てられないことを前記書き込みロック割り当て識別子が示す場合、前記インタフェースカードは、前記第１のクライアントに割り当てられた読み取りロックの数量に従って前記読み取りロック割り当てカウントを増加させるように更に構成され、前記第１のメッセージは、前記第１のクライアントが読み取りロックを取得することを示す、請求項３３に記載のロックサーバ。
【請求項３６】
前記複数のクライアントは、第２のクライアントを更に含み、前記メモリは、書き込みロック要求キューを記憶するように更に構成され、前記書き込みロック要求キューは、前記共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、前記共有リソースのための前記書き込みロックを取得するクライアントの識別子とを含む、前記クラスタ内のクライアントの識別子を記録するために使用され、前記書き込みロックが割り当てられていることを前記書き込みロック割り当て識別子が示す場合、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶される、請求項３４に記載のロックサーバ。
【請求項３７】
前記複数のクライアントは、第３のクライアントを更に含み、前記第３のクライアントの識別子は、前記読み取りロック要求キューのキュー先頭のメモリアドレスに記憶され、
前記読み取りロック要求キュー内の、前記第１の読み取りロック要求で搬送された前記第１のメモリアドレスは、前記第１のクライアントの前記識別子が書き込まれることができる、前記読み取りロック要求キューの前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである、請求項３３に記載のロックサーバ。
【請求項３８】
前記第１のクライアントが前記読み取りロックを取得した場合、前記インタフェースカードは、前記第１のクライアントにより送信された読み取りロック解放要求を受信するように更に構成され、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記第１のメモリアドレスを搬送し、前記第１のクライアントに割り当てられた前記読み取りロックの数量に従って前記メモリ内の前記読み取りロック割り当てカウントを減少させ、前記読み取りロック要求キュー内の前記第１のメモリアドレスから前記第１のクライアントの前記識別子を削除するように更に構成される、請求項３５に記載のロックサーバ。
【請求項３９】
前記第１のクライアントが前記読み取りロックを取得した後に故障になった場合、前記インタフェースカードは、前記第１のクライアントに割り当てられた前記読み取りロックの数量に従って前記メモリ内の前記読み取りロック割り当てカウントを減少させ、前記読み取りロック要求キュー内の前記第１のメモリアドレスから前記第１のクライアントの前記識別子を削除するように構成される、請求項３５に記載のロックサーバ。
【請求項４０】
クライアントであり、前記クライアントは、クラスタに適用され、複数のクライアント内の第１のクライアントとして機能し、前記クラスタは、ロックサーバを更に含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、前記クラスタ内にあるクライアントの識別子を記録するために使用され、前記書き込みロック割り当て識別子は、前記共有リソースのための書き込みロックが割り当てられたか否かを示すために使用されるクライアントであって、前記第１のクライアントは、
第１の読み取りロック要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記第１の読み取りロック要求は、前記第１のクライアントの識別子と前記読み取りロック要求キュー内の第１のメモリアドレスとを搬送する送信ユニットと、
前記インタフェースカードにより送信された第１のメッセージを受信するように構成された受信ユニットであり、前記第１のメッセージは、前記書き込みロック割り当て識別子を搬送する受信ユニットと
を含むクライアント。
【請求項４１】
前記書き込みロックが割り当てられていることを前記書き込みロック割り当て識別子が示す場合、前記第１のメッセージは、前記第１のクライアントが読み取りロック待機状態にあることを示す、請求項４０に記載のクライアント。
【請求項４２】
前記書き込みロックが割り当てられないことを前記書き込みロック割り当て識別子が示す場合、前記第１のメッセージは、前記第１のクライアントが読み取りロックを取得することを示す、請求項４０に記載のクライアント。
【請求項４３】
前記複数のクライアントは、第２のクライアントを更に含み、前記第２のクライアントの識別子は、前記読み取りロック要求キューのキュー先頭のメモリアドレスに記憶され、
前記読み取りロック要求キュー内の、前記第１の読み取りロック要求で搬送された前記第１のメモリアドレスは、前記第１のクライアントの前記識別子が書き込まれることができる、前記読み取りロック要求キューの前記キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである、請求項４０に記載のクライアント。
【請求項４４】
前記送信ユニットは、読み取りロック解放要求を前記インタフェースカードに送信するように更に構成され、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送する、請求項４２に記載のクライアント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報技術の分野に関し、特にクラスタ内のロック管理方法、ロックサーバ及びクライアントに関する。
【背景技術】
【０００２】
クラスタは、複数のクライアントを含み、クラスタ内の共有リソースの書き込み許可又は読み取り許可のような処理許可を取得するために、クライアントは、処理許可を求めてクラスタ内のロックサーバに申請する必要がある。これは、一般的にロックの申請と呼ばれる。一般的に、書き込み許可は、書き込みロック又は排他的ロックとも呼ばれ、読み取り許可は、読み取りロック又は共有ロックと呼ばれる。
【０００３】
従来技術では、図１に示すようにクライアントにより書き込みロックを求めて申請する方式において、クラスタは、ロックサーバと、クライアントAと、クライアントBとを含む。クライアントAは、リモートダイレクトメモリアクセス（Remote  Direct  Memory  Access、RDMA）プロトコルを使用することにより、例えば、RDMAプロトコルにおけるアトミック操作（atomic  operation）Compare-and-Swapを使用することにより書き込みロックを求めてロックサーバに申請することにより、クライアントAの識別子をロックサーバのメモリアドレスに書き込み、すなわち、クライアントAは、ロックサーバに申請することにより書き込みロックを取得し、すなわち、書き込みロックは、クライアントAに割り当てられる。クライアントBは、Compare-and-Swapを使用することにより書き込みロックを求めてロックサーバに申請し、ロックサーバは、クライアントAの識別子をクライアントBに返信し、クライアントBは、Compare-and-Swapを使用することにより、クライアントAの識別子に従って、書き込みロックを求めてクライアントAに申請する。クライアントAが書き込みロックを解放する前に、クライアントBは、書き込みロック待機状態にある。
【０００４】
従来技術の実現解決策では、クライアントAが故障した場合、ロックサーバは、クライアントBが書き込みロック待機状態にあることを認識しないため、クライアントBは申請によって書き込みロックを取得することができず、常に書き込みロック待機状態にある。前述の説明から、従来技術におけるロックサーバは、１つのみの現クライアントのロック状態を取得することができることが認識され得る。
【発明の概要】
【０００５】
第１の態様によれば、本発明の実施例は、クラスタ内のロック管理方法を提供し、クラスタは、複数のクライアントとロックサーバとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶し、書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、クラスタ内のクライアントの識別子を記録するために使用され、書き込みロック割り当て識別子は、共有リソースのための書き込みロックが割り当てられたか否かを示すために使用され、読み取りロック割り当てカウントは、共有リソースのために割り当てられた読み取りロックの数量を示すために使用され、ロック管理方法は、インタフェースカードにより、複数のクライアント内の第１のクライアントにより送信された第１の書き込みロック要求を受信するステップであり、第１の書き込みロック要求は、第１のクライアントの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送するステップと、第１のクライアントの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むステップと、インタフェースカードにより、読み取りロックが割り当てられているか否かを決定するために、読み取りロック割り当てカウントに問い合わせ、読み取りロックが割り当てられない場合、書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定するステップと、第１のクライアントが書き込みロックを取得することを示すためのメッセージを第１のクライアントに送信するステップと、読み取りロックが割り当てられている場合、第２のメッセージを第１のクライアントに送信するステップであり、第２のメッセージは、第１のクライアントが書き込みロック待機状態にあることを示すステップとを含む。本発明のこの実施例では、メモリ内の書き込みロック要求キューと書き込みロック割り当て識別子と書き込みロック割り当てカウントとを使用することにより、ロックサーバは、クライアントが書き込みロックを取得するか、或いは書き込みロックを求めて待機すると決定することができる。
【０００６】
第１の態様を参照して、第１の可能な実現方式では、クラスタは、第２のクライアントを更に含み、この方法は、インタフェースカードにより、複数のクライアント内の第２のクライアントにより送信された第２の書き込みロック要求を受信するステップであり、第２の書き込みロック要求は、第２のクライアントの識別子と書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、第１のメモリアドレスは、書き込みロック要求キューのキュー先頭のメモリアドレスを除き、第２のクライアントの識別子が書き込まれることができる、キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスであるステップと、インタフェースカードにより、第２のクライアントの識別子を書き込みロック要求キュー内の第１のメモリアドレスに書き込むステップと、インタフェースカードにより、第２のクライアントが書き込みロック待機状態にあることを示すためのメッセージを第２のクライアントに送信するステップとを更に含む。したがって、ロックサーバは、書き込みロック要求キューを使用することにより、書き込みロック待機状態にあるクライアントを決定することができる。任意選択で、第１のメモリアドレスは、書き込みロック要求キューのキュー先頭のメモリアドレスを除き、第２のクライアントの識別子が書き込まれることができる、キュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。
【０００７】
第１の態様を参照して、第２の可能な実現方式では、ロックサーバのメモリは、読み取りロック要求キューを含み、読み取りロックが割り当てられていることを読み取りロック割り当てカウントが示す場合、読み取りロック要求キューは、共有リソースのための読み取りロックを取得する、クラスタ内にある第３のクライアントの識別子を記録するために使用される。
【０００８】
第１の可能な実現方式を参照して、第３の可能な実現方式では、第１の書き込みロック要求は、ロックリースを更に搬送し、ロックリースは、書き込みロックの有効期間を示すために使用される。ロックリースを使用することにより、ロックサーバは、ロックリースに従って書き込みロックを解放してもよい。
【０００９】
第１の可能な実現方式を参照して、第４の可能な実現方式では、第１のクライアントが書き込みロックを取得した後に、この方法は、インタフェースカードにより、第１のクライアントにより送信された書き込みロック解放要求を受信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭のメモリアドレスから第１のクライアントの識別子を削除するステップとを更に含む。第１のクライアントは、書き込みロックを解放し、これにより、クラスタ内の他のクライアントが書き込みロックを取得してもよい。
【００１０】
第１の可能な実現方式を参照して、第５の可能な実現方式では、第１のクライアントが書き込みロックを取得した後に故障になった場合、この方法は、インタフェースカードにより、書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭のメモリアドレスから第１のクライアントの識別子を削除するステップとを更に含む。任意選択で、インタフェースカードは、第１のクライアントが故障していると決定するために、クラスタ内の他のクライアントにより送信された通知を受信する。故障した第１のクライアントの書き込みロックを解放することは、故障した第１のクライアントが書き込みロックを長期間に保持することを妨げることができる。任意選択で、インタフェースカードは、第１のクライアントを除きクラスタ内のクライアントに通知を送信し、通知は、第１のクライアントにより保持された書き込みロックが解放されていることを示す。
【００１１】
第４又は第５の可能な実現方式を参照して、第６の可能な実現方式では、この方法は、インタフェースカードにより、書き込みロック待機状態にある第２のクライアントを決定するために、書き込みロック要求キューに問い合わせるステップと、インタフェースカードにより、第２のクライアントに対して書き込みロックを求めてインタフェースカードに申請するように命令するための通知を第２のクライアントに送信するステップとを更に含む。ロックサーバは、適時に書き込みロック待機状態にあるクライアントに対して書き込みロックを求めて申請するように命令する。
【００１２】
第５の可能な実現方式を参照して、第７の可能な実現方式では、この方法は、インタフェースカードにより、第１のクライアントを除きクラスタ内のクライアントに通知を送信するステップであり、通知は、第１のクライアントにより保持された書き込みロックが解放されていることを示すステップを更に含む。
【００１３】
第４の可能な実現方式を参照して、第８の可能な実現方式では、この方法は、インタフェースカードにより、第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアント識別子を求めて問い合わせるステップと、インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを第１のクライアントに送信するステップであり、書き込みロック要求問い合わせ応答メッセージは、次のメモリアドレスに記憶されたクライアント識別子を搬送するステップとを更に含む。
【００１４】
第４の可能な実現方式を参照して、第９の可能な実現方式では、この方法は、インタフェースカードにより、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアント識別子を求めて問い合わせるステップと、インタフェースカードにより、次のメモリアドレスに記憶されたクライアント識別子に対応するクライアントに対して書き込みロックを求めて申請するように命令するための通知を、次のメモリアドレスに記憶されたクライアント識別子に対応するクライアントに送信するステップとを更に含む。したがって、書き込みロックは、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューのキュー先頭から始まるシーケンスに従って申請されてもよい。
【００１５】
第４の可能な実現方式を参照して、第１０の可能な実現方式では、書き込みロック要求キューは、書き込みロック待機状態にあるクライアントの書き込みロック優先度を更に記憶し、この方法は、インタフェースカードにより、第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップと、インタフェースカードにより、書き込みロック要求キュー内で書き込みロック待機状態にあるクライアントの書き込みロック優先度を求めて問い合わせるステップと、インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを第１のクライアントに送信するステップであり、問い合わせ応答メッセージは、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された識別子及び書き込みロック優先度を搬送するステップとを更に含む。
【００１６】
第４の可能な実現方式を参照して、第１１の可能な実現方式では、書き込みロック要求キューは、書き込みロック待機状態にあるクライアントの書き込みロック優先度を更に記憶し、この方法は、インタフェースカードにより、最高の書き込みロック優先度を有するクライアントを決定するために、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された書き込みロック優先度を求めて問い合わせるステップと、インタフェースカードにより、最高の書き込みロック優先度を有するクライアントに対して書き込みロックを求めて申請するように命令するための通知を、最高の書き込みロック優先度を有するクライアントに送信し、これにより、最高の書き込みロック優先度を有するクライアントが書き込みロックを求めて申請するステップとを更に含む。
【００１７】
第４の可能な実現方式を参照して、第１２の可能な実現方式では、この方法は、インタフェースカードにより、書き込みロック待機状態にあるクライアントを決定するために、書き込みロック要求キューに問い合わせるステップと、インタフェースカードにより、少なくとも２つのクライアントに対して書き込みロック要求をインタフェースカードに送信するように命令するための通知を、書き込みロック待機状態にあるクライアント内の少なくとも２つのクライアントに送信するステップとを更に含む。
【００１８】
第１の態様に対応して、第２の態様によれば、本発明の実施例は、クラスタ内のロック管理方法を提供し、クラスタは、複数のクライアントとロックサーバとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶し、書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、クラスタ内のクライアントの識別子を記録するために使用され、書き込みロック割り当て識別子は、共有リソースのための書き込みロックが割り当てられたか否かを示すために使用され、読み取りロック割り当てカウントは、共有リソースのために割り当てられた読み取りロックの数量を示すために使用され、ロック管理方法は、複数のクライアント内の第１のクライアントにより、第１の書き込みロック要求をロックサーバのインタフェースカードに送信するステップであり、第１の書き込みロック要求は、第１のクライアントの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送するステップと、第１のクライアントにより、インタフェースカードにより送信された第１のメッセージを受信するステップであり、第１のメッセージは、インタフェースカードが第１のクライアントの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むことを示し、第１のクライアントが書き込みロックを取得するか、或いは書き込みロック待機状態にあることを示すステップと、インタフェースカードが第１のクライアントの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むことに失敗したことを第１のメッセージが示す場合、第１のクライアントにより、第２の書き込みロック要求をインタフェースカードに送信するステップであり、第２の書き込みロック要求は、第１のクライアントの識別子と書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、第１のメモリアドレスは、第１のクライアントの識別子が書き込まれることができる、キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスであるステップとを含む。任意選択で、第１のメモリアドレスは、第１のクライアントの識別子が書き込まれることができる、キュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。
【００１９】
第２の態様を参照して、第１の可能な実現方式では、第１の書き込みロック要求及び第２の書き込みロック要求は、ロックリースを更に搬送し、ロックリースは、書き込みロックの有効期間を示すために使用される。ロックサーバは、第１のクライアントが長期間に書き込みロックを占有することを妨げるために、ロックリースに従って第１のクライアントの失効した書き込みロックを解放してもよい。
【００２０】
第２の態様を参照して、第２の可能な実現方式では、第１のクライアントが書き込みロックを取得した後に、この方法は、第１のクライアントにより、書き込みロック解放要求をインタフェースカードに送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップを更に含む。
【００２１】
第２の可能な実現方式を参照して、第３の可能な実現方式では、この方法は、第１のクライアントにより、書き込みロック要求問い合わせメッセージをインタフェースカードに送信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスを搬送するステップと、インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、書き込みロック要求問い合わせ応答メッセージは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアント識別子を搬送するステップと、第１のクライアントにより、書き込みロック要求問い合わせ応答メッセージで搬送されたクライアント識別子に従って、クライアントに対して書き込みロックを求めて申請するように命令するための通知を、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアント識別子に対応するクライアントに送信するステップとを更に含む。
【００２２】
第２の可能な実現方式を参照して、第４の可能な実現方式では、この方法は、第１のクライアントにより、書き込みロック要求問い合わせメッセージをインタフェースカードに送信するステップと、インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、問い合わせ応答メッセージは、書き込みロック待機状態にあるクライアントの、書き込みロックキューに記録された識別子及び書き込みロック優先度を搬送するステップと、第１のクライアントにより、書き込みロック要求問い合わせ応答メッセージに従って最高の書き込みロック優先度を有するクライアントを決定するステップと、第１のクライアントにより、最高の書き込みロック優先度を有するクライアントに対して書き込みロック要求をインタフェースカードに送信するように命令するための通知を、最高の書き込みロック優先度を有するクライアントに送信するステップとを更に含む。
【００２３】
第３の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、第１のクライアントとロックサーバとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、クラスタ内にあるクライアントの識別子を記録するために使用され、書き込みロック割り当て識別子は、共有リソースのための書き込みロックが割り当てられたか否かを示すために使用され、ロック管理方法は、インタフェースカードにより、複数のクライアント内の第１のクライアントにより送信された第１の読み取りロック要求を受信するステップであり、第１の読み取りロック要求は、第１のクライアントの識別子と読み取りロック要求キュー内の第１のメモリアドレスとを搬送するステップと、インタフェースカードにより、第１のクライアントの識別子を読み取りロック要求キュー内の第１のメモリアドレスに書き込むステップと、インタフェースカードにより、第１のメッセージを第１のクライアントに送信するステップであり、第１のメッセージは、書き込みロック割り当て識別子を搬送するステップとを含む。読み取りロック要求キューを使用することにより、クラスタ内のクライアントの読み取りロック要求状態が記録されることができ、すなわち、クライアントが読み取りロック待機状態にあるか、或いは読み取りロックを取得する。
【００２４】
第３の態様を参照して、第１の可能な実現方式では、書き込みロックが割り当てられていることを書き込みロック割り当て識別子が示す場合、第１のメッセージは、第１のクライアントが読み取りロック待機状態にあることを示す。
【００２５】
第３の態様を参照して、第２の可能な実現方式では、メモリは、読み取りロック割り当てカウントを更に記憶し、読み取りロック割り当てカウントは、共有リソースのために割り当てられた読み取りロックの数量を示すために使用され、書き込みロックが割り当てられないことを書き込みロック割り当て識別子が示す場合、インタフェースカードは、第１のクライアントに割り当てられた読み取りロックの数量に従って読み取りロック割り当てカウントを増加させ、第１のメッセージは、第１のクライアントが読み取りロックを取得することを示す。
【００２６】
第３の態様の第１の可能な実現方式を参照して、第３の可能な実現方式では、複数のクライアントは、第２のクライアントを更に含み、メモリは、書き込みロック要求キューを更に記憶し、書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、クラスタ内のクライアントの識別子を記録するために使用され、書き込みロックが割り当てられていることを書き込みロック割り当て識別子が示す場合、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶される。ロックサーバのメモリ内の書き込みロック要求キューは、書き込みロックを取得するクライアントを記録し、書き込みロックが割り当てられており、読み取りロック要求キュー内のクライアントが読み取りロック待機状態にあるため、ロックサーバは、書き込みロックを取得するクライアントについての情報を記録し、また、読み取りロック待機状態にあるクライアントについての情報も記録する。
【００２７】
第３の態様を参照して、第４の可能な実現方式では、複数のクライアントは、第３のクライアントを更に含み、第３のクライアントの識別子は、読み取りロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キュー内の、第１の読み取りロック要求で搬送された第１のメモリアドレスは、第１のクライアントの識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである。ロックサーバのメモリ内の読み取りロック要求キューは、複数のクライアントを記録してもよく、したがって、ロックサーバは、複数のクライアントの読み取りロック状態、すなわち、複数のクライアントが読み取りロック待機状態にあるか読み取りロックを取得するかを確認してもよい。任意選択で、第１のメモリアドレスは、第１のクライアントの識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。
【００２８】
第３の態様を参照して、第５の可能な実現方式では、第１の読み取りロック要求は、ロックリースを更に搬送し、ロックリースは、読み取りロックの有効期間を示すために使用され、ロックリースが失効した場合、ロックサーバは、適時に読み取りロックを解放してもよい。
【００２９】
第３の態様の第２の可能な実現方式を参照して、第６の可能な実現方式では、この方法は、インタフェースカードにより、第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にある第１のメモリアドレスを搬送するステップと、インタフェースカードにより、第１のクライアントに割り当てられた読み取りロックの数量に従ってメモリ内の読み取りロック割り当てカウントを減少させるステップと、インタフェースカードにより、読み取りロック要求キュー内の第１のメモリアドレスから第１のクライアントの識別子を削除するステップとを更に含む。第１のクライアントは、読み取りロックを解放し、これにより、ロックサーバが書き込みロックを割り当ててもよい。任意選択で、第１のクライアントは、書き込みロックを求めて申請する他のクライアントの通知に従って読み取りロック解放要求を送信する。
【００３０】
第３の態様の第２の可能な実現方式を参照して、第７の可能な実現方式では、第１のクライアントが読み取りロックを取得した後に故障になった場合、この方法は、インタフェースカードにより、第１のクライアントに割り当てられた読み取りロックの数量に従ってメモリ内の読み取りロック割り当てカウントを減少させるステップと、インタフェースカードにより、読み取りロック要求キュー内の第１のメモリアドレスから第１のクライアントの識別子を削除するステップとを更に含む。第１のクライアントが読み取りロックを取得した後に故障になった場合、ロックサーバのインタフェースカードは、故障したクライアントが長期間に読み取りロックを保持することを妨げるために、第１のクライアントの読み取りロックを解放する。任意選択で、インタフェースカードは、他のクライアントの通知に従って第１のクライアントが故障していると決定し、次に、第１のクライアントにより保持された読み取りロックを解放してもよい。
【００３１】
第４の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、複数のクライアントとロックサーバとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、クラスタ内にあるクライアントの識別子を記録するために使用され、書き込みロック割り当て識別子は、共有リソースのための書き込みロックが割り当てられたか否かを示すために使用され、ロック管理方法は、複数のクライアント内の第１のクライアントにより、第１の読み取りロック要求をインタフェースカードに送信するステップであり、第１の読み取りロック要求は、第１のクライアントの識別子と読み取りロック要求キュー内の第１のメモリアドレスとを搬送するステップと、第１のクライアントにより、インタフェースカードにより送信された第１のメッセージを受信するステップであり、第１のメッセージは、書き込みロック割り当て識別子を搬送するステップとを含む。
【００３２】
第４の態様を参照して、第１の可能な実現方式では、書き込みロックが割り当てられていることを書き込みロック割り当て識別子が示す場合、第１のメッセージは、第１のクライアントが読み取りロック待機状態にあることを示す。
【００３３】
第４の態様を参照して、第２の可能な実現方式では、書き込みロックが割り当てられないことを書き込みロック割り当て識別子が示す場合、第１のメッセージは、第１のクライアントが読み取りロックを取得することを示す。
【００３４】
第４の態様を参照して、第３の可能な実現方式では、クラスタは、第２のクライアントを更に含み、第２のクライアントの識別子は、読み取りロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キュー内の、第１の読み取りロック要求で搬送された第１のメモリアドレスは、第１のクライアントの識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである。任意選択で、第１のメモリアドレスは、第１のクライアントの識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。
【００３５】
第４の態様を参照して、第４の可能な実現方式では、第１の読み取りロック要求は、ロックリースを更に搬送し、ロックリースは、読み取りロックの有効期間を示すために使用される。
【００３６】
第４の態様の第２の可能な実現方式を参照して、第５の可能な実現方式では、第１のクライアントが読み取りロックを取得した場合、この方法は、第１のクライアントにより、読み取りロック解放要求をインタフェースカードに送信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップを更に含む。任意選択で、第１のクライアントは、書き込みロックを求めて申請する他のクライアントにより送信された通知を受信し、読み取りロック解放操作を実行する。
【００３７】
第５の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック要求キューは、第２のクライアントの識別子を更に記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントの書き込みロック解放要求を受信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、書き込みロック要求問い合わせメッセージは、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを第１のクライアントに送信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、インタフェースカードにより、第１のクライアントにより送信された書き込みロック占有要求を受信するステップであり、書き込みロック占有要求は、第２のクライアントの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送するステップと、インタフェースカードにより、第２のクライアントの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むステップとを含む。本発明のこの実施例では、第１のクライアントが書き込みロックを解放するときに、書き込みロックは、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントに直接割り当てられる。
【００３８】
第５の態様を参照して、第１の可能な実現方式では、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスである。したがって、識別子が書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントは、書き込みロックを優先的に取得する。
【００３９】
第５の態様を参照して、第２の可能な実現方式では、書き込みロック要求キューは、第２のクライアントの書き込みロック優先度を更に記憶し、第２のクライアントの書き込みロック優先度は、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である。したがって、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で、最高の書き込みロック優先度を有するクライアントは、書き込みロックを優先的に取得する。
【００４０】
第６の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キューは、第２のクライアントの識別子を記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、読み取りロック割り当てカウントは0であり、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための読み取りロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントにより送信された書き込みロック解放要求を受信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、第１のクライアントにより送信された読み取りロック要求問い合わせメッセージを受信するステップと、インタフェースカードにより、読み取りロック要求問い合わせ応答メッセージを第１のクライアントに送信するステップであり、読み取りロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、インタフェースカードにより、第１のクライアントにより送信された読み取りロック割り当てカウント変更要求を受信するステップと、インタフェースカードにより、読み取りロック割り当てカウント変更要求に従ってメモリ内の読み取りロック割り当てカウントを増加させるステップとを含む。第１のクライアントの書き込みロックが解放されると、読み取りロックは、読み取りロック要求キューに記録された、読み取りロック待機状態にあるクライアントに直接割り当てられる。
【００４１】
第７の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック要求キューは、第２のクライアントの識別子を更に記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、第１のクライアントにより、書き込みロック解放要求をインタフェースカードに送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードが書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除した場合、第１のクライアントにより、書き込みロック要求問い合わせメッセージをインタフェースカードに送信するステップであり、書き込みロック要求問い合わせメッセージは、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送するステップと、第１のクライアントにより、インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、第１のクライアントにより、書き込みロック占有要求をインタフェースカードに送信するステップであり、書き込みロック占有要求は、第２のクライアントの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送するステップと、第１のクライアントにより、第２のクライアントの識別子が書き込みロック要求キューのキュー先頭のメモリアドレスに書き込まれることを示す、インタフェースカードにより送信された書き込みロック占有要求応答を受信するステップと、第１のクライアントにより、通知を第２のクライアントに送信するステップであり、通知は、第２のクライアントが書き込みロックを取得することを示すステップとを含む。第１のクライアントが書き込みロックを解放するときに、書き込みロックは、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントに直接割り当てられる。
【００４２】
第７の態様を参照して、第１の可能な実現方式では、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスである。したがって、識別子が書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントは、書き込みロックを優先的に取得する。
【００４３】
第７の態様を参照して、第２の可能な実現方式では、書き込みロック要求キューは、第２のクライアントの書き込みロック優先度を更に記憶し、第２のクライアントの書き込みロック優先度は、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である。したがって、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で、最高の優先度を有するクライアントは、書き込みロックを優先的に取得する。
【００４４】
第８の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キューは、第２のクライアントの識別子を記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、読み取りロック割り当てカウントは0であり、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための読み取りロック待機状態にあり、ロック管理方法は、第１のクライアントにより、書き込みロック解放要求をインタフェースカードに送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードが書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除した場合、第１のクライアントにより、読み取りロック要求問い合わせメッセージをインタフェースカードに送信するステップと、第１のクライアントにより、インタフェースカードにより送信された読み取りロック要求問い合わせ応答メッセージを受信するステップであり、読み取りロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、第１のクライアントにより、読み取りロック割り当てカウント変更要求をインタフェースカードに送信するステップとを含む。第１のクライアントが読み取りロックを解放した場合、読み取りロックは、読み取りロック要求キューに記録された、読み取りロック待機状態にあるクライアントに直接割り当てられる。
【００４５】
第９の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック要求キューは、第２のクライアントの識別子を更に記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、第１のクライアントにより、書き込みロック解放要求をインタフェースカードに送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードが書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除した場合、第１のクライアントにより、書き込みロック要求問い合わせメッセージをインタフェースカードに送信するステップであり、書き込みロック要求問い合わせメッセージは、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送するステップと、第１のクライアントにより、インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、第１のクライアントにより、第２のクライアントの識別子に従って通知を第２のクライアントに送信するステップであり、通知は、第２のクライアントに対して書き込みロック要求をインタフェースカードに送信するように命令するために使用されるステップとを含む。書き込みロックを解放するときに、第１のクライアントは、書き込みロック待機状態にあるクライアントに対して書き込みロック要求を送信するように命令する。
【００４６】
第９の態様を参照して、第１の可能な実現方式では、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスである。識別子が書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントは、第１のクライアントにより送信された書き込みロック要求通知を優先的に取得する。
【００４７】
第９の態様を参照して、第２の可能な実現方式では、書き込みロック要求キューは、第２のクライアントの書き込みロック優先度を更に記憶し、第２のクライアントの書き込みロック優先度は、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である。したがって、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で、最高の書き込みロック優先度を有するクライアントは、第１のクライアントにより送信された書き込みロック要求通知を優先的に取得する。
【００４８】
第１０の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キューは、第２のクライアントの識別子を記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、読み取りロック割り当てカウントは0であり、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための読み取りロック待機状態にあり、ロック管理方法は、第１のクライアントにより、書き込みロック解放要求をインタフェースカードに送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードが書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除した場合、第１のクライアントにより、読み取りロック要求問い合わせメッセージをインタフェースカードに送信するステップと、第１のクライアントにより、インタフェースカードにより送信された読み取りロック要求問い合わせ応答メッセージを受信するステップであり、読み取りロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、第１のクライアントにより、第２のクライアントの識別子に従って通知を第２のクライアントに送信するステップであり、通知は、第２のクライアントに対して読み取りロックを求めて申請するように命令するために使用されるステップとを含む。書き込みロックを解放するときに、第１のクライアントは、読み取りロック待機状態にある第２のクライアントに対して読み取りロックを求めて申請するように命令し、第２のクライアントは、読み取りロック割り当てカウント変更要求をインタフェースカードに送信し、インタフェースカードは、読み取りロック割り当てカウントを変更し、第２のクライアントは、読み取りロックを取得する。
【００４９】
第１１の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、第１のクライアントの識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、第１のクライアントにより取得された読み取りロックの数量であり、第１のクライアントは、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、第１のクライアントにより、読み取りロック解放要求をインタフェースカードに送信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードが読み取りロック割り当てカウントを0まで減少させ、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューから第１のクライアントの識別子を削除した場合、第１のクライアントにより、書き込みロック要求問い合わせメッセージをインタフェースカードに送信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、第１のクライアントにより、インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、第１のクライアントにより、第２のクライアントの識別子に従って通知を第２のクライアントに送信するステップであり、通知は、第２のクライアントに対して書き込みロックを求めて申請するように命令するために使用されるステップとを含む。読み取りロックを解放するときに、第１のクライアントは、識別子が書き込みロック要求キューのキュー先頭に記録された、書き込みロック待機状態にある第２のクライアントに対して書き込みロックを求めて申請するように命令し、第２のクライアントは、通知に従って書き込みロック割り当て識別子変更要求をインタフェースカードに送信し、インタフェースカードは、書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定し、第２のクライアントは、書き込みロックを取得する。
【００５０】
第１２の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、第１のクライアントの識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、第１のクライアントにより取得された読み取りロックの数量であり、第１のクライアントは、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、第１のクライアントにより、読み取りロック解放要求をインタフェースカードに送信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードがメモリ内の読み取りロック割り当てカウントを0まで減少させ、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューから第１のクライアントの識別子を削除した場合、第１のクライアントにより、書き込みロック要求問い合わせメッセージをインタフェースカードに送信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、第１のクライアントにより、インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、第１のクライアントにより、書き込みロック割り当て識別子変更要求をインタフェースカードに送信するステップと、インタフェースカードが書き込みロック割り当て識別子変更要求に従って書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定した場合、第１のクライアントにより、第２のクライアントの識別子に従って通知を第２のクライアントに送信するステップであり、通知は、第２のクライアントが書き込みロックを取得することを示すステップとを含む。第１のクライアントが読み取りロックを解放するときに、書き込みロックは、識別子が書き込みロック要求キューのキュー先頭に記録された、書き込みロック待機状態にある第２のクライアントに直接割り当てられる。
【００５１】
第１３の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、第１のクライアントの識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、第１のクライアントにより取得された読み取りロックの数量であり、第１のクライアントは、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードにより、読み取りロック割り当てカウントを0まで減少させ、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを第１のクライアントに送信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップとを含む。第１のクライアントの読み取りロックが解放されると、インタフェースカードは、書き込みロックを優先的に処理するために、識別子が書き込みロック要求キューのキュー先頭に記録された、書き込みロック待機状態にある第２のクライアントを求めて問い合わせる。
【００５２】
第１４の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、第１のクライアントの識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、第１のクライアントにより取得された読み取りロックの数量であり、第１のクライアントは、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードにより、読み取りロック割り当てカウントを0まで減少させ、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを第１のクライアントに送信するステップであり、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送するステップと、インタフェースカードにより、第１のクライアントにより送信された書き込みロック割り当て識別子変更要求を受信するステップと、インタフェースカードにより、書き込みロック割り当て識別子変更要求に従って書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定するステップとを含む。第１のクライアントの読み取りロックが解放されるときに、書き込みロックは、書き込みロック要求キューのキュー先頭に記録された、書き込みロック待機状態にあるクライアントに直接割り当てられる。
【００５３】
第１５の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに更に記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントの書き込みロック解放要求を受信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶された第２のクライアントの識別子を求めて問い合わせるステップと、インタフェースカードにより、第２のクライアントの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むステップと、インタフェースカードにより、第２のクライアントに対して書き込みロックを取得するように命令するための通知を第２のクライアントに送信するステップとを含む。本発明のこの実施例では、第１のクライアントが書き込みロックを解放するときに、ロックサーバは、書き込みロック要求キュー内に記録された、書き込みロック待機状態にあるクライアントに書き込みロックを割り当てる。
【００５４】
第１６の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、第１のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キューは、第２のクライアントの識別子を記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、読み取りロック割り当てカウントは0であり、第１のクライアントは、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための読み取りロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントにより送信された書き込みロック解放要求を受信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカードにより、書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、インタフェースカードにより、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、読み取りロック要求キューに記憶された第２のクライアントの識別子を決定するために、読み取りロック要求キューに問い合わせるステップと、インタフェースカードにより、メモリ内の読み取りロック割り当てカウントを増加させるステップと、インタフェースカードにより、第２のクライアントが読み取りロックを取得することを示すための通知を第２のクライアントに送信するステップとを含む。第１のクライアントの書き込みロックが解放されるときに、ロックサーバは、読み取りロック要求キューに記録された、読み取りロック待機状態にあるクライアントに読み取りロックを直接割り当てる。
【００５５】
第１７の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、第１のクライアントの識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、第１のクライアントにより取得された読み取りロックの数量であり、第１のクライアントは、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードにより、読み取りロック割り当てカウントを0まで減少させ、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、第２のクライアントの識別子を決定するために、書き込みロック要求キューのキュー先頭のメモリアドレスに問い合わせるステップと、インタフェースカードにより、第２のクライアントの識別子に従って、第２のクライアントに対して書き込みロックを求めてインタフェースカードに申請するように命令するための通知を第２のクライアントに送信するステップとを含む。第１のクライアントの読み取りロックが解放されるときに、インタフェースカードは、書き込みロックを優先的に処理するために、識別子が書き込みロック要求キューのキュー先頭に記録された、書き込みロック待機状態にある第２のクライアントを求めて問い合わせる。
【００５６】
第１８の態様によれば、本発明の実施例は、クラスタ内の他のロック管理方法を提供し、クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、ロックサーバは、インタフェースカードとメモリとを含み、メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、読み取りロック要求キューは、第１のクライアントの識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、第１のクライアントにより取得された読み取りロックの数量であり、第１のクライアントは、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にあり、ロック管理方法は、インタフェースカードにより、第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、読み取りロック解放要求は、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、インタフェースカードにより、読み取りロック割り当てカウントを0まで減少させ、第１のクライアントの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューから第１のクライアントの識別子を削除するステップと、インタフェースカードにより、第２のクライアントの識別子を決定するために、書き込みロック要求キューのキュー先頭のメモリアドレスに問い合わせるステップと、インタフェースカードにより、書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定するステップと、インタフェースカードにより、第２のクライアントの識別子に従って、第２のクライアントが書き込みロックを取得することを示すための通知を第２のクライアントに送信するステップとを含む。第１のクライアントの読み取りロックが解放されるときに、書き込みロックは、書き込みロック要求キューのキュー先頭に記録された、書き込みロック待機状態にあるクライアントに割り当てられる。
【００５７】
前述の実施例によれば、本発明の実施例は、ロックサーバを更に提供し、ロックサーバは、前述の実施例におけるロックサーバの機能を実現するように構成されたメモリ及びインタフェースカードを含む。
【００５８】
前述の実施例によれば、本発明の実施例は、本発明の前述の実施例に対応する解決策を実現するために、前述の実施例に記載されたクラスタ内の第１のクライアントとして機能するように構成されたクライアントを更に提供する。クライアントは、本発明の前述の実施例におけるクラスタ内の第１のクライアントの機能を実現する構造ユニットを含むか、或いは本発明の前述の実施例におけるクラスタ内の第１のクライアントの機能を実現する。対応して、本発明の実施例は、不揮発性コンピュータ読み取り可能記憶媒体及びコンピュータプログラムプロダクトを更に提供する。不揮発性コンピュータ読み取り可能記憶媒体及びコンピュータプログラムプロダクトに含まれるコンピュータ命令がクライアントのメモリにロードされ、クライアントの中央処理装置（Central  Processing  Unit、CPU）がコンピュータ命令を実行した場合、クライアントは、本発明の前述の実施例におけるクラスタ内の第１のクライアントの機能を実現する。
【００５９】
前述の実施例を参照して、本発明の実施例は、クラスタを更に提供し、クラスタは、ロックサーバとクライアントとを含み、ロックサーバ及びクライアントについては、前述の実施例の説明に参照が行われてもよい。
【００６０】
本発明の実施例において提供されるクラスタ内のロック管理方法、ロックサーバ及びクラスタ内のクライアントによれば、ロックサーバ及びクライアントが読み取りロック要求、書き込みロック要求、書き込みロック解放要求及び読み取りロック解放要求のような操作を処理する場合、ロックサーバのインタフェースカード及びメモリは、互いに直接通信し、ロックサーバの中央処理装置は、前述の操作を処理する必要はない。したがって、（Transmission  Control  Protocol/Internet  Protocol、TCP/IP）プロトコルを使用することによる通信に比べて、クライアントとロックサーバとの間の相互作用が低減される。
【図面の簡単な説明】
【００６１】
【図１】従来技術におけるクラスタの構成図である。
【図２】本発明の実施例によるクラスタの構成図である。
【図３】本発明の実施例によるロックサーバの構成図である。
【図４】本発明の実施例によるロックサーバのメモリの概略図である。
【図５】本発明の実施例に従って書き込みロックを要求するフローチャートである。
【図６】本発明の実施例によるロックサーバのメモリの概略図である。
【図７】本発明の実施例によるロックサーバのメモリの概略図である。
【図８】本発明の実施例に従って読み取りロックを要求するフローチャートである。
【図９】本発明の実施例によるロックサーバのメモリの概略図である。
【図１０】本発明の実施例によるロックサーバのメモリの概略図である。
【図１１】本発明の実施例によるクライアントの概略構成図である。
【発明を実施するための形態】
【００６２】
図２に示すように、本発明の実施例におけるクラスタは、ロックサーバとクライアントAとクライアントBとを含み、クライアントA及びクライアントBは、RDMAプロトコルを使用することによりロックサーバと別々に通信する。ロックサーバのメモリは、ロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶する。詳細については、以下の説明に参照が行われてもよい。
【００６３】
図３に示すように、ロックサーバは、メモリ301とインタフェースカード302とを含み、インタフェースカード302は、イーサーネットプロトコル（Ethernet）をサポートするネットワークインタフェースカード（Network  Interface  Card、NIC）、若しくはInfiniBandプロトコルに基づくインタフェースカード、又はメモリへのダイレクトリモートアクセス、例えば、RDMAを実現することができるプロトコルを実現可能な他のインタフェースカードでもよい。本発明のこの実施例におけるメモリ301は、ダイナミックランダムアクセスメモリ（Dynamic  Random  Access  Memory、DRAM）、デュアルインラインメモリモジュール（Dual-Inline-Memory-Modules、DIMM）、半導体メモリ（Semiconductor  Memory、SCM）、不揮発性メモリ（Non-volatile  memory、NVM）等でもよく、或いはこれらの組み合わせでもよく、本発明のこの実施例では限定されない。クライアントは、サーバ、パーソナルコンピュータ及び他の端末でもよい。クライアントは、一般的にCPUとメモリとを含む。クライアントは、一般的にロックサーバと通信するように構成されたインタフェースカードを更に含む。CPU、メモリ及びインタフェースカードは、バスを使用することにより互いに通信する。図２に示すクラスタによれば、図４に示すように、本発明のこの実施例では、ロックサーバのメモリ301内のロック要求キューは、書き込みロック要求キューである。他の実現では、ロックサーバのメモリ301内のロック要求キューは、読み取りロック要求キューである。他の実現では、ロックサーバのメモリ301内のロック要求キューは、書き込みロック要求キュー及び読み取りロック要求キューである。
【００６４】
本発明のこの実施例では、書き込みロック要求キュー及び読み取りロック要求キューは、メモリ301内のデータ構造であり、書き込みロック要求キューは、書き込みロック待機状態にあるか、或いは書き込みロックを取得するクライアントの識別子を記憶するために使用され、読み取りロック要求キューは、読み取りロック待機状態にあるか、或いは読み取りロックを取得するクライアントの識別子を記憶するために使用される。本発明のこの実施例では、記載の書き込みロック要求キュー及び読み取りロック要求キューは、同じ共有リソースを要求するクライアントの識別子を記憶し、同じ共有リソースを要求することは、同じ共有リソースのための書き込みロック又は読み取りロックを求めて申請することを示す。すなわち、書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、クラスタ内のクライアントの識別子を記録するために使用され、読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、クラスタ内にあるクライアントの識別子を記録するために使用される。書き込みロック割り当て識別子は、同じ共有リソースのための書き込みロックが割り当てられたか否かを識別するために使用され、読み取りロック割り当てカウントは、同じ共有リソースのために割り当てられた読み取りロックの対応する数量を識別するために使用される。メモリ301の読み取りロック割り当てカウントの具体的な実現では、１つのメモリアドレスは、ロックサーバにより割り当てられた読み取りロックの数量を記録するために割り当てられてもよく、或いは複数のメモリアドレスが使用され、各メモリアドレスは、クライアントにより取得された読み取りロックの、読み取りロック要求キューに記録された数量を記録する。本発明のこの実施例の具体的な実現では、書き込みロック要求キューは、メモリ301内のデータ構造であり、読み取りロック要求キューは、メモリ301内のデータ構造である。具体的な実現の中で、書き込みロック要求キュー及び読み取りロック要求キューのそれぞれは、配列又は他の構造でもよい。
【００６５】
本発明のこの実施例では、クライアントの識別子が書き込みロック要求キュー内のメモリアドレスに記憶されること、及びクライアントの識別子が書き込みロック要求キューに記録されることは、同じ意味を有する。同様に、クライアントの識別子が読み取りロック要求キュー内のメモリアドレスに記憶されること、及びクライアントの識別子が読み取りロック要求キューに記録されることは、同じ意味を有する。書き込みロックが同じ共有リソースのために割り当てられたか否かを識別するために書き込みロック割り当て識別子が使用されること、及び書き込みロックが割り当てられたか否かを示すために書き込みロック割り当て識別子が使用されることは、同じ意味を有する。本発明のこの実施例では、クラスタは、複数のクライアントを含み、複数のクライアント内のクライアントは、複数のクライアントに含まれるクライアントと同じ意味を有する。例えば、複数のクライアント内の第２のクライアントは、複数のクライアントに含まれる第２のクライアントと同じ意味を有する。
【００６６】
具体的な実現の中で、ロックサーバは、インタフェースカード302を使用することにより各クライアントと通信し、書き込みロック要求キューのキュー先頭のメモリアドレスと書き込みロック要求キューの長さ情報とを各クライアントに送信し、同様に、読み取りロック要求キューのキュー先頭のメモリアドレスと読み取りロック要求キューの長さ情報とを各クライアントに送信し、書き込みロック割り当て識別子のメモリアドレスについての情報と読み取りロック割り当てカウントのメモリアドレスについての情報とを各クライアントに送信する。
【００６７】
クライアントA及びクライアントBは、RDMAプロトコルを使用することによりロックサーバと通信する。クライアントは、RDMAプロトコルを使用することによりロックサーバと通信し、TCP/IPプロトコルを使用することにより通信を実行することに比べて、クライアントとロックサーバとの間の相互作用が低減される。
【００６８】
図５に示すように、本発明の実施例は、クライアントにより書き込みロックを要求する処理を提供する。
【００６９】
ステップ501：インタフェースカード302は、クライアントAの書き込みロック要求を受信する。
【００７０】
クライアントAは、書き込みロック要求をロックサーバに送信し、書き込みロック要求は、クライアントAの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送する。
【００７１】
メモリ301内の書き込みロック要求キューは、書き込みロック待機状態にあるクライアントの識別子と、書き込みロックを取得するクライアントの識別子とを含む、クライアントの識別子を記録するために使用されてもよく、ロックサーバは、書き込みロック要求キューに従ってクラスタ内のクライアントの書き込みロック申請状態を決定してもよい。
【００７２】
ステップ502：インタフェースカード302は、クライアントAの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込む。
【００７３】
ロックサーバのインタフェースカード302は、書き込みロック要求を受信し、図６に示すように、書き込みロック要求キューのキュー先頭の、書き込みロック要求で搬送されたメモリアドレスに従って、クライアントAの識別子を書き込みロック要求キューのキュー先頭に書き込む。
【００７４】
クライアントAの識別子が書き込みロック要求キューのキュー先頭に成功して書き込まれた場合、これは、ロックサーバが書き込みロックをクラスタ内のクライアントに割り当てず、クライアントが書き込みロックを求めて待機していないことを示す。任意選択で、インタフェースカード302は、クライアントAの識別子が書き込みロック要求キューのキュー先頭のメモリアドレスに書き込まれたことを示すためのメッセージをクライアントAに返信する。
【００７５】
任意選択で、インタフェースカード302がクライアントAの識別子を書き込みロック要求キューのキュー先頭に書き込むことに失敗した場合、インタフェースカード302は、クライアントAの識別子が書き込みロック要求キューのキュー先頭に書き込まれることに失敗したことを示すためのメッセージをクライアントAに送信する。この場合、クライアントAは、書き込みロック要求をインタフェースカード302に再び送信してもよく、書き込みロック要求は、クライアントAの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスに続く次のメモリアドレスとを搬送し、インタフェースカード302は、クライアントAの識別子を書き込みロック要求キュー内の次のメモリアドレスに書き込む。クライアントAの識別子が書き込みロック要求キュー内の次のメモリアドレスに書き込まれることに失敗した場合、クライアントAは、書き込みロック要求キューのキュー先頭から始まる第３のメモリアドレスを順次に選択し、前述の操作を繰り返す。クライアントAの識別子が書き込みロック要求キュー内のメモリアドレスに成功して書き込まれるまで、クライアントAは、書き込みロック要求をインタフェースカード302に再び送信し、書き込みロック要求は、クライアントAの識別子と書き込みロック要求キュー内の第３のメモリアドレスとを搬送し、すなわち、書き込みロック要求は、クライアントAの識別子が書き込まれることができる、書き込みロック要求キュー内にあるメモリアドレスを搬送する。クライアントAは、固定の周期の間隔で書き込みロック要求を送信してもよく、或いはクライアントAの識別子が書き込みロック要求キューに書き込まれることに失敗したことを示すメッセージを受信した場合に書き込みロック要求を送信してもよい。
【００７６】
任意選択で、インタフェースカード302がクライアントAの識別子を書き込みロック要求キューのキュー先頭に書き込むことに失敗した場合、インタフェースカード302は、書き込みロック要求キューのキュー先頭から始まり、クライアントAの識別子が書き込まれることができるメモリアドレスを求めて書き込みロック要求キューに順次に問い合わせ、クライアントAの識別子を書き込みロック要求キューに書き込み、インタフェースカード302は、クライアントAの識別子が書き込みロック要求キュー内のメモリアドレスに書き込まれたことを示すためのメッセージをクライアントAに送信する。任意選択で、メッセージは、クライアントAの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送してもよい。
【００７７】
ステップ503：読み取りロックが割り当てられているか否かを問い合わせる。
【００７８】
本発明のこの実施例では、0である書き込みロック割り当て識別子が、ロックサーバが書き込みロックを割り当てないことを示し、1である書き込みロック割り当て識別子が、ロックサーバが書き込みロックを割り当てていることを示す例が使用される。
【００７９】
任意選択で、インタフェースカード302がクライアントAの識別子を書き込みロック要求キューのキュー先頭に成功して書き込んだ場合、インタフェースカード302は、読み取りロックが割り当てられているか否かを決定するために、読み取りロック割り当てカウントに問い合わせる。ロックサーバが読み取りロックを割り当てない場合、書き込みロック割り当て識別子は、書き込みロック割り当て識別子のメモリアドレスに従って書き込みロック割り当て済状態に設定され（本発明のこの実施例では1に設定され）、インタフェースカード302は、クライアントAが書き込みロックを取得することを示すためのメッセージをクライアントAに送信する。例示的に、メッセージは、書き込みロック割り当て識別子と読み取りロック割り当てカウントとを搬送してもよく、書き込みロック割り当て識別子は1であり、読み取りロック割り当てカウントは0である。0である読み取りロック割り当てカウントは、読み取りロックが割り当てられていないことを示す。
【００８０】
任意選択で、インタフェースカード302がクライアントAの識別子を書き込みロック要求キューのキュー先頭に成功して書き込んだ場合、インタフェースカード302は、クライアントAの識別子が書き込みロック要求キューのキュー先頭に書き込まれたことを示すためのメッセージをクライアントAに送信し、クライアントAは、書き込みロック割り当て識別子変更要求をインタフェースカード302に送信し、書き込みロック割り当て識別子変更要求は、書き込みロック割り当て識別子のメモリアドレスを搬送し、インタフェースカード302は、ロックサーバが読み取りロックを割り当てているか否かを決定するために、読み取りロック割り当てカウントに問い合わせる。ロックサーバが読み取りロックを割り当てない場合、書き込みロック割り当て識別子は、書き込みロック割り当て識別子のメモリアドレスに従って書き込みロック割り当て済状態に設定され（本発明のこの実施例では1に設定され）、インタフェースカード302は、クライアントAが書き込みロックを取得することを示すためのメッセージをクライアントAに送信する。具体的に、メッセージは、書き込みロック割り当て識別子と読み取りロック割り当てカウントとを搬送してもよく、書き込みロック割り当て識別子は1であり、読み取りロック割り当てカウントは0である。
【００８１】
読み取りロック割り当てカウントに問い合わせた後に、ロックサーバが読み取りロックを割り当てないとインタフェースカード302が決定した場合、インタフェースカード302は、クライアントAが書き込みロックを成功して取得することを示すために、書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定し、すなわち、書き込みロック割り当て識別子を1に設定する。すなわち、書き込みロックは、クライアントAに成功して割り当てられる。読み取りロック割り当てカウントに問い合わせた後に、ロックサーバが読み取りロックを割り当てているとインタフェースカード302が決定した場合、インタフェースカード302は、書き込みロック割り当て識別子を1に設定せず、すなわち、書き込みロック割り当て識別子は、依然として書き込みロック未割り当て状態にあり（本発明のこの実施例では、この場合に書き込みロック割り当て識別子は0であり）、クライアントAは、書き込みロック待機状態にあり、インタフェースカード302は、クライアントAが書き込みロック待機状態にあることを示すためのメッセージをクライアントAに送信する。例示的に、メッセージは、書き込みロック割り当て識別子と読み取りロック割り当てカウントとを搬送してもよく、書き込みロック割り当て識別子は0であり、読み取りロック割り当てカウントは0ではない。0ではない読み取りロック割り当てカウントは、読み取りロックが割り当てられていることを示す。
【００８２】
本発明のこの実施例では、インタフェースカード302は、読み取りロック割り当てカウントに問い合わせ、ロックサーバが読み取りロックを割り当てない（読み取りロック割り当てカウントは0である）と決定し、インタフェースカード302は、書き込みロック割り当て識別子を1に設定する。
【００８３】
クラスタ内で、ロックサーバが読み取りロックを割り当てている場合、すなわち、クライアントAが変更する必要がある共有リソースがクラスタ内の他のクライアントにより読み取られている場合、書き込み許可は、クライアントAに割り当てられることができず、すなわち、書き込みロックは、割り当てられることができない。したがって、クライアントAの識別子が書き込みロック要求キューのキュー先頭に書き込まれた場合、ロックサーバが読み取りロックを割り当てているか否かが決定される必要がある。インタフェースカード302が問い合わせにより、ロックサーバが読み取りロックを割り当てないことを取得した場合、書き込みロック要求キューのキュー先頭内のクライアントは、書き込みロックを取得し、すなわち、クライアントAは、書き込みロックを取得する。インタフェースカード302が問い合わせにより、ロックサーバが読み取りロックを割り当てていることを取得した場合、クライアントAは、書き込みロックを求めて待機する。
【００８４】
インタフェースカード302が、書き込みロック要求キューのキュー先頭の、クライアントAにより送信された書き込みロック要求で搬送されたメモリアドレスに従って、クライアントAの識別子を書き込みロック要求キューのキュー先頭に書き込むことに失敗した場合、クライアントAの識別子が書き込まれることができるメモリアドレスを見つけるために、書き込みロック要求キューは、書き込みロック要求キューのキュー先頭から始まり順次に問い合わせされ、クライアントAの識別子は、書き込みロック要求キューに書き込まれる。書き込みロック要求キューのキュー先頭は、最初に書き込みロックを求めて申請したクライアントを記録し、１つの書き込みロックは、１つのみのクライアントに割り当てられることができる。したがって、書き込みロック要求キューのキュー先頭のクライアントが書き込みロックを取得している場合又は書き込みロックを求めて待機している場合、クライアントAの識別子は、書き込みロック要求キューのキュー先頭に書き込まれることに失敗する。
【００８５】
本発明のこの実施例では、クライアントAの識別子が書き込みロック要求キューのキュー先頭に成功して書き込まれ、読み取りロックが割り当てられないことをメモリ301内の読み取りロック割り当てカウントが記録し、すなわち、クライアントAが書き込みロックを取得する例が使用される。これに基づいて、他の実施例では、ロックサーバのインタフェースカード302は、クライアントBにより送信された書き込みロック要求を受信し、クライアントBにより送信された書き込みロック要求は、クライアントBの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送する。クライアントAの識別子が書き込みロック要求キューのキュー先頭に書き込まれているため、インタフェースカード302は、クライアントBの識別子を書き込みロック要求キューのキュー先頭に書き込むことに失敗する。任意選択で、インタフェースカード302は、クライアントBの識別子が書き込みロック要求キューのキュー先頭に書き込まれることに失敗したことを示すためのメッセージをクライアントBに送信する。インタフェースカード302は、クライアントBの識別子を書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに書き込み、すなわち、図７に示すように、書き込みロック要求キューのキュー先頭から始まり、クライアントBの書き込みロック要求は、書き込みロック要求キューの第２の位置にある。クライアントBの識別子を書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに書き込む具体的な方式については、クライアントAの識別子を書き込みロック要求キューに書き込む前述の説明に参照が行われてもよく、詳細はここでは説明しない。任意選択で、インタフェースカード302は、クライアントの識別子が書き込まれることができる、書き込みロック要求キューのキュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスを求めて書き込みロック要求キューに問い合わせ、クライアントの識別子が書き込まれることができるメモリアドレスをクライアントBに通知するための通知をクライアントBに送信する。任意選択で、クライアントの識別子が書き込まれることができるメモリアドレスは、クライアントの識別子が書き込まれることができる、書き込みロック要求キューのキュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスでもよい。
【００８６】
この場合、メモリ301内の書き込みロック割り当て識別子は、書き込みロック割り当て済状態に設定され（本発明のこの実施例では1に設定され）、すなわち、書き込みロックは、書き込みロック要求キューのキュー先頭内のクライアントAに割り当てられ、クライアントBは、書き込みロック待機状態にある。インタフェースカード302は、もはやメモリ301内の書き込みロック割り当て識別子を変更しない。任意選択で、インタフェースカード302は、クライアントBが書き込みロック待機状態にあることを示すためのメッセージをクライアントBに送信する。具体的に、メッセージは、クライアントBの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送してもよい。クライアントBは、メモリアドレスに従って、クライアントBが書き込みロック待機状態にあると決定する。したがって、ロックサーバは、この場合のクラスタ内のクライアントの書き込みロック要求状態を決定し、すなわち、書き込みロックは、クライアントAに割り当てられ、クライアントBは、書き込みロック待機状態にある。書き込みロックがクライアントAに割り当てられることはまた、クライアントAが書き込みロックを保持し、クライアントAが書き込みロックの保持者であることとも呼ばれる。任意選択で、クライアントによりロックサーバに送信された書き込みロック要求は、書き込みロックリース、すなわち、クライアントにより保持される書き込みロックの有効時間を更に搬送してもよく、有効時間が失効したときにクライアントがリースを更新していない場合、書き込みロックは自動的に無効になる。
【００８７】
図８に示すように、本発明の実施例は、クライアントにより読み取りロックを要求する処理を更に提供する。本発明のこの実施例では、ロックサーバは、読み取りロック要求キューを更に含む。本発明のこの実施例における書き込みロック要求キューについての説明については、前述の説明に参照が行われてもよい。読み取りロック要求キューは、読み取りロック待機状態にあるか、或いは読み取りロックを取得するクライアントの識別子を記憶するために使用される。したがって、ロックサーバは、読み取りロック要求キューに従ってクラスタ内のクライアントの読み取りロック申請状態を決定してもよい。割り当てられている読み取りロックの数量は、読み取りロック割り当てカウントに従って決定されてもよい。
【００８８】
ステップ801：インタフェースカード302は、クライアントCにより送信された読み取りロック要求を受信する。
【００８９】
本発明のこの実施例では、メモリ301は、読み取りロック要求キューを更に含み、クラスタは、クライアントCを更に含む。ロックサーバのインタフェースカード302は、クライアントCにより送信された読み取りロック要求を受信し、読み取りロック要求は、クライアントCの識別子と読み取りロック要求キューのキュー先頭のメモリアドレスとを搬送する。
【００９０】
ステップ802：インタフェースカード302は、クライアントCの識別子を読み取りロック要求キューに書き込む。
【００９１】
具体的に、インタフェースカード302は、クライアントCの識別子を読み取りロック要求キューのキュー先頭のメモリアドレスに書き込み、クラスタ内の他のクライアントの識別子が読み取りロック要求キューのキュー先頭のメモリアドレスに書き込まれない場合、図９に示すように、クライアントCの識別子は、読み取りロック要求キューのキュー先頭のメモリアドレスに成功して書き込まれる。任意選択で、インタフェースカード302は、クライアントCの識別子が読み取りロック要求キューのキュー先頭のメモリアドレスに書き込まれたことを示すメッセージをクライアントAに送信する。
【００９２】
クラスタ内の他のクライアントの識別子が読み取りロック要求キューのキュー先頭のメモリアドレスに書き込まれた場合、クライアントCの識別子は、読み取りロック要求キューのキュー先頭のメモリアドレスに書き込まれることに失敗する。任意選択で、インタフェースカード302は、クライアントCの識別子が読み取りロック要求キューのキュー先頭に書き込まれることに失敗したことを示すためのメッセージをクライアントCに送信する。この場合、クライアントCは、読み取りロック要求をインタフェースカード302に再び送信してもよく、読み取りロック要求は、クライアントCの識別子と読み取りロック要求キューのキュー先頭に続く次のメモリアドレスとを搬送し、インタフェースカード302は、クライアントCの識別子を読み取りロック要求キューのキュー先頭に続く次のメモリアドレスに書き込む。クライアントCの識別子が読み取りロック要求キューのキュー先頭に続く次のメモリアドレスに書き込まれることに失敗した場合、前述の操作が繰り返され、クライアントCの識別子が読み取りロック要求キュー内のメモリアドレスに成功して書き込まれるまで、クライアントCは、読み取りロック要求をインタフェースカード302に再び送信し、読み取りロック要求は、クライアントCの識別子と読み取りロック要求キューのキュー先頭から始まる第３のメモリアドレスとを搬送し、すなわち、読み取りロック要求は、クライアントCの識別子が書き込まれることができるメモリアドレスを搬送する。クライアントCは、読み取りロック要求を周期的に送信してもよく、或いはクライアントCの識別子が読み取りロック要求キューに書き込まれることに失敗したことを示すメッセージを受信した場合に読み取りロック要求を送信してもよい。任意選択で、インタフェースカード302は、クライアントの識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスを求めて読み取りロック要求キューに問い合わせ、クライアントの識別子が書き込まれることができるメモリアドレスをクライアントCに通知するための通知をクライアントCに送信する。任意選択で、クライアントの識別子が書き込まれることができるメモリアドレスは、クライアントの識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。
【００９３】
任意選択で、インタフェースカード302がクライアントCの識別子を読み取りロック要求キューのキュー先頭に書き込むことに失敗した場合、インタフェースカード302は、読み取りロック要求キューのキュー先頭から始まり、クライアントCの識別子が書き込まれることができるメモリアドレスを求めて読み取りロック要求キューに順次に問い合わせ、クライアントCの識別子を読み取りロック要求キューに書き込み、インタフェースカード302は、クライアントCの識別子が読み取りロック要求キュー内のメモリアドレスに書き込まれたことを示すためのメッセージをクライアントCに送信する。任意選択で、メッセージは、クライアントCの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送してもよい。
【００９４】
クラスタ内の共有リソースは、複数のクライアントにより同時に読み取られてもよい。したがって、読み取りロックは、複数のクライアントにより共有されてもよく、すなわち、複数のクライアントは、読み取りロックを同時に保持してもよい。この場合、複数のクライアントは、同時に読み取りロックの保持者である。したがって、読み取りロック割り当てカウントにおいて、ロックサーバが読み取りロックを割り当てているか否かを示すためにカウントが使用されてもよい。例えば、読み取りロック割り当てカウントが0である場合、これは、ロックサーバが読み取りロックを割り当てないことを示す。ロックサーバが読み取りロックを割り当てる毎に、読み取りロック割り当てカウントは1だけ増加する。したがって、ロックサーバが書き込みロックを割り当てない（本発明のこの実施例では、書き込みロック割り当て識別子が0である）場合、クライアントは、読み取りロックを取得してもよい。
【００９５】
ステップ803：読み取りロック割り当てカウントを増加させる。
【００９６】
任意選択で、インタフェースカード302がクライアントCの識別子を読み取りロック要求キューに書き込んだ場合、インタフェースカード302は、読み取りロック割り当てカウントを1だけ増加させ、インタフェースカード302は、書き込みロック割り当て識別子と読み取りロック割り当てカウントとをクライアントCに返信する。さらに、書き込みロック割り当て識別子が1である場合、クライアントCは、読み取りロック割り当てカウント変更要求をインタフェースカード302に送信し、インタフェースカード302は、読み取りロック割り当てカウント変更要求に従って読み取りロック割り当てカウントを1だけ減少させる。
【００９７】
任意選択で、インタフェースカード302がクライアントCの識別子を読み取りロック要求キューに書き込んだ場合、且つ書き込みロック割り当て識別子が1である場合、インタフェースカード302は、クライアントCが読み取りロック待機状態にあることを示すためのメッセージをクライアントCに送信する。具体的に、メッセージは、書き込みロック割り当て識別子を搬送してもよく、クライアントCは、書き込みロック割り当て識別子に従ってクライアントCが読み取りロック待機状態にあると決定する。
【００９８】
前述の説明から、インタフェースカード302によりクライアントCに送信されたメッセージが、クライアントCが読み取りロックを取得するか、或いは読み取りロック待機状態にあることを示すかに拘わらず、これは、クライアントCの識別子が読み取りロック要求キュー内のメモリアドレスに書き込まれたことを示すことが認識され得る。
【００９９】
任意選択で、インタフェースカード302がクライアントCの識別子を読み取りロック要求キューに書き込んだ場合、且つ書き込みロック割り当て識別子が0である場合、インタフェースカード302は、読み取りロック割り当てカウントを1だけ増加させる。さらに、インタフェースカード302は、クライアントCが読み取りロックを取得することを示すためのメッセージをクライアントCに送信する。例えば、メッセージは、書き込みロック割り当て識別子を搬送し、書き込みロック割り当て識別子は0である。任意選択で、ロックサーバが書き込みロックを割り当てている（書き込みロック割り当て識別子が1である）場合、読み取りロック要求キュー内のクライアントは、読み取りロック待機状態にあり、読み取りロック割り当てカウントは増加しない。さらに、インタフェースカード302は、クライアントCが読み取りロック待機状態にあることを示すためのメッセージをクライアントCに送信する。例えば、メッセージは、書き込みロック割り当て識別子を搬送し、書き込みロック割り当て識別子は1である。
【０１００】
本発明のこの実施例では、インタフェースカード302がクライアントCの識別子を読み取りロック要求キューのキュー先頭のメモリアドレスに成功して書き込む例が使用される。この場合、クラスタ内のクライアントは、読み取りロックを取得しないか、或いは読み取りロック待機状態になく、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを記録する（書き込みロック割り当て識別子は1である）。この場合、クライアントCは、読み取りロック待機状態にある。任意選択で、クライアントCによりロックサーバに送信された読み取りロック要求は、読み取りロックリース、すなわち、クライアントCにより保持される読み取りロックの有効時間を更に搬送してもよく、有効時間が失効したときにクライアントCがリースを更新していない場合、読み取りロックは自動的に無効になる。
【０１０１】
本発明のこの実施例では、クラスタは、クライアントDを更に含み、ロックサーバのインタフェースカード302は、クライアントDにより送信された読み取りロック要求を受信する。クライアントDにより送信された読み取りロック要求は、クライアントDの識別子と読み取りロック要求キューのキュー先頭のメモリアドレスとを搬送する。クライアントCの識別子は、読み取りロック要求キューのキュー先頭のメモリアドレスに記憶されているため、図１０に示すように、インタフェースカード302は、クライアントDの識別子を読み取りロック要求キューのキュー先頭に続く次のメモリアドレスに書き込む。具体的な解決策については、クライアントCの識別子を読み取りロック要求キューに書き込む説明に参照が行われてもよく、詳細はここでは説明しない。クライアントAは書き込みロックを保持する（書き込みロック割り当て識別子は1である）ため、クライアントCは、読み取りロック待機状態にあり、クライアントDもまた、読み取りロック待機状態にある。
【０１０２】
本発明のこの実施例では、クライアントは、RDMAプロトコルを使用することにより、ロック要求をロックサーバのインタフェースカード302に送信し、ロックサーバのメモリ301は、クラスタ内のクライアントのロック状態を記録する。ロックサーバは、全てのロックの状態を記録し、ロックサーバは、正常状態又は故障状態のようなクライアントの状態を決定することができる。したがって、ロックを保持するクライアントが故障になった場合、故障したクライアントにより保持されたロックは、適時に解放されてもよい。任意選択で、ロックサーバがクライアントの状態を決定することは、ロックサーバとクライアントとの間のハートビート検出を用いてクライアントの状態を決定することを含む。任意選択で、ハートビート検出は、クライアントの状態を決定するためにクライアントの間で実行され、正常状態のクライアントは、故障したクライアントについての情報をロックサーバに報告する。ロックサーバは、故障したクライアントについての情報に従って、故障したクライアントにより保持されたロックを解放する。任意選択で、故障したクライアントが書き込みロックを保持する場合、ロックサーバのインタフェースカード302は、メモリ301内の書き込みロック割り当て識別子を0に設定し、書き込みロック要求キューのキュー先頭から故障したクライアントの識別子を削除する。故障したクライアントが読み取りロックを保持する場合、ロックサーバのインタフェースカード302は、メモリ301内の読み取りロック割り当てカウントを1だけ減少させ、読み取りロック要求キューから故障したクライアントの識別子を削除する。任意選択で、他の正常なクライアントもまた、故障したクライアントにより保持されたロックを解放するために、ロックサーバの前述の操作を実行してもよい。例えば、他の正常なクライアントは、ロック解放要求をインタフェースカード302に送信し、ロック解放要求は、故障したクライアントの識別子を搬送し、インタフェースカード302は、前述のロック解放操作を実行する。任意選択で、ロックサーバのインタフェースカード302が故障したクライアントにより保持された書き込みロックを解放した後に、インタフェースカード302は、通知を他のクライアントに送信し、通知は、故障したクライアントにより保持された書き込みロックが解放されていることを示す。同様に、ロックサーバのインタフェースカード302が故障したクライアントにより保持された読み取りロックを解放した後に、インタフェースカード302は、通知を他のクライアントに送信し、通知は、故障したクライアントにより保持された読み取りロックが解放されていることを示す。
【０１０３】
本発明のこの実施例では、クライアントAは、書き込みロックを保持し、書き込みロックを解放する操作が更に含まれる。クライアントAは、書き込みロック解放要求をインタフェースカード302に送信し、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送する。任意選択で、インタフェースカード302は、書き込みロック要求キューのキュー先頭のメモリアドレスからクライアントAの識別子を削除し、インタフェースカード302は、書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定する（すなわち、1から0に変更する）。任意選択で、インタフェースカード302は、書き込みロック要求キューのキュー先頭のメモリアドレスからクライアントAの識別子を削除し、インタフェースカード302は、クライアントAの識別子が削除されたことをクライアントAに通知し、クライアントAは、書き込みロック割り当て識別子変更要求をインタフェースカード302に送信し、インタフェースカード302は、書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定する（すなわち、1から0に変更する）。
【０１０４】
任意選択で、クライアントAが書き込みロックを解放するときに、この方法は、クライアントAにより、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するステップであり、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスを搬送するステップと、インタフェースカード302により、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントBの識別子を求めて問い合わせるステップと、インタフェースカード302により、書き込みロック要求問い合わせ応答メッセージをクライアントAに送信するステップであり、書き込みロック要求問い合わせ応答メッセージは、クライアントBの識別子を搬送するステップと、クライアントAにより、書き込みロック要求問い合わせ応答メッセージで搬送されたクライアントBの識別子に従って、クライアントBに対して書き込みロックを求めて申請するように命令するための通知をクライアントBに送信するステップと、クライアントBにより、クライアントAの通知に従って書き込みロック要求をインタフェースカード302に送信するステップとを更に含む。詳細については、クライアントにより書き込みロック要求を送信する前述の説明に参照が行われてもよく、詳細はここでは説明しない。したがって、書き込みロックは、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューのキュー先頭から始まるシーケンスに従って申請されてもよい。任意選択で、クライアントAが書き込みロックを解放した後に、ロックサーバのインタフェースカード302は、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントBの識別子を求めて問い合わせ、インタフェースカード302は、クライアントBに対して書き込みロックを求めて申請するように命令するための通知をクライアントBに送信し、クライアントBは、インタフェースカード302により送信された通知に従って書き込みロック要求メッセージをインタフェースカード302に送信する。
【０１０５】
任意選択で、前述の実施例では、クライアントによりインタフェースカード302に送信された書き込みロック要求は、クライアントの書き込みロック優先度を更に搬送し、書き込みロック要求キューは、クライアントの識別子と書き込みロック優先度を記憶し、クライアントAが書き込みロックを解放した場合、この方法は、クライアントAにより、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するステップと、インタフェースカード302により、書き込みロック要求問い合わせ応答メッセージをクライアントAに送信するステップであり、問い合わせ応答メッセージは、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された識別子及び書き込みロック優先度を搬送するステップとを更に含む。本発明のこの実施例では、クライアントBが最高の書き込みロック優先度を有することが例として使用される。クライアントAは、書き込みロック要求問い合わせ応答メッセージに従って最高の書き込みロック優先度を有するクライアントを決定し、クライアントAは、クライアントBに対して書き込みロック要求をインタフェースカード302に送信するように命令するための通知をクライアントBに送信する。詳細については、クライアントにより書き込みロック要求を送信する前述の説明に参照が行われてもよく、詳細はここでは説明しない。したがって、書き込みロックは、書き込みロック待機状態にあるクライアントの書き込みロック優先度に従って申請されてもよい。任意選択で、前述の実施例では、クライアントによりインタフェースカード302に送信された書き込みロック要求は、クライアントの書き込みロック優先度を更に搬送し、書き込みロック要求キューは、クライアントの識別子と書き込みロック優先度とを記憶する。クライアントAが書き込みロックを解放した後に、ロックサーバのインタフェースカード302は、最高の書き込みロック優先度を有するクライアント、例えば、クライアントBを決定するために、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された書き込みロック優先度に問い合わせる。インタフェースカード302は、クライアントBに対して書き込みロックを求めて申請するように命令するための通知をクライアントBに送信し、クライアントBは、インタフェースカード302により送信された通知に従って書き込みロック要求メッセージをインタフェースカード302に送信する。
【０１０６】
任意選択で、クライアントAが書き込みロックを解放するときに、複数のクライアントが書き込みロック待機状態にあることを書き込みロック要求キューが記録する場合、この方法は、クライアントAにより、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するステップと、インタフェースカード302により、書き込みロック待機状態にあるクライアントを決定するために、書き込みロック要求キューに問い合わせるステップと、インタフェースカード302により、書き込みロック要求問い合わせ応答メッセージをクライアントAに送信するステップであり、書き込みロック要求問い合わせ応答メッセージは、書き込みロック待機状態にあるクライアントの識別子を搬送するステップと、クライアントAにより、書き込みロック要求問い合わせ応答メッセージに従って、クライアントに対して書き込みロック要求をインタフェースカード302に送信するように命令するための通知を、書き込みロック待機状態にあるクライアント内の少なくとも２つのクライアントに送信するステップとを更に含む。したがって、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントは、書き込みロックを取得するための同じ機会を有する。任意選択で、クライアントAが書き込みロックを解放するときに、この方法は、インタフェースカード302により、書き込みロック待機状態にあるクライアントを決定するために、書き込みロック要求キューに問い合わせるステップと、インタフェースカード302により、少なくとも２つのクライアントに対して書き込みロック要求をインタフェースカード302に送信するように命令するための通知を、書き込みロック待機状態にあるクライアント内の少なくとも２つのクライアントに送信するステップとを更に含む。
【０１０７】
任意選択で、クライアントAが書き込みロックを解放するときに、読み取りロック要求キューがクライアントC及びDの識別子を記憶する場合、すなわち、クライアントC及びDが読み取りロック待機状態にある場合、この方法は、クライアントAにより、読み取りロック要求問い合わせメッセージをインタフェースカード302に送信するステップと、インタフェースカード302により、読み取りロック待機状態にあるクライアントC及びDを決定するために、読み取りロック要求キューに問い合わせるステップと、インタフェースカード302により、読み取りロック要求問い合わせ応答メッセージをクライアントAに送信するステップであり、読み取りロック要求問い合わせ応答メッセージは、読み取りロック待機状態にあるクライアントC及びDの識別子を搬送するステップとを更に含む。任意選択で、クライアントAは、読み取りロック要求問い合わせ応答メッセージに従って、クライアントC及びDに対して読み取りロックを求めて申請するように命令するための通知を、読み取りロック待機状態にあるクライアントC及びDに送信し、クライアントC及びDは、読み取りロック割り当てカウント変更要求をインタフェースカード302に別々に送信し、インタフェースカード302は、クライアントC及びDの読み取りロック割り当てカウント変更要求に従って読み取りロック割り当てカウントを増加させる。任意選択で、クライアントAは、読み取りロック要求問い合わせ応答メッセージに従って、通知を読み取りロック待機状態にあるクライアントCに送信し、これにより、クライアントCが読み取りロックを求めて申請する。クライアントCは、読み取りロック割り当てカウント変更要求をインタフェースカード302に送信し、インタフェースカード302は、クライアントCの読み取りロック割り当て変更要求に従って読み取りロック割り当てカウントを増加させる。したがって、読み取りロック要求キューに記録された、読み取りロック待機状態にある全てのクライアントは、読み取りロックを取得してもよい。任意選択で、クライアントAが書き込みロックを解放するときに、この方法は、インタフェースカード302により、読み取りロック待機状態にあるクライアントC及びDを決定するために、読み取りロック要求キューに問い合わせるステップと、インタフェースカード302により、クライアントC及びDに対して読み取りロックを求めて申請するように命令するための通知を、読み取りロック待機状態にあるクライアントC及びDに送信し、これにより、クライアントC及びDが読み取りロック割り当てカウント変更要求をインタフェースカード302に別々に送信するステップと、インタフェースカード302により、クライアントC及びDの読み取りロック割り当てカウント変更要求に従って読み取りロック割り当てカウントを増加させるステップとを更に含む。
【０１０８】
任意選択で、クライアントAが書き込みロックを解放するときに、この方法は、クライアントAにより、書き込みロック解放要求をインタフェースカード302に送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカード302により、書き込みロック要求キューのキュー先頭のメモリアドレスからクライアントAの識別子を削除するステップとを具体的に含む。クライアントAは、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信し、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスを搬送する。インタフェースカード302は、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントBの識別子を求めて問い合わせる。インタフェースカード302は、書き込みロック要求問い合わせ応答メッセージをクライアントAに送信し、書き込みロック要求問い合わせ応答メッセージは、クライアントBの識別子を搬送する。クライアントAは、書き込みロック要求問い合わせ応答メッセージに従って書き込みロック占有要求をインタフェースカード302に送信し、書き込みロック占有要求は、書き込みロック要求キューのキュー先頭のメモリアドレスとクライアントBの識別子とを搬送する。インタフェースカード302は、クライアントBの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込む。インタフェースカード302は、クライアントBの識別子が書き込みロック要求キューのキュー先頭のメモリアドレスに書き込まれたことを示すための書き込みロック占有要求応答メッセージをクライアントAに送信する。クライアントAは、書き込みロック占有要求応答メッセージに従って、クライアントBが書き込みロックを取得することを示すための通知をクライアントBに送信する。したがって、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶された、書き込みロックを求めて待機しているクライアントが書き込みロックを取得することができることが確保され得る。任意選択で、クライアントAが書き込みロックを解放するときに、この方法は、インタフェースカード302により、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスに記憶されたクライアントBの識別子を問い合わせるステップと、インタフェースカード302により、クライアントBの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むステップと、インタフェースカード302により、クライアントBが書き込みロックを取得することを示すための通知をクライアントBに送信するステップとを更に含む。
【０１０９】
任意選択で、クライアントによりインタフェースカード302に送信された書き込みロック要求は、クライアントの書き込みロック優先度を更に搬送し、書き込みロック要求キューは、クライアントの識別子と書き込みロック優先度を記憶し、クライアントAが書き込みロックを解放するときに、この方法は、クライアントAにより、書き込みロック解放要求をインタフェースカード302に送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカード302により、書き込みロック要求キューのキュー先頭のメモリアドレスからクライアントAの識別子を削除するステップとを具体的に含む。クライアントAは、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信し、インタフェースカード302は、書き込みロック要求問い合わせ応答メッセージをクライアントAに送信し、書き込みロック要求応答メッセージは、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された識別子と書き込みロック優先度とを搬送する。本発明のこの実施例では、クライアントBが最高の書き込みロック優先度を有することが例として使用される。クライアントAは、書き込みロック要求問い合わせ応答メッセージに従って書き込みロック占有要求をインタフェースカード302に送信し、書き込みロック占有要求は、書き込みロック要求キューのキュー先頭のメモリアドレスとクライアントBの識別子とを搬送する。インタフェースカード302は、クライアントBの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込む。インタフェースカード302は、クライアントBの識別子が書き込みロック要求キューのキュー先頭のメモリアドレスに書き込まれたことを示すための書き込みロック占有要求応答メッセージをクライアントAに送信する。クライアントAは、書き込みロック占有要求応答メッセージに従って、クライアントBが書き込みロックを取得することを示すための通知をクライアントBに送信する。任意選択で、クライアントによりインタフェースカード302に送信された書き込みロック要求は、クライアントの書き込みロック優先度を更に搬送し、書き込みロック要求キューは、クライアントの識別子と書き込みロック優先度とを記憶する。クライアントAが書き込みロックを解放するときに、インタフェースカード302は、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された識別子及び書き込みロック優先度を求めて問い合わせる。本発明のこの実施例では、クライアントBが最高の書き込みロック優先度を有することが例として使用される。インタフェースカード302は、クライアントBの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込み、インタフェースカード302は、クライアントBが書き込みロックを取得することを示すための通知をクライアントBに送信する。
【０１１０】
任意選択で、書き込みロック要求キューは、書き込みロック待機状態にある複数のクライアントの識別子を記録し、クライアントAが書き込みロックを解放するときに、この方法は、クライアントAにより、書き込みロック解放要求をインタフェースカード302に送信するステップであり、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送するステップと、インタフェースカード302により、書き込みロック要求キューのキュー先頭のメモリアドレスからクライアントAの識別子を削除するステップとを具体的に含む。クライアントAは、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信する。インタフェースカード302は、書き込みロック要求問い合わせ応答メッセージをクライアントAに送信し、書き込みロック要求応答メッセージは、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された識別子を搬送する。クライアントAは、書き込みロック要求問い合わせ応答メッセージに従ってクライアント、例えば、クライアントBをランダムに決定し、書き込みロック占有要求をインタフェースカード302に送信し、書き込みロック占有要求は、書き込みロック要求キューのキュー先頭のメモリアドレスとクライアントBの識別子とを搬送する。インタフェースカード302は、クライアントBの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込む。インタフェースカード302は、クライアントBの識別子が書き込みロック要求キューのキュー先頭のメモリアドレスに書き込まれたことを示すための書き込みロック占有要求応答メッセージをクライアントAに送信する。クライアントAは、書き込みロック占有要求応答メッセージに従って、クライアントBが書き込みロックを取得することを示すための通知をクライアントBに送信する。任意選択で、クライアントAが書き込みロックを解放するときに、この方法は、インタフェースカード302により、書き込みロック待機状態にあるクライアントの、書き込みロック要求キューに記録された識別子を求めて問い合わせるステップと、インタフェースカード302により、書き込みロック待機状態にあるクライアントからクライアント、例えば、クライアントBをランダムに決定するステップと、インタフェースカード302により、クライアントBの識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むステップと、インタフェースカード302により、クライアントBが書き込みロックを取得することを示す通知をクライアントBに送信するステップとを更に含む。
【０１１１】
任意選択で、クライアントAが書き込みロックを解放するときに、読み取りロック要求キューがクライアントC及びDの識別子を記憶する場合、この方法は、クライアントAにより、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するステップと、インタフェースカード302により、読み取りロック待機状態にあるクライアントC及びDを決定するために、読み取りロック要求キューに問い合わせるステップと、インタフェースカード302により、読み取りロック要求問い合わせ応答メッセージをクライアントAに送信するステップであり、読み取りロック要求問い合わせ応答メッセージは、読み取りロック待機状態にあるクライアントC及びDの識別子を搬送するステップと、クライアントAにより、読み取りロック要求問い合わせ応答メッセージに従って読み取りロック割り当てカウント変更要求をインタフェースカード302に送信するステップであり、読み取りロック割り当てカウント変更要求は、割り当てられた読み取りロックの数量を搬送するステップとを更に含む。任意選択で、割り当てられた読み取りロックの数量は2であり、インタフェースカード302は、割り当てられた読み取りロックの数量に従って読み取りロック割り当てカウントを増加させる。インタフェースカード302は、読み取りロック割り当てカウント変更要求応答をクライアントAに返信し、クライアントAは、通知をクライアントC及びDに送信する。任意選択で、割り当てられた読み取りロックの数量は1であり、インタフェースカード302は、割り当てられた読み取りロックの数量に従って読み取りロック割り当てカウントを増加させる。インタフェースカード302は、読み取りロック割り当てカウント変更要求応答をクライアントAに返信し、クライアントAは、クライアントC又はDに対して読み取りロックを取得するように命令する。任意選択で、クライアントAが書き込みロックを解放するときに、読み取りロック要求キューがクライアントC及びDの識別子を記憶する場合、この方法は、インタフェースカード302により、読み取りロック待機状態にあるクライアントC及びDを決定するために、読み取りロック要求キューに問い合わせるステップと、インタフェースカード302により、クライアントC及びDに割り当てられた読み取りロックの数量に従って読み取りロック割り当てカウントを増加させるステップと、インタフェースカード302により、読み取りロックが取得されたことを示すための通知をクライアントC又はDに送信するステップとを更に含む。
【０１１２】
任意選択で、読み取りロックを取得するクライアントC及びDが読み取りロックを解放するときに、クライアントCは、読み取りロック解放要求をインタフェースカード302に送信し、読み取りロック解放要求は、クライアントCの識別子と、クライアントCの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスとを搬送する。インタフェースカード302は、読み取りロック要求キューからクライアントCの識別子を削除し、読み取りロック割り当てカウントを減少させる。同様に、クライアントDは、読み取りロックを解放し、前述の操作を参照して、読み取りロック割り当てカウントが0まで減少する。クライアントDは、書き込みロック要求問い合わせメッセージをインタフェースカード302に更に送信し、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送する。インタフェースカード302は、書き込みロック要求問い合わせ応答メッセージをクライアントDに返信し、書き込みロック要求問い合わせ応答メッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶されたクライアントの識別子を搬送し、クライアントDは、クライアントの識別子に従って、クライアントに対して書き込みロックを求めてインタフェースカード302に申請するように命令する。クライアントが書き込みロックを求めてインタフェースカード302に申請することは、クライアントにより、書き込みロック割り当て識別子変更要求をインタフェースカード302に送信し、インタフェースカード302により、書き込みロック割り当て識別子を1に設定することを含む。任意選択で、読み取りロックを取得するクライアントC及びDが読み取りロックを解放するときに、インタフェースカード302は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶されたクライアントの識別子を問い合わせ、インタフェースカード302は、クライアントの識別子に従って、クライアントに対して書き込みロックを求めてインタフェースカード302に申請するように命令する。
【０１１３】
任意選択で、読み取りロックを取得するクライアントC及びDが読み取りロックを解放するときに、クライアントCは、読み取りロック解放要求をインタフェースカード302に送信し、読み取りロック解放要求は、クライアントCの識別子と、クライアントCの識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスとを搬送する。インタフェースカード302は、読み取りロック要求キューからクライアントCの識別子を削除し、読み取りロック割り当てカウントを減少させる。同様に、クライアントDは、読み取りロックを解放し、前述の操作を参照して、読み取りロック割り当てカウントが0まで減少する。クライアントDは、書き込みロック割り当て識別子変更要求をインタフェースカード302に送信する。インタフェースカード302は、書き込みロック割り当て識別子を書き込みロック割り当て済状態になるように変更する（本発明のこの実施例では1に設定する）。インタフェースカード302は、書き込みロック割り当て識別子変更要求応答をクライアントDに返信し、書き込みロック割り当て識別子変更要求応答は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶されたクライアントの識別子を搬送する。クライアントDは、クライアントの識別子に従って、クライアントに対して書き込みロックを取得するように命令する。任意選択で、読み取りロックを取得するクライアントC及びDが読み取りロックを解放するときに、インタフェースカード302は、書き込みロック割り当て識別子を書き込みロック割り当て済状態になるように変更し（本発明のこの実施例では1に設定し）、インタフェースカード302は、クライアントに対して書き込みロックを取得するように命令するために、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶されたクライアントの識別子を問い合わせる。
【０１１４】
任意選択で、本発明のこの実施例は、読み取りロック回収ポリシーを更に提供する。本発明のこの実施例では、クラスタは、クライアントEを更に含む。クライアントEが書き込みロック要求をインタフェースカード302に送信した場合、ここで、具体的な操作については、クライアントBにより書き込みロック要求を送信する前述の操作に参照が行われてもよく、クライアントEは、書き込みロック待機状態にあり、クライアントC及びDは、読み取りロックを保持し、クライアントEは、クライアントC及びDに対して読み取りロックを解放するように命令する。クライアントCは、読み取りロック解放要求をインタフェースカード302に送信する。具体的な操作については、クライアントCにより読み取りロックを解放する前述の操作に参照が行われてもよい。クライアントDは、読み取りロック解放要求をインタフェースカード302に送信する。具体的な操作については、クライアントCにより読み取りロックを解放する前述の操作に参照が行われてもよい。クライアントC及びDにより保持された読み取りロックが解放された後に、メモリ301内の読み取りロック割り当てカウントは0である。任意選択で、インタフェースカード302は、クライアントEに対して書き込みロックを求めて申請するように命令するためのメッセージをクライアントEに送信する。任意選択で、インタフェースカード302は、クライアントDの読み取りロックが成功して解放されたことを示すためのメッセージをクライアントDに送信し、クライアントDは、クライアントEに対して書き込みロックを求めて申請するように命令するためのメッセージをクライアントEに送信する。
【０１１５】
本発明の前述の実施例では、クライアントが毎回１つの読み取りロックを求めて申請する例が説明のために使用されている。クライアント読み取りロック申請の間に、クライアントが複数の読み取りロックを求めて申請した場合、インタフェースカード302は、申請された読み取りロックの数量に従ってメモリ301内の読み取りロック割り当てカウントを増加させ、複数のクライアントの識別子は、読み取りロック要求キューに記録される。読み取りロック解放の間に、メモリ301内の読み取りロック割り当てカウントは、申請された読み取りロックの数量に従って減少し、複数のクライアントの識別子は、読み取りロック要求キューから削除される。クライアントは、RDMAプロトコルにおけるアトミック操作Compare-and-Swapを使用することにより、書き込みロック要求を送信してもよく、クライアントは、RDMAプロトコルにおけるアトミック操作Fetch-and-Addを使用することにより、読み取りロック要求を送信してもよい。
【０１１６】
本発明のこの実施例では、クライアントは、書き込みロック要求問い合わせメッセージ又は読み取りロック要求問い合わせメッセージのような問い合わせメッセージをインタフェースカード302に送信し、問い合わせメッセージは、書き込みロック要求キュー内のメモリアドレス又は読み取りロック要求キュー内のメモリアドレスのような複数の問い合わせ対象のメモリアドレスを一度に搬送してもよく、或いは問い合わせメッセージは、１つの問い合わせ対象のメモリアドレスを一度に搬送してもよく、問い合わせは、複数の問い合わせメッセージを使用することにより完了する。
【０１１７】
本発明の実施例において提供されるクラスタ内のロック管理解決策によれば、クライアント1100が対応して提供される。図１１に示すように、クライアント1100は、クラスタに適用され、クラスタ内の複数のクライアント内の第１のクライアントとして機能する。クラスタは、本発明の実施例に記載のロックサーバを更に含み、ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと書き込みロック割り当て識別子と読み取りロック割り当てカウントとを記憶する。書き込みロック要求キューは、共有リソースのための書き込みロック待機状態にあるクライアントの識別子と、同じ共有リソースのための書き込みロックを取得するクライアントの識別子とを含む、クラスタ内のクライアントの識別子を記録するために使用され、書き込みロック割り当て識別子は、共有リソースのための書き込みロックが割り当てられたか否かを示すために使用され、読み取りロック割り当てカウントは、共有リソースのために割り当てられた読み取りロックの数量を示すために使用される。クライアント1100は、送信ユニット1101と受信ユニット1102とを含む。送信ユニット1101は、第１の書き込みロック要求をロックサーバのインタフェースカード302に送信するように構成され、第１の書き込みロック要求は、クライアント1100の識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送する。受信ユニット1102は、インタフェースカード302により送信された第１のメッセージを受信するように構成され、第１のメッセージは、インタフェースカード302がクライアント1100の識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むことを示し、クライアント1100が書き込みロックを取得するか、或いは書き込みロック待機状態にあることを示す。送信ユニット1101は、インタフェースカード302がクライアント1100の識別子を書き込みロック要求キューのキュー先頭のメモリアドレスに書き込むことに失敗したことを第１のメッセージが示す場合、第２の書き込みロック要求をインタフェースカード302に送信するように更に構成され、第２の書き込みロック要求は、クライアント1100の識別子と書き込みロック要求キュー内の第１のメモリアドレスとを搬送し、第１のメモリアドレスは、クライアント1100の識別子が書き込まれることができる、キュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである。任意選択で、第１のメモリアドレスは、クライアント1100の識別子が書き込まれることができる、キュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。
【０１１８】
本発明のこの実施例において提供される、図１１に示すクライアント1100において、任意選択で、送信ユニット1101は、クライアント1100が書き込みロックを取得した後に、書き込みロック解放要求をインタフェースカード302に送信するように更に構成され、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送する。
【０１１９】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、複数のクライアント内の第１のクライアントとして機能する。クラスタは、ロックサーバを更に含み、ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、読み取りロック要求キューと書き込みロック割り当て識別子とを記憶する。読み取りロック要求キューは、同じ共有リソースのための読み取りロック待機状態にあるか、或いは読み取りロックを取得する、クラスタ内にあるクライアントの識別子を記録するために使用され、書き込みロック割り当て識別子は、共有リソースのための書き込みロックが割り当てられたか否かを示すために使用される。送信ユニット1101は、第１の読み取りロック要求をインタフェースカード302に送信するように構成され、第１の読み取りロック要求は、クライアント1100の識別子と読み取りロック要求キュー内の第１のメモリアドレスとを搬送する。受信ユニット1102は、インタフェースカード302により送信された第１のメッセージを受信するように構成され、第１のメッセージは、書き込みロック割り当て識別子を搬送する。任意選択で、書き込みロックが割り当てられていることを書き込みロック割り当て識別子が示す場合、第１のメッセージは、クライアント1100が読み取りロック待機状態にあることを示す。任意選択で、書き込みロックが割り当てられないことを書き込みロック割り当て識別子が示す場合、第１のメッセージは、クライアント1100が読み取りロックを取得することを示す。任意選択で、複数のクライアントは、第２のクライアントを更に含み、第２のクライアントの識別子は、読み取りロック要求キューのキュー先頭のメモリアドレスに記憶される。この場合、読み取りロック要求キュー内の、第１の読み取りロック要求で搬送された第１のメモリアドレスは、クライアント1100の識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にあるメモリアドレスである。任意選択で、第１のメモリアドレスは、クライアント1100の識別子が書き込まれることができる、読み取りロック要求キューのキュー先頭からキュー末尾までのシーケンス内にある第１のメモリアドレスである。任意選択で、第１の読み取りロック要求をインタフェースカード302に送信する前に、送信ユニット1101は、第２の読み取りロック要求をインタフェースカード302に送信するように更に構成され、第２の読み取りロック要求は、クライアント1100の識別子と読み取りロック要求キューのキュー先頭のメモリアドレスとを搬送する。インタフェースカード302がクライアント1100の識別子を読み取りロック要求キューのキュー先頭のメモリアドレスに書き込むことに失敗した場合、受信ユニット1102は、インタフェースカード302により送信された第２のメッセージを受信するように更に構成され、第２のメッセージは、読み取りロック要求が失敗したことを示す。任意選択で、クライアント1100が読み取りロックを取得した場合、送信ユニット1102は、読み取りロック解放要求をインタフェースカード302に送信するように更に構成され、読み取りロック解放要求は、クライアント1100の識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送する。
【０１２０】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、第１のクライアントとして機能し、クラスタは、ロックサーバと第２のクライアントとを更に含む。ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、クライアント1100の識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック要求キューは、第２のクライアントの識別子を更に記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、クライアント1100は、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にある。送信ユニット1101は、書き込みロック解放要求をインタフェースカード302に送信するように構成され、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送し、インタフェースカード302が書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューからクライアント1100の識別子を削除した場合、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するように構成され、書き込みロック要求問い合わせメッセージは、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送する。受信ユニット1102は、インタフェースカード302により送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成され、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送する。送信ユニット1101は、書き込みロック占有要求をインタフェースカード302に送信するように構成され、書き込みロック占有要求は、第２のクライアントの識別子と書き込みロック要求キューのキュー先頭のメモリアドレスとを搬送する。受信ユニット1102は、インタフェースカード302により送信された書き込みロック占有要求応答を受信するように更に構成され、書き込みロック占有要求応答は、第２のクライアントの識別子が書き込みロック要求キューのキュー先頭のメモリアドレスに書き込まれることを示す。送信ユニット1101は、通知を第２のクライアントに送信するように更に構成され、通知は、第２のクライアントが書き込みロックを取得することを示す。任意選択で、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスである。任意選択で、書き込みロック要求キューは、第２のクライアントの書き込みロック優先度を更に記憶し、第２のクライアントの書き込みロック優先度は、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である。
【０１２１】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、第１のクライアントとして機能し、クラスタは、ロックサーバと第２のクライアントとを更に含む。ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶する。クライアント1100の識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キューは、第２のクライアントの識別子を記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、読み取りロック割り当てカウントは0であり、クライアント1100は、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための読み取りロック待機状態にある。送信ユニット1101は、書き込みロック解放要求をインタフェースカード302に送信するように構成され、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送し、インタフェースカード302が書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューからクライアント1100の識別子を削除した場合、読み取りロック要求問い合わせメッセージをインタフェースカード302に送信するように構成される。受信ユニット1102は、インタフェースカード302により送信された読み取りロック要求問い合わせ応答メッセージを受信するように構成され、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送する。送信ユニット1101は、読み取りロック割り当てカウント変更要求をインタフェースカード302に送信するように更に構成され、これにより、第２のクライアントが読み取りロックを取得する。
【０１２２】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、第１のクライアントとして機能し、クラスタは、ロックサーバと第２のクライアントとを更に含む。ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶する。クライアント1100の識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック要求キューは、第２のクライアントの識別子を更に記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、クライアント1100は、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にある。送信ユニット1101は、書き込みロック解放要求をインタフェースカード302に送信するように構成され、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送し、インタフェースカード302が書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューからクライアント1100の識別子を削除した場合、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するように構成され、書き込みロック要求問い合わせメッセージは、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスを搬送する。受信ユニット1102は、インタフェースカード302により送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成され、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送する。送信ユニット1101は、第２のクライアントの識別子に従って通知を第２のクライアントに送信し、通知は、第２のクライアントに対して書き込みロック要求をインタフェースカード302に送信するように命令するために使用される。任意選択で、第２のクライアントの識別子が記憶された、書き込みロック要求キュー内にあるメモリアドレスは、書き込みロック要求キューのキュー先頭に続く次のメモリアドレスである。任意選択で、書き込みロック要求キューは、第２のクライアントの書き込みロック優先度を更に記憶し、第２のクライアントの書き込みロック優先度は、書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である。
【０１２３】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、第１のクライアントとして機能し、クラスタは、ロックサーバと第２のクライアントとを更に含む。ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶する。クライアント1100の識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、読み取りロック要求キューは、第２のクライアントの識別子を記憶し、書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、読み取りロック割り当てカウントは0であり、クライアント1100は、共有リソースのための書き込みロックを取得し、第２のクライアントは、共有リソースのための読み取りロック待機状態にある。送信ユニット1101は、書き込みロック解放要求をインタフェースカード302に送信するように構成され、書き込みロック解放要求は、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送し、インタフェースカード302が書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、書き込みロック要求キューのキュー先頭のメモリアドレスに従って書き込みロック要求キューからクライアント1100の識別子を削除した場合、読み取りロック要求問い合わせメッセージをインタフェースカード302に送信するように構成される。受信ユニット1102は、インタフェースカード302により送信された読み取りロック要求問い合わせ応答メッセージを受信するように構成され、読み取りロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送する。送信ユニット1101は、第２のクライアントの識別子に従って通知を第２のクライアントに送信するように更に構成され、通知は、第２のクライアントに対して読み取りロックを求めて申請するように命令するために使用される。第２のクライアントは、通知に従って読み取りロック割り当てカウント変更要求をインタフェースカード302に送信する。インタフェースカード302は、第２のクライアントに割り当てられた読み取りロックの数量に従って読み取りロック割り当てカウントを増加させる。
【０１２４】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、第１のクライアントとして機能し、クラスタは、ロックサーバと第２のクライアントとを更に含む。ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶する。読み取りロック要求キューは、クライアント1100の識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、クライアント1100により取得された読み取りロックの数量であり、クライアント1100は、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にある。送信ユニット1101は、読み取りロック解放要求をインタフェースカード302に送信するように構成され、読み取りロック解放要求は、クライアント1100の識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送し、インタフェースカード302が読み取りロック割り当てカウントを0まで減少させ、クライアント1100の識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューからクライアント1100の識別子を削除した場合、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するように構成され、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送する。受信ユニット1102は、インタフェースカード302により送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成され、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送する。送信ユニット1101は、第２のクライアントの識別子に従って通知を第２のクライアントに送信するように更に構成され、通知は、第２のクライアントに対して書き込みロックを求めて申請するように命令するために使用される。第２のクライアントは、通知に従って書き込みロック割り当て識別子変更要求をインタフェースカード302に送信する。インタフェースカード302は、書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定する。
【０１２５】
本発明の他の実施例では、図１１に示すクライアント1100は、クラスタに適用され、第１のクライアントとして機能し、クラスタは、ロックサーバと第２のクライアントとを更に含む。ロックサーバは、インタフェースカード302とメモリ301とを含み、メモリ301は、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶する。読み取りロック要求キューは、クライアント1100の識別子を記憶し、第２のクライアントの識別子は、書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、読み取りロック割り当てカウントは、クライアント1100により取得された読み取りロックの数量であり、クライアント1100は、共有リソースのための読み取りロックを取得し、第２のクライアントは、共有リソースのための書き込みロック待機状態にある。送信ユニット1101は、読み取りロック解放要求をインタフェースカード302に送信するように構成され、読み取りロック解放要求は、クライアント1100の識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスを搬送し、インタフェースカード302が読み取りロック割り当てカウントを0まで減少させ、クライアント1100の識別子が記憶された、読み取りロック要求キュー内にあるメモリアドレスに従って読み取りロック要求キューからクライアント1100の識別子を削除した場合、書き込みロック要求問い合わせメッセージをインタフェースカード302に送信するように構成され、書き込みロック要求問い合わせメッセージは、書き込みロック要求キューのキュー先頭のメモリアドレスを搬送する。受信ユニット1102は、インタフェースカード302により送信された書き込みロック要求問い合わせ応答メッセージを受信し、書き込みロック要求問い合わせ応答メッセージは、第２のクライアントの識別子を搬送する。送信ユニット1101は、書き込みロック割り当て識別子変更要求をインタフェースカード302に送信し、インタフェースカード302が書き込みロック割り当て識別子変更要求に従って書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定した場合、第２のクライアントの識別子に従って通知を第２のクライアントに送信するように更に構成され、通知は、第２のクライアントが書き込みロックを取得することを示す。
【０１２６】
本発明のこの実施例において提供されるクライアント1100により実現される機能については、前述の実施例におけるクライアントA、クライアントB、クライアントC及びクライアントDに対応する説明に参照が行われてもよい。クライアント1100により実現される効果については、前述の実施例における説明に参照が行われてもよい。
【０１２７】
図１１に示すクライアント1100について、実現方式は、前述のユニットがクライアント1100に組み込まれることであり、前述のユニットは、クライアント1100のメモリにロードされてもよく、クライアント1100のCPUは、本発明の実施例の対応する実施例における機能を実現するために、メモリ内の命令を実行する。他の実現では、クライアント1100に含まれるユニットは、ハードウェアにより実現されてもよく、或いはソフトウェアとハードウェアとの組み合わせにより実現されてもよい。前述のユニットはまた、構造ユニットとも呼ばれる。
【０１２８】
本発明のこの実施例は、不揮発性コンピュータ読み取り可能記憶媒体及びコンピュータプログラムプロダクトを更に提供する。不揮発性コンピュータ読み取り可能記憶媒体及びコンピュータプログラムプロダクトに含まれるコンピュータ命令が図１１に示すクライアント1100のメモリにロードされた場合、CPUは、本発明の前述の実施例における対応する機能を実現するように、メモリにロードされたコンピュータ命令を実行する。
【０１２９】
本発明において提供される複数の実施例では、開示の装置及び方法は、他の方式で実現されてもよいことが認識されるべきである。例えば、記載の装置の実施例におけるユニット分割は、単なる論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは、組み合わされてもよく、或いは他のシステムに統合されてもよく、或いはいくつかの機能が無視されてもよく、或いは実行されなくてもよい。さらに、図示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを使用することにより実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電気的、機械的、或いは他の形式で実現されてもよい。
【０１３０】
別々の部分として記載したユニットは、物理的に分けられてもよく、或いは物理的に分けられなくてもよく、ユニットとして示す部分は、物理的なユニットでもよく、或いは物理的なユニットでなくてもよく、１つの位置に配置されてもよく、或いは複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施例の解決策の目的を達成するための実際のニーズに従って選択されてもよい。
【０１３１】
さらに、本発明の実施例における機能ユニットは、１つの処理ユニットに統合されてもよく、或いはユニットのそれぞれは、物理的に単独で存在してもよく、或いは２つ以上のユニットが１つのユニットに統合される。
【図１】
2018110031.tif 000003
【図２】
2018110031.tif 000004
【図３】
2018110031.tif 000005
【図４】
2018110031.tif 000006
【図５】
2018110031.tif 000007
【図６】
2018110031.tif 000008
【図７】
2018110031.tif 000009
【図８】
2018110031.tif 000010
【図９】
2018110031.tif 000011
【図１０】
2018110031.tif 000012
【図１１】
2018110031.tif 000013
【手続補正書】
【提出日】平成30年3月7日(2018.3.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック要求キューは、前記第２のクライアントの識別子を更に記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントの書き込みロック解放要求を受信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを前記第１のクライアントに送信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック占有要求を受信するステップであり、前記書き込みロック占有要求は、前記第２のクライアントの前記識別子と前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスとを搬送するステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込むステップと
を含む方法。
【請求項２】
前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にある前記メモリアドレスは、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスである、請求項１に記載の方法。
【請求項３】
前記書き込みロック要求キューは、前記第２のクライアントの書き込みロック優先度を更に記憶し、前記第２のクライアントの前記書き込みロック優先度は、前記書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である、請求項１に記載の方法。
【請求項４】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック解放要求を受信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック要求問い合わせメッセージを受信するステップと、
前記インタフェースカードにより、読み取りロック要求問い合わせ応答メッセージを前記第１のクライアントに送信するステップであり、前記読み取りロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック割り当てカウント変更要求を受信するステップと、
前記インタフェースカードにより、前記読み取りロック割り当てカウント変更要求に従って前記メモリ内の前記読み取りロック割り当てカウントを増加させるステップと
を含む方法。
【請求項５】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック要求キューは、前記第２のクライアントの識別子を更に記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記第１のクライアントにより、書き込みロック解放要求を前記インタフェースカードに送信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードが前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、前記第１のクライアントにより、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記第１のクライアントにより、書き込みロック占有要求を前記インタフェースカードに送信するステップであり、前記書き込みロック占有要求は、前記第２のクライアントの前記識別子と前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスとを搬送するステップと、
前記第１のクライアントにより、前記第２のクライアントの前記識別子が前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込まれることを示す、前記インタフェースカードにより送信された書き込みロック占有要求応答を受信するステップと、
前記第１のクライアントにより、通知を前記第２のクライアントに送信するステップであり、前記通知は、前記第２のクライアントが前記書き込みロックを取得することを示すステップと
を含む方法。
【請求項６】
前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にある前記メモリアドレスは、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスである、請求項５に記載の方法。
【請求項７】
前記書き込みロック要求キューは、前記第２のクライアントの書き込みロック優先度を更に記憶し、前記第２のクライアントの前記書き込みロック優先度は、前記書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である、請求項５に記載の方法。
【請求項８】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にある方法であって、
前記第１のクライアントにより、書き込みロック解放要求を前記インタフェースカードに送信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードが前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、前記第１のクライアントにより、読み取りロック要求問い合わせメッセージを前記インタフェースカードに送信するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された読み取りロック要求問い合わせ応答メッセージを受信するステップであり、前記読み取りロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記第１のクライアントにより、読み取りロック割り当てカウント変更要求を前記インタフェースカードに送信するステップと
を含む方法。
【請求項９】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック要求キューは、前記第２のクライアントの識別子を更に記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記第１のクライアントにより、書き込みロック解放要求を前記インタフェースカードに送信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードが前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、前記第１のクライアントにより、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記第１のクライアントにより、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するステップであり、前記通知は、前記第２のクライアントに対して書き込みロック要求を前記インタフェースカードに送信するように命令するために使用されるステップと
を含む方法。
【請求項１０】
前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にある前記メモリアドレスは、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスである、請求項９に記載の方法。
【請求項１１】
前記書き込みロック要求キューは、前記第２のクライアントの書き込みロック優先度を更に記憶し、前記第２のクライアントの前記書き込みロック優先度は、前記書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である、請求項９に記載の方法。
【請求項１２】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にある方法であって、
前記第１のクライアントにより、書き込みロック解放要求を前記インタフェースカードに送信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードが前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、前記第１のクライアントにより、読み取りロック要求問い合わせメッセージを前記インタフェースカードに送信するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された読み取りロック要求問い合わせ応答メッセージを受信するステップであり、前記読み取りロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記第１のクライアントにより、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するステップであり、前記通知は、前記第２のクライアントに対して読み取りロックを求めて申請するように命令するために使用されるステップと
を含む方法。
【請求項１３】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記第１のクライアントにより、読み取りロック解放要求を前記インタフェースカードに送信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードが前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、前記第１のクライアントにより、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記第１のクライアントにより、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するステップであり、前記通知は、前記第２のクライアントに対して前記書き込みロックを求めて申請するように命令するために使用されるステップと
を含む方法。
【請求項１４】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記第１のクライアントにより、読み取りロック解放要求を前記インタフェースカードに送信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードが前記メモリ内の前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、前記第１のクライアントにより、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記第１のクライアントにより、前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記第１のクライアントにより、書き込みロック割り当て識別子変更要求を前記インタフェースカードに送信するステップと、
前記インタフェースカードが前記書き込みロック割り当て識別子変更要求に従って前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定したことに応じて、前記第１のクライアントにより、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するステップであり、前記通知は、前記第２のクライアントが前記書き込みロックを取得することを示すステップと
を含む方法。
【請求項１５】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを前記第１のクライアントに送信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと
を含む方法。
【請求項１６】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信するステップであり、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、書き込みロック要求問い合わせ応答メッセージを前記第１のクライアントに送信するステップであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送するステップと、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック割り当て識別子変更要求を受信するステップと、
前記インタフェースカードにより、前記書き込みロック割り当て識別子変更要求に従って前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定するステップと
を含む方法。
【請求項１７】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記第２のクライアントの識別子は、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスに更に記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントの書き込みロック解放要求を受信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭に続く前記次のメモリアドレスに記憶された前記第２のクライアントの前記識別子を求めて問い合わせるステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込むステップと、
前記インタフェースカードにより、前記第２のクライアントに対して前記書き込みロックを取得するように命令するための通知を前記第２のクライアントに送信するステップと
を含む方法。
【請求項１８】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントにより送信された書き込みロック解放要求を受信するステップであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定するステップと、
前記インタフェースカードにより、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記読み取りロック要求キューに記憶された前記第２のクライアントの前記識別子を決定するために、前記読み取りロック要求キューに問い合わせるステップと、
前記インタフェースカードにより、前記メモリ内の前記読み取りロック割り当てカウントを増加させるステップと、
前記インタフェースカードにより、前記第２のクライアントが読み取りロックを取得することを示すための通知を前記第２のクライアントに送信するステップと
を含む方法。
【請求項１９】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子を決定するために、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに問い合わせるステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子に従って、前記第２のクライアントに対して前記書き込みロックを求めて前記インタフェースカードに申請するように命令するための通知を前記第２のクライアントに送信するステップと
を含む方法。
【請求項２０】
クラスタ内のロック管理方法であり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にある方法であって、
前記インタフェースカードにより、前記第１のクライアントにより送信された読み取りロック解放要求を受信するステップであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送するステップと、
前記インタフェースカードにより、前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除するステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子を決定するために、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに問い合わせるステップと、
前記インタフェースカードにより、前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定するステップと、
前記インタフェースカードにより、前記第２のクライアントの前記識別子に従って、前記第２のクライアントが前記書き込みロックを取得することを示すための通知を前記第２のクライアントに送信するステップと
を含む方法。
【請求項２１】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック要求キューは、前記第２のクライアントの識別子を更に記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントの書き込みロック解放要求を受信し、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、
前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信し、前記書き込みロック要求問い合わせメッセージは、前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にあるメモリアドレスを搬送し、
書き込みロック要求問い合わせ応答メッセージを前記第１のクライアントに送信し、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送し、
前記第１のクライアントにより送信された書き込みロック占有要求を受信し、前記書き込みロック占有要求は、前記第２のクライアントの前記識別子と前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスとを搬送し、
前記第２のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込む
ように構成されるロックサーバ。
【請求項２２】
前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にある前記メモリアドレスは、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスである、請求項２１に記載のロックサーバ。
【請求項２３】
前記書き込みロック要求キューは、前記第２のクライアントの書き込みロック優先度を更に記憶し、前記第２のクライアントの前記書き込みロック優先度は、前記書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である、請求項２１に記載のロックサーバ。
【請求項２４】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントにより送信された書き込みロック解放要求を受信し、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、
前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、
前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記第１のクライアントにより送信された読み取りロック要求問い合わせメッセージを受信し、
読み取りロック要求問い合わせ応答メッセージを前記第１のクライアントに送信し、前記読み取りロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送し、
前記第１のクライアントにより送信された読み取りロック割り当てカウント変更要求を受信し、
前記読み取りロック割り当てカウント変更要求に従って前記メモリ内の前記読み取りロック割り当てカウントを増加させる
ように構成されるロックサーバ。
【請求項２５】
クラスタ内の第１のクライアントとして機能するクライアントであり、前記クラスタは、ロックサーバと前記第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック要求キューは、前記第２のクライアントの識別子を更に記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるクライアントであって、
前記第１のクライアントは、
書き込みロック解放要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、前記インタフェースカードが前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するように構成され、前記書き込みロック要求問い合わせメッセージは、前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にあるメモリアドレスを搬送する送信ユニットと、
前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成された受信ユニットであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する受信ユニットと
を含み、
前記送信ユニットは、書き込みロック占有要求を前記インタフェースカードに送信するように更に構成され、前記書き込みロック占有要求は、前記第２のクライアントの前記識別子と前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスとを搬送し、
前記受信ユニットは、前記第２のクライアントの前記識別子が前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込まれることを示す、前記インタフェースカードにより送信された書き込みロック占有要求応答を受信するように更に構成され、
前記送信ユニットは、通知を前記第２のクライアントに送信するように更に構成され、前記通知は、前記第２のクライアントが前記書き込みロックを取得することを示すクライアント。
【請求項２６】
前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にある前記メモリアドレスは、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスである、請求項２５に記載のクライアント。
【請求項２７】
前記書き込みロック要求キューは、前記第２のクライアントの書き込みロック優先度を更に記憶し、前記第２のクライアントの前記書き込みロック優先度は、前記書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である、請求項２５に記載のクライアント。
【請求項２８】
クラスタ内の第１のクライアントとして機能するクライアントであり、前記クラスタは、ロックサーバと前記第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にあるクライアントであって、
前記第１のクライアントは、
書き込みロック解放要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、前記インタフェースカードが前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、読み取りロック要求問い合わせメッセージを前記インタフェースカードに送信するように構成された送信ユニットと、
前記インタフェースカードにより送信された読み取りロック要求問い合わせ応答メッセージを受信するように構成された受信ユニットであり、前記読み取りロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する受信ユニットと
を含み、
前記送信ユニットは、読み取りロック割り当てカウント変更要求を前記インタフェースカードに送信するように更に構成されるクライアント。
【請求項２９】
クラスタ内の第１のクライアントとして機能するクライアントであり、前記クラスタは、ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック要求キューは、前記第２のクライアントの識別子を更に記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるクライアントであって、
前記第１のクライアントは、
書き込みロック解放要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、前記インタフェースカードが前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するように構成され、前記書き込みロック要求問い合わせメッセージは、前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にあるメモリアドレスを搬送する送信ユニットと、
前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成された受信ユニットであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する受信ユニットと
を含み、
前記送信ユニットは、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するように更に構成され、前記通知は、前記第２のクライアントに対して書き込みロック要求を前記インタフェースカードに送信するように命令するために使用されるクライアント。
【請求項３０】
前記第２のクライアントの前記識別子が記憶された、前記書き込みロック要求キュー内にある前記メモリアドレスは、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスである、請求項２９に記載のクライアント。
【請求項３１】
前記書き込みロック要求キューは、前記第２のクライアントの書き込みロック優先度を更に記憶し、前記第２のクライアントの前記書き込みロック優先度は、前記書き込みロック要求キューに記録された、書き込みロック待機状態にあるクライアントの中で最高である、請求項２９に記載のクライアント。
【請求項３２】
クラスタ内の第１のクライアントとして機能するクライアントであり、前記クラスタは、ロックサーバと前記第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にあるクライアントであって、
前記第１のクライアントは、
書き込みロック解放要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、前記インタフェースカードが前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、読み取りロック要求問い合わせメッセージを前記インタフェースカードに送信するように構成された送信ユニットと、
前記インタフェースカードにより送信された読み取りロック要求問い合わせ応答メッセージを受信するように構成された受信ユニットであり、前記読み取りロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する受信ユニットと
を含み、
前記送信ユニットは、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するように更に構成され、前記通知は、前記第２のクライアントに対して読み取りロックを求めて申請するように命令するために使用されるクライアント。
【請求項３３】
クラスタ内の第１のクライアントとして機能するクライアントであり、前記クラスタは、ロックサーバと前記第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるクライアントであって、
前記第１のクライアントは、
読み取りロック解放要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送し、前記インタフェースカードが前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するように構成され、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送する送信ユニットと、
前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成された受信ユニットであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する受信ユニットと
を含み、
前記送信ユニットは、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するように更に構成され、前記通知は、前記第２のクライアントに対して前記書き込みロックを求めて申請するように命令するために使用されるクライアント。
【請求項３４】
クラスタ内の第１のクライアントとして機能するクライアントであり、前記クラスタは、ロックサーバと前記第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるクライアントであって、
前記第１のクライアントは、
読み取りロック解放要求を前記インタフェースカードに送信するように構成された送信ユニットであり、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送し、前記インタフェースカードが前記メモリ内の前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除したことに応じて、書き込みロック要求問い合わせメッセージを前記インタフェースカードに送信するように構成され、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送する送信ユニットと、
前記インタフェースカードにより送信された書き込みロック要求問い合わせ応答メッセージを受信するように構成された受信ユニットであり、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する受信ユニットと
を含み、
前記送信ユニットは、書き込みロック割り当て識別子変更要求を前記インタフェースカードに送信し、前記インタフェースカードが前記書き込みロック割り当て識別子変更要求に従って前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定したことに応じて、前記第２のクライアントの前記識別子に従って通知を前記第２のクライアントに送信するように更に構成され、前記通知は、前記第２のクライアントが前記書き込みロックを取得することを示すクライアント。
【請求項３５】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントにより送信された読み取りロック解放要求を受信し、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送し、
前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信し、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、
書き込みロック要求問い合わせ応答メッセージを前記第１のクライアントに送信し、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送する
ように構成されるロックサーバ。
【請求項３６】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントにより送信された読み取りロック解放要求を受信し、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送し、
前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記第１のクライアントにより送信された書き込みロック要求問い合わせメッセージを受信し、前記書き込みロック要求問い合わせメッセージは、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、
書き込みロック要求問い合わせ応答メッセージを前記第１のクライアントに送信し、前記書き込みロック要求問い合わせ応答メッセージは、前記第２のクライアントの前記識別子を搬送し、
前記第１のクライアントにより送信された書き込みロック割り当て識別子変更要求を受信し、
前記書き込みロック割り当て識別子変更要求に従って前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定する
ように構成されるロックサーバ。
【請求項３７】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記第２のクライアントの識別子は、前記書き込みロック要求キューの前記キュー先頭に続く次のメモリアドレスに更に記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントの書き込みロック解放要求を受信し、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、
前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記書き込みロック要求キューの前記キュー先頭に続く前記次のメモリアドレスに記憶された前記第２のクライアントの前記識別子を求めて問い合わせ、
前記第２のクライアントの前記識別子を前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに書き込み、
前記第２のクライアントに対して前記書き込みロックを取得するように命令するための通知を前記第２のクライアントに送信する
ように構成されるロックサーバ。
【請求項３８】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記第１のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記読み取りロック要求キューは、前記第２のクライアントの識別子を記憶し、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられていることを示し、前記読み取りロック割り当てカウントは0であり、前記第１のクライアントは、共有リソースのための前記書き込みロックを取得し、前記第２のクライアントは、前記共有リソースのための読み取りロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントにより送信された書き込みロック解放要求を受信し、前記書き込みロック解放要求は、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスを搬送し、
前記書き込みロック割り当て識別子を書き込みロック未割り当て状態に設定し、
前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに従って前記書き込みロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記読み取りロック要求キューに記憶された前記第２のクライアントの前記識別子を決定するために、前記読み取りロック要求キューに問い合わせ、
前記メモリ内の前記読み取りロック割り当てカウントを増加させ、
前記第２のクライアントが読み取りロックを取得することを示すための通知を前記第２のクライアントに送信する
ように構成されるロックサーバ。
【請求項３９】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントにより送信された読み取りロック解放要求を受信し、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送し、
前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記第２のクライアントの前記識別子を決定するために、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに問い合わせ、
前記第２のクライアントの前記識別子に従って、前記第２のクライアントに対して前記書き込みロックを求めて前記インタフェースカードに申請するように命令するための通知を前記第２のクライアントに送信する
ように構成されるロックサーバ。
【請求項４０】
クラスタ内のロックサーバであり、前記クラスタは、前記ロックサーバと第１のクライアントと第２のクライアントとを含み、前記ロックサーバは、インタフェースカードとメモリとを含み、前記メモリは、書き込みロック要求キューと読み取りロック要求キューと読み取りロック割り当てカウントと書き込みロック割り当て識別子とを記憶し、前記読み取りロック要求キューは、前記第１のクライアントの識別子を記憶し、前記第２のクライアントの識別子は、前記書き込みロック要求キューのキュー先頭のメモリアドレスに記憶され、前記書き込みロック割り当て識別子は、書き込みロックが割り当てられないことを示し、前記読み取りロック割り当てカウントは、前記第１のクライアントにより取得された読み取りロックの数量であり、前記第１のクライアントは、共有リソースのための読み取りロックを取得し、前記第２のクライアントは、前記共有リソースのための書き込みロック待機状態にあるロックサーバであって、
前記インタフェースカードは、
前記第１のクライアントにより送信された読み取りロック解放要求を受信し、前記読み取りロック解放要求は、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にあるメモリアドレスを搬送し、
前記読み取りロック割り当てカウントを0まで減少させ、前記第１のクライアントの前記識別子が記憶された、前記読み取りロック要求キュー内にある前記メモリアドレスに従って前記読み取りロック要求キューから前記第１のクライアントの前記識別子を削除し、
前記第２のクライアントの前記識別子を決定するために、前記書き込みロック要求キューの前記キュー先頭の前記メモリアドレスに問い合わせ、
前記書き込みロック割り当て識別子を書き込みロック割り当て済状態に設定し、
前記第２のクライアントの前記識別子に従って、前記第２のクライアントが前記書き込みロックを取得することを示すための通知を前記第２のクライアントに送信する
ように構成されるロックサーバ。
【外国語明細書】
2018110031000001.pdf