-
Notifications
You must be signed in to change notification settings - Fork 276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace the file-manager and chunk-manager services by the NON and NDN functions of the CYFS stack #220
Comments
For the modification of the basic services need to be very careful, need to design in advance, and consider the upgrade brings a column of compatibility issues, currently thought of a few questions:
|
Question 1: The "final" version of file-manager and chunk-manager will have a one-time merge logic that will reinsert all the old local data into the local CYFS stack and delete the original independent local data after the successful insertion. After that, all get requests will be redirected to the NON and NDN interfaces of the CYFS stack. Question 2: |
I have a few questions in mind about how the data uploaded through CYFS-tool is managed, including 1. where to store the files for each uploadIf a file, locally modified part of its content, is uploaded again with the same command, does the old logic now, overwrite the already existing file, or generate a new one because the FileId(ObjectId) has changed? Is there a similar overwriting logic? 2. Data validity managementDoes the data already uploaded exist forever? That is, the "upload directory" or chunk-cache on OOD (where the new version should be stored?) It is always growing. If you attach FileId/ChunkId to root-state, you need to consider the lifecycle management issues, especially for multiple versions of the same data, you need to have a strategy to manage it easily, for example:
3. whether CYFS-tool can delete the uploaded dataCan tool now delete the specified data? If so, how does it work from the user's point of view? Do we still need an interface to query the list? I feel like there needs to be an easy and error-free way to manage and delete data |
As a conceptual implementation of the cyfs-tool upload command, NamedDataClient is implemented for the same purpose as upload, i.e. to convert local data into data that can be streamed in the CYFS network. This data can be used by other components in the CYFS network. They differ in that
The reason for the difference in logic between these two components is that NamedDataClient needs to implement both upload and download functions, and needs to support subfolder downloads. The trans interface does not currently support subfolder-based downloads. In the premise of achieving the functionality, the above implementation method is used, requiring minimal modifications Data storage locationAt the OOD side, the data will be stored in chunk cache as a unit. If a file is modified and uploaded again, a new FileId is generated and treated as a new file. chunk overwriting and reuse logic is handled by the new chunk-manager component built into the CYFS stack. Data management logicWhen a file/folder is uploaded, it becomes part of the CYFS network and is managed via ObjectId. This is the design principle of these two tools. They will in most cases not be used by regular users, but by DecApp developers as part of a development process, or some kind of integrated development tool. Their output will be used as input for other parts Currently, neither of these tools is designed for delete operations. |
If the tool is only based on the object-id layer for data management, it will be cumbersome to use, so let's go back to the original requirements and look at some issues: 1. the design purpose of cyfs-toolWhat is the purpose of cyfs-tool and what are the needs of users and developers? What are some typical usage scenarios? 2. How to access and use the published data?Through o-links or r-links? After attached on the root-state, it can be accessed by r-link. 3. From the user's point of view, how to manage multiple versions of a data?Theoretically, this is a very common requirement, and it is possible to manage the versions through |
… redirect get/set request to stack non functions
…redirect get/put request to stack ndn function
Now that the NON and NDN features of the CYFS stack are largely available, you can start considering using the NON and NDN features of the CYFS stack to replace the old file-manager and chunk-manager services.
A few versions later:
The text was updated successfully, but these errors were encountered: