-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GH-79 Copy and delete performance #80
Conversation
* Copy and delete now share a listCommand - DRY * Copy and delete now pass down a continuationToken * Delete will now look for formData Resolves: GH-79
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll be honest: Not a fan of exposing the use of the continuation token to the client so that it can continue to make future requests for move/copy.
I think it'd make more sense that if there will be a truncated list, create an offline/async process that the client can check/monitor. If not truncated, just perform the op.
Also, on a delete operation, there's no need for the continuation token. After the first pass of the list command, those files which were processed will no longer be returned for processing. Could just as easily change the response code from 200 => 204, or another successful response value which indicates there are no more entries to process. If the Since |
I agree with this sentiment, but the amount of work involved in doing this correctly is substantial. We have cases today where jmp is blocked and running into errors due to this bug. |
This makes sense. I'll adjust. |
I thought about this some more, and I don't think the continuation token is context-aware enough to prevent an infinite recursion during a copy operation, where the destination is a descendant of the source |
This makes sense. I think we have a couple things we can do on this front. One of them is to get the full list up front and deliver back down to the client what wasn't finished... this might actually be the best way to handle this use case for the time being. |
Resolves: GH-79
Types of changes
Checklist: