US2012324159A1PendingUtilityA1

Method and apparatus for implementing high-performance, scaleable data processing and storage systems

52
Assignee: BOPARDIKAR RAJU CPriority: Jun 30, 2000Filed: Aug 22, 2012Published: Dec 20, 2012
Est. expiryJun 30, 2020(expired)· nominal 20-yr term from priority
G06F 3/061G06F 3/0635G06F 2206/1012H04L 41/0695G06F 3/067G06F 9/505G06F 9/5055H04L 12/54
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A data system architecture is described that allows multiple processing and storage resources to be connected to multiple clients so as 1) to distribute the clients' workload efficiently across the available resources; and 2) to enable scaleable expansion, both in terms of the number of clients and in the number of resources. The major features of the architecture are separate, modular, client and resource elements that can be added independently, a high-performance cross-bar data switch interconnecting these various elements, separate serial communication paths for controlling the cross-bar switch settings, separate communication paths for passing control information among the various elements and a resource utilization methodology that enables clients to distribute processing or storage tasks across all available resources, thereby eliminating “hot spots” resulting from uneven utilization of those resources.

Claims

exact text as granted — not AI-modified
1 . Apparatus for providing high-performance, scalable data storage services from a plurality of storage devices to a client in response to data storage requests, each data storage request including a data object identifier that identifies a data object to be stored, the apparatus comprising:
 a plurality of storage interface modules, each of which stores data directed to logical addresses into physical locations in each of the storage devices; and   a host interface module that receives data storage requests and, in response to each storage request and based on relative activities of the storage interface modules, dynamically selects logical addresses to which a data object identified by that request is stored, so that data storage activity will be dynamically distributed across the plurality of storage devices.   
     
     
         2 . The apparatus of  claim 1  wherein each of the storage interface modules comprises a mechanism that generates preallocation logical addresses which identify unused space in the plurality of storage devices. 
     
     
         3 . The apparatus of  claim 2  wherein each of the storage interface modules comprises a communication module that transmits preallocation logical addresses to the host interface module. 
     
     
         4 . The apparatus of  claim 3  wherein the host interface module comprises a selection mechanism that, in response to each data storage request selects, from preallocation logical addresses transmitted to the host interface module, logical addresses to which a data object identified by that request is stored. 
     
     
         5 . The apparatus of  claim 1  wherein the host interface module comprises a local memory containing logical addresses identifying a storage location of each stored data object 
     
     
         6 . The apparatus of  claim 5  further comprising a metadata module having a metadata memory containing logical addresses identifying a storage location of each stored data object. 
     
     
         7 . The apparatus of  claim 6  wherein the host interface module comprises a communication module that, after logical addresses to which a data object identified by a data storage request is stored have been selected, sends the selected logical addresses to the metadata module in order to update the metadata memory in the metadata module to represent a current storage location of that data object. 
     
     
         8 . The apparatus of  claim 7  wherein the host interface module, in response to a data retrieval request received from the client and including a data object identifier, accesses the local memory in order to determine a current storage location of that data object. 
     
     
         9 . The apparatus of  claim 8  wherein the host interface module comprises a mechanism that accesses the metadata memory when a current storage location of that data object cannot be determined from the local memory. 
     
     
         10 . The apparatus of  claim 1  further comprising a mechanism operable on initialization of the apparatus and upon the topology of the storage devices for mapping logical addresses to physical locations in each of the storage devices. 
     
     
         11 . A method for providing high-performance, scalable data storage services from a plurality of storage devices to a client in response to data storage requests, each data storage request including a data object identifier that identifies a data object to be stored, the method comprising:
 (a) providing a plurality of storage interface modules, each of which stores data directed to logical addresses into physical locations in each of the storage devices; and   (b) providing a host interface module that receives data storage requests and, in response to each storage request and based on relative activities of the storage interface modules, dynamically selects logical addresses to which a data object identified by that request is stored, so that data storage activity will be dynamically distributed across the plurality of storage devices.   
     
     
         12 . The method of  claim 11  wherein step (a) comprises, in each storage interface module, generating preallocation logical addresses which identify unused space in the plurality of storage devices. 
     
     
         13 . The method of  claim 12  wherein step (a) comprises in each storage interface module transmitting preallocation logical addresses to the host interface module. 
     
     
         14 . The method of  claim 13  wherein step (b) comprises, in response to each data storage request, selecting, from preallocation logical addresses transmitted to the host interface module, logical addresses to which a data object identified by that request is stored. 
     
     
         15 . The method of  claim 11  further comprising providing the host interface module with a local memory containing logical addresses identifying a storage location of each stored data object. 
     
     
         16 . The method of  claim 15  further comprising providing a metadata module having a metadata memory containing logical addresses identifying a storage location of each stored data object. 
     
     
         17 . The method of  claim 16  wherein step (b) comprises, after logical addresses to which a data object identified by a data storage request is stored have been selected, sending the selected logical addresses to the metadata module in order to update the metadata memory in the metadata module to represent a current storage location of that data object. 
     
     
         18 . The method of  claim 17  further comprising, in response to a data retrieval request received from the client and including a data object identifier, accessing the local memory in order to determine a current storage location of that data object. 
     
     
         19 . The method of  claim 18  further comprising accessing the metadata memory when a current storage location of that data object cannot be determined from the local memory. 
     
     
         20 . The method of  claim 11  further comprising, upon initialization of the storage interface modules, mapping logical addresses to physical locations in each of the storage devices based on the topology of the storage devices. 
     
     
         21 . Apparatus for providing high-performance, scalable data storage services from a plurality of disks to a client in response to data storage requests, each data storage request including a data object identifier that identifies a data object to be stored, the apparatus comprising:
 a plurality of storage interface modules, each of which stores data directed to logical addresses into physical locations in each of the disks; and   a host interface module that receives data storage requests and, in response to each storage request and based on relative activities of the storage interface modules, dynamically selects logical addresses to which a data object identified by that request is stored, so that data storage activity will be dynamically distributed across the plurality of disks.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.