Bug #5096

[Workbench] Avoid passing manifest_text around the network too much when updating and merging large collections.

Added by Tom Clegg almost 6 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Radhika Chippada
Category:
Workbench
Target version:
Start date:
02/14/2015
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
0.5

Description

Examples:
  • Workbench should not send manifest_text to API in an update() request when only name/description is being changed (this should be easy enough to achieve in Workbench)
  • Cases where the content is being modified probably depend on #5104
When closing this,
  1. Follow up all related bugs to find out whether this fixes them.
  2. Close the ones that are fixed.
  3. Move the rest to bug triage, to find out what's still wrong.

Subtasks

Task #5218: [Workbench] Do not send manifest_text when only name or description is being updated.ResolvedRadhika Chippada

Task #5219: Review branch: 5096-wb-collection-name-or-desc-updateResolvedRadhika Chippada


Related issues

Related to Arvados - Bug #4943: [Workbench] [Performance] Combining big collections should start returning a response faster (currently you can get a 502 proxy error even if the collection still combines)New01/08/2015

Related to Arvados - Bug #4953: [Workbench] [dup] Time out error for renaming a collection with a lot (300+?) filesResolved01/09/2015

Related to Arvados - Feature #5104: [SDKs] Add Ruby SDK methods for manipulating collection contents (rename, delete, copy file from another collection)Resolved03/08/2015

Associated revisions

Revision fd172dd6
Added by Radhika Chippada almost 6 years ago

refs #5096
Merge branch '5096-wb-collection-name-or-desc-update'

History

#1 Updated by Tom Clegg almost 6 years ago

  • Description updated (diff)
  • Category set to Workbench

#2 Updated by Tom Clegg almost 6 years ago

  • Description updated (diff)
  • Story points changed from 1.0 to 0.5

#3 Updated by Radhika Chippada almost 6 years ago

  • Assigned To set to Radhika Chippada

#4 Updated by Radhika Chippada almost 6 years ago

  • Status changed from New to In Progress

#5 Updated by Brett Smith almost 6 years ago

Reviewing 23c1bc6

When we're doing small updates, the new update method skips a lot of the encoding work in the ApplicationController's implementation, and then repeats a lot of the rendering code. I think we could help future-proof this by repeating as little as possible, and calling super as early as possible. I think you could do it like this:

 def update
    @updates ||= params[@object.resource_param_name.to_sym]
    if @updates && (@updates.keys - ["name", "description"]).empty?
      # exclude manifest_text since only name or description is being updated
      @object.manifest_text = nil
    end
    super
  end

Let me know what you think of that. Thanks.

#6 Updated by Radhika Chippada almost 6 years ago

Brett, thanks for the suggestion. This is much more efficient and accomplishes the goal more effectively. I made this update.

#7 Updated by Ward Vandewege almost 6 years ago

  • Target version changed from 2015-02-18 sprint to 2015-03-11 sprint

#8 Updated by Ward Vandewege over 5 years ago

  • Target version changed from 2015-03-11 sprint to 2015-04-01 sprint

#9 Updated by Ward Vandewege over 5 years ago

  • Status changed from In Progress to Resolved

Also available in: Atom PDF