US10474395B2ActiveUtilityA1

Abstracting namespace mapping in a dispersed storage network through multiple hierarchies

Assignee: IBMPriority: Jun 5, 2012Filed: Feb 22, 2017Granted: Nov 12, 2019
Est. expiryJun 5, 2032(~5.9 yrs left)· nominal 20-yr term from priority
G06F 3/0607H04L 67/1097G06F 11/3055G06F 11/1076G06F 11/3034G06F 3/0635G06F 3/067
47
PatentIndex Score
0
Cited by
99
References
20
Claims

Abstract

Methods for use in abstracting the addressing namespace of a dispersed storage network (DSN). In various examples, controllers are arranged hierarchically in a plurality of levels, where each level includes one or more groups of peer controllers, and each group of controllers shares a common parent controller at a next higher level. An addressing scheme is established for each group of controllers and the common parent controller. When a controller receives a request from a parent controller, and a higher level address of the request indicates that the request is to be serviced by a device at a lower level, the controller translates the higher level address to a lower level address, identifies a child controller associated with the lower level address, and generates a translated request including the lower level address and an identifier of the child controller. Responses are likewise translated and forwarded to the next higher level.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for execution by one or more processing modules of a computing device of a dispersed storage network (DSN), the computing device operable as a controller in a hierarchical arrangement of controllers, the method comprises:
 receiving a data access request from a parent controller of the hierarchical arrangement of controllers, the data access request including a higher level address; 
 determining, based on the higher level address, that the data access request is not directly serviced by the computing device; 
 in response to determining that the data access request is not directly serviced by the computing device, translating the higher level address to a lower level address, wherein the lower level address is one of a plurality of addresses of an addressing namespace associated with a respective plurality of controllers configured as child controllers to share a common parent controller; 
 identifying a child controller associated with the lower level address; 
 generating a translated data access request to include the lower level address and an identifier of the child controller; and 
 sending the translated data access request for receipt and processing by the child controller. 
 
     
     
       2. The method of  claim 1  further comprises:
 receiving, from the child controller, a data access response relating to processing of the translated data access request; 
 generating a translated data access response to include address information for the parent controller; and 
 forwarding the translated data access response for receipt by the parent controller. 
 
     
     
       3. The method of  claim 1 , wherein translating the higher level address to a lower level address includes:
 accessing an address translation table to extract the lower level address corresponding to the higher level address and identify the child controller associated with the lower level address, wherein the address translation table is maintained by the computing device. 
 
     
     
       4. The method of  claim 3 , wherein the address translation table includes one or more of:
 a parent level address; 
 an equivalent child level address; or 
 a child level address to child controller identifier affiliation. 
 
     
     
       5. The method of  claim 1 , wherein determining, based on the higher level address, that the data access request is not directly serviced by the computing device includes:
 accessing an address translation table to extract the lower level address corresponding to the higher level address; and 
 determining that the lower level address is affiliated with a controller on a further lower level. 
 
     
     
       6. The method of  claim 1 , wherein the parent controller is a client device, and wherein the higher level address comprises a data identifier. 
     
     
       7. The method of  claim 1  further comprises:
 translating the higher level address to a plurality of lower level addresses; 
 identifying a plurality of child controllers associated with the plurality of lower level addresses; 
 generating a plurality of translated data access requests, each of the translated data access requests including a lower level address of the plurality of lower level addresses; and 
 sending the plurality of translated data access requests for receipt and processing by the plurality of child controllers. 
 
     
     
       8. The method of  claim 1  further comprises:
 moving data between the child controller and a peer child controller, the computing device operable as a parent controller to both the child controller and the peer child controller; and 
 modifying an address translation table maintained by the computing device to reflect a current location of the data in the peer child controller. 
 
     
     
       9. A distributed storage network (DSN) including:
 a plurality of computing devices configured as a plurality of controllers, the plurality of controllers arranged hierarchically in a plurality of levels, where each level includes one or more groups of peer controllers, wherein each group of controllers shares a common parent controller at a next higher level, each group of controllers and a respective common parent controller utilizing a common addressing namespace, and wherein a controller of the plurality of controllers is configured to:
 receive a data access request from a parent controller of the plurality of controllers, the data access request including a higher level address; 
 determine, based on the higher level address, that the data access request is not directly serviced by the controller; 
 in response to determining that the data access request is not directly serviced by the controller, translate the higher level address to a lower level address of the common addressing namespace; 
 identify a child controller associated with the lower level address; 
 generate a translated data access request to include the lower level address and an identifier of the child controller; and 
 send the translated data access request for receipt and processing by the child controller. 
 
 
     
     
       10. The distributed storage network (DSN) of  claim 9 , wherein the controller is further configured to:
 receive, from the child controller, a data access response relating to processing of the translated data access request; 
 generate a translated data access response to include address information for the parent controller; and 
 forward the translated data access response for receipt by the parent controller. 
 
     
     
       11. The distributed storage network (DSN) of  claim 9 , wherein translating the higher level address to a lower level address includes:
 accessing an address translation table to extract the lower level address corresponding to the higher level address and identify the child controller associated with the lower level address, wherein the address translation table is maintained by the controller. 
 
     
     
       12. The distributed storage network (DSN) of  claim 11 , wherein the address translation table includes one or more of:
 a parent level address; 
 an equivalent child level address; or 
 a child level address to child controller identifier affiliation. 
 
     
     
       13. The distributed storage network (DSN) of  claim 9 , wherein determining, based on the higher level address, that the data access request is not directly serviced by the controller includes:
 accessing an address translation table to extract the lower level address corresponding to the higher level address; and 
 determining that the lower level address is affiliated with a controller on a further lower level. 
 
     
     
       14. A computing device operable as a controller in a hierarchical arrangement of controllers of a dispersed storage network (DSN), the computing device comprises:
 a network interface; 
 a local memory, the local memory maintaining an address translation table; and 
 a processing module operably coupled to the network interface and the local memory, wherein the processing module is configured to:
 receive, via the network interface, a data access request from a parent controller of the hierarchical arrangement of controllers, the data access request including a higher level address; 
 determine, based on the higher level address, that the data access request is not directly serviced by the computing device; 
 in response to determining that the data access request is not directly serviced by the computing device, translate the higher level address to a lower level address, wherein the lower level address is one of a plurality of addresses of an addressing namespace associated with a respective plurality of controllers configured as child controllers to share a common parent controller; 
 identify a child controller associated with the lower level address; 
 generate a translated data access request to include the lower level address and an identifier of the child controller; and 
 send, via the network interface, the translated data access request for receipt and processing by the child controller. 
 
 
     
     
       15. The computing device of  claim 14 , wherein the processing module is further configured to:
 receive, via the network interface, a data access response from the child controller relating to processing of the translated data access request; 
 generate a translated data access response to include address information for the parent controller; and 
 forward, via the network interface, the translated data access response for receipt by the parent controller. 
 
     
     
       16. The computing device of  claim 14 , wherein translating the higher level address to a lower level address includes:
 accessing the address translation table to extract the lower level address corresponding to the higher level address and identify the child controller associated with the lower level address. 
 
     
     
       17. The computing device of  claim 16 , wherein the address translation table includes one or more of:
 a parent level address; 
 an equivalent child level address; and 
 a child level address to child controller identifier affiliation. 
 
     
     
       18. The computing device of  claim 14 , wherein determining, based on the higher level address, that the data access request is not directly serviced by the computing device includes:
 accessing the address translation table to extract the lower level address corresponding to the higher level address; and 
 determining that the lower level address is affiliated with a controller on a further lower level. 
 
     
     
       19. The computing device of  claim 14 , wherein the higher level address comprises a data identifier. 
     
     
       20. The computing device of  claim 14  operable as a parent controller to both the child controller and a peer child controller, wherein the processing module is further configured to:
 receive, via the network interface, a notification that data has been migrated between the child controller and the peer child controller; and 
 modify the address translation table in response to the notification to reflect a current location of the data in the peer child controller.

Join the waitlist — get patent alerts

Track US10474395B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.