摘要:
A system and method for efficiently linking together replicas of a storage object. The location of a first replica of the storage object may be stored on a node in a network. When new replicas of the storage object are created, the node that stores the new replica may efficiently lookup the location of the first replica and utilize the location information to perform an efficient process to link the new replica to the first replica and any other existing replicas by causing routing information to be created on various nodes.
摘要:
A system and method for providing message-based leasing of resources in a distributed computing environment. Services may issue leases to clients and provide operations on those leases. The lease functionality of a service may be defined in an XML message schema. Gates may be used to perform lease operations. Leases may be granted for a period that may be negotiated. Leasing messages for performing leasing operations may be defined. An automatic lease renewal mechanism may be implemented to relieve the client of the responsibility of handling lease renewal messages. In one embodiment, of an automatic lease renewal mechanism, each gate may receive renewal messages and automatically respond to them without help from the client process. In another embodiment, a client gate may monitor elapsed time and send a lease renewal message prior to the expiration of a current lease period. In one embodiment, the renewal request may claim the lease at a current access level or at a different access level. In one embodiment, a message gate may contain a single, set-aside renewal response message that is automatically sent to the service when the gate receives the renewal message. In one embodiment using time-based leasing, a lease renewal request from a client to a service may specify a requested lease period, and the service leasing the resource to the client may grant a lease period equal to or less than the specified period.
摘要:
Various embodiments of message gate pairs are described. A message gate pair may provide a mechanism for communicating requests from clients to services and response from services to clients. A message gate pair may be used to create a secure atomic bi-directional message channel for request-response message passing. The distributed computing environment may employ a message transport in which a message gate exists on both the client and the service. The two gates may work together to provide a secure and reliable message channel. Client and service gates may perform the actual sending and receiving of the messages from the client to the service using a protocol specified in a service advertisement. The message gates may provide a level of abstraction between a client and a service. A client may reference a service through a message gate instead of referencing the service directly. Messages gates may allow clients and services to exchange messages in a secure and reliable fashion over any suitable message transport (e.g. HTTP). For a client, a message gate may represent the authority to use some or all of a service's capabilities. Each capability may be expressed in terms of a message that may be sent to the service. Each such message may be sent through a client message gate that may verify the correctness of the message. The message may be received by a service message gate that may authenticate the message and verify its correctness.
摘要:
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. In one embodiment, a gate is assigned a gate name when the gate is created and the gate name refers to only that gate for the life of the gate. A gate may be addressed using its gate name. The name may allow clients and services to migrate about the network and still work together. In a preferred embodiment, the gate address is independent of the physical message transport address and/or socket layer. Thus, a gate name may provide a virtual message endpoint address that may be bound and un-bound to a message transport address.
摘要:
A system and method for efficiently accessing replicas of a storage object. A first node may perform a find operation to determine a plurality of nodes that each store a replica of a first storage object. For each node in the plurality of nodes, the first node may establish a direct connection to the node. The first node may then access the replicas of the first storage object using the respective direct connections to the plurality of nodes. In one embodiment, the nodes may be nodes in a peer-to-peer network. Establishing a direct connection to each storage object replica may enable the first node to communicate with each node in a single hop without having to pass messages via intermediate nodes in the peer-to-peer network.
摘要:
In a distributed computing environment, a message gate may be the message endpoint for a client or service to communicate with another client or service. Message gates may be pre-generated and built into the device. For example, message gates may be generated during the build of embedded software as a means of including a built-in secure message endpoint that does not have to be constructed at runtime. A generation tool may be provided for the pre-construction of gates. The generation tool may include an XML parser, a code generator and a code compiler. In one embodiment, the code generator may be a Java source code generator and the code compiler may be a Java code compiler. During the build of the software for which built-in message gates is desired, the generation tool is run with input from all the relevant XML schemas for which gates are desired. The parser may receive a message schema corresponding to each service or service type that a message interface will be desired in the device. The parser may parse each schema into an intermediate format from which code generator produce source code for the message interface or verification part of a gate to be built-in to the device. Compiler produces executable code, e.g. Java bytecode, from the source code. The executable code may be linked into the operating code for the device during a code-build process for the device.
摘要:
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 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.
摘要:
Methods, apparatus, and software for endianness checking for platform-independent device drivers is described. According to one embodiment, the method of the invention includes generating a memory allocation request from a platform-independent device driver. The driver instantiates a memory constraints object that is configured to report the endianness of the driver. The request is received by a bus manger that is configured to process memory allocation requests from the device driver and has an endianness independent of the device driver. If the endianness of the bus manager and device driver is inconsistent, then the memory constraints object is transformed to be consistent with the bus manager's endianness.
摘要:
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.