Abstract:
A system and techniques are described for formatting a persistent storage device to store hierarchical data. According to one aspect of the invention, data structures are established, at a base level of the persistent storage device, for storing a hierarchy of key-value pairs. A first structure, which corresponds to a root node of the hierarchy, is established. A second structure, which corresponds to a key-value pair, is established. The second structure stores the value of the key-value pair. Links, which lead from the first structure to the second structure through one or more intermediate structures, are established based on a position, within the hierarchy, of the key.
Abstract:
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.
Abstract:
An aspect of the invention provides a method for managing information associated with a hierarchical key. A plurality of hash tables are created for a plurality of levels of a hierarchy associated with a hierarchical key, wherein each hash table is associated with a corresponding level of the hierarchy. Entries are stored within each of the plurality of hash tables, wherein the entries are associated with key names that have as many levels as the level associated with the respective hash table. Furthermore, a reference to a descendant entry that is in a respective hash table may be stored within each entry.
Abstract:
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.