We need to support multiple versions in space and restore data from a previous version. A version means a list of files at a moment.
An operation like insert/delete will update the version of space. To support multiple versions, we could maintain a manifest file for a version.
There are some functionalities we should accomplish:
When call Open, if users specify a version, then we restore the state from then. If not, use the newest version.
If we use an old version, subsequent writes/deletes will be based on this view and generate a manifest as newest manifest.
We need to support multiple versions in space and restore data from a previous version. A version means a list of files at a moment. An operation like insert/delete will update the version of space. To support multiple versions, we could maintain a manifest file for a version. There are some functionalities we should accomplish: