JP5175200B2 - Apparatus and method used in a system for transmitting and receiving resource command messages - Google Patents

Apparatus and method used in a system for transmitting and receiving resource command messages Download PDF

Info

Publication number
JP5175200B2
JP5175200B2 JP2008534508A JP2008534508A JP5175200B2 JP 5175200 B2 JP5175200 B2 JP 5175200B2 JP 2008534508 A JP2008534508 A JP 2008534508A JP 2008534508 A JP2008534508 A JP 2008534508A JP 5175200 B2 JP5175200 B2 JP 5175200B2
Authority
JP
Japan
Prior art keywords
resource
command
nodes
command message
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008534508A
Other languages
Japanese (ja)
Other versions
JP2009512011A5 (en
JP2009512011A (en
Inventor
アダムス,マーク
ルードウイツグ,トーマス・アール
フランク,チヤールズ・ウイリアム
ウイツチー,ニコラス・ジエイ
Original Assignee
ラテゼ・リモート・エム・ジー・エム・テイ・エル・エル・シー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ラテゼ・リモート・エム・ジー・エム・テイ・エル・エル・シー filed Critical ラテゼ・リモート・エム・ジー・エム・テイ・エル・エル・シー
Publication of JP2009512011A publication Critical patent/JP2009512011A/en
Publication of JP2009512011A5 publication Critical patent/JP2009512011A5/ja
Application granted granted Critical
Publication of JP5175200B2 publication Critical patent/JP5175200B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Description

本発明は、コンピューティングリソースコマンドメッセージング(computing resource command messaging)およびリソースデバイスの分野に関するものである。   The present invention relates to the field of computing resource command messaging and resource devices.

リソースデバイスは、コンピューティングリソースを管理する。こうしたコンピューティングリソースには、ストレージアレイを構成するディスクドライブ上のデータストレージからサーバファームに含まれる大容量コンテンツサーバ内の接続プロセスに至るまで、無数の例がある。通常、リソースデバイスは複数のリソースノードを備えているので、リソースコンシューマ(resource consumer)の視点からは唯一の論理リソースデバイスとして表示される分散型のリソースを構成している。   The resource device manages computing resources. There are countless examples of such computing resources ranging from data storage on disk drives constituting a storage array to connection processes in a large-capacity content server included in a server farm. Usually, since a resource device includes a plurality of resource nodes, it constitutes a distributed resource that is displayed as the only logical resource device from the viewpoint of a resource consumer.

物理リソースの管理を担当するリソースノードは、リソースノードがデータストレージリソースを管理しているか、接続およびコンテンツリソースを管理する個々のWebサーバであるかにかかわらず、効率的に機能する必要がある。多くのリソースコンシューマおよびリソースデバイスを備える複雑な環境では、特にこのことが言える。効率は、スケーラビリティ(scalability)、高パフォーマンス、負荷分散、短い応答時間(応答性)、または最適化を要求できるその他の属性を含む望ましい特性によって決まる。リソースノードは、通常、外部の管理システムによって管理されるか、またはそれに課される管理レイヤ(management layer)を備えている。これによって、残念ながらリソース管理の基本的な責務を超える余分なオーバヘッドが発生する。複数のリソースノードを備えるリソースデバイスでは、外部の管理の問題は深刻化する。例えば、リソースノードに負荷が割り当てられると、通常はリソースコンシューマにその状態を通知するか、リソース要求を他のリソースノードに移行するか、またはその他の帯域外管理通信を実行することによってパフォーマンスを最大化するので、結果として過剰な帯域外通信が発生する。こうしたシステムでは、新しいリソースノードが環境に追加されると、管理に関する「チャタリング(chatter)」の増大が通信と帯域幅処理の大きな部分を占め、パフォーマンスに悪影響を及ぼすため、スケーラビリティの問題が発生する。こうしたきめの粗いスケーラビリティにより、システムの能力を徐々に高めるためのコストは増大し、システム全体を複製するためのコストは法外な金額になる。   The resource node responsible for managing the physical resource needs to function efficiently regardless of whether the resource node manages a data storage resource or an individual web server that manages connection and content resources. This is especially true in complex environments with many resource consumers and resource devices. Efficiency depends on desirable characteristics including scalability, high performance, load balancing, short response time (responsiveness), or other attributes that can require optimization. A resource node is typically managed by an external management system or comprises a management layer imposed on it. This unfortunately creates extra overhead that goes beyond the basic responsibilities of resource management. In a resource device having a plurality of resource nodes, the problem of external management becomes serious. For example, when a load is assigned to a resource node, performance is usually maximized by notifying resource consumers of its status, migrating resource requests to other resource nodes, or performing other out-of-band management communications. As a result, excessive out-of-band communication occurs. In these systems, as new resource nodes are added to the environment, scalability issues arise because the increased management “chatter” is a significant part of the communication and bandwidth processing, adversely affecting performance. . This coarse scalability increases the cost of gradually increasing system capacity, and the cost of replicating the entire system is prohibitive.

コストを削減し、それ以外の望ましい結果を達成するためには、個々のリソースノードがそれぞれ他のリソースノードにも外部の管理システムにも関係なく機能するシステムを設計するのが有利である。換言すると、リソースノードはリソース管理の基本的な責務を実行するために他のリソースノードに関する情報を必要とすべきではない。リソースへのアクセスを希望するリソースコンシューマにサービスするためには、自律型のリソースノードがリソースコンシューマから送信されたコマンドを処理するタイミングを、(a)リソースノードに関連する情報と、(b)リソースコンシューマによってそのコマンドを含むメッセージ内に提供された任意の情報とに基づいて決定するか、少なくともこうした情報の要因として決定される必要がある。   In order to reduce costs and achieve other desirable results, it is advantageous to design a system in which each individual resource node functions independently of other resource nodes and external management systems. In other words, resource nodes should not need information about other resource nodes to perform the basic responsibilities of resource management. In order to serve a resource consumer who wishes to access a resource, the timing at which the autonomous resource node processes a command transmitted from the resource consumer is determined by: (a) information related to the resource node; and (b) resource. It needs to be determined based on any information provided in the message containing the command by the consumer, or at least as a factor of such information.

リソースコンシューマは、コマンド情報を提供するほか、コマンドが処理されるための望ましい緊急性または重要性に関する情報を提供する。リソースコンシューマが自律型のリソースノードの動作を理解していれば、リソースコンシューマはすべてのリソースノードとの対話に基づいてそのリソースコマンドメッセージを調整し、より高いパフォーマンスを実現できるので、追加の機能を導入しなくても必然的にスケーラビリティ、パフォーマンス、または応答性の効果が得られる。   In addition to providing command information, the resource consumer provides information about the desired urgency or importance for the command to be processed. If a resource consumer understands the behavior of an autonomous resource node, the resource consumer can adjust its resource command messages based on interactions with all resource nodes to achieve higher performance, thus providing additional functionality. Inevitably, scalability, performance, or responsiveness can be achieved without introduction.

現在の関連技術では、リソースコンシューマとリソースノードとの対話によって発生する必然的な動作でなく、こうした対話以外のアクティビティに照準を合わせることによって、コンピューティングリソースへの効率的なアクセスを提供しようとする。関連技術では、追加の機能を導入することによって望ましい特性を最適化する。例えば、関連技術ではリソースコンシューマと他のリソースコンシューマとの通信、リソースノードと他のリソースノードとの通信、または通信パスを使用した通信によるリソースコンシューマとリソースノードとの通信の管理が必要であろう。   Current related technologies try to provide efficient access to computing resources by focusing on activities other than the inevitable behaviors caused by interactions between resource consumers and resource nodes. . In the related art, the desired properties are optimized by introducing additional functions. For example, related technologies may need to manage communication between resource consumers and other resource consumers, communication between resource nodes and other resource nodes, or communication using communication paths. .

Sun Microsystemsの米国特許第5,506,969号、「Method and apparatus for bus bandwidth management」は、複数のアプリケーションから周辺モジュールへの高速バス上のバスアクセスを効率的にスケジュールする方法について教示している。この特許では、アプリケーションとモジュールとの間のバスが管理される方法について説明しているが、バス管理システムが必要であり、個々のモジュールおよびアプリケーションの動作で望ましいパフォーマンスは得られない。この出願では、モジュールが要求を処理するタイミングを決定できるようにするための緊急性または重要性に関する情報を備えるリソースコマンドメッセージを使用しない。   Sun Microsystems US Pat. No. 5,506,969, “Method and apparatus for bus bandwidth management,” teaches how to efficiently schedule bus access on a high-speed bus from multiple applications to peripheral modules. . Although this patent describes how the bus between the application and the module is managed, a bus management system is required and the desired performance is not obtained in the operation of the individual modules and applications. This application does not use resource command messages with information on urgency or importance to allow a module to determine when to process a request.

Hewlett−Packet Development Companyの米国特許第6,886,035号「Dynamic load balancing of a network of a client and server computer」は、クライアントコンピュータがリダイレクト(redirection)を使用することによって自らとリソースの間のスループットを最適化する方法について教示している。リダイレクトには、ネットワーク上のホストがネットワーク上の他のホストについてそれ自身以上に精通している必要がある。システムに導入される追加のエレメントのそれぞれについて、管理し、システムに統合してリダイレクトのための十分な情報を保証する必要があるため、システムのスケーラビリティは低下する。負荷分散は、コマンドメッセージ内の緊急性または重要性に関する情報を使用することによるので、自動的には実現されない。   Hewlett-Packet Development Company, US Pat. No. 6,886,035, “Dynamic load balancing of a network and server computer” uses a redirection between the client computer and the resource itself. Teaches how to optimize Redirection requires a host on the network to be more familiar with itself than other hosts on the network. As each additional element introduced into the system must be managed and integrated into the system to ensure sufficient information for redirection, the scalability of the system is reduced. Load balancing is not achieved automatically because it uses information about urgency or importance in the command message.

EMC Corporationの米国特許第6,904,470号、「Device selection by a disk adapter scheduler」は、要求の緊急性と優先度に基づいてリソースのI/O要求を効率的にスケジュールする方法について教示している。この特許は、ディスクアダプタによって管理される論理ボリュームを対象とする様々なI/Oタスクを管理するために、どのタイプのスケジューラが使用されるべきかをメインスケジューラが決定する方法について説明している。論理ボリュームは、物理データストレージリソースに関連付けられているが、コヒーレントな(coherent)仮想デバイスである。したがって、各ディスクアダプタはリソースでなくデバイスを管理しており、追加の管理機能を導入することによって、論理ボリューム全体の負荷分散、パフォーマンス、およびその他の品質を保証する。特許第6,904,470号は、リソースノードの自律型の動作には対応せず、その動作は緊急性と重要性に関する情報とリソースノードの情報とを使用してタスクが実行されるタイミングを決定することから必然的に決まる。   EMC Corporation, US Pat. No. 6,904,470, “Device selection by a disk adapter scheduler” teaches how to efficiently schedule resource I / O requests based on urgency and priority of requests. ing. This patent describes how the main scheduler determines which type of scheduler should be used to manage various I / O tasks directed to logical volumes managed by a disk adapter. . A logical volume is associated with a physical data storage resource, but is a coherent virtual device. Thus, each disk adapter manages devices, not resources, and by introducing additional management functions, load balancing, performance, and other qualities of the entire logical volume are guaranteed. Patent No. 6,904,470 does not correspond to the autonomous operation of the resource node, and the operation uses the information on the urgency and importance and the information of the resource node to execute the task. It is inevitably determined from the decision.

自律型のリソースノードの動作によって、スケーラビリティ、高パフォーマンス、負荷分散、または応答性を含む望ましい属性が必然的に得られるというニーズに対応する関連技術は存在しない。自律型のリソースノードの利点を完全に実現するためには、ソリューションが以下の特性を備えるのが好ましい:
・ リソースノードは、リソースコンシューマから送信されたコマンドを処理するタイミングを、コマンドに関連する情報およびリソースノード自体の情報に関連する情報に基づいて決定する。
・ リソースコンシューマからリソースノードに送信されたメッセージは、メッセージまたはメッセージ内のコマンドの処理に関連付けられた緊急性または重要性に関するリソースコンシューマの認識を表している。
There is no related technology that addresses the need for autonomous resource node behavior to necessarily provide desirable attributes including scalability, high performance, load balancing, or responsiveness. In order to fully realize the benefits of autonomous resource nodes, the solution preferably has the following characteristics:
The resource node determines when to process the command transmitted from the resource consumer based on information related to the command and information related to the information of the resource node itself.
A message sent from a resource consumer to a resource node represents the resource consumer's awareness of the urgency or importance associated with processing the message or command within the message.

リソースノードに送信されたコマンドを処理するタイミングをリソースノードが決定できることにより、いくつかの利点が得られる。第1に、個々のリソースノードはその主要な責務に照準を合わせる(他のリソース中心でない作業でなく)ので、こうしたリソースノードの機能は付加的な管理作業を実行している同様のリソースノードより効率的である。第2に、複数のリソースコンシューマは外部のアービトレータ(arbitrator)を備えていない1つのリソースデバイスの複数のリソースノードと対話することができる。これで、各リソースノードはどのリソースコンシューマが注目に値するのか(該当する場合)を独自に決定できるので、応答時間が短縮される。第3に、複数のリソースノードが冗長なリソースへのアクセスを提供し、さらにこうしたリソースノードが同時にアドレス指定される場合に、各リソースデバイスはその最大限の能力を活用するので、リソースノードのグループは自動的に負荷分散される。1つの冗長なリソースノードの負荷が最大である場合は、外部の介入なしに別の冗長なリソースノードが要求に対応することができる。さらに、冗長なリソースノードのいずれかがリソースコンシューマへの有効な応答を提供できるので、システムの応答性は冗長なリソースノードを備えていないリソースデバイスより高くなる。第4に、各リソースノードは独立しており、リソースコンシューマまたは他のリソースノードから追加の情報を要求することなく、環境に容易に統合できるため、こうした環境のスケーラビリティは高い。いくつかの利点のみが示されているが、当然のことながら本主題にはこれ以外の利点も想定されている。   The ability of the resource node to determine when to process a command sent to the resource node provides several advantages. First, because individual resource nodes are focused on their primary responsibilities (rather than other non-resource-intensive tasks), these resource nodes function more than similar resource nodes performing additional management tasks. It is efficient. Second, multiple resource consumers can interact with multiple resource nodes of a single resource device that does not have an external arbitrator. This allows each resource node to independently determine which resource consumer is noteworthy (if applicable), thereby reducing response time. Third, a group of resource nodes because multiple resource nodes provide access to redundant resources, and when these resource nodes are addressed simultaneously, each resource device takes advantage of its maximum capacity. Is automatically load balanced. If the load on one redundant resource node is maximum, another redundant resource node can serve the request without external intervention. Furthermore, since any of the redundant resource nodes can provide a valid response to the resource consumer, the responsiveness of the system is higher than a resource device without a redundant resource node. Fourth, each resource node is independent and can be easily integrated into the environment without requiring additional information from resource consumers or other resource nodes, so the scalability of such environments is high. Although only some advantages are shown, it will be appreciated that other advantages are envisaged in the present subject matter.

このように、リソースコマンドメッセージを提供する方法および装置、およびコマンドメッセージの内容とリソースノードに関連付けられた情報に基づいてリソースコマンドメッセージを処理するタイミングを自律的に決定する1つまたは複数のリソースノードを備えるリソースデバイスへの高いニーズは依然として残されている。   Thus, a method and apparatus for providing a resource command message, and one or more resource nodes that autonomously determine when to process the resource command message based on the content of the command message and information associated with the resource node There remains a high need for resource devices comprising:

本発明の1つの態様は、コマンドおよびコマンドの緊急性またはコマンドの重要性の指定を含むコマンドパラメータを備えるリソースコマンドメッセージを目的とする。リソースコンシューマは、リソースコマンドメッセージを構成して1つのリソースデバイスを構成するリソースノードと対話する。リソースノードは、リソースコマンドメッセージの緊急性または重要性とリソースノード中心の情報に基づいて、リソースコマンドメッセージを処理する。さらに、リソースデバイスは複数のリソースノードを備えることができ、各リソースノードは他のすべてのノードから独立して動作する機能を備えており、各リソースノードがリソースコマンドメッセージを受信できる。リソースコマンドメッセージの緊急性または重要性には、相対的な値または絶対的な値が含まれる。   One aspect of the present invention is directed to a resource command message comprising command parameters including a command and command urgency or command importance designation. A resource consumer interacts with resource nodes that compose a resource command message to configure one resource device. The resource node processes the resource command message based on the urgency or importance of the resource command message and the resource node-centric information. Furthermore, the resource device can include a plurality of resource nodes, and each resource node has a function of operating independently from all other nodes, and each resource node can receive a resource command message. The urgency or importance of the resource command message includes a relative value or an absolute value.

別の態様では、本発明はリソースコマンドメッセージを処理する方法を目的とする。本方法には、リソースコマンドメッセージに含まれるコマンドの緊急性またはコマンドの重要性の情報を解釈するステップと、こうした情報をリソースノードの情報と組み合わせてリソースコマンドメッセージ内のコマンドが処理されるタイミングを決定するステップとが含まれる。本方法には、コマンドが処理されるタイミングに基づいてコマンドキュー内のコマンドが処理される順序を決定するステップがさらに含まれる。こうした決定により、コマンドは即時に処理されること、処理を遅延されること、処理されないこと、あるいは、前または後に送信された他のコマンドに関連して処理の順序を変更することができる。さらに、本方法にはリソースデバイスを構成する複数のリソースノードによってリソースコマンドメッセージを処理するステップが含まれる。   In another aspect, the present invention is directed to a method for processing a resource command message. The method includes the steps of interpreting command urgency or command importance information contained in a resource command message and combining this information with resource node information to determine when a command in the resource command message is processed. A step of determining. The method further includes determining the order in which commands in the command queue are processed based on the timing at which the commands are processed. Such a determination can cause the command to be processed immediately, delayed processing, not processed, or change the order of processing relative to other commands sent before or after. Further, the method includes processing a resource command message by a plurality of resource nodes that make up the resource device.

さらに別の態様では、本発明は、コマンドとコマンドの緊急性またはコマンドの重要性の少なくともいずれかを備えるコマンドパラメータとを含むリソースコマンドメッセージを作成することによってリソースデバイスにアクセスする方法を目的とする。本方法には、またリソースデバイスにリソースコマンドメッセージを送信するステップと、リソースコマンドメッセージ内のコマンドを処理するタイミングを決定するステップとが含まれる。リソースデバイスが複数のリソースノードを備える場合に、リソースコマンドメッセージを送信するステップには、少なくともいくつかのリソースノードにマルチキャストで送信するステップが含まれる。   In yet another aspect, the present invention is directed to a method of accessing a resource device by creating a resource command message that includes a command and a command parameter comprising at least one of command urgency or command importance. . The method also includes sending a resource command message to the resource device and determining when to process a command in the resource command message. If the resource device comprises a plurality of resource nodes, sending the resource command message includes sending to at least some resource nodes by multicast.

好ましい実施形態では、リソースデバイスに含まれるリソースノードは、自律型のエンティティとして動作でき、各リソースノードがその独自のリソースを管理する。リソースコンシューマは、リソースノードからリソースを取得してそれぞれの独自の機能を実行する。リソースコンシューマも自律型のエンティティである。リソースコンシューマがリソースを必要としているで、リソースコンシューマはコマンドの緊急性またはコマンドの重要性の指定を伴うリソースコマンドメッセージをリソースデバイスに送信することによって、リソースの取得、リソースの予約、リソースの使用、または他の方法によるリソースとの対話を行う。リソースノードは自律型で複数のリソースコンシューマからの要求に対してサービスを行うので、リソースノードはその状態、履歴、能力、またはその他の関連情報に関する情報とその緊急性または重要性に関する情報の解釈を組み合わせて、コマンドを処理する方法またはタイミングを決定する。本明細書で使用する限り、「処理するタイミング」という表現は、コマンドの処理を自律的に行うことを意味しており、時間ベースの処理、処理の順序、または他のプロセス処理の概念を含めて広義に解釈する必要がある。   In a preferred embodiment, resource nodes included in a resource device can operate as autonomous entities, with each resource node managing its own resource. Resource consumers acquire resources from resource nodes and execute their own functions. Resource consumers are also autonomous entities. When a resource consumer needs a resource, the resource consumer sends a resource command message with a command urgency or command importance specification to the resource device to obtain a resource, reserve a resource, use a resource, Or interact with resources in other ways. Resource nodes are autonomous and serve requests from multiple resource consumers, so resource nodes interpret information about their state, history, capabilities, or other relevant information and information about its urgency or importance. In combination, determine how or when to process the command. As used herein, the expression “timing to process” means that the command is processed autonomously, including time-based processing, processing order, or other process processing concepts. Need to be interpreted broadly.

リソースコンシューマとリソースノードは、コンシューマまたはノードの制御の範囲外にあるパスを経由して通信できることが想定されている。好ましい実施形態では、高パフォーマンスまたは高信頼性を保証するために、リソースデバイスは複数のリソースノードを備えており、各リソースノードはリソースのすべてまたは一部を管理し、さらに他のすべてのノード、デバイス、コンシューマのいずれからも独立して機能する。リソースノードが冗長なリソースを提供する場合は、リソースコンシューマがリソースコマンドメッセージを一部またはすべてのリソースノードに送信し、ネットワークまたは負荷の現在の状態が指定されると、対応できる可能性が最も高いリソースノードが応答する。さらに、他のリソースノードは、追加のリソースコマンドメッセージまたはリソースコマンド応答を、前に処理されていないコマンドの処理を中断または停止して複数の応答を減少する命令と解釈する。リソースノードの自律型の動作とリソースコマンドの緊急性または重要性を組み合わせることにより、全体的に負荷分散されたシステムが実現され、帯域外通信の必要はない。   It is assumed that resource consumers and resource nodes can communicate via paths that are outside the control of the consumer or node. In a preferred embodiment, to ensure high performance or reliability, the resource device comprises a plurality of resource nodes, each resource node manages all or part of the resource, and all other nodes, Functions independently of both devices and consumers. If resource nodes provide redundant resources, resource consumers are most likely to respond if they send resource command messages to some or all resource nodes and specify the current state of the network or load The resource node responds. In addition, other resource nodes interpret additional resource command messages or resource command responses as instructions that suspend or stop processing of previously unprocessed commands and reduce multiple responses. By combining the autonomous operation of resource nodes and the urgency or importance of resource commands, an overall load-balanced system is realized, and there is no need for out-of-band communication.

以下は、本明細書内で使用する用語の説明である。以下の用語は、本発明の主題の様々な態様について暗黙的な制限なしに説明する場合に、明確さを保証するために示されている。   The following is a description of terms used within this specification. The following terms are provided to ensure clarity when describing various aspects of the present subject matter without implied limitation.

「リソースデバイス」は、通信パス上でその全体または一部をアドレス指定でき、リソースコンシューマによってコンピューティングリソースとして使用されるプロダクトへのアクセスを提供する論理デバイスを意味する。論理リソースデバイスは、物理デバイスまたは仮想デバイスを含むことが想定されている。物理リソースデバイスには、コンピュータ、モニタ、ハードディスクドライブ、パワーサプライ、またはその他の物理エレメントが含まれる。仮想リソースデバイスには、アドレス指定可能なビデオディスプレイ、論理ストレージボリューム、URLを伴うWebサーバファーム、または物理エレメントのその他の抽象概念が含まれる。リソースコンシューマは、各リソースデバイスをそれが実際の物理アーキテクチャか仮想アーキテクチャかにかかわらず、コヒーレントな一体型のデバイスと解釈する。   “Resource device” means a logical device that can be addressed in whole or in part on a communication path and provides access to products used as computing resources by resource consumers. The logical resource device is assumed to include a physical device or a virtual device. Physical resource devices include computers, monitors, hard disk drives, power supplies, or other physical elements. Virtual resource devices include addressable video displays, logical storage volumes, web server farms with URLs, or other abstractions of physical elements. A resource consumer interprets each resource device as a coherent integrated device, regardless of whether it is an actual physical or virtual architecture.

「リソースコンシューマ」は、希望する機能を実行するプロダクトへのアクセスまたは制御を要求するエンティティを意味する。リソースコンシューマには、コンピュータ、アプリケーション、ユーザ、Webサーバゲートウェイ、または通信パスを経由してリソースノードと通信できるその他のエンティティが含まれる。したがって、リソースコンシューマもアドレス指定可能でもある。リソースデバイスは、場合によってはリソースコンシューマとして機能できると考えられる。   “Resource consumer” means an entity that requests access or control to a product that performs a desired function. Resource consumers include computers, applications, users, web server gateways, or other entities that can communicate with a resource node via a communication path. Thus, resource consumers are also addressable. A resource device may be able to function as a resource consumer in some cases.

「リソースノード」は、リソースデバイスの部分を意味しており、より大きなリソースデバイスの断片を表す。最大でリソースデバイス全体であり、リソースデバイス全体を含む。リソースノードは、通信パス上で独立したアドレス指定可能なエンティティとして動作することもできる。想定されるリソースノードには、論理パーティション(他の論理パーティションと組み合わせてリソースコンシューマの観点から見た論理ボリュームを構成する)、アドレス指定可能なビデオフレーム、サーバファーム内の個々のWebサーバ、またはその他の構成要素が含まれる。   “Resource node” means a part of a resource device and represents a fragment of a larger resource device. The maximum is the entire resource device, including the entire resource device. A resource node can also operate as an independent addressable entity on the communication path. Possible resource nodes include logical partitions (combined with other logical partitions to form logical volumes from the perspective of resource consumers), addressable video frames, individual web servers in a server farm, or others Are included.

本明細書で教示する内容は、ストレージデバイス、またはメディアコンテンツサーバを含むコンピューティングリソースの開発者または製造者によって、高いパフォーマンスおよび迅速な応答を提供する効率的でスケーラブルなシステムを構築するために使用されるのが有利であろう。   The content taught herein is used by developers or manufacturers of computing resources, including storage devices or media content servers, to build efficient and scalable systems that provide high performance and quick response. It would be advantageous to do so.

本発明の様々な目的、機能、態様、および利点は、以下に示す本発明の好ましい実施形態に関する詳細な説明と添付の図面からより明らかになるであろう。ただし、こうした図面では、類似の番号は類似のコンポーネントを表している。   Various objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the preferred embodiments of the invention and the accompanying drawings. However, in these drawings, like numbers represent like components.

以下の実施形態に関する詳細な説明は、ストレージアレイ内のディスクとサーバファーム内のWebサーバに基づく例について言及しており、本発明の主題の適用可能性を例証している。以下の2つの例が使用されているが、他にも無数の例を示すことができるので、こうした例から暗黙的な制限は導かれないものとする。   The following detailed description of the embodiment refers to an example based on disks in a storage array and a web server in a server farm, illustrating the applicability of the subject matter of the present invention. The following two examples are used, but countless other examples can be shown, and no implicit limitations are derived from these examples.

図1は、リソースコンシューマが1つまたは複数のリソースノードを備えるリソースデバイスと対話する環境を示している。リソースデバイス110は、1つまたは複数のリソースノード100Aから100Nを備えている。個々のリソースノードは、それぞれ通信パス115を介して1つまたは複数のリソースコンシューマ120Aから120Pと通信接続されている。好ましい実施形態では、多くのリソースコンシューマは多くのリソースデバイスと対話する。   FIG. 1 illustrates an environment in which a resource consumer interacts with a resource device that includes one or more resource nodes. The resource device 110 includes one or a plurality of resource nodes 100A to 100N. Each resource node is communicatively connected to one or more resource consumers 120A to 120P via a communication path 115, respectively. In the preferred embodiment, many resource consumers interact with many resource devices.

リソースコンシューマ
リソースコンシューマ120Aから120Pは、互いに独立して動作し、リソースノード100Aから100Nによって管理される任意のリソースと対話するために、リソースノード100Aから100N以外のエンティティからの情報を必要としない。
Resource Consumers Resource consumers 120A to 120P operate independently of each other and do not require information from entities other than resource nodes 100A to 100N to interact with any resource managed by resource nodes 100A to 100N.

リソースコンシューマ120Aから120Pは、リソースデバイス110と対話し、リソースノード100Aから100Nによって管理されるリソースにアクセスするようにプログラムされた命令をコンピュータ可読メモリ内に含むハードウェア、ソフトウェア、またはファームウェアの組合せを備えている。好ましい実施形態では、リソースコンシューマはリソースにアクセスしようとするアプリケーションまたはオペレーティングシステムを実行するコンピュータを備えている。さらに好ましい実施形態では、リソースコンシューマはワークステーションを備えており、ワークステーションはワークステーションのオペレーティングシステムとリソースノード100Aから100Nとの通信を備えるドライバを備えている。ドライバは、さらにオペレーティングシステムにリソースデバイス100に関する十分な情報を提供し、リソースデバイス100はローカルに接続されたデバイスとして表示される。例えば、Windows(登録商標)コンピュータがストレージ用の論理ボリュームをマウントしようとする。Windows(登録商標)コンピュータは、ファイルシステムからI/Oコマンドを受け取り、これをメッセージに変換するドライバを備えている。変換されたメッセージは、ネットワークを経由してファイルシステムにも論理ボリュームにアクセスするアプリケーションにも透過な方法で、論理ボリュームを構成する論理パーティションに送信される。論理ボリュームは、ローカルに接続されたディスクドライブとして表示される。   Resource consumers 120A-120P interact with resource device 110 and include a combination of hardware, software, or firmware that includes instructions in computer-readable memory that are programmed to access resources managed by resource nodes 100A-100N. I have. In the preferred embodiment, the resource consumer comprises a computer running an application or operating system that attempts to access the resource. In a further preferred embodiment, the resource consumer comprises a workstation, which comprises a driver that provides communication between the workstation operating system and the resource nodes 100A to 100N. The driver also provides sufficient information about the resource device 100 to the operating system, and the resource device 100 is displayed as a locally connected device. For example, a Windows (registered trademark) computer attempts to mount a logical volume for storage. The Windows (registered trademark) computer includes a driver that receives an I / O command from the file system and converts it into a message. The converted message is transmitted via the network to the logical partition that configures the logical volume in a manner that is transparent to both the file system and the application that accesses the logical volume. Logical volumes are displayed as locally connected disk drives.

一方、リソースコンシューマ120Aから120Pは、リソースノード100Aから100Nと直接対話するアプリケーションを備えていると考えられる。例えば、Webサイトへのゲートウェイは分散型Webサーバファームにアクセスするリソースコンシューマを表すことができ、個々のWebサーバはリソースノードを表している。   On the other hand, the resource consumers 120A to 120P are considered to have applications that directly interact with the resource nodes 100A to 100N. For example, a gateway to a web site can represent a resource consumer accessing a distributed web server farm, and each web server represents a resource node.

リソースコンシューマ120Aから120Pは互いに独立して機能するが、リソースノード100Aから100Nと集合的にまたは個別に対話する。さらに、リソースコンシューマ120Aから120Pは、リソースコンシューマ120Aから120Pまたはリソースノード100Aから100Nの外部のシステム(ネームサーバ、メタデータサーバ、またはその他の外部システムを含む)から情報を要求する必要がない。好ましい実施形態では、リソースコンシューマ120Aから120Pはリソースノード100Aから100Nを検出する機能を備えていることが想定されている。検出の機能には、通信パス115を経由したブロードキャストメッセージの送信が含まれており、リソースノード100Aから100Nはそれぞれの名前を使用してこれに応答する。さらに、好ましい実施形態では、リソースコンシューマ120Aから120Pは、名前識別(name resolution)を使用してリソースノード100Aから100Nからの応答を通信パス115上のアドレスに変換する。検出および名前識別を実行するには、SSDP、DNS、WINSなどを含む様々な方法があることを、ネットワークプログラミングの当業者は理解するであろう。   Resource consumers 120A to 120P function independently of each other, but interact with resource nodes 100A to 100N collectively or individually. Furthermore, resource consumers 120A-120P do not need to request information from resource consumers 120A-120P or systems external to resource nodes 100A-100N (including name servers, metadata servers, or other external systems). In the preferred embodiment, it is assumed that resource consumers 120A to 120P have the capability to detect resource nodes 100A to 100N. The detection function includes transmission of a broadcast message via the communication path 115, and the resource nodes 100A to 100N respond to this using their respective names. Further, in the preferred embodiment, resource consumers 120A-120P use name resolution to translate responses from resource nodes 100A-100N to addresses on communication path 115. Those skilled in the art of network programming will appreciate that there are various ways to perform detection and name identification, including SSDP, DNS, WINS, and so forth.

リソースコンシューマ120Aから120Pがリソースノード100Aから100Nとの通信を確立すると、リソースコンシューマ120Aから120Pはリソースコマンドメッセージをリソースデバイス110に送信する。リソースコマンドメッセージは、その全体または一部がリソースデバイス110にアドレス指定できる。好ましい実施形態では、リソースコマンドメッセージはマルチキャストを使用してリソースノード100Aから100Nに集合的に送信され、全体としてアドレスを指定されるが、リソースデバイス110は部分的にアドレス指定されるユニキャストメッセージングも可能であることが想定されている。これに関連して、「マルチキャスト」は通信パス115を経由して唯一のメッセージを送信するので、リソースコンシューマは各リソースノードにメッセージの2つ以上のコピーを送信することによって通信パス115上の帯域幅を消費する必要なしに、2つ以上のリソースノード100Aから100Nがメッセージを受信することを意味する。リソースデバイス110は、マルチキャストおよびユニキャストのメッセージングを使用して同時にアドレス指定することもできると考えられる。   When resource consumers 120A to 120P establish communication with resource nodes 100A to 100N, resource consumers 120A to 120P transmit resource command messages to resource device 110. The resource command message can be addressed to the resource device 110 in whole or in part. In a preferred embodiment, resource command messages are sent collectively from resource nodes 100A to 100N using multicast and are addressed as a whole, but resource device 110 is also partially addressed unicast messaging. It is assumed that it is possible. In this context, “multicast” sends a single message over the communication path 115, so that the resource consumer sends the bandwidth on the communication path 115 by sending two or more copies of the message to each resource node. It means that two or more resource nodes 100A to 100N receive the message without having to consume the width. It is contemplated that the resource device 110 can also be addressed simultaneously using multicast and unicast messaging.

各リソースコンシューマ120Aから120Pは、それぞれに固有のニーズに関するコマンドパラメータを備えるリソースコマンドメッセージを構築する。リソースコマンドメッセージの少なくとも一部は、メッセージが構築されたときにメモリ内に存在することが想定されている。本明細書で使用する限り、「メモリ」という用語は情報を格納する任意のハードウェアを意味しており、メモリが存在する場所も情報が格納される方法も問題ではない。コマンドパラメータには、リソースコンシューマのニーズを満足するために必要な緊急性または重要性に関するリソースコンシューマの認識が含まれる。緊急性は、タイミングに関する制約の認識を示しており、重要性は個々のリソースコンシューマによって要求される優先度の認識を示している。リソースノード100Aから100Nは、緊急性または重要性のコマンドパラメータおよびその他のコマンドパラメータを使用して、リソースコマンドメッセージを処理するタイミングの決定を支援する。好ましい実施形態では、リソースコンシューマはその独自の内部情報に基づいて、またはリソースノードからの応答から収集された情報に基づいて、その緊急性または重要性を決定する。さらに、より好ましい実施形態では、コマンドパラメータには関連のリソースコマンドメッセージのグループを相互に関連付けるために使用されるコマンド識別子が含まれる。   Each resource consumer 120A-120P builds a resource command message with command parameters relating to their unique needs. At least a portion of the resource command message is assumed to be in memory when the message is constructed. As used herein, the term “memory” refers to any hardware that stores information, and does not matter where the memory resides or how the information is stored. Command parameters include the resource consumer's awareness of the urgency or importance necessary to satisfy the resource consumer's needs. Urgency indicates the perception of timing constraints, and importance indicates the perception of priority required by individual resource consumers. Resource nodes 100A-100N use urgency or importance command parameters and other command parameters to assist in determining when to process resource command messages. In a preferred embodiment, a resource consumer determines its urgency or importance based on its own internal information or based on information collected from responses from resource nodes. Further, in a more preferred embodiment, the command parameters include a command identifier that is used to correlate groups of related resource command messages.

リソースコンシューマ120Aから120Pは、それぞれが1つのリソースコマンドメッセージから2つ以上の応答を受信する機能を備えている。リソースデバイス110がリソースノード100Aから100Nによって管理される冗長なリソースを備える場合は、リソースノード100Aから100Nの2つ以上がメッセージに応答する。各リソースノードは互いに独立して機能しており、すでに応答が生成されているかどうかを認識していないので、複数の応答が予想される。ただし、複数の応答は緊急性または重要性の情報を適切に処理することによって減少される。   Each of the resource consumers 120A to 120P has a function of receiving two or more responses from one resource command message. When the resource device 110 includes redundant resources managed by the resource nodes 100A to 100N, two or more of the resource nodes 100A to 100N respond to the message. Since each resource node functions independently of each other and does not know whether a response has already been generated, multiple responses are expected. However, multiple responses are reduced by properly processing urgency or importance information.

好ましい実施形態では、リソースコンシューマ120Aから120Pはスロースタート(slow start)アルゴリズムを使用して輻輳(congestion)を回避し、帯域幅の効率的な利用を保証すると同時に、リソースノードからの複数の応答を減少する。初めにサイズの小さいリソースコマンドメッセージを低速で送信することにより、リソースコンシューマ120Aから120Pはリソースノード100Aから100Nのいずれが最初に応答する可能性が高いかを判定し、次に個々のリソースコンシューマ120Aから120Pがそれぞれの緊急性と重要性の情報を独自に調整することによって複数の応答の減少を支援することができる。例えば、スロースタートアルゴリズムは大きなコマンドメッセージを小さなコマンドメッセージに分割し、この小さなコマンドメッセージを低速で送信することができる。応答が受信されると、このアルゴリズムはより大きなメッセージのより高速での送信を開始する。スロースタートは、ネットワーク機器が小さなバッファを備える場合に、大きなパケットによるフラッド(flooded)が実行されないことを保証する。このような機器でフラッドが実行されると、ネットワークパフォーマンスが低下する。さらに、スロースタートは初めにどのリソースノードの応答性が高いかを検知する機会をリソースコンシューマに提供する。初めにパケットが低速で送信されるときに、リソースノードからの複数の応答が許可される枠(window)が提供される。リソースコンシューマは、複数の応答を使用してリソースの優先されるプロバイダ(preferred provider)を決定することができる。さらに、通信速度が向上すると、優先されるプロバイダの情報が使用され、複数の応答が消去される。   In a preferred embodiment, resource consumers 120A-120P use a slow start algorithm to avoid congestion and ensure efficient use of bandwidth while simultaneously receiving multiple responses from resource nodes. Decrease. By first sending a small resource command message at a low speed, resource consumers 120A-120P determine which of resource nodes 100A-100N is likely to respond first, and then individual resource consumer 120A. 120P can help reduce multiple responses by independently adjusting each urgency and importance information. For example, the slow start algorithm can split a large command message into smaller command messages and send the small command message at a lower speed. When a response is received, the algorithm starts sending a larger message at a faster rate. Slow start ensures that flooding due to large packets is not performed if the network device has a small buffer. When flooding is performed on such devices, network performance is degraded. In addition, slow start provides the resource consumer with an opportunity to first detect which resource node is responsive. A window is provided in which multiple responses from the resource node are allowed when the packet is initially transmitted at low speed. A resource consumer can use multiple responses to determine a preferred provider of the resource. Further, when the communication speed is improved, information on the preferred provider is used, and a plurality of responses are deleted.

リソースデバイス
リソースデバイス110は、1つまたは複数のリソースノードを備えている(リソースノード100Aから100Nとして図示されている)。図1は唯一のリソースデバイスを示しているが、通信パス115上に複数のリソースデバイスが共存することが考えられる。
Resource Device Resource device 110 comprises one or more resource nodes (shown as resource nodes 100A to 100N). Although FIG. 1 shows only one resource device, it is conceivable that a plurality of resource devices coexist on the communication path 115.

リソースデバイス110は、1つまたは複数のリソースコンシューマ120Aから120Pからアクセスできるので、リソースデバイス110は共有リソースでもよいことが想定されている。好ましい実施形態では、リソースデバイス110にはリソースノード100Aから100N上に存在する情報が含まれており、リソースデバイス110が私的に所有されているか、またはリソースコンシューマ120Aから120P間で共有されている場合を示している。   Since resource device 110 is accessible from one or more resource consumers 120A-120P, it is envisioned that resource device 110 may be a shared resource. In the preferred embodiment, resource device 110 includes information that resides on resource nodes 100A through 100N and is either privately owned or shared between resource consumers 120A through 120P. Shows the case.

リソースデバイス110は、リソースデバイス110を通信パス115上のその他のリソースデバイスと区別するためにリソースコンシューマ120Aから120Pによって使用される識別子を備えている。好ましい実施形態では、こうした識別子にはリソースノード100Aから100Nのメモリ内に格納される名前が含まれており、名前によって通信パス115上のアドレスを割り出すことができる。リソースコンシューマ120Aから120Pが検出要求を発行すると、リソースノード100Aから100Nは名前を使用して応答する。こうした名前にはリソースデバイス110の名前が含まれており、リソースノードがリソースデバイス110に属することを示している。特に好ましい実施形態では、名前識別によってIPアドレス(ユニキャストまたはマルチキャストのアドレスを含むことができる)が特定される。リソースコンシューマ120Aから120Pは1つのアドレスからリソースデバイス110のアドレス(IPマルチキャストアドレスが好ましい)を特定できることが想定されている。   Resource device 110 comprises an identifier that is used by resource consumers 120A-120P to distinguish resource device 110 from other resource devices on communication path 115. In a preferred embodiment, these identifiers include names stored in the memory of resource nodes 100A through 100N, and addresses on communication path 115 can be determined by name. When resource consumers 120A to 120P issue detection requests, resource nodes 100A to 100N respond using names. These names include the name of the resource device 110, indicating that the resource node belongs to the resource device 110. In a particularly preferred embodiment, the IP address (which can include a unicast or multicast address) is identified by name identification. It is assumed that resource consumers 120A to 120P can specify the address of resource device 110 (preferably an IP multicast address) from one address.

好ましい環境では、リソースデバイス110は冗長なリソースノードを備えており、2つ以上のリソースノード100Aから100Nが重複するリソースを管理している。例えば、リソースデバイス110がリソースコンシューマ120Aから120Pによってデータを格納するために使用される論理ボリュームを表す場合に、リソースノード100Aとリソースノード100Bは同じ格納データをミラーリングする論理パーティションを表すことができる。さらに別の例では、リソースデバイス110が論理Webサーバであり、リソースノード100Aから100Nは個々のサーバであって到着する接続要求コンテンツを処理する同等の能力を備えている。   In a preferred environment, the resource device 110 includes redundant resource nodes, and two or more resource nodes 100A to 100N manage overlapping resources. For example, when resource device 110 represents a logical volume used to store data by resource consumers 120A-120P, resource node 100A and resource node 100B can represent logical partitions that mirror the same stored data. In yet another example, the resource device 110 is a logical Web server, and the resource nodes 100A to 100N are individual servers and have equivalent capabilities to process incoming connection request content.

冗長なリソースノードを備えるリソースデバイスの例として、Zetera(登録商標)テクノロジーに基づいて実装され、論理ボリューム(リソースデバイス)がIPアドレスを指定できる複数の論理パーティション(リソースノード)として仮想化されたストレージアレイについて考察する。論理ボリュームは、1から最大値MAXまでの論理ブロックアドレス(LBA:logical block addresses)が割り当てられた1つの仮想ディスクを表している。各論理パーティションはLBAのセットを管理しており、必ずしも連続でなくてもよいが、論理パーティションの集合はLBA 1からMAXまでの範囲全体をカバーする。さらに、2つ以上の論理パーティションが同じLBAのセットを管理する場合は冗長であり、したがってデータのミラーリングが提供される。ワークステーションは、論理ボリュームをローカルに接続されたディスクドライブと同様にマウントする。ドライバは、唯一のアドレスを使用してネットワーク経由ですべての論理パーティションにマルチキャストを使用してコマンドメッセージを送信する論理パーティションとのすべての通信を処理する。   As an example of a resource device having redundant resource nodes, storage implemented based on Zetera (registered trademark) technology and virtualized as a plurality of logical partitions (resource nodes) in which logical volumes (resource devices) can specify IP addresses Consider an array. The logical volume represents one virtual disk to which logical block addresses (LBA: logical block addresses) from 1 to the maximum value MAX are assigned. Each logical partition manages a set of LBAs and does not necessarily have to be contiguous, but the set of logical partitions covers the entire range from LBA 1 to MAX. Furthermore, if two or more logical partitions manage the same set of LBAs, they are redundant, thus providing data mirroring. The workstation mounts the logical volume in the same way as a locally attached disk drive. The driver handles all communication with the logical partition that uses multicast to send command messages to all logical partitions over the network using a single address.

冗長なノードを備えるリソースデバイスの別の例は、各サーバが同一のコンテンツをブラウザに表示できるWebサーバファームである。ゲートウェイは、インターネット経由で到着したコマンドメッセージによる要求をサーバ(複数)に集合的に送信する。最初に応答するサーバは接続を処理する。   Another example of a resource device with redundant nodes is a web server farm where each server can display the same content in a browser. The gateway collectively sends requests by command messages that arrive via the Internet to the server (s). The first responding server handles the connection.

リソースデバイス110は、プロセッサ帯域幅、ディスプレイ、メモリ、表示可能なコンテンツ(servable content)、接続処理(connection handling)、ネットワーク帯域幅、またはこれ以外の関連コンピューティングリソースを含む他のコンピューティングリソースを表すことができると考えられる。   Resource device 110 represents processor bandwidth, display, memory, displayable content (servable content), connection handling, network bandwidth, or other computing resources including other related computing resources It is considered possible.

通信パス
通信パス115は、リソースコンシューマ120Aから120Pおよびリソースノード100Aから100N間のアドレス指定およびデータ転送をサポートする。通信パス115は、リソースノードからもリソースコンシューマからも直接管理されないことが想定されているが、リソースコンシューマ120Aから120Pまたはリソースノード100Aから100Nは通信パス115の動作を変更できることが想定されている。さらに、通信パス115は通信パスの信頼性を低下する特性を備えていると考えられる。
Communication Path Communication path 115 supports addressing and data transfer between resource consumers 120A to 120P and resource nodes 100A to 100N. Although it is assumed that the communication path 115 is not directly managed from either the resource node or the resource consumer, it is assumed that the resource consumers 120A to 120P or the resource nodes 100A to 100N can change the operation of the communication path 115. Furthermore, it is considered that the communication path 115 has a characteristic that lowers the reliability of the communication path.

好ましい実施形態では、通信パス115はインターネットプロトコルを搬送するEthernet(登録商標)通信を備えるパケット交換ネットワークを備えている。好ましい実施形態では、リソースコンシューマ120Aから120Pおよびリソースノード100Aから100NはDHCPを使用してIPアドレスを取得する。   In the preferred embodiment, the communication path 115 comprises a packet switched network with Ethernet communications carrying the internet protocol. In the preferred embodiment, resource consumers 120A-120P and resource nodes 100A-100N use DHCP to obtain IP addresses.

リソースノード
図2は、予想されるリソースノードの物理的実施形態を示している。リソースノード200は、リソースコンシューマから通信パス115を経由してリソースコマンドメッセージを受信する。プロセッシングユニット210は、リソースコマンドメッセージを受信し、メモリ220内に格納されたコマンドキュー230を使用してメッセージ内のコマンドを処理する。メッセージ内のコマンドは、コマンド233Aから233Nで表されるコマンドキュー230に配置されている。プロセッシングユニット210は、コマンドキュー230またはリソースノードデータ240を含むメモリ220内に格納されたリソースノード情報に従ってコマンド233Aから233Nを処理する。プロセッシングユニット210がコマンド233Aから233Nを処理するときに、プロセッシングユニット210はリソース通信パス115を経由してリソース260Aから260Mにアクセスする。
Resource Node FIG. 2 shows a physical embodiment of the expected resource node. The resource node 200 receives a resource command message from the resource consumer via the communication path 115. The processing unit 210 receives the resource command message and processes the command in the message using the command queue 230 stored in the memory 220. Commands in the message are arranged in a command queue 230 represented by commands 233A to 233N. The processing unit 210 processes the commands 233A to 233N according to the resource node information stored in the memory 220 including the command queue 230 or the resource node data 240. When the processing unit 210 processes the commands 233A to 233N, the processing unit 210 accesses the resources 260A to 260M via the resource communication path 115.

メモリ220内に格納されたリソースノード情報は、リソースノード200が他のリソースノードに関係なく機能でき、一連の主要な責務に照準を合わせることができるために十分な情報を備えることが想定されている。好ましい実施形態では、プロセッシングユニット210とメモリ220を備えるハードウェアの1つのエレメントは、1つまたは複数のリソースノードにサービスを提供する。例えば、データストレージリソースを備えるディスクドライブは、メモリとプロセッシングユニットを使用して多くの論理パーティションを提供し、各パーティションに独自のIPアドレスを割り当ててそれぞれがLBAセットを管理するように構成できる。一方、複数のディスクドライブをサポートするラックマウント型エンクロージャには、プロセッシングユニット210を構成する1つまたは複数のCPUと、メモリ220を構成する1つまたは複数のRAMモジュールを含めることができる。これで、ラックマウント型エンクロージャは複数のディスクドライブを管理する多くの論理パーティションを提供することができる。また、リソースノード200は唯一のリソースを表すこともできることも想定されている。例えば、アドレスを割り当てられた1つの論理パーティションはディスクドライブ全体を管理することができる。   The resource node information stored in the memory 220 is assumed to provide sufficient information so that the resource node 200 can function independently of other resource nodes and can be aimed at a set of key responsibilities. Yes. In a preferred embodiment, one element of hardware comprising processing unit 210 and memory 220 provides service to one or more resource nodes. For example, a disk drive with data storage resources can be configured to provide a number of logical partitions using memory and processing units, each assigned a unique IP address, and each managing an LBA set. On the other hand, a rack mount enclosure that supports a plurality of disk drives can include one or more CPUs that constitute the processing unit 210 and one or more RAM modules that constitute the memory 220. The rack mount enclosure can now provide many logical partitions that manage multiple disk drives. It is also envisioned that the resource node 200 can represent a single resource. For example, one logical partition assigned an address can manage the entire disk drive.

リソース通信パス215は、プロセッシングユニット210とリソース260Aから260Mとの間のアドレス指定およびデータ転送を提供する。好ましい実施形態では、リソース通信パス215はディスクドライブ通信バスを備えている。ディスクバスの例には、ATA、SCSI、ファイバチャネル、USB、またはその他現存するものやまだ発明されていないものが含まれる。さらに、リソース通信パス215にはパケット交換ネットワークを含めることができるとも考えられる。例えば、リソースノード200がコンテンツサーバである場合に、リソース通信パス200はコンテンツを格納するストレージアレイへのIPネットワークでもよい。   Resource communication path 215 provides addressing and data transfer between processing unit 210 and resources 260A-260M. In the preferred embodiment, the resource communication path 215 comprises a disk drive communication bus. Examples of disk buses include ATA, SCSI, Fiber Channel, USB, or others that exist or have not yet been invented. Further, it is contemplated that the resource communication path 215 can include a packet switched network. For example, when the resource node 200 is a content server, the resource communication path 200 may be an IP network to a storage array that stores content.

リソースノード200は、個々のリソースコマンドメッセージに含まれる緊急性または重要性の情報の解釈と、メモリ220内に格納されたリソースノードの情報の解釈に基づいて、コマンド233Aから233Nを処理するタイミングを決定する。リソースノード200は、それ自体に関する情報を使用してコマンドを自律的に処理する適切な方法を決定する。リソースノード200に関する情報には、コマンドを処理する能力、容量、負荷、コマンドキューの順序、コマンドキューに配置された先行するコマンド、またはリソースコンシューマから送信されたリソースコマンドメッセージのサービスに影響を及ぼすその他の関連情報が含まれる。例えば、リソースノード200が100%の容量で機能して多くのリソースコンシューマにサービスを提供している場合は、現在の負荷を処理しながら現在のリソースコマンドメッセージを報告なしに(silently)廃棄することによってこのサービスを行わないことを決定できる。リソースコンシューマは、送信したリソースコマンドメッセージが廃棄された場合に、場合によってはメッセージの緊急性または重要性を調整した別のコマンドを送信するか、または別のリソースノードの応答を待つことができる。   The resource node 200 determines the timing of processing the commands 233A to 233N based on the interpretation of the urgency or importance information included in each resource command message and the interpretation of the resource node information stored in the memory 220. decide. The resource node 200 uses information about itself to determine an appropriate way to process commands autonomously. Information about the resource node 200 includes the ability to process commands, capacity, load, command queue order, preceding commands placed in the command queue, or others that affect the service of resource command messages sent from resource consumers Related information. For example, if the resource node 200 is functioning at 100% capacity and serving many resource consumers, it will silently discard the current resource command message while processing the current load. Can decide not to do this service. When a resource consumer message is discarded, the resource consumer may send another command, possibly adjusting the urgency or importance of the message, or wait for another resource node response.

メモリ220内に格納されたリソースノード200に関連する情報には、リソースノード200の動作を決定する命令およびデータを含めることができるのが有利である。特に好ましい実施形態では、リソースノードのデータ240にはリソースコンシューマがリソースデバイス全体についての理解を確立するために使用する情報(リソースノードが属するリソースデバイスの名前、リソースノードの名前、リソースノードがリソースデバイス内で果たす役割、属性、またはリソースノードに関するその他の情報を含む)が含まれる。これは、リソースノードデータ240がリソースデバイス情報も表すことを意味している。   The information associated with the resource node 200 stored in the memory 220 can advantageously include instructions and data that determine the operation of the resource node 200. In a particularly preferred embodiment, the resource node data 240 contains information used by the resource consumer to establish an understanding of the entire resource device (the name of the resource device to which the resource node belongs, the name of the resource node, the resource node Role, attribute, or other information about the resource node). This means that the resource node data 240 also represents resource device information.

好ましい実施形態では、リソースノード200はその責務の処理に照準を合わせ、それ以外の作業を実行しないことによって、リソースデバイスの望ましい特性を高めることができる。これで、リソースノード200はサービス要求に対してその機能を十分に活用でき、パフォーマンスにも応答性にも悪影響を及ぼさない。さらに、リソースノード200の複製はリソースコンシューマの観点から高度な機能を提供する。   In the preferred embodiment, the resource node 200 can enhance the desired characteristics of the resource device by focusing on its responsibility processing and not performing any other work. Thus, the resource node 200 can fully utilize its function with respect to the service request, and does not adversely affect performance and responsiveness. Furthermore, the replication of the resource node 200 provides advanced functions from the resource consumer point of view.

冗長なリソースノード
冗長なリソースノードは、ほとんど同等のリソースへのアクセスを提供するリソースノードである。冗長なリソースノードは、例えばリソースノードデータ240、名前、またはアドレスによって区別できる。ただし、冗長なリソースノードはそれぞれ同じタイプのリソースを管理し、リソースコマンドメッセージのサービスを行う上で、負荷、機能、またはその他の能力に関して同等の能力を備えている。冗長なリソースノードの例には、同等のコンテンツのサービスを実行できる別々のディスク上または2台のWebサーバ上の論理ボリューム内にある同じLBAのセットを管理する論理パーティションが含まれる。好ましい実施形態では、冗長なリソースノードは同じマルチキャストグループに加わることができ、リソースコンシューマはこれらに同時にアドレス指定できる。
Redundant resource nodes Redundant resource nodes are resource nodes that provide access to almost equivalent resources. Redundant resource nodes can be distinguished by, for example, resource node data 240, name, or address. However, each redundant resource node manages the same type of resource and has the same capability with respect to load, function, or other capabilities in servicing resource command messages. Examples of redundant resource nodes include logical partitions that manage the same set of LBAs on separate disks or logical volumes on two Web servers that can perform equivalent content services. In the preferred embodiment, redundant resource nodes can join the same multicast group and resource consumers can address them simultaneously.

好ましい実施形態では、リソースコンシューマはリソースコマンドメッセージを実際にどのリソースノードが処理するかに関係なく、リソースデバイスのリソースノードにリソースコマンドメッセージを送信する。冗長なリソースノードの場合は、リソースコマンドメッセージは冗長なリソースノードによって実質的にパラレルに処理される可能性が高い。本明細書で使用する限り、「実質的にパラレルに」という表現は、少なくとも2つのリソースノードが通信パスとリソースノードのタイミング特性により、リソースコマンドメッセージを10秒以内に次々に処理することを意味する。タイミング特性には、待ち時間、ノードの負荷、またはリソースコンシューマまたはリソースノードによって直接指定されるものを含めて処理時間に影響を及ぼすその他のパラメータが含まれる。   In a preferred embodiment, the resource consumer sends a resource command message to the resource node of the resource device regardless of which resource node actually processes the resource command message. In the case of redundant resource nodes, the resource command message is likely to be processed substantially in parallel by the redundant resource node. As used herein, the expression “substantially in parallel” means that at least two resource nodes process resource command messages one after another within 10 seconds, depending on the communication path and the timing characteristics of the resource nodes. To do. Timing characteristics include latency, node load, or other parameters that affect processing time, including those specified directly by resource consumers or resource nodes.

冗長なリソースノードでは、リソースコマンドメッセージに対して複数の応答が生成される可能性があり、このことによって場合によっては帯域幅が消費されることが想定されている。好ましい実施形態では、リソースノードおよびリソースコンシューマは、複数の応答の消去を試みる形で対話する。リソースコンシューマは、さらに複数の応答が予想される複数のリソースコマンドメッセージの交換を開始できることが想定される。好ましい実施形態では、リソースコンシューマは応答するリソースノードの中から優先されるプロバイダを選択し、さらに優先されるプロバイダの情報を後続のリソースコマンドメッセージの緊急性に挿入する。リソースノードが優先されるプロバイダである場合は、リソースコマンドメッセージを正常に処理する。リソースノードが優先されるプロバイダでない場合は、処理を遅延させる。優先されるプロバイダが応答する場合は、リソースコンシューマは次のメッセージを送信する。優先されるプロバイダ以外のリソースノードは、次のメッセージを受信し、以前に送信された保留中のコマンドをキャンセルする。さらに、現在のコマンドはコマンドキュー内で先行するコマンドの位置を引き継ぐことも想定される。   In redundant resource nodes, multiple responses may be generated for resource command messages, which is assumed to consume bandwidth in some cases. In the preferred embodiment, resource nodes and resource consumers interact in an attempt to erase multiple responses. It is envisioned that a resource consumer can initiate the exchange of multiple resource command messages that are expected to have multiple responses. In the preferred embodiment, the resource consumer selects a preferred provider from among the responding resource nodes and further inserts preferred provider information into the urgency of subsequent resource command messages. If the resource node is a preferred provider, the resource command message is processed normally. If the resource node is not a preferred provider, the process is delayed. If the preferred provider responds, the resource consumer sends the next message. A resource node other than the preferred provider receives the next message and cancels the previously sent pending command. Further, it is assumed that the current command takes over the position of the preceding command in the command queue.

リソースコマンドメッセージは、関連のコマンドのグループを識別するために使用されるコマンド識別子を備えることができることが想定されている。こうした状況において、リソースノードがそのコマンドキュー内にコマンドを保持しており、関連する追加のコマンドを受信した場合に、リソースノードはこの連続するイベントを先行するコマンドの処理(コマンドの削除を含めて)を中断する命令と解釈できるので、予想される複数応答の数が減少する。   It is envisioned that the resource command message can comprise a command identifier that is used to identify a group of related commands. In such a situation, if the resource node holds a command in its command queue and receives an associated additional command, the resource node will process this preceding event (including deleting the command). ) Can be interpreted as interrupting instructions, reducing the number of expected multiple responses.

リソースノード200は、リソースコマンドメッセージに含まれるコマンドおよびコマンドパラメータに基づいて、コマンドを実行すること、または今後の利用に備えてリソースを予約することができる。コマンドを実行すると、実際にリソースコマンドメッセージに対するサービスが提供される。リソースを予約すると、リソースコンシューマは複数のリソースノードの能力を集約することができる。   The resource node 200 can execute a command or reserve a resource for future use based on the command and command parameters included in the resource command message. Executing a command actually provides a service for resource command messages. By reserving resources, resource consumers can aggregate the capabilities of multiple resource nodes.

リソースコマンドメッセージ
図3は、予想されるリソースコマンドメッセージの概略を示している。リソースコマンドメッセージ300は、コマンドパラメータ330を伴うコマンド320を備えており、これがリソースノードによって処理される。好ましい実施形態では、リソースコンシューマはリソースデスティネーションアドレス(resource destination address)310を使用してリソースコマンドメッセージ300をリソースデバイスまたはリソースノードに送信する。リソースコマンドメッセージ300には、オプションでデータ340も含まれる。例えば、コマンド320がディスクドライブへの書き込みコマンドを指定する場合はデータ340が存在する。ただし、データ340は書き込みの対象となるデータを表す。好ましい実施形態では、リソースコマンド320はコマンドの緊急性の情報335またはコマンドの重要性の情報337を備えている。さらに好ましい実施形態では、リソースコマンド320はコマンド識別子333を備えている。用語「指定する(indicates)」は、本明細書で使用する限り、何かが解決(resolved)されて他の何かが得られることを意味する。したがって、「コマンド320は書き込みコマンドを指定する」は、「コマンド320が解決されて書き込みコマンドが得られる」ことを意味する。
Resource Command Message FIG. 3 shows an outline of an expected resource command message. The resource command message 300 comprises a command 320 with a command parameter 330 that is processed by the resource node. In the preferred embodiment, a resource consumer sends a resource command message 300 to a resource device or resource node using a resource destination address 310. Resource command message 300 also optionally includes data 340. For example, when the command 320 designates a write command to the disk drive, the data 340 exists. However, data 340 represents data to be written. In the preferred embodiment, the resource command 320 comprises command urgency information 335 or command importance information 337. In a further preferred embodiment, the resource command 320 comprises a command identifier 333. The term “indicates”, as used herein, means that something is resolved to something else. Therefore, “command 320 specifies a write command” means “command 320 is resolved and a write command is obtained”.

リソースコンシューマは、リソースコマンドメッセージ300をコンピュータ可読メモリ内に構築し、リソースコマンドメッセージ300の少なくとも一部はメモリ内に存在する。リソースコマンドメッセージ300は、いったん構築されると、リソースコンシューマとリソースノードを接続する通信パスを経由して送信される。リソースコマンドメッセージ300は、構築されている間に送信できることも想定される。好ましい実施形態では、リソースコマンドメッセージ300はデータグラム(datagram)にカプセル化され、パケット交換ネットワークを経由して送信される。特に好ましい実施形態では、リソースコマンドメッセージ300はユーザデータグラムプロトコル(UDP:User Datagram Protocol)を使用してトランスポート(transport)として送信される。UDPは伝送制御プロトコル(TCP:Transmission Control Protocol)に比べて処理のオーバヘッドが削減されており、1つのコマンドの情報が別のコマンドの処理には必要ないアトミックな(atomic)コマンド構造に適する。想定されるコマンドには、I/O処理の実行、データの読み出し、データの書き込み、リソースの割り当て、リソースの予約、リソースの管理、リソースの状態の確認、リソースのインベントリの管理、リソースのイベントの記録、リソースのロック、またはリソースに関連するその他の操作が含まれる。リソースノードは、コマンドパラメータ330をノード自体の情報と組み合わせて使用し、コマンド320を処理するタイミングを決定する。   The resource consumer builds the resource command message 300 in computer readable memory, and at least a portion of the resource command message 300 exists in the memory. Once constructed, the resource command message 300 is transmitted via a communication path connecting the resource consumer and the resource node. It is also envisioned that the resource command message 300 can be sent while it is being constructed. In the preferred embodiment, the resource command message 300 is encapsulated in a datagram and sent over a packet switched network. In a particularly preferred embodiment, the resource command message 300 is transmitted as a transport using a user datagram protocol (UDP). UDP has a reduced processing overhead as compared with a transmission control protocol (TCP), and is suitable for an atomic command structure in which information of one command is not necessary for processing of another command. Possible commands include: I / O processing execution, data reading, data writing, resource allocation, resource reservation, resource management, resource status check, resource inventory management, resource event Includes recording, locking resources, or other operations related to resources. The resource node uses the command parameter 330 in combination with its own information to determine when to process the command 320.

コマンド識別子
コマンド識別子333は、関連する2つ以上のコマンドをグループ分けするための情報を備えている。コマンド識別子333は、コマンドのグループごとに固有の値を含んでいることが想定されている。コマンドは、様々な理由によってグループ分けされる。例えば、ファイルシステムがミラーリングされた複数の論理パーティションを備える論理ボリュームから読み出す多くのLBAを備えるファイルデータを要求する場合に、ドライバは要求をLBAごとの個別のリソースコマンドメッセージまたは関連するLBAのグループのリソースコマンドメッセージに分割する。ミラーリングされた個々の論理パーティションは、個々のリソースコマンドメッセージに応答して複数の応答を生成する可能性がある。ただし、リソースノードがコマンド識別子333によって識別されるコマンドグループ内で新しい読み出しコマンドを検出すると、リソースノードは先行するコマンドの処理を中断し、先行するリソースコマンドメッセージへの複数の応答の可能性を低下させる。また、リソースノードは現在実行中のコマンドの処理を停止すること、または処理されたコマンドの応答を中断することができるとも考えられる。好ましい実施形態では、コマンド識別子333はID番号またはシーケンス番号を備えている。
Command identifier The command identifier 333 includes information for grouping two or more related commands. The command identifier 333 is assumed to include a unique value for each group of commands. Commands are grouped for various reasons. For example, if the file system requests file data with many LBAs that are read from a logical volume with multiple mirrored logical partitions, the driver may request a separate resource command message for each LBA or a group of associated LBAs. Divide into resource command messages. Each mirrored logical partition may generate multiple responses in response to individual resource command messages. However, if the resource node detects a new read command in the command group identified by the command identifier 333, the resource node interrupts processing of the preceding command and reduces the possibility of multiple responses to the preceding resource command message Let It is also conceivable that the resource node can stop processing the currently executing command or interrupt the response of the processed command. In the preferred embodiment, the command identifier 333 comprises an ID number or sequence number.

コマンド識別子333は、一連の入札応答(bid−response)トランザクションを表すとも考えられる。例えば、Webサーバゲートウェイに1台のWebサーバの能力を超える要注意の接続が多数存在する。ゲートウェイは、接続の数を示すデータ340とコマンド識別子333を伴うリソースコマンドメッセージ300をリソースノードとして動作するすべてのWebサーバに送信する。応答可能なWebサーバは、それぞれ容量を予約して応答を送信する。ゲートウェイはこうした応答を統合し、同じコマンド識別子333を伴う後続のコマンドを送信することによって、関与するWebサーバに対して接続を処理するように命令する。さらに、関与しないWebサーバは後続のコマンドを同じコマンド識別子333を伴うコマンドの処理を停止する命令と解釈する。   Command identifier 333 may also be considered to represent a series of bid-response transactions. For example, there are many connections requiring attention exceeding the capacity of one Web server in the Web server gateway. The gateway transmits a resource command message 300 with data 340 indicating the number of connections and a command identifier 333 to all Web servers operating as resource nodes. Each of the responding Web servers reserves a capacity and transmits a response. The gateway consolidates these responses and instructs the participating web server to handle the connection by sending a subsequent command with the same command identifier 333. Further, the non-participating Web server interprets the subsequent command as an instruction to stop processing the command with the same command identifier 333.

緊急性
緊急性335(本明細書で名詞として使用される場合)は、コマンド320を処理するタイミングに関連する情報を備えている。リソースノードは、コマンドが実際に処理されるタイミングとコマンドキュー内のコマンドの順序を、緊急性335から推測することが想定されている。予想される緊急性には、相対的なタイミング情報または絶対的なタイミング情報が含まれる。相対的なタイミング情報には、時間枠内に処理する必要があるという指定が含まれる。絶対的なタイミング情報には、リソースコンシューマの観点またはリソースノードの観点から特定の時間に処理するという指定が含まれる。
Urgency Urgency 335 (when used as a noun herein) comprises information related to the timing of processing command 320. The resource node is assumed to infer from the urgency 335 the timing at which commands are actually processed and the order of commands in the command queue. Expected urgency includes relative timing information or absolute timing information. The relative timing information includes a designation that processing must be performed within the time frame. The absolute timing information includes a specification that processing is performed at a specific time from the viewpoint of a resource consumer or a resource node.

リソースノードは、同様に緊急性335をノード自体の情報と組み合わせる。好ましい実施形態では、緊急性335にはリソースコンシューマの優先されるプロバイダが含まれている。優先されるプロバイダに一致するリソースノードは、優先されるプロバイダに一致しないリソースノードより緊急性が高いと推論される。例えば、優先されるプロバイダリソースノードはコマンドを正常に処理するが、優先されないプロバイダリソースノードはコマンドの処理を遅延させる。このアプローチには、複数の応答が減少することによって帯域幅が節約される、また、元の優先されるプロバイダがすぐに応答できない場合に別のリソースノードが優先されるプロバイダとして引き継ぐことができるので高い応答性が保証されるといったいくつかの利点がある。   The resource node also combines urgency 335 with its own information. In the preferred embodiment, urgency 335 includes a preferred provider of resource consumers. A resource node that matches the preferred provider is inferred to be more urgent than a resource node that does not match the preferred provider. For example, a preferred provider resource node processes a command normally, but a non-preferred provider resource node delays processing of the command. This approach saves bandwidth by reducing multiple responses, and allows another resource node to take over as the preferred provider if the original preferred provider cannot respond immediately. There are several advantages such as high responsiveness is guaranteed.

重要性
重要性337(本明細書で名詞として使用される場合)は、コマンド320を処理する優先度に関連する情報を備えている。重要性には、相対的な優先度または絶対的な優先度が含まれることが想定されている。相対的な優先度にはサービスの品質(QoS:quality of service)の情報が含まれる。絶対的な優先度には、多くの場合にコマンドキューに関連付けられた個別のレベルが含まれる。リソースノードは、複数のリソースコンシューマから送信されたリソースコマンドメッセージを処理し、重要性の情報を使用してコマンドの処理順序を解決することが想定されている。
Importance Importance 337 (when used as a noun herein) comprises information related to the priority with which the command 320 is processed. Importance is assumed to include relative priority or absolute priority. The relative priority includes quality of service (QoS) information. Absolute priority includes individual levels often associated with command queues. It is assumed that the resource node processes resource command messages transmitted from a plurality of resource consumers, and uses the importance information to resolve the command processing order.

リソースノードは、緊急性335または重要性337を含むコマンドパラメータを使用してコマンドの最終的な処理順序を決定する。   The resource node uses command parameters including urgency 335 or importance 337 to determine the final processing order of the commands.

コマンドキュー
図4は、予想されるリソースノードコマンドキューの概略を表している。コマンドキュー400は、1つまたは複数のコマンド位置415Aから415Zを備えており、位置の数はリソースノードの実装によって決まる。
Command Queue FIG. 4 shows an overview of the expected resource node command queue. The command queue 400 includes one or more command locations 415A through 415Z, the number of locations being determined by the resource node implementation.

図4は、コマンドキューの一般的な表現を示しているが、こうしたデータ構造でなくても一連のコマンドの処理順序を決定する多くの方法が考えられることを当業者は理解するであろう。「コマンドキュー」は、本明細書で使用する限り、コマンドの任意の処理順序を含むように広義に解釈されるものとする。コマンドキューの例には、時間の順、優先度の順、先着順(first come first serve)、保留中のコマンドと実行中のコマンドのみ、またはリソースノードによって決定されたこれ以外の順序が含まれる。   Although FIG. 4 shows a general representation of the command queue, those skilled in the art will appreciate that many ways of determining the order of processing a series of commands are possible without such a data structure. As used herein, “command queue” is to be interpreted broadly to include any order of command processing. Examples of command queues include chronological order, priority order, first-come-first-served order, only pending and executing commands, or any other order determined by the resource node .

リソースノードは、コマンドを処理するタイミングに基づいて、コマンドの順序または順序変更を決定する。リソースノードの情報、コマンドの緊急性または重要性に基づいて順序が決定されると、リソースノードはコマンドキュー400内の適切な位置にコマンドを配置することによってキューの順序変更を行う。「位置」は、本明細書で使用する限り、保留中または実行中の他のコマンドに対するコマンドの相対的な順序の概念を含むように広義に解釈されるものとする。リソースノードは、コマンドキュー400を操作する機能を備えている。さらに、順序付けではリソースノードがコマンドを処理しない、したがって、コマンドはキューに入らないという指定が可能である。この概念には、リソースノードに多くの負荷があるために、入ってくるメッセージをリソースノードが処理できない状況も含まれる。したがって、リソースノードがコマンドを処理する「タイミング」を決定するという概念には、リソースコマンドメッセージを無視することも含まれる。   The resource node determines the order of commands or the order change based on the timing of processing the commands. Once the order is determined based on the resource node information, command urgency or importance, the resource node reorders the queue by placing the command at an appropriate location in the command queue 400. “Position”, as used herein, shall be interpreted broadly to include the concept of the relative order of commands relative to other commands that are pending or being executed. The resource node has a function of operating the command queue 400. Further, in ordering, it can be specified that the resource node does not process the command, and therefore the command is not queued. This concept also includes situations where the resource node cannot process incoming messages due to the heavy load on the resource node. Thus, the concept of determining the “timing” at which a resource node processes a command includes ignoring the resource command message.

好ましい実施形態では、コマンドキュー400は一般的に先着順のキューであり、リソースノードはQoS、優先されるプロバイダの情報、またはコマンド識別子に基づいてコマンドの位置を変更する。   In the preferred embodiment, the command queue 400 is generally a first-come-first-served queue, and the resource node changes the location of commands based on QoS, preferred provider information, or command identifiers.

リソースコマンドメッセージの処理
図5は、リソースノードがコマンドキューのメッセージを処理するために使用する予想される一連のステップを示している。リソースコンシューマはリソースコマンドメッセージを1つまたは複数のリソースノードに送信する。したがって、複数のリソースノード(冗長なノードであるのが好ましい)がリソースコマンドメッセージを受信する場合に、図5に示すステップは実質的にパラレルに実行される。
Resource Command Message Processing FIG. 5 illustrates the expected sequence of steps that a resource node uses to process a command queue message. A resource consumer sends a resource command message to one or more resource nodes. Thus, when multiple resource nodes (preferably redundant nodes) receive a resource command message, the steps shown in FIG. 5 are performed substantially in parallel.

ステップ500で、リソースノードはリソースコマンドメッセージを受信する。リソースコマンドメッセージは、個々のノードへのアドレス指定またはリソースノードセットへの集合的なアドレス指定が可能である。好ましい実施形態では、リソースノードはリソースコマンドメッセージをユニキャストまたはマルチキャストのIPアドレスで受信する。リソースノードは、その負荷が大きい場合はリソースコマンドメッセージを受信できないことが想定されている。この場合は、別のリソースノードがこれを処理するか、またはリソースコンシューマがリソースメッセージの再送を試みる。   In step 500, the resource node receives a resource command message. Resource command messages can be addressed to individual nodes or collectively addressed to a set of resource nodes. In a preferred embodiment, the resource node receives a resource command message with a unicast or multicast IP address. It is assumed that a resource node cannot receive a resource command message when its load is large. In this case, another resource node handles this or the resource consumer tries to resend the resource message.

ステップ505で、リソースノードはリソースコマンドメッセージの評価を開始する。リソースノードは、該当する場合にリソースコマンドメッセージ内の緊急性の情報を解釈する。緊急性の情報には、直接的な情報または間接的な情報が含まれる。直接的な情報には、コマンドが処理されるべき時間への参照が含まれる。例えば、直接的な情報にはリソースコンシューマの望ましい緊急性の指定が絶対的な時間または相対的な時間として含まれている。間接的な情報には、リソースノードが緊急性の情報に基づいて時間を推定するための参照が含まれている。例えば、リソースコマンドメッセージに優先されるプロバイダの情報が含まれている場合に、リソースノードはコマンドが処理されるタイミングを変更できる。   In step 505, the resource node starts evaluating the resource command message. The resource node interprets urgency information in the resource command message when applicable. Urgent information includes direct or indirect information. Direct information includes a reference to the time at which the command should be processed. For example, the direct information includes a resource consumer's desired urgency designation as an absolute or relative time. The indirect information includes a reference for the resource node to estimate the time based on the urgency information. For example, the resource node can change the timing at which the command is processed when the resource command message includes information on a provider that is prioritized.

ステップ510で、リソースノードはリソースコマンドメッセージの評価を継続し、該当する場合に重要性の情報を解釈する。緊急性の情報を解釈するステップと同様に、重要性の情報にも直接的な情報または間接的な情報が含まれる。直接的な情報には、絶対的な優先度または相対的な優先度の情報が含まれる。間接的な情報には、QoSの情報が含まれる。QoSの情報は、リソースノードに対してコマンドを他のコマンドより優先的に処理してパフォーマンスを向上するように指示する。   At step 510, the resource node continues to evaluate the resource command message and interprets the importance information if applicable. Similar to the step of interpreting urgency information, importance information includes direct or indirect information. Direct information includes information on absolute priority or relative priority. Indirect information includes QoS information. The QoS information instructs the resource node to process the command preferentially over other commands to improve performance.

ステップ515で、リソースノードはノード自体に関連する情報を収集し、リソースコマンドメッセージ内のコマンドが処理されるべきタイミングについて最終的な決定を行う。想定されるリソースノード情報には、負荷の情報、機能、先行するコマンド、コマンドキュー内のコマンド、またはリソースノードに関するその他の情報が含まれる。   At step 515, the resource node collects information related to the node itself and makes a final decision as to when the command in the resource command message should be processed. The assumed resource node information includes load information, functions, preceding commands, commands in the command queue, or other information about the resource nodes.

先行するステップの順序は変更が可能であり、必ずしも提示された順序に従う必要はないことを当業者は理解するであろう。   Those skilled in the art will appreciate that the order of the preceding steps can be varied and does not necessarily follow the order presented.

ステップ520で、リソースノードは自らのリソースノード情報を緊急性または重要性の情報から解釈される情報と組み合わせてリソースコマンドメッセージ内のコマンドが処理されるべきタイミングを決定する。ステップ533で、リソースノードはコマンドを本当に処理すべきかどうかを決定する。処理しない場合は、ステップ535でリソースノードはコマンドメッセージを報告なしに廃棄する。好ましい実施形態では、リソースノードはリソースコマンドメッセージが廃棄されるかどうかを自律的に決定し、リソースコンシューマはそのリソースに関するニーズが満たされることを保証する責任を負う。リソースノードの負荷が高い場合、リソースノードのコマンドキューに空きがない場合、リソースノードのリソースが予約されている場合、またはその他の原因によってリソースノードがコマンドを処理するのが望ましくない場合は、リソースノードがコマンドを廃棄することが想定されている。廃棄された場合は、ステップ500で、リソースノードは再び他のリソースコマンドメッセージを受信するまで待機する。   In step 520, the resource node combines its resource node information with information interpreted from the urgency or importance information to determine when the command in the resource command message should be processed. At step 533, the resource node determines whether the command should really be processed. If not, in step 535 the resource node discards the command message without reporting. In the preferred embodiment, the resource node autonomously determines whether the resource command message is discarded and the resource consumer is responsible for ensuring that the needs for that resource are met. If the resource node's load is high, the resource node's command queue is full, the resource node's resources are reserved, or the resource node does not want to process the command for other reasons, the resource It is assumed that the node will discard the command. If so, at step 500, the resource node waits again to receive another resource command message.

コマンドが処理されるべきであるとリソースノードが決定した場合は、ステップ543でコマンドが遅延されるべきかどうかを決定する。コマンドは、リソースノードが優先されるプロバイダではない、コマンドが処理される時間をリソースコンシューマが明確に要求しているなど、いくつかの理由で遅延される可能性がある。コマンドが遅延される場合は、ステップ545でリソースノードはコマンドが遅延される時間を決定する。また、リソースノードは、現在のコマンドを優先して実行中のコマンドをキャンセルすることによってコマンドの処理を高速化することができるとも考えられる。   If the resource node determines that the command is to be processed, step 543 determines whether the command is to be delayed. The command can be delayed for several reasons, such as the resource node is not the preferred provider, or the resource consumer explicitly requests the time that the command is processed. If the command is delayed, at step 545 the resource node determines the time that the command is delayed. It is also considered that the resource node can speed up command processing by canceling a command being executed with priority over the current command.

コマンド処理の条件を操作した後に、ステップ553でリソースノードは保留中のコマンドを中断するかどうかを決定する。コマンドが有効ではなくなっている場合は(コマンドのコマンドパラメータによる情報で決定される)、保留中のコマンドが中断される。現在のコマンドがコマンド識別子によってそれ自体を保留中のコマンドが属するグループの一部と識別した場合に、ステップ555でリソースノードは現在のコマンドを保留中のコマンドの中断命令と解釈することができる。中断には、保留中のコマンドの処理をさらに遅延させる、停止させる、保留中のコマンドをコマンドキューから削除する、保留中のコマンドを削除する、または保留中のコマンドの処理時間を変更する結果となるその他のアクションが含まれる。   After manipulating the command processing conditions, at step 553 the resource node determines whether to suspend the pending command. If the command is no longer valid (determined by information from the command parameter of the command), the pending command is interrupted. If the current command identifies itself as part of the group to which the pending command belongs by the command identifier, at step 555 the resource node can interpret the current command as an instruction to suspend the pending command. Suspension includes the result of further delaying or stopping the processing of the pending command, deleting the pending command from the command queue, deleting the pending command, or changing the processing time of the pending command. Other actions that are included.

ステップ565で、リソースノードはコマンドが処理されるべきタイミングの決定を完了し、リソースノードはこのコマンドをコマンドキュー内に配置する。好ましい実施形態では、コマンドキューの順序は優先度、緊急性、またはコマンド識別子に基づき、リソースノードによって変更される。コマンドキューを具体化するには、本明細書で説明した以外に多くの方法があることを当業者は理解するであろう。リソースノードは、コマンドをコマンドキュー内の絶対位置または相対位置に挿入することが想定されている。例えば、コマンドキューの位置の数が設定されている場合に、絶対位置は標準的なキューへの固有のインデックスを表す。絶対位置の例には、現在実行中のコマンド位置、最初の位置、または最後の位置が含まれる。相対位置は、多くの場合に、時間または優先度によって順序付けられた位置、キュー内の他のコマンドに対する相対的な位置を表す。   In step 565, the resource node completes the determination of when the command should be processed and the resource node places the command in the command queue. In the preferred embodiment, the order of the command queue is changed by the resource node based on priority, urgency, or command identifier. Those skilled in the art will appreciate that there are many ways to implement the command queue other than those described herein. The resource node is assumed to insert a command at an absolute or relative position in the command queue. For example, if the number of command queue positions is set, the absolute position represents a unique index into the standard queue. Examples of absolute positions include the command position currently being executed, the first position, or the last position. Relative position often represents a position ordered by time or priority, relative to other commands in the queue.

ステップ570で、リソースノードは該当する場合にコマンドを実行する。さらに、該当する場合は、ステップ575でリソースノードがリソースコマンド応答メッセージをリソースコンシューマに送信する。好ましい実施形態では、この応答にコマンドが処理されることの確認、要求されるデータ、またはコマンドを処理するための能力の指定が含まれる。さらに好ましい実施形態では、リソースノードはリソースコンシューマから要求されたリソース割り当ての少なくとも一部を予約し、その能力の指定をリソースコンシューマに通知する。例えば、リソースコンシューマが100ギガバイトのデータの格納を要求する場合に、リソースノードは50ギガバイトを格納できるという指定で応答できる。リソースノードは、50ギガバイトを予約することによって、リソースコンシューマが他のリソースノードの能力を統合して100ギガバイトを確保できるようにすることができる。   At step 570, the resource node executes the command if applicable. Further, if applicable, at step 575, the resource node sends a resource command response message to the resource consumer. In the preferred embodiment, this response includes confirmation that the command is processed, requested data, or specification of the ability to process the command. In a further preferred embodiment, the resource node reserves at least part of the resource allocation requested by the resource consumer and informs the resource consumer of its capability specification. For example, if a resource consumer requests storage of 100 gigabytes of data, the resource node can respond with a designation that it can store 50 gigabytes. A resource node can reserve 50 gigabytes to allow resource consumers to consolidate the capabilities of other resource nodes to ensure 100 gigabytes.

リソースコマンド応答メッセージは、他のリソースノードで受信した場合は、リソースコマンドメッセージ内のコマンドの処理を中断する命令と解釈できることも想定されている。ソフトウェアまたはファームウェア開発の当業者は、ステップ570がメッセージ処理のステップとパラレルなスレッドまたはタスクとして実行できることを理解するであろう。   When the resource command response message is received by another resource node, it is also assumed that it can be interpreted as an instruction to interrupt the processing of the command in the resource command message. Those skilled in the art of software or firmware development will appreciate that step 570 can be performed as a thread or task parallel to the message processing step.

好ましい実施形態では、図5に示されるリソースノードのステップはプロセッシングユニットで実行される一連の命令としてコンピュータ可読媒体に格納される。ファームウェアまたはソフトウェア開発の当業者は、こうしたステップを実装するには多くの予想される方法が存在するが、こうした方法はすべて本発明の主題の範囲を逸脱しないことを理解するであろう。さらに別の好ましい実施形態では、複数のリソースノードがリソースコマンドメッセージを実質的にパラレルに処理することが想定されている。さらに好ましい実施形態では、複数のリソースノードがリソースコマンドメッセージを3秒以内に次々に処理する。   In the preferred embodiment, the steps of the resource node shown in FIG. 5 are stored on a computer readable medium as a series of instructions executed by the processing unit. One skilled in the art of firmware or software development will understand that there are many possible ways to implement these steps, but all such methods do not depart from the scope of the inventive subject matter. In yet another preferred embodiment, it is assumed that multiple resource nodes process resource command messages substantially in parallel. In a further preferred embodiment, multiple resource nodes process resource command messages one after another within 3 seconds.

リソースデバイスへのアクセス
図6は、リソースコンシューマとリソースノードがリソースにアクセスできるようにするために使用する予想される一連のステップを示している。リソースコンシューマは、1つまたは複数のリソースノードを備えるリソースデバイスにリソースコマンドメッセージを送信する。好ましい実施形態では、1つまたは複数のリソースコンシューマは互いに無関係にステップを実行し、場合によっては同じリソースノードと対話することが想定されている。
Accessing Resource Devices FIG. 6 shows the expected sequence of steps used to allow resource consumers and resource nodes to access resources. A resource consumer sends a resource command message to a resource device comprising one or more resource nodes. In the preferred embodiment, it is assumed that one or more resource consumers perform steps independently of each other and possibly interact with the same resource node.

ステップ600で、リソースコンシューマはコンピュータ可読メモリ内でリソースコマンドメッセージを構築するプロセスを開始する。リソースコンシューマは、リソースコマンドメッセージ内のコマンドに関連付けられた緊急性に対してリソースコンシューマが希望する意味(sense)を設定する。ステップ605で、リソースコンシューマはコマンドの重要性を設定する。該当する場合は、現在のリソースコマンドメッセージに対してステップ600および605の両方が実行される。ステップ610で、リソースコンシューマはオプションで現在のコマンドが先行するコマンドまたは後続のコマンドにどう関連するのかを示すコマンド識別子を割り当てる。ステップ600、605、または610は、任意の順序で実行できる。   At step 600, the resource consumer begins a process of constructing a resource command message in computer readable memory. The resource consumer sets the sense desired by the resource consumer for the urgency associated with the command in the resource command message. In step 605, the resource consumer sets the importance of the command. If applicable, both steps 600 and 605 are performed for the current resource command message. At step 610, the resource consumer optionally assigns a command identifier that indicates how the current command relates to the preceding or subsequent command. Steps 600, 605, or 610 can be performed in any order.

ステップ615で、リソースコンシューマはコマンド、コマンド識別子を含むコマンドパラメータ、緊急性、または重要性に基づいて、リソースコマンドメッセージを構築する。   At step 615, the resource consumer constructs a resource command message based on the command, command parameters including a command identifier, urgency, or importance.

ステップ620で、リソースコンシューマはリソースデバイスにリソースコマンドメッセージを送信する。好ましい実施形態では、リソースコマンドメッセージは1つまたは複数のパケットとして構成され、パケット交換ネットワークを経由して送信される。特に好ましい実施形態では、UDPを使用してパケットが送信される。さらに、リソースコンシューマがリソースコマンドメッセージを送信する場合に、リソースコンシューマはリソースノードのグループまたはすべてのリソースノードに集合的にメッセージを送信するのが好ましい。好ましい実施形態では、リソースコマンドメッセージはマルチキャストを使用して送信され、各リソースノードはアドレスがリソースデバイスを示すマルチキャストグループのメンバーである。リソースコマンドメッセージは、リソースコンシューマとリソースノードを接続する通信パスの輻輳を回避するために、初めは低速で送信されることが想定されている。TCPを含むネットワークプロトコルの当業者は、スロースタートによって輻輳が回避されることを理解するであろう。   At step 620, the resource consumer sends a resource command message to the resource device. In a preferred embodiment, the resource command message is configured as one or more packets and is sent over a packet switched network. In a particularly preferred embodiment, packets are transmitted using UDP. Further, when a resource consumer sends a resource command message, the resource consumer preferably sends the message collectively to a group of resource nodes or all resource nodes. In a preferred embodiment, the resource command message is sent using multicast, and each resource node is a member of a multicast group whose address indicates a resource device. It is assumed that the resource command message is initially transmitted at a low speed in order to avoid congestion of a communication path connecting the resource consumer and the resource node. Those skilled in the art of network protocols including TCP will understand that congestion is avoided by slow start.

ステップ625で、リソースノードはリソースコマンドメッセージを受信し、メッセージの処理を開始する。好ましい実施形態では、複数のリソースノードが同じリソースメッセージを受信できる。さらに、より好ましい実施形態では、複数のリソースノードが同等にコマンドを処理し、リソースコマンドメッセージを送信したリソースコンシューマに応答を返すことができる。   At step 625, the resource node receives the resource command message and begins processing the message. In the preferred embodiment, multiple resource nodes can receive the same resource message. Furthermore, in a more preferred embodiment, multiple resource nodes can process commands equally and return responses to the resource consumer that sent the resource command message.

ステップ630で、リソースノードは、緊急性、重要性、またはコマンド識別子の情報とリソースノード自体に関する情報を使用して、コマンドが処理されるべきタイミングを決定する。ステップ633で、リソースノードは先行するコマンドの処理が中断されるべきかどうかを決定する。中断される場合は、ステップ635で、先行するコマンドが中断され、中断されない場合はステップ640で現在のコマンドがコマンドキューに挿入される。コマンドが処理される順番になると、ステップ645でリソースノードがコマンドを実行し、ステップ650で適切な応答を送信する。   At step 630, the resource node uses the urgency, importance, or command identifier information and information about the resource node itself to determine when the command should be processed. In step 633, the resource node determines whether processing of the preceding command should be interrupted. If so, the preceding command is interrupted at step 635, otherwise the current command is inserted into the command queue at step 640. When the commands are processed, the resource node executes the command at step 645 and sends an appropriate response at step 650.

好ましい実施形態では、ステップ655で、リソースコンシューマは複数のリソースノードから複数の応答を受信できる。この場合、複数のリソースノードは冗長な機能を提供する。この場合に、リソースコンシューマは複数のノードの中から優先されるリソースノードを選択できる。特に好ましい実施形態では、優先されるリソースノードは冗長なノードの中で最初に応答したノードを基準として選択される。複数のリソースノードを備えるリソースデバイスと対話する各リソースコンシューマは、まったく異なる優先されるプロバイダを指定することができる。さらに、環境の条件が変化するにつれて、優先されるプロバイダも変わることができる。したがって、指定された任意の時間に、外部管理を課することなしにリソースコンシューマは必然的に一定のパフォーマンス、負荷分散、または応答性を実現する。   In a preferred embodiment, at step 655, the resource consumer can receive multiple responses from multiple resource nodes. In this case, the plurality of resource nodes provide a redundant function. In this case, the resource consumer can select a preferred resource node from among a plurality of nodes. In a particularly preferred embodiment, the preferred resource node is selected on the basis of the first responding node among the redundant nodes. Each resource consumer interacting with a resource device comprising multiple resource nodes can specify a completely different preferred provider. Furthermore, as the environmental conditions change, the preferred providers can change. Thus, at any given time, resource consumers inevitably achieve some performance, load balancing, or responsiveness without imposing external management.

好ましい実施形態では、図6に示されるステップはプロセッシングユニットで実行される命令の形でコンピュータ可読媒体に格納される。   In a preferred embodiment, the steps shown in FIG. 6 are stored on a computer readable medium in the form of instructions executed by a processing unit.

利点
リソースコンシューマと1つまたは複数のリソースノードを備えるリソースデバイスは、リソースコマンドメッセージを使用することによる必然的な結果として、多くの利点を実現できる。
Benefits A resource device comprising a resource consumer and one or more resource nodes can realize many benefits as a necessary result of using resource command messages.

さらなるリソースデバイスまたはリソースノードがシステムに追加されると、リソースの規模は必然的に拡大される。個々のリソースノードはその主要な責務とリソースコマンドメッセージの処理に照準を合わせているので、リソースノードは自律的であり、リソースコマンドメッセージを処理する通信パスの能力まで、アトミックレベルでシステムの規模を拡大することができる。通信パスの帯域幅はより効率的に使用される。これは、すべてのトラフィックがシステムの管理または保守でなく、リソースへのアクセスに関連するためである。さらに、リソースシステムがさらなる機能を必要とする場合に、リソースシステム全体の複製とは対照的に、個々のリソースノードを追加すればよいため、コストの増大が抑制される。   As additional resource devices or resource nodes are added to the system, the size of the resource inevitably increases. Because individual resource nodes are focused on their primary responsibilities and resource command message processing, resource nodes are autonomous and scale the system at an atomic level to the ability of the communication path to process resource command messages. Can be enlarged. The bandwidth of the communication path is used more efficiently. This is because all traffic is related to access to resources, not system management or maintenance. Furthermore, when the resource system requires further functions, an increase in cost is suppressed because individual resource nodes need only be added as opposed to copying the entire resource system.

さらなる冗長なノードがシステムに追加されると、リソースのパフォーマンスと応答性の両方が向上する。リソースコンシューマは、リソースコマンドメッセージを複数のリソースノードに集合的に送信するので、複数のリソースノードが応答できる。個々のリソースノードに異なる負荷が割り当てられているので、最も応答性の高いリソースノードが最初に応答し、結果として応答時間が最短になる。さらに、複数のリソースノードは(必ずしも冗長なノードではない)、リソースコマンドメッセージを実質的にパラレルに処理し、リソースコンシューマに高いパフォーマンスを提供する。リソースコンシューマは、重要性の情報を使用してコマンドの処理に関して考慮すべき優先度をリソースノードに対して指定する。重要性の情報は、QoSデータの処理を支援する。複数の応答は、スロースタートによって減少されるので、輻輳が回避され、帯域幅消費が制限される。さらに、リソースコンシューマはそれぞれのリソースノードに固有のビューを備えており、冗長なリソースノードで動作する場合に優先されるプロバイダを独自に選択することによって、最短の応答時間と複数メッセージの減少の保証を支援する。   As additional redundant nodes are added to the system, both resource performance and responsiveness improve. Since the resource consumer collectively sends resource command messages to a plurality of resource nodes, the plurality of resource nodes can respond. Since different loads are assigned to individual resource nodes, the resource node with the highest response responds first, resulting in the shortest response time. Furthermore, multiple resource nodes (not necessarily redundant nodes) process resource command messages substantially in parallel, providing high performance to resource consumers. The resource consumer uses the importance information to specify a priority for the resource node to consider for processing the command. Importance information supports the processing of QoS data. Multiple responses are reduced by slow start, so congestion is avoided and bandwidth consumption is limited. In addition, resource consumers have a unique view for each resource node, ensuring the shortest response time and the reduction of multiple messages by uniquely selecting the preferred provider when operating on redundant resource nodes. To help.

各ノードは独自に機能しており、各ノードのそれぞれが処理するように設計されただけのトラフィックを処理できるので、冗長なリソースノードの必然的な結果として負荷分散が実現される。リソースコンシューマは、その要求に対してどのリソースノードがサービスするかに関する事前の優先度はないが、リソースコンシューマは複数の応答を減少するためにどのノードを優先するかをバイアスできる。リソースコンシューマに優先されるプロバイダがある場合でも、継続的に対話することにより、他のリソースノードがどう応答するかに基づいて優先されるプロバイダを変更することができる。したがって、ノード間で負荷が分散される。システムにさらなるノードが追加されると負荷が軽減されるので、リソースコンシューマは必要に応じて優先されるノードを循環させることによって、複数のリソースコンシューマがリソースノードを効果的に共有することができる。   Each node functions independently and can handle only the traffic that each node is designed to handle, so load balancing is realized as a necessary result of redundant resource nodes. The resource consumer has no prior priority as to which resource node will service the request, but the resource consumer can bias which node prioritizes to reduce multiple responses. Even if there is a preferred provider to the resource consumer, continuous interaction can change the preferred provider based on how other resource nodes respond. Therefore, the load is distributed among the nodes. As additional nodes are added to the system, the load is reduced, so resource consumers can effectively share resource nodes by cycling through the preferred nodes as needed.

以上のように、リソースコマンドメッセージの特定の構成および方法が開示されている。ただし、前述の開示の他に、本明細書に示す本発明の概念を逸脱することなく、さらに多くの変更が可能であることは当業者には言うまでもない。したがって、本発明の主題は本開示の精神を除いて制限してはならない。さらに、本開示を解釈する上で、すべての用語はコンテクストに合わせて最大限広義に解釈されるものとする。特に、「備える」、「備えている」という用語は、エレメント、コンポーネント、またはステップに非独占的に言及し、言及されたエレメント、コンポーネント、またはステップは、明示的に言及されない他のエレメント、コンポーネント、またはステップとの共存、併用、または組合せが可能であると解釈されるものとする。   As described above, specific configurations and methods of resource command messages are disclosed. However, it will be apparent to those skilled in the art that many more modifications besides the foregoing disclosure may be made without departing from the inventive concepts set forth herein. Accordingly, the subject matter of the present invention should not be limited except in the spirit of the present disclosure. Further, in interpreting the present disclosure, all terms shall be interpreted in the broadest possible manner consistent with the context. In particular, the terms “comprising”, “comprising” refer to elements, components, or steps non-exclusively, and the mentioned elements, components, or steps are other elements, components that are not explicitly mentioned. Or co-exist with, combined with, or combined with steps.

リソースコンシューマが複数のリソースノードを備える1つのリソースデバイスと対話する環境を示す図である。FIG. 2 is a diagram illustrating an environment in which a resource consumer interacts with one resource device comprising a plurality of resource nodes. リソースノードの予想される物理的実施形態を示す概略図である。FIG. 3 is a schematic diagram illustrating an expected physical embodiment of a resource node. コンピュータ可読メモリに格納される予想されるリソースコマンドメッセージを示す概略図である。FIG. 6 is a schematic diagram illustrating expected resource command messages stored in computer readable memory. 予想されるリソースノードコマンドキューを示す概略図である。FIG. 6 is a schematic diagram illustrating an expected resource node command queue. リソースコマンドメッセージを処理するための予想されるステップを示す概略図である。FIG. 6 is a schematic diagram illustrating expected steps for processing a resource command message. リソースデバイスにアクセスするための予想されるステップを示す概略図である。FIG. 6 is a schematic diagram illustrating expected steps for accessing a resource device.

Claims (16)

コンピュータ可読メモリと、
前記コンピュータ可読メモリ内にある命令とを有する装置であって、
前記コンピュータ可読メモリ内の命令は当該装置に手順を実行させ、該手順は、
第1のリソースコマンドメッセージをより小さなサイズコマンドメッセージ群に分割し、
第1のマルチキャストメッセージで、前記コマンドメッセージ群を通信パスを介して複数のリソースノードに対して送信し、
前記複数のリソースノードから前記コマンドメッセージに対する応答を受信し、
前記複数のリソースノードから受信した応答の少なくとも一部に基づいて、前記複数のリソースノードのうち優先されるプロバイダを選択し、
第2のマルチキャストメッセージで、第2のリソースコマンドメッセージを前記複数のリソースノードに対して送信するステップを含み、
前記第2のリソースコマンドメッセージは、コマンドと、前記複数のリソースノードの中から選択された前記優先されるプロバイダの指定とを含み、前記優先されるプロバイダは、第2の緊急性よりも緊急である第1の緊急性に従って前記コマンドを処理し、前記複数のリソースノードのうち優先されないプロバイダは該第2の緊急性に従って前記コマンドを処理する、装置。
A computer readable memory;
An apparatus having instructions in said computer readable memory comprising :
Said computer-readable instructions in memory to perform the steps in the apparatus, The procedure,
Dividing the first resource command message More command message groups of a small size,
In the first multicast message transmitted to a plurality of resource nodes via the communications path said command message group,
Receive a response to the previous Kiko command message group from the plurality of resource nodes,
Selecting a preferred provider of the plurality of resource nodes based on at least some of the responses received from the plurality of resource nodes;
Transmitting a second resource command message to the plurality of resource nodes in a second multicast message;
The second resource command message includes a command and a designation of the preferred provider selected from among the plurality of resource nodes, wherein the preferred provider is more urgent than a second urgency. An apparatus for processing the command according to a first urgency, wherein a non-preferred provider of the plurality of resource nodes processes the command according to the second urgency.
前記複数のリソースノードからの応答のそれぞれが、同一のコンテンツを含む、請求項1に記載の装置。  The apparatus of claim 1, wherein each of the responses from the plurality of resource nodes includes the same content. 前記複数のリソースノードが、重複するリソースを管理する複数の冗長なリソースノードを備える、請求項1に記載の装置。  The apparatus of claim 1, wherein the plurality of resource nodes comprises a plurality of redundant resource nodes that manage overlapping resources. 前記第2のリソースコマンドメッセージが、前記優先されるプロバイダの指定を含むコマンドの緊急性を含む、請求項1に記載の装置。  The apparatus of claim 1, wherein the second resource command message includes a command urgency including a designation of the preferred provider. 前記第1のリソースコマンドメッセージが、前記第1のリソースコマンドメッセージ内のコマンドを処理するための相対的な時間を指定するコマンドの緊急性を含む、請求項1に記載の装置。  The apparatus of claim 1, wherein the first resource command message includes a command urgency that specifies a relative time to process a command in the first resource command message. 前記第1のリソースコマンドメッセージが、前記第1のリソースコマンドメッセージ内のコマンドを処理するための絶対的な時間を指定するコマンドの緊急性を含む、請求項1に記載の装置。  The apparatus of claim 1, wherein the first resource command message includes a command urgency that specifies an absolute time to process a command in the first resource command message. 前記第1のリソースコマンドメッセージが、前記第1のリソースコマンドメッセージ内のコマンドを処理するための絶対的な優先度を指定するコマンドの重要性を含む、請求項1に記載の装置。  The apparatus of claim 1, wherein the first resource command message includes an importance of a command that specifies an absolute priority for processing a command in the first resource command message. 前記第2のリソースコマンドメッセージが、前記第2のリソースコマンドメッセージを前記第1のリソースコマンドメッセージに関連付けるコマンド識別子を含む、請求項1に記載の装置。  The apparatus of claim 1, wherein the second resource command message includes a command identifier that associates the second resource command message with the first resource command message. 第1のリソースコマンドメッセージをより小さなサイズのコマンドメッセージ群に分割するステップと、
第1のマルチキャストメッセージで、前記コマンドメッセージ群を複数のリソースノードに送信するステップと、
前記複数のリソースノードから前記コマンドメッセージに対する応答を受信するステップと、
前記複数のリソースノードから受信した応答の少なくとも一部に基づいて、前記複数のリソースノードのうち優先されるプロバイダを選択するステップと、
第2のマルチキャストメッセージで、第2のリソースコマンドメッセージを前記複数のリソースノードに送信するステップと
を有し、前記第2のリソースコマンドメッセージは、前記複数のリソースノードから選択された優先されるプロバイダの指定を含み、前記優先されるプロバイダは、第2の緊急性よりも緊急である第1の緊急性に従ってコマンドを処理し、前記複数のリソースノードのうち優先されないプロバイダは該第2の緊急性に従って前記コマンドを処理する、方法。
Dividing the first resource command message into smaller sized command messages ;
In the first multicast message, and transmitting the command message group to a plurality of resource nodes,
Receiving a response to the previous Kiko command message group from the plurality of resource nodes,
Selecting a preferred provider of the plurality of resource nodes based on at least some of the responses received from the plurality of resource nodes;
Transmitting a second resource command message to the plurality of resource nodes in a second multicast message, wherein the second resource command message is a preferred provider selected from the plurality of resource nodes. The preferred provider processes the command according to a first urgency that is more urgent than a second urgency, and the non-preferred provider of the plurality of resource nodes is the second urgency. Processing the command according to:
前記複数のリソースノードからの応答のそれぞれが、同一のコンテンツを含む、請求項9に記載の方法。  The method of claim 9, wherein each of the responses from the plurality of resource nodes includes the same content. 前記複数のリソースノードが、重複するリソースを管理する複数の冗長なリソースノードを備える、請求項9に記載の方法。  The method of claim 9, wherein the plurality of resource nodes comprises a plurality of redundant resource nodes that manage overlapping resources. 前記優先されるプロバイダの指定を含むコマンドの緊急性と共に前記第2のリソースコマンドメッセージを提供するステップをさらに有する、請求項9に記載の方法。  The method of claim 9, further comprising providing the second resource command message with a command urgency including designation of the preferred provider. 前記第1のリソースコマンドメッセージ内のコマンドを処理するための相対的な時間を指定するコマンドの緊急性を、第1のリソースコマンドメッセージに提供するステップをさらに備える、請求項9に記載の方法。  The method of claim 9, further comprising: providing a first resource command message with an urgency of a command that specifies a relative time for processing a command in the first resource command message. 前記第1のリソースコマンドメッセージ内のコマンドを処理するための絶対的な時間を指定するコマンドの緊急性を、第1のリソースコマンドメッセージに提供するステップをさらに備える、請求項9に記載の方法。  The method of claim 9, further comprising: providing a first resource command message with an urgency of a command that specifies an absolute time for processing a command in the first resource command message. 前記第1のリソースコマンド内のコマンドを処理するための絶対的な優先度を指定するコマンドの重要性を、第1のリソースコマンドメッセージに提供するステップをさらに備える、請求項9に記載の方法。  The method of claim 9, further comprising: providing a first resource command message with the importance of a command that specifies an absolute priority for processing a command in the first resource command. 前記第2のリソースコマンドメッセージを第1のリソースコマンドメッセージに関連付けるコマンド識別子を、第2のリソースコマンドメッセージに提供するステップをさらに備える、請求項9に記載の方法。The method of claim 9, further comprising: providing a second resource command message with a command identifier that associates the second resource command message with the first resource command message.
JP2008534508A 2005-10-06 2005-10-06 Apparatus and method used in a system for transmitting and receiving resource command messages Active JP5175200B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2005/036026 WO2007043999A1 (en) 2005-10-06 2005-10-06 Resource command messages and methods

Publications (3)

Publication Number Publication Date
JP2009512011A JP2009512011A (en) 2009-03-19
JP2009512011A5 JP2009512011A5 (en) 2010-05-27
JP5175200B2 true JP5175200B2 (en) 2013-04-03

Family

ID=36589045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008534508A Active JP5175200B2 (en) 2005-10-06 2005-10-06 Apparatus and method used in a system for transmitting and receiving resource command messages

Country Status (5)

Country Link
EP (1) EP1946208A1 (en)
JP (1) JP5175200B2 (en)
CN (1) CN101371229B (en)
CA (1) CA2632889A1 (en)
WO (1) WO2007043999A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
JP4872942B2 (en) * 2008-02-13 2012-02-08 日本電気株式会社 Storage system, storage device, priority control device, and priority control method
CN102136976B (en) * 2011-02-24 2014-12-31 华为技术有限公司 Machine transaction control method, device and system
US20160062930A1 (en) * 2013-03-25 2016-03-03 Mitsubishi Electric Corporation Bus master, bus system, and bus control method
WO2023173363A1 (en) * 2022-03-17 2023-09-21 Micron Technology, Inc. Low-latency processing for unmap commands

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69129298T2 (en) * 1991-02-05 1998-11-19 Ibm GUIDE CONTROL FOR TRANSACTION COMMANDS
JPH07325779A (en) * 1994-06-01 1995-12-12 Fuji Xerox Co Ltd Input/output controller
US5949977A (en) * 1996-10-08 1999-09-07 Aubeta Technology, Llc Method and apparatus for requesting and processing services from a plurality of nodes connected via common communication links
JPH11328038A (en) * 1998-05-15 1999-11-30 Nec Corp Device and method for multiplexing and recording method
JP2000267979A (en) * 1999-03-12 2000-09-29 Nec Corp Storage system
WO2001090902A1 (en) * 2000-05-23 2001-11-29 Sangate Systems, Inc. Method and apparatus for data replication using scsi over tcp/ip
JP4151330B2 (en) * 2002-07-19 2008-09-17 日本電気株式会社 I / O control method for network file system
US7181521B2 (en) * 2003-03-21 2007-02-20 Intel Corporation Method and system for selecting a local registry master from among networked mobile devices based at least in part on abilities of the mobile devices
JPWO2005017738A1 (en) * 2003-08-13 2006-10-12 富士通株式会社 Print control method, print control apparatus, and print control program

Also Published As

Publication number Publication date
CN101371229A (en) 2009-02-18
CA2632889A1 (en) 2007-04-19
WO2007043999A1 (en) 2007-04-19
EP1946208A1 (en) 2008-07-23
JP2009512011A (en) 2009-03-19
CN101371229B (en) 2012-04-25

Similar Documents

Publication Publication Date Title
US11848822B2 (en) Resource command messages and methods
US20210014279A1 (en) Network-accessible service for executing virtual machines using client-provided virtual machine images
EP3553655B1 (en) Distributed policy-based provisioning and enforcement for quality of service
US10430347B2 (en) Power savings via dynamic page type selection
JP5147584B2 (en) Command execution method by storage subsystem and controller
JP4383132B2 (en) Virtualization control device and computer system
EP2297921B1 (en) Network storage
US20140082288A1 (en) System and method for operating a system to cache a networked file system
US20070162631A1 (en) Method for selectable software-hardware internet SCSI
JP4407431B2 (en) Computer system and bandwidth control method for computer system
US20160306667A1 (en) Data Processing System having a Hardware Acceleration Plane and a Software Plane
US9509529B1 (en) Assured messaging system with differentiated real time traffic
US10810143B2 (en) Distributed storage system and method for managing storage access bandwidth for multiple clients
JP2005222123A (en) Computer system, management device, storage device, and computer device
JP5882557B2 (en) Request priority seek manager
JP5175200B2 (en) Apparatus and method used in a system for transmitting and receiving resource command messages
US20160352831A1 (en) Methods for sharing nvm ssd across a cluster group and devices thereof
KR102509988B1 (en) Storage system and method for connection-based load balancing
JP2006268486A (en) Caching control program, device, and method
US10616050B2 (en) Software defined storage (SDS) system with network tiering
JP2009188655A (en) Communication control method, information processing system, information processor, and program
US9065740B2 (en) Prioritising data processing operations
US11704056B2 (en) Independent set data lanes for IOD SSD
US11089066B2 (en) System and method for dynamic medium access control (MAC) relating to a virtualization environment
CN105573935A (en) Leveling IO

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110614

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120410

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120920

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130104

R150 Certificate of patent or registration of utility model

Ref document number: 5175200

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250