Ticket #4138 (closed: fixed)

Opened 9 years ago

Last modified 5 years ago

Redesign DiskMRU to simplify it

Reported by: Janik Zikovsky Owned by: Janik Zikovsky
Priority: major Milestone: Release 2.0
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: Tester: Stuart Campbell

Description

DiskMRU got very complicated with a MRU, a write buffer, a free-space buffer and a small objects count. Possible problems with updating files are related to this? But I can't work it out with the complex structure of it.

I found that the MRU was too slow (in look-up) in practice, and the Small Objects buffer made loading a file super slow.

Write a new class. Include a "to-write" buffer (that will be handy for sorting the writes so that they are done sequentially) and a free-space manager. Forget about the MRU and the small objects.

Change History

comment:1 Changed 9 years ago by Janik Zikovsky

  • Priority changed from critical to major
  • Summary changed from Redesign DiskMRU to simplify it to Redesign DiskMRU to simplify it (?)

comment:2 Changed 9 years ago by Janik Zikovsky

  • Status changed from new to accepted

See #4377: failures seem related to the DiskMRU, in particular, the SmallBuffer functionality.

Removing this will hopefully fix it. Will make a new class called "DiskWriteBuffer"

comment:3 Changed 9 years ago by Janik Zikovsky

Refs #4138: Replaced DiskMRU with DiskBuffer, a simpler version

with no MRU or 'small object' buffer. This is now simple a to-write buffer that tracks free space. Hopefully fix issue in #4377.

Changeset: 786ff3bacdfb44a4d0807bc78fd097f107796943

comment:4 Changed 9 years ago by Janik Zikovsky

Refs #4138: rename some methods and variables to match DiskBuffer

Changeset: 8710ed8a9b1ac80a0d3972d0077c5a6a7585efdb

comment:5 Changed 9 years ago by Janik Zikovsky

comment:6 Changed 9 years ago by Janik Zikovsky

Refs #4138: remove debugging output

Changeset: 28213176eb9851259c9cc06cee083238834b9864

comment:7 Changed 9 years ago by Janik Zikovsky

Refs #4138: Avoid possible simultaneous read/write to file

by adding a mutex to DiskBuffer

Changeset: 75369a180342698363ad83d5ee71a95879c9b6f8

comment:8 Changed 9 years ago by Janik Zikovsky

  • Status changed from accepted to verify
  • Resolution set to fixed
  • Summary changed from Redesign DiskMRU to simplify it (?) to Redesign DiskMRU to simplify it

This has been completed and seems fully stable. The DiskMRU class has been taken out of the CMakeLists, replaced with DiskBuffer.

comment:9 Changed 9 years ago by Janik Zikovsky

Refs #4138: clean up files

Changeset: 7dcdfa8a44f0f0567e44ce929e7a4263b7a9d7b9

comment:10 Changed 9 years ago by Stuart Campbell

  • Status changed from verify to verifying
  • Tester set to Stuart Campbell

comment:11 Changed 9 years ago by Stuart Campbell

  • Status changed from verifying to closed

comment:12 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 4985

Note: See TracTickets for help on using tickets.