System and method for multiplexing channels over multiple connections in a storage system cluster
AssigneeNetwork Appliance, Inc.
InventorsPeter F. Corbett, Michael Kazar
Life of this patent
Estimating the term…
Abstract
A system and method multiplexes channels over multiple connections between one or more nodes. Each node includes a cluster fabric interface module adapted to implement a novel network protocol that enables intra-cluster communication among the nodes. The network protocol is a multi-layered protocol that integrates a session infrastructure and an application operation set into a session layer. The network protocol is illustratively a request/response protocol wherein a node (requester) receiving a data access request from a client redirects that request to another node (responder) that services the request and, upon completion, returns a response.
Claims29
A method for multiplexing channels over multiple connections in a cluster, the method comprising:
- opening a plurality of connections between a pair of elements in the cluster;
- creating a session between the pair of elements, the session including a plurality of channels disposed over the connections, each channel enabling one or more messages to be sent over a connection between the elements;
- multiplexing the messages from the channels over any available connection;
- embodying each channel as a request window having a plurality of entries for staging the messages sent over the connection;
- and
- within each session, selecting any request window with an available entry to send a message, thereby obviating the possibility of one long-running or lost request blocking the process of the session.
A system configured to multiplex channels over multiple connections between a first and second node, the system comprising:
- a connection layer of each node configured to open a plurality of connections between a pair of nodes in the cluster;
- a session layer of each node configured to create a session between the pair of nodes, each session including a plurality of channels disposed over the connections, each channel enabling one or more messages to be sent over a connection between the nodes, the session layer further configured to multiplex the messages from the channels of the session over any available connection;
- and
- a cluster fabric interface module of each node, the cluster fabric interface module configured to implement a network protocol that enables intra-cluster communication among the nodes;
- wherein the network protocol is a request/response protocol wherein a node (requester) receiving a data access request from a client redirects that request to another node (responder) that services the request and, upon completion, returns a response.
An apparatus configured to multiplex channels over multiple connections, the apparatus comprising:
- means for opening a plurality of connections between a pair of elements;
- means for creating a session between the pair of elements, the session including a plurality of channels disposed over the connections, each channel enabling one or more messages to be sent over a connection between the elements;
- means for multiplexing the messages from the channels over any available connection;
- means for embodying each channel as a request window having a plurality of entries for staging the messages sent over the connection;
- and
- means for, within each session, selecting any request window with an available entry to send a message, thereby obviating the possibility of one long-running or lost request blocking the progress of the session.
A computer readable medium encoded thereon executable program instructions for multiplexing channels over multiple connections, the computer readable medium when executed by a computer cause the computer to perform:
- opening a plurality of connections between a pair of elements;
- creating a session between the pair of elements, the session including a plurality of channels disposed over the connections, each channel enabling one or more messages to be sent over a connection between the elements;
- multiplexing the messages from the channels over any available connection;
- embodying each channel as a request window having a plurality of entries for staging the message sent over the connection;
- and
- within each session, selecting any request window with an available entry to send a message, thereby obviating the possibility of one long-running or lost request blocking the progress of the session.
Dependencies are inferred from the claim text.