Hashing objects into multiple directories for better concurrency and manageability
First Claim
1. A method of providing increased concurrency among information transfer operations performed by one or more of a plurality of executable applications operating in an object-based data storage system, said method comprising:
- forming an index object that points to a plurality of component objects, wherein said index object is concurrently accessed by one or more of said plurality of executable applications, wherein each component object contains a portion of information managed by said index object, and wherein forming said index object includes;
identifying a directory object in said data storage system that requires said increased concurrency among said information transfer operations performed thereon, wherein a content of said directory object constitutes a first plurality of entries, dividing said content of said directory object into said plurality of component objects, wherein said first plurality of entries is divided among said plurality of component objects with each component object storing a respective non-overlapping portion of said first plurality of entries, and creating said index object containing a second plurality of entries, wherein each of said second plurality of entries points to a different one of said plurality of component objects and identifies said component object pointed to;
using a mapping function per-access basis to determine which of said plurality of component objects is to be accessed by a corresponding one of said plurality of executable applications; and
configuring each of said plurality of executable applications to access on per-access basis only that component object which is determined using said mapping function for respective information transfer operations.
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage methodology wherein a hashing algorithm is applied to break a directory object experiencing frequent concurrent accesses from a number of client or manager applications into a predetermined number of hash component objects and a hash master object that manages the component objects. The hash master object and the hash components, together, constitute a hash directory, which replaces the original non-hashed directory object. Each hash component object contains a portion of the entries contained in the original directory object. Each hash component is managed by only one file manager. The entries in the original directory object are distributed among the hash component objects using a predefined hashing algorithm. The creation of hash components and the hash master allows more than one client application or file manager to concurrently write corresponding hash components without the need for access coordination on each access.
-
Citations
13 Claims
-
1. A method of providing increased concurrency among information transfer operations performed by one or more of a plurality of executable applications operating in an object-based data storage system, said method comprising:
-
forming an index object that points to a plurality of component objects, wherein said index object is concurrently accessed by one or more of said plurality of executable applications, wherein each component object contains a portion of information managed by said index object, and wherein forming said index object includes;
identifying a directory object in said data storage system that requires said increased concurrency among said information transfer operations performed thereon, wherein a content of said directory object constitutes a first plurality of entries, dividing said content of said directory object into said plurality of component objects, wherein said first plurality of entries is divided among said plurality of component objects with each component object storing a respective non-overlapping portion of said first plurality of entries, and creating said index object containing a second plurality of entries, wherein each of said second plurality of entries points to a different one of said plurality of component objects and identifies said component object pointed to;
using a mapping function per-access basis to determine which of said plurality of component objects is to be accessed by a corresponding one of said plurality of executable applications; and
configuring each of said plurality of executable applications to access on per-access basis only that component object which is determined using said mapping function for respective information transfer operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-readable storage medium containing a program code, which, upon execution by a processor in an object-based distributed data storage system, causes said processor to perform the following:
-
form an index object that points to a plurality of component objects, wherein said index object is configured to be concurrently read by one or more of a plurality of executable applications operating in said data storage system, and wherein each component object contains a portion of information managed by said index object;
use a mapping function to determine which of said plurality of component objects is to be accessed by a corresponding one of said plurality of executable applications; and
configure each of said plurality of executable applications to access only that component object which is determined using said mapping function.
-
-
13. An object-based data storage system providing increased concurrency among information transfer operations performed by one or more of a plurality of executable applications operating in said data storage system, said data storage system comprising:
-
means for forming an index object that points to a plurality of component objects, wherein said index object is concurrently read by one or more of said plurality of executable applications, and wherein each component object contains a portion of information managed by said index object;
means for using a mapping function to determine which of said plurality of component objects is to be accessed by a corresponding one of said plurality of executable applications; and
means for configuring each of said plurality of executable applications to access only that component object which is determined using said mapping function for respective information transfer operations.
-
Specification