When using storagemanager/S3 with Columnstore we want to avoid requiring additional shared storage: NFS or GlusterFS.
There are three purposes for the shared storage:
- store S3 meta, that is a list of object files parts of the original MCS file
- store journal, that is a text file contains <offset, byte array> pairs that alters contents of S3 object files copies stored locally.
- dbroot ownernership mechanism
There is a write-up on some S3 implementation details in MCS.
The suggested solution is to leverage an existing distributed KeyValueStorage to fulfill the purposes mentioned earlier. Distributed KVS chosen is FoundationDB.