CSHARP-2043: Added SuppressEnsureIndexes option to GridFSBucketOption… #292
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CSHARP-2043: Added SuppressEnsureIndexes option to GridFSBucketOptions. By default is false and has no impact on any part of the system. HOWEVER, IT CAN BE A USEFUL OPTION TO HAVE AVAILABLE IN A CLUSTER WHERE GRIDFS COLLECTIONS ARE BEING SHARDED.
If set to true, then suppresses the call to EnsureIndexes which occurs during every GridFS upload call. Benefit of this suppression is that: 1) EnsureIndexes [effectively] does a count against the fs.files collection, which will a) add latency in a cluster with global shards, b) requires find permission which may not be deisrable in a write-only repository and most importantly c) cause entire cluster to become unavailable if any single shard is unavailable, even if data being saved is not housed in the unavailable shard. 2) Less importantly, EnsureIndexes includes a list index command which implies a higher privilege than is really needed. If developer is a) confident that GridFS subsystem is properly set up and b) wants to robustify sharded GridFS against one shard being down c) wants keep client permissions to a minimum