Persistent key-value repository with a pluggable architecture to abstract physical storage
First Claim
1. A method for storing key-value pairs, the method comprising:
- on a node on which a first client and a second client reside, exposing a repository interface through which the first and second clients make calls to store and access key-value pair information in a repository;
receiving a first call from the first client through a routine that implements a portion of said repository interface; and
based on said first call, establishing a first component that is associated with said first client but not said second client as a sole caching component responsible for managing a cache for said repository on said node;
receiving, at a second component that is associated with said second client but not said first client, a second call from the second client;
determining whether said second component is the caching component for said node; and
in response to determining that said second component is not said caching component for said node, passing said second call to said caching component for processing by said caching component.
0 Assignments
0 Petitions
Accused Products
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.
-
Citations
8 Claims
-
1. A method for storing key-value pairs, the method comprising:
-
on a node on which a first client and a second client reside, exposing a repository interface through which the first and second clients make calls to store and access key-value pair information in a repository; receiving a first call from the first client through a routine that implements a portion of said repository interface; and based on said first call, establishing a first component that is associated with said first client but not said second client as a sole caching component responsible for managing a cache for said repository on said node; receiving, at a second component that is associated with said second client but not said first client, a second call from the second client; determining whether said second component is the caching component for said node; and in response to determining that said second component is not said caching component for said node, passing said second call to said caching component for processing by said caching component. - View Dependent Claims (2, 3, 4)
-
-
5. A non-volatile or volatile computer-readable storage medium storing instructions for storing key-value pairs, the non-volatile or volatile computer-readable storage medium comprising instructions for performing the steps of:
-
on a node on which a first client and a second client reside, exposing a repository interface through which the first and second clients make calls to store and access key-value pair information in a repository; receiving a first call from the first client through a routine that implements a portion of said repository interface; and based on said first call, establishing a first component that is associated with said first client but not said second client as a sole caching component responsible for managing a cache for said repository on said node; receiving, at a second component that is associated with said second client but not said first client, a second call from the second client; determining whether said second component is the caching component for said node; and
in response to determining that said second component is not said caching component for said node, passing said second call to said caching component for processing by said caching component. - View Dependent Claims (6, 7, 8)
-
Specification