Object Storage File System
1. Possible solutions
- create a new object;
- write the new character into this object;
- upload the new object to Object Storage;
- update the large file's metadata.
That's sounds great, now the behavior is similar with file system built on Block Storage.
But, the problem arises in the meantime:
- Firstly, the cost increases greatly. Object Storage charges against the number of requests. In our example, to read the full concept of the 10GB object, we have to issue 10240 requests to the Object Storage.
- Secondly, the metadata server becomes the bottleneck. Introducing a metadata server directly implies the increasing cost. Especially, if the metadata server lies on the remote, the network bandwidth may become another performance bottle neck.
2. POSIX Compatible
Mapfs does NOT support the following POSIX features:
- file locking;
- Limited support for creation-time, modification time, status change time for a folder;
- For both file and folder type, mapfs doesn't support creation time, because mapfs is built on libfuse which doesn't support birth-time attribute.
- Limited support for ACL control:
- mkdir: default mode is 0777
- create an empty file: default mode is 0777
- upload a non-empty file: default mode is 0555