CA2480459A1 - Persistent key-value repository with a pluggable architecture to abstract physical storage - Google Patents
Persistent key-value repository with a pluggable architecture to abstract physical storage Download PDFInfo
- Publication number
- CA2480459A1 CA2480459A1 CA002480459A CA2480459A CA2480459A1 CA 2480459 A1 CA2480459 A1 CA 2480459A1 CA 002480459 A CA002480459 A CA 002480459A CA 2480459 A CA2480459 A CA 2480459A CA 2480459 A1 CA2480459 A1 CA 2480459A1
- Authority
- CA
- Canada
- Prior art keywords
- repository
- component
- client
- access mode
- plug
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
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.
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.
Claims (32)
1. A method for storing key-value pairs, the method comprising:
exposing, at an application programming layer, a repository interface through which clients may make calls to store and access key-value pair information in a repository;
servicing calls made through said repository interface by calling one of a plurality of plug-ins through a common interface of a storage abstraction layer;
receiving a request to perform an operation;
determining which particular plug-in of said plurality of plug-ins corresponds to a type of storage subsystem to access during execution of said operation;
dynamically loaded the particular plug-in that corresponds to said type of storage subsystem; and performing said operation by making one or more calls through said common interface to said particular plug-in;
wherein each plug-in of said plurality of plug-ins exposes said common interface for accessing durably stored key-value pair information;
wherein each plug-in of said plurality of plug-ins is designed to interact with a particular type of storage subsystem in response to calls made through said common interface; and wherein the storage subsystem with which each plug-in interacts is a different type of storage subsystem than the storage subsystem with which each other of said plurality of plug-ins interacts.
exposing, at an application programming layer, a repository interface through which clients may make calls to store and access key-value pair information in a repository;
servicing calls made through said repository interface by calling one of a plurality of plug-ins through a common interface of a storage abstraction layer;
receiving a request to perform an operation;
determining which particular plug-in of said plurality of plug-ins corresponds to a type of storage subsystem to access during execution of said operation;
dynamically loaded the particular plug-in that corresponds to said type of storage subsystem; and performing said operation by making one or more calls through said common interface to said particular plug-in;
wherein each plug-in of said plurality of plug-ins exposes said common interface for accessing durably stored key-value pair information;
wherein each plug-in of said plurality of plug-ins is designed to interact with a particular type of storage subsystem in response to calls made through said common interface; and wherein the storage subsystem with which each plug-in interacts is a different type of storage subsystem than the storage subsystem with which each other of said plurality of plug-ins interacts.
2. The method of claim 1, further comprising the steps of:
designating a single component of said repository as a master component; receiving, at components spread across a plurality of nodes of a cluster, calls through said repository interface from clients residing on said plurality of nodes; directing all calls that require access to persistent storage to said master component;
wherein the master component is the only component of said repository permitted to perform the step of calling plug-ins through said common interface.
designating a single component of said repository as a master component; receiving, at components spread across a plurality of nodes of a cluster, calls through said repository interface from clients residing on said plurality of nodes; directing all calls that require access to persistent storage to said master component;
wherein the master component is the only component of said repository permitted to perform the step of calling plug-ins through said common interface.
3. The method of claim 1, further comprising the steps of:
receiving a request from a client through said repository interface;
prior to making a call through said common interface for information required by said request, searching for said information in a master cache.
receiving a request from a client through said repository interface;
prior to making a call through said common interface for information required by said request, searching for said information in a master cache.
4. The method of claim 3, wherein:
the client resides on a first node and the master cache resides on a second node; and the method further comprises the step of, prior to searching for said information in said master cache, searching for said information on a local cache on said first node.
the client resides on a first node and the master cache resides on a second node; and the method further comprises the step of, prior to searching for said information in said master cache, searching for said information on a local cache on said first node.
5. The method of claim 4, wherein:
the first node includes a plurality of components of said repository;
the client is associated with a first component of said plurality of components; the method further comprises the steps of establishing only one component of said plurality of components as a caching component; and if said first component is not said caching component, then causing a message to be sent from said first component to said caching component to cause said caching component to search said local cache for said information.
the first node includes a plurality of components of said repository;
the client is associated with a first component of said plurality of components; the method further comprises the steps of establishing only one component of said plurality of components as a caching component; and if said first component is not said caching component, then causing a message to be sent from said first component to said caching component to cause said caching component to search said local cache for said information.
6. The method of claim 1, further comprising the steps of:
creating a code library that contains routines that implement said repository interface;
linking said code library to client code to allow routines in said client code to use said repository by calling said routines in said code library.
creating a code library that contains routines that implement said repository interface;
linking said code library to client code to allow routines in said client code to use said repository by calling said routines in said code library.
7. The method of claim 1, further comprising the steps of:
receiving a call from a client through a routine that implements a portion of said repository interface; and based on a value of a parameter in said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
receiving a call from a client through a routine that implements a portion of said repository interface; and based on a value of a parameter in said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
8. A method for storing key-value pairs, the method comprising:
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository;
receiving a call from a client through a routine that implements a portion of said repository interface; and based on said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository;
receiving a call from a client through a routine that implements a portion of said repository interface; and based on said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
9. The method of claim 8, wherein:
the repository supports a plurality of access modes, including a caching access mode and a default access mode;
the step of receiving a call includes receiving a call that specifies one of the caching access mode and the default access mode; and, the method includes the step of establishing the component of said repository that is associated with said client as a caching component if said call specifies said caching access mode.
the repository supports a plurality of access modes, including a caching access mode and a default access mode;
the step of receiving a call includes receiving a call that specifies one of the caching access mode and the default access mode; and, the method includes the step of establishing the component of said repository that is associated with said client as a caching component if said call specifies said caching access mode.
10. The method of claim 9, further comprising the steps of:
in response to determining that said call specifies said default access mode, passing requests to read information from said repository that are received by said component from said client to a second caching component associated with a second client; and causing said second component to respond to said requests by inspecting a cache, of information from said repository, that is managed by said second component.
in response to determining that said call specifies said default access mode, passing requests to read information from said repository that are received by said component from said client to a second caching component associated with a second client; and causing said second component to respond to said requests by inspecting a cache, of information from said repository, that is managed by said second component.
11. The method of claim 10, wherein said component and said second caching component reside on a single node.
12. The method of claim 11, further comprising the step of if the cache managed by the second caching component does not include information required by a particular request from said client, then said second caching component sending said request to a third component residing on a second node that is remote relative to said node.
13. The method of claim 9, wherein:
the plurality of access modes further include an installation access mode and a read only access mode;
clients use said installation access mode when initially creating said repository; and clients use said read only access mode when booting from said repository.
the plurality of access modes further include an installation access mode and a read only access mode;
clients use said installation access mode when initially creating said repository; and clients use said read only access mode when booting from said repository.
14. A method for storing key-value pairs, the method comprising:
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository designed specifically for key-value pair information;
receiving one or more calls from a client through said repository interface; wherein said one or more calls are received at said repository interface prior to allocating, on persistent storage, any structures for said repository for persistently storing said key-value pair information;
and based on said one or more calls, creating structures for persistently storing said key-value pair information on said persistent storage.
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository designed specifically for key-value pair information;
receiving one or more calls from a client through said repository interface; wherein said one or more calls are received at said repository interface prior to allocating, on persistent storage, any structures for said repository for persistently storing said key-value pair information;
and based on said one or more calls, creating structures for persistently storing said key-value pair information on said persistent storage.
15. The method of claim 14, wherein:
said repository supports a plurality of access modes, including an installation access mode and a default access mode;
the step of receiving one or more calls includes receiving at least one call that specifies the installation ' access mode; and the method includes the step of granting to said client said installation access mode and exclusive use of said repository while said client remains in said installation access mode.
said repository supports a plurality of access modes, including an installation access mode and a default access mode;
the step of receiving one or more calls includes receiving at least one call that specifies the installation ' access mode; and the method includes the step of granting to said client said installation access mode and exclusive use of said repository while said client remains in said installation access mode.
16. The method of claim 15, wherein:
said plurality of access modes includes a read-only access mode; and the method includes the steps of receiving a request from a second client to perform an operation using read-only access mode;
circumventing concurrency control mechanisms of said repository during execution of said operation.
said plurality of access modes includes a read-only access mode; and the method includes the steps of receiving a request from a second client to perform an operation using read-only access mode;
circumventing concurrency control mechanisms of said repository during execution of said operation.
17. A computer-readable medium carrying instructions for storing key-value pairs, the instructions comprising instructions for performing the steps of:
exposing, at an application programming layer, a repository interface through which clients may make calls to store and access key-value pair information in a repository;
servicing calls made through said repository interface by calling one of a plurality of plug-ins through a common interface of a storage abstraction layer;
receiving a request to perform an operation;
determining which particular plug-in of said plurality of plug-ins corresponds to a type of storage subsystem to access during execution of said operation;
dynamically loading the particular plug-in that corresponds to said type of storage subsystem; and, performing said operation by making one or more calls through said common interface to said particular plug-in;
wherein each plug-in of said plurality of plug-ins exposes said common interface for accessing durably stored key-value pair information;
wherein each plug-in of said plurality of plug-ins is designed to interact with a particular type of storage subsystem in response to calls made through said common interface; and wherein the storage subsystem with which each plug-in interacts is a different type of storage subsystem than the storage subsystem with which each other of said plurality of plug-ins interacts.
exposing, at an application programming layer, a repository interface through which clients may make calls to store and access key-value pair information in a repository;
servicing calls made through said repository interface by calling one of a plurality of plug-ins through a common interface of a storage abstraction layer;
receiving a request to perform an operation;
determining which particular plug-in of said plurality of plug-ins corresponds to a type of storage subsystem to access during execution of said operation;
dynamically loading the particular plug-in that corresponds to said type of storage subsystem; and, performing said operation by making one or more calls through said common interface to said particular plug-in;
wherein each plug-in of said plurality of plug-ins exposes said common interface for accessing durably stored key-value pair information;
wherein each plug-in of said plurality of plug-ins is designed to interact with a particular type of storage subsystem in response to calls made through said common interface; and wherein the storage subsystem with which each plug-in interacts is a different type of storage subsystem than the storage subsystem with which each other of said plurality of plug-ins interacts.
18. The computer-readable medium of claim 17, further comprising instructions for performing the steps of:
designating a single component of said repository as a master component; receiving, at components spread across a plurality of nodes of a cluster, calls through said repository interface from clients residing on said plurality of nodes; directing all calls that require access to persistent storage to said master component;
wherein the master component is the only component of said repository permitted to perform the step of calling plug-ins through said common interface.
designating a single component of said repository as a master component; receiving, at components spread across a plurality of nodes of a cluster, calls through said repository interface from clients residing on said plurality of nodes; directing all calls that require access to persistent storage to said master component;
wherein the master component is the only component of said repository permitted to perform the step of calling plug-ins through said common interface.
19. The computer-readable medium of claim 17, further comprising instructions for performing the steps of:
receiving a request from a client through said repository interface;
prior to making a call through said common interface for information required by said request, searching for said information in a master cache.
receiving a request from a client through said repository interface;
prior to making a call through said common interface for information required by said request, searching for said information in a master cache.
20. The computer-readable medium of claim 19, wherein:
the client resides on a first node and the master cache resides on a second node; and the computer-readable medium further comprises instructions for performing the step of, prior to searching for said information in said master cache, searching for said information on a local cache on said first node.
the client resides on a first node and the master cache resides on a second node; and the computer-readable medium further comprises instructions for performing the step of, prior to searching for said information in said master cache, searching for said information on a local cache on said first node.
21. The computer-readable medium of claim 20, wherein:
the first node includes a plurality of components of said repository;
the client is associated with a first component of said plurality of components; the computer-readable medium further comprises instructions for performing the steps of establishing only one component of said plurality of components as a caching component; and if said first component is not said caching component, then causing a message to be sent from said first component to said caching component to cause said caching component to search said local cache for said information.
the first node includes a plurality of components of said repository;
the client is associated with a first component of said plurality of components; the computer-readable medium further comprises instructions for performing the steps of establishing only one component of said plurality of components as a caching component; and if said first component is not said caching component, then causing a message to be sent from said first component to said caching component to cause said caching component to search said local cache for said information.
22. The computer-readable medium of claim 17, further comprising instructions for performing the steps of:
creating a code library that contains routines that implement said repository interface;
linking said code library to client code to allow routines in said client code to use said repository by calling said routines in said code library.
creating a code library that contains routines that implement said repository interface;
linking said code library to client code to allow routines in said client code to use said repository by calling said routines in said code library.
23. The computer-readable medium of claim 17, further comprising instructions for performing the steps of:
receiving a call from a client through a routine that implements a portion of said repository interface; and based on a value of a parameter in said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
receiving a call from a client through a routine that implements a portion of said repository interface; and based on a value of a parameter in said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
24. A computer-readable medium carrying instructions for storing key-value pairs, the computer-readable medium comprising instructions for performing the steps of:
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository;
receiving a call from a client through a routine that implements a portion of said repository interface; and based an said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository;
receiving a call from a client through a routine that implements a portion of said repository interface; and based an said call, determining whether to establish a component of said repository that is associated with said client as a caching component responsible for managing a cache for said repository.
25. The computer-readable medium of claim 24, wherein:
the repository supports a plurality of access modes, including a caching access mode and a default access mode;
the step of receiving a call includes receiving a call that specifies one of the caching access mode and the default access mode; and the computer-readable medium includes instructions for performing the step of establishing the component of said repository that is associated with said client as a caching component if said call specifies said caching access mode.
the repository supports a plurality of access modes, including a caching access mode and a default access mode;
the step of receiving a call includes receiving a call that specifies one of the caching access mode and the default access mode; and the computer-readable medium includes instructions for performing the step of establishing the component of said repository that is associated with said client as a caching component if said call specifies said caching access mode.
26. The computer-readable medium of claim 25, further comprising instructions for performing the steps of:
in response to determining that said call specifies said default access mode, passing requests to read information from said repository that are received by said component from said client to a second caching component associated with a second client; and causing said second component to respond to said requests by inspecting a cache, of information from said repository, that is managed by said second caching component.
in response to determining that said call specifies said default access mode, passing requests to read information from said repository that are received by said component from said client to a second caching component associated with a second client; and causing said second component to respond to said requests by inspecting a cache, of information from said repository, that is managed by said second caching component.
27. The computer-readable medium of claim 26, wherein said component and said second caching component reside on a single node.
28. The computer-readable medium of claim 27, further comprising instructions for performing the step of:
if the cache managed by the second caching component does not include information required by a particular request from said client, then said second caching component sending said request to a third component residing on a second node that is remote relative to said node.
if the cache managed by the second caching component does not include information required by a particular request from said client, then said second caching component sending said request to a third component residing on a second node that is remote relative to said node.
29. The computer-readable medium of claim 25, wherein:
the plurality of access modes further include an installation access mode and a read only access mode;
clients use said installation access mode when initially creating said repository; and clients use said read only access mode when booting from said repository.
the plurality of access modes further include an installation access mode and a read only access mode;
clients use said installation access mode when initially creating said repository; and clients use said read only access mode when booting from said repository.
30. A computer-readable medium carrying instructions for storing key-value pairs, the computer-readable medium comprising instructions for performing the steps of:
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository designed specifically for key-value pair information;
receiving one or more calls from a client through said repository interface;
wherein said one or more calls are received at said repository interface prior to allocating, on persistent storage, any structures for said repository for persistently storing said key-value pair information; and based on said one or more calls, creating structures for persistently storing said key-value pair information on said persistent storage.
exposing a repository interface through which clients may make calls to store and access key-value pair information in a repository designed specifically for key-value pair information;
receiving one or more calls from a client through said repository interface;
wherein said one or more calls are received at said repository interface prior to allocating, on persistent storage, any structures for said repository for persistently storing said key-value pair information; and based on said one or more calls, creating structures for persistently storing said key-value pair information on said persistent storage.
31. The computer-readable medium of claim 30, wherein:
said repository supports a plurality of access modes, including an installation access mode and a default access mode;
the step of receiving one or more calls includes receiving at least one call that specifies the installation access mode; and 25a the computer-readable medium includes instructions for performing the step of granting to said client said installation access mode and exclusive use of said repository while said client remains in said installation access mode.
said repository supports a plurality of access modes, including an installation access mode and a default access mode;
the step of receiving one or more calls includes receiving at least one call that specifies the installation access mode; and 25a the computer-readable medium includes instructions for performing the step of granting to said client said installation access mode and exclusive use of said repository while said client remains in said installation access mode.
32. The computer-readable medium of claim 31, wherein:
said plurality of access modes includes a read-only access mode; and the computer-readable medium includes instructions for performing the steps of receiving a request from a second client to perform an operation using read-only access mode;
circumventing concurrency control mechanisms of said repository during execution of said operation.
said plurality of access modes includes a read-only access mode; and the computer-readable medium includes instructions for performing the steps of receiving a request from a second client to perform an operation using read-only access mode;
circumventing concurrency control mechanisms of said repository during execution of said operation.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37096302P | 2002-04-08 | 2002-04-08 | |
US60/370,963 | 2002-04-08 | ||
US37218602P | 2002-04-12 | 2002-04-12 | |
US60/372,186 | 2002-04-12 | ||
US10/253,088 | 2002-09-23 | ||
US10/253,088 US7096213B2 (en) | 2002-04-08 | 2002-09-23 | Persistent key-value repository with a pluggable architecture to abstract physical storage |
PCT/US2003/009407 WO2003088093A2 (en) | 2002-04-08 | 2003-03-26 | Key-value repository with a pluggable architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2480459A1 true CA2480459A1 (en) | 2003-10-23 |
CA2480459C CA2480459C (en) | 2010-01-19 |
Family
ID=28678885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002480459A Expired - Lifetime CA2480459C (en) | 2002-04-08 | 2003-03-26 | Persistent key-value repository with a pluggable architecture to abstract physical storage |
Country Status (6)
Country | Link |
---|---|
US (2) | US7096213B2 (en) |
EP (1) | EP1493105B1 (en) |
JP (1) | JP4297790B2 (en) |
CN (1) | CN100410929C (en) |
CA (1) | CA2480459C (en) |
WO (1) | WO2003088093A2 (en) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050220286A1 (en) * | 2001-02-27 | 2005-10-06 | John Valdez | Method and apparatus for facilitating integrated access to communications services in a communication device |
MXPA04006390A (en) * | 2001-12-28 | 2005-06-08 | James Jonas Jeffrey | Real time data warehousing. |
US7445196B2 (en) * | 2002-02-20 | 2008-11-04 | Universal Consumer Products, Inc. | Plastic fencing simulative of wrought iron |
US7672945B1 (en) | 2002-04-08 | 2010-03-02 | Oracle International Corporation | Mechanism for creating member private data in a global namespace |
US7136867B1 (en) | 2002-04-08 | 2006-11-14 | Oracle International Corporation | Metadata format for hierarchical data storage on a raw storage device |
US7058639B1 (en) | 2002-04-08 | 2006-06-06 | Oracle International Corporation | Use of dynamic multi-level hash table for managing hierarchically structured information |
US8271530B2 (en) * | 2002-04-08 | 2012-09-18 | Oracale International Corporation | Method and mechanism for managing and accessing static and dynamic data |
US7900052B2 (en) | 2002-11-06 | 2011-03-01 | International Business Machines Corporation | Confidential data sharing and anonymous entity resolution |
US8620937B2 (en) * | 2002-12-27 | 2013-12-31 | International Business Machines Corporation | Real time data warehousing |
CN100541443C (en) | 2002-12-31 | 2009-09-16 | 国际商业机器公司 | The method and system that is used for deal with data |
US7200602B2 (en) * | 2003-02-07 | 2007-04-03 | International Business Machines Corporation | Data set comparison and net change processing |
US7962757B2 (en) * | 2003-03-24 | 2011-06-14 | International Business Machines Corporation | Secure coordinate identification method, system and program |
US7467384B2 (en) * | 2004-02-20 | 2008-12-16 | Microsoft Corporation | Uniform resource discovery with multiple computers |
US7461054B2 (en) * | 2004-02-20 | 2008-12-02 | Microsoft Corporation | Uniform resource discovery and API layering |
US7921419B2 (en) * | 2004-05-12 | 2011-04-05 | Oracle International Corporation | Method and mechanism for managing incompatible changes in a distributed system |
US7779022B2 (en) * | 2004-09-01 | 2010-08-17 | Oracle International Corporation | Efficient retrieval and storage of directory information system knowledge referrals |
US7792860B2 (en) * | 2005-03-25 | 2010-09-07 | Oracle International Corporation | System for change notification and persistent caching of dynamically computed membership of rules-based lists in LDAP |
US8204831B2 (en) | 2006-11-13 | 2012-06-19 | International Business Machines Corporation | Post-anonymous fuzzy comparisons without the use of pre-anonymization variants |
US7903819B2 (en) * | 2007-09-07 | 2011-03-08 | Yahoo! Inc. | Memory efficient storage of large numbers of key value pairs |
US8336047B2 (en) * | 2008-08-25 | 2012-12-18 | International Business Machines Corporation | Provisioning virtual resources using name resolution |
CN102043645B (en) * | 2009-10-20 | 2014-01-08 | 阿里巴巴集团控股有限公司 | Plug-in loading method and device |
US8402106B2 (en) * | 2010-04-14 | 2013-03-19 | Red Hat, Inc. | Asynchronous future based API |
US8935487B2 (en) | 2010-05-05 | 2015-01-13 | Microsoft Corporation | Fast and low-RAM-footprint indexing for data deduplication |
US9053032B2 (en) | 2010-05-05 | 2015-06-09 | Microsoft Technology Licensing, Llc | Fast and low-RAM-footprint indexing for data deduplication |
US20110276744A1 (en) | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US9208472B2 (en) | 2010-12-11 | 2015-12-08 | Microsoft Technology Licensing, Llc | Addition of plan-generation models and expertise by crowd contributors |
US9110936B2 (en) | 2010-12-28 | 2015-08-18 | Microsoft Technology Licensing, Llc | Using index partitioning and reconciliation for data deduplication |
US8832111B2 (en) * | 2010-12-30 | 2014-09-09 | Facebook, Inc. | Distributed cache for graph data |
KR101398959B1 (en) | 2012-06-28 | 2014-05-27 | 엘아이지넥스원 주식회사 | Interface method and apparatus by using plug-in |
US9838370B2 (en) | 2012-09-07 | 2017-12-05 | Oracle International Corporation | Business attribute driven sizing algorithms |
US9069979B2 (en) * | 2012-09-07 | 2015-06-30 | Oracle International Corporation | LDAP-based multi-tenant in-cloud identity management system |
KR102044023B1 (en) * | 2013-03-14 | 2019-12-02 | 삼성전자주식회사 | Data Storage System based on a key-value and Operating Method thereof |
US9870168B1 (en) * | 2014-12-22 | 2018-01-16 | Emc Corporation | Key-value store with internal key-value storage interface |
US10013353B2 (en) | 2015-02-23 | 2018-07-03 | Red Hat, Inc. | Adaptive optimization of second level cache |
US9767028B2 (en) * | 2015-10-30 | 2017-09-19 | Advanced Micro Devices, Inc. | In-memory interconnect protocol configuration registers |
US10261913B2 (en) | 2017-04-20 | 2019-04-16 | Alibaba Group Holding Limited | Persistent memory for key-value storage |
CN107196920B (en) * | 2017-04-28 | 2019-07-30 | 中国人民解放军信息工程大学 | A kind of key generation distribution method towards wireless communication system |
US10572161B2 (en) * | 2017-11-15 | 2020-02-25 | Samsung Electronics Co., Ltd. | Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices |
US10403351B1 (en) | 2018-02-22 | 2019-09-03 | Advanced Micro Devices, Inc. | Save and restore scoreboard |
US11507392B2 (en) * | 2020-02-26 | 2022-11-22 | Red Hat, Inc. | Automatically configuring computing clusters |
CN113326033B (en) * | 2021-06-09 | 2023-08-11 | 北京八分量信息科技有限公司 | Key-value storage system with multi-language API |
US11914563B2 (en) | 2022-03-24 | 2024-02-27 | Oracle International Corporation | Data structure generation system for analyzing logs |
US11822939B2 (en) * | 2022-03-24 | 2023-11-21 | Oracle International Corporation | Collaborative analysis system for analyzing logs |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US5555388A (en) | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
US5504892A (en) | 1994-09-08 | 1996-04-02 | Taligent, Inc. | Extensible object-oriented file system |
FR2735261B1 (en) | 1995-06-08 | 1997-07-11 | France Telecom | METHOD OF MAKING A PAYMENT USING AN ACCOUNT MANAGER |
US6105025A (en) | 1996-03-08 | 2000-08-15 | Oracle Corporation | Method for using an index as a workspace for deferred enforcement of uniqueness constraints |
US5727950A (en) | 1996-05-22 | 1998-03-17 | Netsage Corporation | Agent based instruction system and method |
US5822526A (en) | 1996-06-03 | 1998-10-13 | Microsoft Corporation | System and method for maintaining and administering email address names in a network |
US5901214A (en) | 1996-06-10 | 1999-05-04 | Murex Securities, Ltd. | One number intelligent call processing system |
US6067584A (en) | 1996-09-09 | 2000-05-23 | National Instruments Corporation | Attribute-based system and method for configuring and controlling a data acquisition task |
US6016499A (en) | 1997-07-21 | 2000-01-18 | Novell, Inc. | System and method for accessing a directory services respository |
US6523041B1 (en) | 1997-07-29 | 2003-02-18 | Acxiom Corporation | Data linking system and method using tokens |
US6073140A (en) | 1997-07-29 | 2000-06-06 | Acxiom Corporation | Method and system for the creation, enhancement and update of remote data using persistent keys |
US6766327B2 (en) | 1997-07-29 | 2004-07-20 | Acxiom Corporation | Data linking system and method using encoded links |
US6073129A (en) * | 1997-12-29 | 2000-06-06 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a database management system through a central cache mechanism |
US6345382B1 (en) | 1998-02-12 | 2002-02-05 | International Business Machines Corporation | Run-time customization in object-oriented design |
US6298419B1 (en) | 1998-03-26 | 2001-10-02 | Compaq Computer Corporation | Protocol for software distributed shared memory with memory scaling |
US6915307B1 (en) * | 1998-04-15 | 2005-07-05 | Inktomi Corporation | High performance object cache |
US6122629A (en) * | 1998-04-30 | 2000-09-19 | Compaq Computer Corporation | Filesystem data integrity in a single system image environment |
GB9811574D0 (en) | 1998-05-30 | 1998-07-29 | Ibm | Indexed file system and a method and a mechanism for accessing data records from such a system |
US6748374B1 (en) | 1998-12-07 | 2004-06-08 | Oracle International Corporation | Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree |
US6327594B1 (en) | 1999-01-29 | 2001-12-04 | International Business Machines Corporation | Methods for shared data management in a pervasive computing environment |
US6393415B1 (en) * | 1999-03-31 | 2002-05-21 | Verizon Laboratories Inc. | Adaptive partitioning techniques in performing query requests and request routing |
US6578045B1 (en) * | 1999-04-20 | 2003-06-10 | Microsoft Corporation | System and method for retrieving registry data |
US6421662B1 (en) | 1999-06-04 | 2002-07-16 | Oracle Corporation | Generating and implementing indexes based on criteria set forth in queries |
US7308426B1 (en) | 1999-08-11 | 2007-12-11 | C-Sam, Inc. | System and methods for servicing electronic transactions |
US6442748B1 (en) * | 1999-08-31 | 2002-08-27 | Accenture Llp | System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment |
US6738775B2 (en) * | 1999-11-30 | 2004-05-18 | Base One International Corp. | Database communication system and method for communicating with a database |
CN1114164C (en) * | 1999-12-27 | 2003-07-09 | 英业达集团(上海)电子技术有限公司 | Down loading and enciphering method for Internet electronic reading |
WO2001050396A1 (en) | 2000-01-05 | 2001-07-12 | Iprivacy Llc | Method and system for private shipping to anonymous users of a computer network |
US20010044787A1 (en) | 2000-01-13 | 2001-11-22 | Gil Shwartz | Secure private agent for electronic transactions |
WO2001059545A2 (en) | 2000-02-11 | 2001-08-16 | Subramaniam Arun K | System and method for providing anonymous internet transaction |
WO2001063452A2 (en) | 2000-02-23 | 2001-08-30 | Capital One Financial Corporation | Systems and methods for providing anonymous financial transactions |
US7412422B2 (en) | 2000-03-23 | 2008-08-12 | Dekel Shiloh | Method and system for securing user identities and creating virtual users to enhance privacy on a communication network |
US6826626B1 (en) * | 2000-07-21 | 2004-11-30 | Clear Blue Technologies Management, Inc. | Method of and apparatus for rapid retrieval of data in a content distribution network |
AU2001291175A1 (en) | 2000-09-21 | 2002-04-02 | Md Online Inc. | Medical image processing systems |
US7043760B2 (en) | 2000-10-11 | 2006-05-09 | David H. Holtzman | System and method for establishing and managing relationships between pseudonymous identifications and memberships in organizations |
EP1379947B1 (en) | 2001-01-19 | 2012-09-05 | Hostbridge Technology, LLC | An improved system, method and apparatus to allow communication between cics and non-cics software applications |
US20020133537A1 (en) * | 2001-03-12 | 2002-09-19 | Whizz Technology Ltd. | Server cluster and server-side cooperative caching method for use with same |
US20040139125A1 (en) | 2001-06-05 | 2004-07-15 | Roger Strassburg | Snapshot copy of data volume during data access |
US6950833B2 (en) | 2001-06-05 | 2005-09-27 | Silicon Graphics, Inc. | Clustered filesystem |
US20030004819A1 (en) | 2001-06-28 | 2003-01-02 | International Business Machines Corporation | Anonymous email guarantor processing |
US7496646B2 (en) | 2001-09-21 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | System and method for management of a storage area network |
US20030088656A1 (en) | 2001-11-02 | 2003-05-08 | Wahl Mark F. | Directory server software architecture |
US8321543B2 (en) | 2002-03-04 | 2012-11-27 | International Business Machines Corporation | System and method for determining weak membership in set of computer nodes |
US6901401B2 (en) * | 2002-03-21 | 2005-05-31 | International Business Machines Corporation | System and method for database integrity via local database lockout |
US8271530B2 (en) | 2002-04-08 | 2012-09-18 | Oracale International Corporation | Method and mechanism for managing and accessing static and dynamic data |
DE10219916A1 (en) | 2002-05-03 | 2003-12-04 | Infineon Technologies Ag | Test arrangement with automatic test machine and integrated circuit as well as method for determining the time behavior of an integrated circuit |
US6954524B2 (en) | 2002-06-07 | 2005-10-11 | Sbc Properties, L.P. | System and method for implementing and accessing call forwarding services |
US7103616B1 (en) * | 2003-02-19 | 2006-09-05 | Veritas Operating Corporation | Cookie-based directory name lookup cache for a cluster file system |
US7197632B2 (en) | 2003-04-29 | 2007-03-27 | International Business Machines Corporation | Storage system and cluster maintenance |
WO2005048544A1 (en) | 2003-11-17 | 2005-05-26 | Hardt Dick C | Method and system for pseudonymous email address |
US20050125461A1 (en) | 2003-12-08 | 2005-06-09 | International Business Machines Corporation | Version control of metadata |
US7383285B1 (en) | 2005-03-08 | 2008-06-03 | Unisys Corporation | Method for exposing hierarchical table structures and relationships to OLE DB applications |
US7653682B2 (en) | 2005-07-22 | 2010-01-26 | Netapp, Inc. | Client failure fencing mechanism for fencing network file system data in a host-cluster environment |
US20070022314A1 (en) | 2005-07-22 | 2007-01-25 | Pranoop Erasani | Architecture and method for configuring a simplified cluster over a network with fencing and quorum |
-
2002
- 2002-09-23 US US10/253,088 patent/US7096213B2/en active Active
-
2003
- 2003-03-26 CA CA002480459A patent/CA2480459C/en not_active Expired - Lifetime
- 2003-03-26 EP EP03716862.2A patent/EP1493105B1/en not_active Expired - Lifetime
- 2003-03-26 JP JP2003584961A patent/JP4297790B2/en not_active Expired - Lifetime
- 2003-03-26 WO PCT/US2003/009407 patent/WO2003088093A2/en active IP Right Grant
- 2003-03-26 CN CNB038078562A patent/CN100410929C/en not_active Expired - Lifetime
-
2006
- 2006-04-13 US US11/404,159 patent/US7617218B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1659547A (en) | 2005-08-24 |
JP2005522787A (en) | 2005-07-28 |
CA2480459C (en) | 2010-01-19 |
US20060195450A1 (en) | 2006-08-31 |
US7096213B2 (en) | 2006-08-22 |
WO2003088093A3 (en) | 2004-03-25 |
WO2003088093A2 (en) | 2003-10-23 |
AU2003220549A1 (en) | 2003-10-27 |
JP4297790B2 (en) | 2009-07-15 |
CN100410929C (en) | 2008-08-13 |
US20030191739A1 (en) | 2003-10-09 |
EP1493105B1 (en) | 2019-03-13 |
EP1493105A2 (en) | 2005-01-05 |
US7617218B2 (en) | 2009-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2480459A1 (en) | Persistent key-value repository with a pluggable architecture to abstract physical storage | |
CA2136402C (en) | Method and system for executing code remotely | |
JP2005522787A5 (en) | ||
US6253257B1 (en) | Software Interface for dynamic API mapping | |
JP2842714B2 (en) | How to make object-oriented calls to applications in the database | |
US5619710A (en) | Method and apparatus for object-oriented invocation of a server application by a client application | |
US6714949B1 (en) | Dynamic file system configurations | |
US8112745B2 (en) | Apparatus and method for capabilities verification and restriction of managed applications in an execution environment | |
US20070011667A1 (en) | Lock management for clustered virtual machines | |
JPH0675888A (en) | Method and apparatus for dynamic calling of application in dispersed non-uniform environment | |
JPH0675889A (en) | Method and apparatus for executing server function in dispersed non-uniform environment | |
JP2010170560A (en) | Multilingual user interface for operating system | |
US11669850B2 (en) | Selecting between client-side and server-side market detection | |
CN111223036B (en) | GPU (graphics processing unit) virtualization sharing method and device, electronic equipment and storage medium | |
US20040103417A1 (en) | System and method for changing operation of an application without recompiling | |
US20070220531A1 (en) | Method and system for shimming COM objects | |
US11593308B2 (en) | Managing data hidden by userspace filesystem | |
CN114372282A (en) | File access control method, file access control device, electronic device, medium, and program product | |
US8751569B2 (en) | Environment aware business delegates | |
US11068613B2 (en) | Differentiating and managing identical USB devices | |
JP2006106986A (en) | Access management method and information processor | |
AU2003220549B2 (en) | Key-value repository with a pluggable architecture | |
US8527484B2 (en) | Accessing a data structure | |
JP2000305833A (en) | File sharing/excluding system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKEX | Expiry |
Effective date: 20230327 |