Abstracting namespace mapping in a dispersed storage network through multiple hierarchies
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-modifiedWhat 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.