Ticket #8875 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

Catalog select all datafiles checkbox performance

Reported by: Jay Rainey Owned by: Jay Rainey
Priority: major Milestone: Release 3.2
Component: Framework Keywords: ICAT
Cc: Blocked By:
Blocking: Tester: Peter Parker

Description

If the number of datafiles in the datafiles information table is large, and the user checks the select all checkbox, then Mantid freezes.

This is due to calling setSelected() in selectAllDataFiles as there is an itemSelectionChanged signal bound to the table rows, which causes Mantid to hang.

To replicate this:

  1. Log into the catalog.
  2. Select the WISH instrument (those investigations tend to have a large number of datafiles).
  3. In the investigation id field enter: 1130006.
  4. Click Search.
  5. Double click on the investigation the datafiles information table will be populated with 2022 datafiles.
  6. Check the checkbox in the datafiles information table's header.
  7. Mantid will hang.

Change History

comment:1 Changed 7 years ago by Jay Rainey

  • Status changed from new to inprogress

Move method closer to similar methods. Refs #8875.

Changeset: ebf07aeb6b7b34e64254c76c1d8da710410a60bc

comment:2 Changed 7 years ago by Jay Rainey

Change implementation to use QT model structure. Refs #8875.

  • Previously, the selection of the row was calling a signal for dataFileRowSelected, which was the result of poor performance.

Changeset: ceb635b751a3e2954b0ffa2f7bce73a5fc5bcbc8

comment:3 Changed 7 years ago by Jay Rainey

  • Status changed from inprogress to verify
  • Resolution set to fixed

Previously, I was using setSelected() inside the selectAllDataFiles() SLOT, e.g., I was calling another slot from within this one, which performed additional logic on the table, and is why it was taking an incredibly long time to select all.

To test

  1. Log into the catalog and open the Search interface.
  2. Select the WISH instrument.
  3. In the Investigation name field enter: Investigation of the low temperature, applied field magnetic order in copper-nitrate.
  4. Click search. One investigation will be returned.
  5. Double click on the investigation. Notice that it has 2772 datafiles.
  6. Check the check-box in the header of the table and it will select all datafiles instantly.

Note: The investigation I provided is just an example. Any investigation with a large (>1.5k) number of datafiles will do for testing.

Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:4 Changed 7 years ago by Russell Taylor

  • Status changed from verify to verifying
  • Tester set to Russell Taylor

comment:5 Changed 7 years ago by Russell Taylor

  • Status changed from verifying to verify
  • Tester Russell Taylor deleted

Seems that I can't see this investigation with the mantidtest login, only calibration runs. Seems like there was a delay (and none afterwards) with a set of 70 files, but this should really be tested on the large set so I'll put it back in the pool.

comment:6 Changed 7 years ago by Jay Rainey

  • Status changed from verify to reopened
  • Resolution fixed deleted

comment:7 Changed 7 years ago by Jay Rainey

  • Status changed from reopened to verify
  • Resolution set to fixed

comment:8 Changed 7 years ago by Peter Parker

  • Status changed from verify to verifying
  • Tester set to Peter Parker

comment:9 Changed 7 years ago by Peter Parker

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/8875_select_all_cbox_performance'

Full changeset: 281f145c5fe593f52007d57b3bf4a3265d0c3ad8

comment:10 Changed 7 years ago by Peter Parker

Tested with large number of datafiles, and the checking of the boxes was instant.

comment:11 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9719

Note: See TracTickets for help on using tickets.