摘要:
A system and techniques are described for managing key-value pairs using an architecture that does not restrict its users to any specific platform or storage subsystem. According to one aspect of the invention, the repository is portable in that the architecture need not change based on the environment and platform in which the repository is used. Rather, the portion of the architecture that is platform-specific is limited to plug-ins at a storage abstraction layer of the repository. The plug-ins expose the same storage abstraction interface to the other layers of the repository, but are implemented to interact with different platforms and storage subsystems. Consequently, in response to being ported from one platform to another, the repository may simply change the plug-in to invoke for persistent storage operations.
摘要:
A group of shared-storage resources are being maintained as replicas by the nodes of a cluster. Each node in the cluster maintains a set of pointers to the members of the group. As membership changes, the set of pointers should be changed accordingly. For various, reasons, the set of pointers of a node are not changed and may point to shared-storage resources that are no longer members of the group and/or not point to shared-storage resources that are members of the group. By recording a history of membership changes in the shared-storage resources, and comparing the recording to what a node thinks the shared resources should be, an incorrect set of pointers can be detected and corrective active undertaken.
摘要:
A group of shared-storage resources are being maintained as replicas by the nodes of a cluster. Each node in the cluster maintains a set of pointers to the members of the group. As membership changes, the set of pointers should be changed accordingly. For various, reasons, the set of pointers of a node are not changed and may point to shared-storage resources that are no longer members of the group and/or not point to shared-storage resources that are members of the group. By recording a history of membership changes in the shared-storage resources, and comparing the recording to what a node thinks the shared resources should be, an incorrect set of pointers can be detected and corrective active undertaken.
摘要:
A system and techniques are described for managing key-value pairs using an architecture that does not restrict its users to any specific platform or storage subsystem. According to one aspect of the invention, the repository is portable in that the architecture need not change based on the environment and platform in which the repository is used. Rather, the portion of the architecture that is platform-specific is limited to plug-ins at a storage abstraction layer of the repository. The plug-ins expose the same storage abstraction interface to the other layers of the repository, but are implemented to interact with different platforms and storage subsystems. Consequently, in response to being ported from one platform to another, the repository may simply change the plug-in to invoke for persistent storage operations.
摘要:
A system and techniques are described for managing key-value pairs using an architecture that does not restrict its users to any specific platform or storage subsystem. According to one aspect of the invention, the repository is portable in that the architecture need not change based on the environment and platform in which the repository is used. Rather, the portion of the architecture that is platform-specific is limited to plug-ins at a storage abstraction layer of the repository. The plug-ins expose the same storage abstraction interface to the other layers of the repository, but are implemented to interact with different platforms and storage subsystems. Consequently, in response to being ported from one platform to another, the repository may simply change the plug-in to invoke for persistent storage operations.
摘要:
Described herein is a mechanism that follows, at least in part, an object oriented design pattern. In particular, a class is used to model a shared resource as a shared resource object. The class creates one instance of the shared resource object in response to multiple attempts to create a shared resource object from the class. The class defines various methods used to interact with the object. The object receives requests to perform operations from the clients. The clients may register another object to receive from the shared resource object notifications regarding events about the operations requested by the clients.
摘要:
A system and method for facilitating an automatic rolling upgrade of distributed software. In a set of computing devices (e.g., a cluster), each node executes the distributed program, but different nodes may operate any number of different versions of the program. During a rolling upgrade of the software, the nodes all operate according to a specified acting version of the software. A node attempting the join the cluster may be required to have a software version at least equal to the acting version. When all nodes have been upgraded to a version newer than the current acting version, the acting version is reset to the lowest software version installed on a node. The rolling upgrade completes automatically when all nodes run at a specified software version (e.g., the most recent) or have the same version installed.
摘要:
A system and method for facilitating an automatic rolling upgrade of distributed software. In a set of computing devices (e.g., a cluster), each node executes the distributed program, but different nodes may operate any number of different versions of the program. During a rolling upgrade of the software, the nodes all operate according to a specified acting version of the software. A node attempting the join the cluster may be required to have a software version at least equal to the acting version. When all nodes have been upgraded to a version newer than the current acting version, the acting version is reset to the lowest software version installed on a node. The rolling upgrade completes automatically when all nodes run at a specified software version (e.g., the most recent) or have the same version installed.
摘要:
In an application executing in multiple computers connected by a network, an instance of the application is deleted from a group of instances that share a resource, such as a database. Specifically the to-be-deleted instance is shut down, followed by deleting connectivity between the to-be-deleted instance and the network, and then deleting an object of the to-be-deleted instance. Each of these acts is performed automatically without user input, once the user issues an instruction to delete the to-be-deleted instance.
摘要:
A new instance of an application is added to a group of existing instances (of that application) that share a resource, such as a database. The new instance is added by creating a new object for the new instance by cloning an existing object of an existing instance in the group, setting up connectivity between the new instance and a network through which the multiple instances communicate with one another, and starting up the new instance. The just-described acts are performed in the reverse order when deleting an existing instance. Each of these acts may be performed manually, or automatically without user input, with the user issuing at least one instruction to add or delete an instance.