The ticket includes the following work:
- Write a function in AWS bucket conn class to get an object. Write a unit test.
- Use the above function to get the object from S3 bucket to the cache, if the file doesn't already exist in the cache.
- Open wiredtiger's native filehandle to the file in the cache - this will be a part of the S3 filehandle
- Write a read function for the S3 file handle, that uses the wiredtiger's native filehandle's read.
- Disable any write operations (write, rename, etc) on the file.
- Tracking file handles open in the S3 store's main structure.
- Add reference counting to store, making sure we only terminate the store when the last reference is gone. Also, we close all the file handles when terminating the store.
- Update the s3_store python test to check the above functionality, including disallowing the write operations.
- Add relevant statistics.