主权项 |
1. A method of operating a client computer to migrate a set of data objects from a first remote data store employing a flat linear namespace to a second remote data store employing a file system having a hierarchical directory structure, comprising:
for each of a plurality of file storing operations for respective user data files:
(1) generating a data object and an object identifier, the data object containing the user data file being stored and the object identifier uniquely identifying the data object, and returning the object identifier to an application program for subsequent use in retrieving the user data file being stored;(2) performing a mapping function on the object identifier to originate a subdirectory name of a subdirectory of the hierarchical directory structure; and(3) sending a write request to the file system of the second remote data store, the write request including the data object, the subdirectory name, and a command to create a subdirectory having the subdirectory name and store the data object therein; and for each of a plurality of file retrieving operations directed to user data files contained in respective data objects stored in the first remote data store, each file retrieving operation initiated with a respective object identifier in the flat linear namespace uniquely identifying a data object containing a user data file being retrieved:
(4) sending a read request including the object identifier to the first remote data store;(5) upon receiving a data object from the first remote data store, extracting a user data file and returning the extracted user data file to the application;(6) performing the mapping function on the object identifier to originate a subdirectory name of a subdirectory of the hierarchical directory structure; and(7) sending a write request to the file system of the second remote data store, the write file request including the received data object, the subdirectory name, and a command to create a subdirectory having the subdirectory name and store the data object therein, and further including, for each of the file storing operations:
sending a mirroring write request to the first remote data store, the mirroring write request including the data object, the object identifier, and a command to store the data object in association with the object identifier in the second remote data store. |