-
Type: New Feature
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: GridFS
-
None
For GridFS functions that do not accept generic "opts" in a bson_t, add new "with_opts" functions. This will allow applications to pass sessionId to GridFS functions. Deprecate superseded functions.
There are two options: continue to invest in our current GridFS API, which does not conform to the GridFS Spec, by adding the following variants:
- mongoc_client_get_gridfs_with_opts
- mongoc_gridfs_create_file_from_stream_with_opts
- mongoc_gridfs_create_file_with_opts
- mongoc_gridfs_drop_with_opts
- mongoc_gridfs_file_remove_with_opts
- mongoc_gridfs_file_save_with_opts
- mongoc_gridfs_file_readv_with_opts
- mongoc_gridfs_file_writev_with_opts
- mongoc_gridfs_find_one_by_filename_with_opts
- mongoc_gridfs_remove_by_filename_with_opts
Update the documentation for mongoc_collection_get_last_error.
This will make it easy for existing GridFS applications to use sessions. It preserves spec-violating features that applications depend on, such as mutable GridFS files.
The other, probably superior option is to deprecate our entire GridFS API and create a new spec-conforming one. This new API will be the only way to use sessions with GridFS in the C Driver.
Applications that use the C Driver's GridFS API are probably few, and they will have a small number of integration points with the API, and they will need to make code changes to use sessions with GridFS no matter what. Requiring some additional code changes is worth the cost in exchange for matching the GridFS Spec. The big obstacle is the loss of writable GridFS files; but I hope that applications can adapt to use the standard GridFS file versioning scheme instead.
- is related to
-
DRIVERS-2062 Modify GridFS spec to support sessions, transactions and causal consistency
- Backlog
- related to
-
CDRIVER-2331 New "with_opts" functions to accept sessionId
- Closed
-
CDRIVER-2643 Make the GridFS implementation spec compliant
- Closed