摘要:
Various embodiments of a system and method related to a computer network capable of detecting and breaking cycles are disclosed. First routing information usable to send messages to a first address may be created. The first address may be associated with multiple nodes in the network. When sending a message from a first node to the first address according to the first routing information, a cycle may be detected. The first routing information may be changed to break the cycle.
摘要:
A system and method for storing and utilizing routing information in a computer network. Instances of a first network address may be created on each of N nodes in the network. Routing information for routing messages to the first network address may be stored on a first node. The first node may be operable to route a first message to the first network address using the routing information so that the message reaches each of the N nodes that have an instance of the first network address. However, the routing information stored by the first node may comprise information regarding less than all N instances of the first network address.
摘要:
A message gate is the message endpoint for a client or service in a distributed computing environment. A message gate may provide a secure message endpoint that sends and receives type-safe messages. A gate may have a gate name that is a unique ID that refers only to the gate. A gate may be implemented as a layer above a device's transport layer (e.g. networking sockets). The gate name for each gate may be bound to a transport reference. Multiple gates may share the same message transport. The transport reference may be a transport URI or socket reference and may provide a mechanism for naming an underlying transport and sharing the transport with other gates. Multiple local gates may include a reference to the same transport, however, each local gate may behave independently of the other local gates sending and receiving messages to and from its paired remote gate.
摘要:
A method and system is provided for migrating processes from one virtual machine to another on a network. To migrate the external state of a process, the process may use a network service connection system or a compact network service connection system for accessing resources external to the virtual machine. A process may be migratable separately from other processes. A process may have an in-memory heap used for the execution of the process, a virtual heap that may include the entire heap of the process including at least a portion of the runtime environment, and a persistent heap where the virtual heap may be checkpointed. In one embodiment, the virtual heap may serve as the persistent heap. In another embodiment, the virtual heap may be checkpointed to a separate, distinct persistent heap. The combination of the in-memory heap, the virtual heap, and the persistent store may be referred to as a virtual persistent heap. One embodiment of a method for migrating an application may include checkpointing the application to a persistent heap. Current leases to local and/or remote resources may be expired. The persistent state of the process may be packaged in the persistent heap and sent to the node where the process is to migrate. A transaction mechanism may be used, where the process's persistent state is copied and committed as having migrated on both the sending and receiving nodes. The state of the process may then be reconstituted into a new virtual persistent heap on the node where the application migrated. Leases to local and/or remote resources for the process may be re-established. The process may then resume execution on the node where it migrated. In one embodiment, a versioning mechanism may be used whereby nodes where a process once lived may cache a previous state. In addition, a user interface (UI) may be provided to manage process checkpoints.
摘要:
A cluster implements a virtual disk system that provides each node of the cluster access to each storage device of the cluster. The virtual disk system provides high availability such that a storage device may be accessed and data access requests are reliably completed even in the presence of a failure. To ensure consistent mapping and file permission data among the nodes, data are stored in a highly available cluster database. Because the cluster database provides consistent data to the nodes even in the presence of a failure, each node will have consistent mapping and file permission data. A cluster transport interface is provided that establishes links between the nodes and manages the links. Messages received by the cluster transports interface are conveyed to the destination node via one or more links. The configuration of a cluster may be modified during operation. Prior to modifying the configuration, a reconfiguration procedure suspends data access requests and waits for pending data access requests to complete. The reconfiguration is performed and the mapping is modified to reflect the new configuration. The node then updates the internal representation of the mapping and resumes issuing data access requests.
摘要:
A distributed filesystem operating on a distributed computing system uses existing local filesystems as building blocks. A cluster filesystem layer is added above the local filesystems to handle functions necessary for a distributed filesystem, such as data coherency. A meta-data stub is developed to flush meta-data from the local filesystem to a storage device. In one embodiment, the meta-data stub is a copy of the flush portion of the meta-data portion of a local filesystem. Additionally, the distributed filesystem supports a plurality of coherency algorithms and variable granularity. A user may select the coherency algorithm that best suits the computer system and granularity that best suits the access patterns of the computer system.
摘要:
A system and method for publishing a network address on a computer network. A first node in a plurality of nodes may initiate a publish operation to publish a first instance of the network address. Initiating the publish operation may comprise the first node sending a publish message to one or more other nodes in the plurality of nodes. The publish message may be propagated from at least a subset of the nodes that receive the publish message from the first node to still other nodes in the plurality of nodes, which in turn may further propagate the publish message. Each node that receives the publish message from another node may create routing information useable to route messages to the first instance of the network address on the first node.
摘要:
In a distributed computing environment, a message gate may be the message endpoint for a client or service. A message gate may provide a secure message endpoint that sends and receives type-safe messages. Devices may have a gate factory (e.g. message endpoint constructor) that is trusted code on the device for generating gates based on XML message descriptions. In one embodiment, the gate factory may construct a gate from the XML schema of the service, a URI for the service, and an authentication credential. Access to some services may be unrestricted. For such services, a gate may be constructed without an authentication credential, saving the overhead of running an authentication service and incorporating an authentication credential. Gate construction may also be optimized for certain clients that do not desire to perform checking of messages against a service's XML schema. If verification is not desired, a client may avoid or may chose to avoid building (e.g. by a gate factory) some or all of the gate code that checks the messages against the XML schema. Also, the building of a gate may be made lightweight by appropriate reuse or sharing of pieces used to construct other gates. Devices may maintain a cache of gates to avoid constructing them each time the same service is run.
摘要:
Embodiments of a message conductor in a distributed computing environment are described. A message conductor may accept a data representation language schema that describes the ordering for messages that may be sent between a client and a service. This schema may specify user interface information. The schema may be parsed into an internal form and used to enforce message ordering. The conductor may prevent messages from being sent out of order. In some embodiments, a conductor may be linked to multiple gates. The message conductor may also provide a service interface that may interact with clients of the service to obtain all information to run a service, and then either display results of running the service or return information regarding the location of results. The service interface may be part of a message conductor or may be in addition to and work with the message conductor.
摘要:
A cluster implements a virtual disk system that provides each node of the cluster access to each storage device of the cluster. The virtual disk system provides high availability such that a storage device may be accessed and data access requests are reliably completed even in the presence of a failure. To ensure consistent mapping and file permission data among the nodes, data are stored in a highly available cluster database. Because the cluster database provides consistent data to the nodes even in the presence of a failure, each node will have consistent mapping and file permission data. A cluster transport interface is provided that establishes links between the nodes and manages the links. Messages received by the cluster transports interface are conveyed to the destination node via one or more links. The configuration of a cluster may be modified during operation. Prior to modifying the configuration, a reconfiguration procedure suspends data access requests and waits for pending data access requests to complete. The reconfiguration is performed and the mapping is modified to reflect the new configuration. The node then updates the internal representation of the mapping and resumes issuing data access requests.