Summary
The spec doesn't provide an API to rename every revisions of a filename. The proposed implementation is inefficient as it requires doing an update_one command for each revision, while it's more efficient to do an update_many with the filename as criteria.
To rename multiple revisions of the same filename, users must retrieve the full list of files collection documents for a given filename and execute “rename” on each corresponding “_id”.
The rename by filename API is necessary for PHP Stream Wrapper.
Motivation
Who is the affected end user?
Applications that use a lot of revisions of the same filename.
How does this affect the end user?
Bad performance scaling when the number of revisions grows
How likely is it that this problem or use case will occur?
Edge case, maybe an incorrect usage of GridFS.
If the problem does occur, what are the consequences and how severe are they?
Degraded performances
Is this issue urgent?
No
Is this ticket required by a downstream team?
PHPLIB implementation of GridFS stream wrapper
Is this ticket only for tests?
No
Acceptance Criteria
Update the spec to give a performant way to rename all revisions of a filename
- is caused by
-
PHPLIB-1324 GridFS: Rename a file by filename - implement StreamWrapper::rename()
- Closed
- related to
-
DRIVERS-2808 GridFS spec: Add performant "delete revisions by filename" feature - delete_by_name
- Implementing
- split to
-
PYTHON-4946 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
PHPLIB-1568 Add GridFS\Bucket::deleteByName() and renameByName()
- Closed
-
CDRIVER-5793 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
CSHARP-5397 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
CXX-3166 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
GODRIVER-3415 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
JAVA-5688 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
NODE-6511 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
RUBY-3586 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
RUST-2090 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Backlog
-
MOTOR-1406 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Closed
-
PHPLIB-1584 GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- Closed