SHARING A DIRECTORY OF A DISPERSED STORAGE NETWORK
A method begins by a processing module receiving a dispersed storage network (DSN) access request accessing DSN memory and determining state of a shared global DSN directory. When the shared global DSN directory is in a ready-for-modification state, the method continues with the processing module updating state of the shared global DSN directory to a modification state, executing the DSN access request, updating a non-shared local DSN directory and the shared global DSN directory, and changing the state of the shared global DSN directory to the ready-for-modification state. When the shared global DSN directory is in the modification state, the method continues with the processing module executing the DSN access request, generating a shared global DSN directory update request, updating the non-shared local DSN directory, and when the shared global DSN directory is in the ready-for-modification state, coordinating updating of the shared global DSN directory.
1 . A method comprises:
receiving a dispersed storage network (DSN) access request accessing DSN memory, wherein the DSN access request includes a write function, a delete function, or a modify function;
in response to the DSN access request, determining state of a shared global DSN directory;
when the shared global DSN directory is in a ready-for-modification state:
updating state of the shared global DSN directory to a modification state;
executing the DSN access request in accordance with at least one of a non-shared local DSN directory and the shared global DSN directory;
updating the non-shared local DSN directory and the shared global DSN directory in accordance with execution of the DSN access request; and
after updating the shared global DSN directory, changing the state of the shared global DSN directory to the ready-for-modification state; and
when the shared global DSN directory is in the modification state:
executing the DSN access request in accordance with the non-shared local DSN directory;
generating a shared global DSN directory update request in response to the execution of the DSN access request;
updating the non-shared local DSN directory in accordance with execution of the DSN access request; and
when the shared global DSN directory is in the ready-for-modification state, coordinating updating of the shared global DSN directory in accordance with the shared global DSN directory update request.
2 . The method of claim 1 further comprises:
when the DSN access request is the write function:
the executing the DSN access request includes generating information regarding storing data into the DSN memory;
updating the non-shared local DSN directory by creating an entry in the non-shared local DSN directory to include the information regarding storing the data; and
updating the shared global DSN directory by creating an entry in the shared global DSN directory to include the information regarding storing the data.
3 . The method of claim 1 further comprises:
when the DSN access request is the modify function:
the executing the DSN access request includes:
identifying an entry in the non-shared local DSN directory or the shared global DSN directory to retrieve storage information;
executing the DSN access request in accordance with the storage information;
updating the entry of the non-shared local DSN directory in accordance with the execution of the DSN access request; and
updating the entry of the shared global DSN directory in accordance with the execution of the DSN access request.
4 . The method of claim 1 further comprises:
when the DSN access request is the delete function:
the executing the DSN access request includes:
identifying an entry in the non-shared local DSN directory or the shared global DSN directory to retrieve storage information; and
executing the DSN access request in accordance with the storage information;
deleting the entry of the non-shared local DSN directory in accordance with the execution of the DSN access request; and
deleting the entry of the shared global DSN directory in accordance with the execution of the DSN access request.
5 . The method of claim 1 , wherein the coordinating updating of the shared global DSN directory comprises:
when the shared global DSN directory is the ready-for-modification state:
updating state of the shared global DSN directory to the modification state;
updating the shared global DSN directory in accordance with the shared global DSN directory update request; and
after updating the shared global DSN directory, changing the state of the shared global DSN directory to the ready-for-modification state.
6 . The method of claim 1 , wherein the coordinating updating of the shared global DSN directory comprises:
identifying one or more associated DSN access devices; and
sending the shared global DSN directory update request to at least one of the one or more associated DSN access devices.
7 . The method of claim 1 , wherein the determining state of a shared global DSN directory further comprises at least one of:
receiving an indication of the state of the shared global DSN directory;
detecting the modification state when an open shared global DSN directory update request for another DSN access request exists; and
detecting the state of the shared global DSN directory based on an indication within the shared global DSN directory.
8 . The method of claim 1 further comprises:
identifying one or more associated DSN access devices; and
sending state updates of the shared global DSN directory to the one or more associated DSN access devices.
9 . A dispersed storage (DS) module comprises:
a first module operable to receive a dispersed storage network (DSN) access request accessing DSN memory, wherein the DSN access request includes a write function, a delete function, or a modify function;
in response to the DSN access request, a second module operable to determine state of a shared global DSN directory;
when the shared global DSN directory is in a ready-for-modification state:
a third module operable to update state of the shared global DSN directory to a modification state;
a fourth module operable to execute the DSN access request in accordance with at least one of a non-shared local DSN directory and the shared global DSN directory;
a fifth module operable to update the non-shared local DSN directory and the shared global DSN directory in accordance with execution of the DSN access request; and
after updating the shared global DSN directory, the third module operable to change the state of the shared global DSN directory to the ready-for-modification state; and
when the shared global DSN directory is in the modification state:
the fourth module operable to execute the DSN access request in accordance with the non-shared local DSN directory; and
a sixth module operable to:
execute generating a shared global DSN directory update request in response to the execution of the DSN access request;
update the non-shared local DSN directory in accordance with execution of the DSN access request; and
when the shared global DSN directory is in the ready-for-modification state, coordinating updating of the shared global DSN directory in accordance with the shared global DSN directory update request.
10 . The DS module of claim 9 further comprises:
when the DSN access request is the write function:
the fourth module is operable to execute the DSN access request by generating information regarding storing data into the DSN memory;
the fifth module is operable to update the non-shared local DSN directory by creating an entry in the non-shared local DSN directory to include the information regarding storing the data; and
the fifth module is operable to update the shared global DSN directory by creating an entry in the shared global DSN directory to include the information regarding storing the data.
11 . The DS module of claim 9 further comprises:
when the DSN access request is the modify function:
the fourth module is operable to execute the DSN access request by:
identifying an entry in the non-shared local DSN directory or the shared global DSN directory to retrieve storage information;
executing the DSN access request in accordance with the storage information;
the fifth module is operable to update the entry of the non-shared local DSN directory in accordance with the execution of the DSN access request; and
the fifth module is operable to update the entry of the shared global DSN directory in accordance with the execution of the DSN access request.
12 . The DS module of claim 9 further comprises:
when the DSN access request is the delete function:
the fourth module is operable to execute the DSN access request by:
identifying an entry in the non-shared local DSN directory or the shared global DSN directory to retrieve storage information; and
executing the DSN access request in accordance with the storage information;
the fifth module is operable to delete the entry of the non-shared local DSN directory in accordance with the execution of the DSN access request; and
the fifth module is operable to delete the entry of the shared global DSN directory in accordance with the execution of the DSN access request.
13 . The DS module of claim 9 , wherein the sixth module functions to coordinate updating of the shared global DSN directory by:
when the shared global DSN directory is the ready-for-modification state:
updating state of the shared global DSN directory to the modification state;
updating the shared global DSN directory in accordance with the shared global DSN directory update request; and
after updating the shared global DSN directory, changing the state of the shared global DSN directory to the ready-for-modification state.
14 . The DS module of claim 9 , wherein the sixth module functions to coordinate updating of the shared global DSN directory by: identifying one or more associated DSN access devices; and
sending the shared global DSN directory update request to at least one of the one or more associated DSN access devices.
15 . The DS module of claim 9 , wherein the second module further functions to determine state of the shared global DSN directory by at least one of:
receiving an indication of the state of the shared global DSN directory;
detecting the modification state when an open shared global DSN directory update request for another DSN access request exists; and
detecting the state of the shared global DSN directory based on an indication within the shared global DSN directory.
16 . The DS module of claim 9 further comprises:
the third module operable to:
identify one or more associated DSN access devices; and
send state updates of the shared global DSN directory to the one or more associated DSN access devices.