Ticket #3587 (closed: fixed)

Opened 9 years ago

Last modified 5 years ago

DiskMRU: track "small" boxes memory use

Reported by: Janik Zikovsky Owned by: Janik Zikovsky
Priority: major Milestone: Iteration 30
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: Tester: Owen Arnold

Description

Caching very small boxes back and forth to disk seems to be a big slowdown, especially in the algorithms that are building up a file-backed MDEW, e.g. MergeMDEW.

I need to track the total memory used by ALL small boxes in the disk MRU in order to determine when a box should be cached or not.

The DiskMRU needs a method like: bool shouldCache(size_t memSize)

This means the MRU will have:

  • A "read" buffer of most-recently read data
  • A "write" buffer of data that needs to be written out but will be done in a block
  • A free-space tracker for free spots in the file
  • Now a "small boxes" buffer of not-cached boxes.

Change History

comment:1 Changed 9 years ago by Janik Zikovsky

  • Owner set to Janik Zikovsky
  • Status changed from new to accepted

comment:2 Changed 9 years ago by Janik Zikovsky

In [14110]:

Refs #3587: Renamed some fields in DiskMRU

comment:3 Changed 9 years ago by Janik Zikovsky

In [14130]:

Refs #3587: DiskMRU flag to NOT use the MRU

comment:4 Changed 9 years ago by Janik Zikovsky

In [14138]:

Refs #3587: DiskMRU tracking small objects; LoadMDEW sets the cache size to load small boxes and keeps them in memory.

comment:5 Changed 9 years ago by Janik Zikovsky

In [14140]:

Refs #3587: Fix build.

comment:6 Changed 9 years ago by Janik Zikovsky

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

comment:7 Changed 9 years ago by Owen Arnold

  • Status changed from verify to verifying
  • Tester set to Owen Arnold

comment:8 Changed 9 years ago by Owen Arnold

  • Status changed from verifying to closed

Unit tests look to provide good coverage and all run.

comment:9 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 4434

Note: See TracTickets for help on using tickets.