Ticket #4138 (closed: fixed)
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
Refs #4138: test fix
Changeset: f1ab1767f99b5e5e6c5873d08cc7cd01e770f967
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:12 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 4985