Ticket #6362 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

Move workspace file based operations to ISaveable class and simplify file-based operations

Reported by: Alex Buts Owned by: Alex Buts
Priority: major Milestone: Release 2.4
Component: VATES Keywords:
Cc: Blocked By:
Blocking: Tester: Martyn Gigg

Description (last modified by Alex Buts) (diff)

Current structure of fileBased event workspace is very complex. The file based/ not-file based operations are controlled by five boolean parameters, and user has to set all of them in correct order to get working file-based algorithm.

The Kernel::DiskBuffer tests introduces some algorithm to work with file based workspaces and these algorithms are repeated within different MDAlgorithms.

There are two independent modes of working with file based workspaces and it is unclear which one to use.

The purpose of this ticket is to simplify the construction of file-based MDWorkspaces, move main file-related functionality into ISaveAble DiskBuffer couple of objects and simplify MDBoxes/MDGridBoxes removing this functionality from them.

Change History

comment:1 Changed 8 years ago by Alex Buts

  • Status changed from new to accepted

comment:2 Changed 8 years ago by Alex Buts

  • Blocking 5849 added

comment:3 Changed 8 years ago by Alex Buts

refs #6362 Attempt to move the code responsible to ISaveable

into Kernel

Changeset: a85e99144b3ef5ac3885af6699c408fe0e00fbf1

comment:4 Changed 8 years ago by Alex Buts

refs #6362 Fixing ISavable

Changeset: 48e61e6d43fee52433d1d0d40256bb547b11aaa7

comment:5 Changed 8 years ago by Alex Buts

refs #6362 ISaveable modified to keep the information about its place

ISavable now knows about its position in file and works together with the DiskBuffer to identify the location of the data in the file.

Changeset: b385e85cb27721828a83f7c4b3412e6c6b512341

comment:6 Changed 8 years ago by Alex Buts

refs #6362 Checked performance tests

Changeset: 328e6c9e76431b0e467061b670125a6865b58d5a

comment:7 Changed 8 years ago by Alex Buts

refs #6362 MDGridBox test works

(without modifications)

Changeset: 9e5bd15f20b9d39d813547851c0be0a00201dfb1

comment:8 Changed 8 years ago by Alex Buts

refs #6362 Save made constant and special command is used to free mem

small changes to algorithms too to incorporate new logic of working

Changeset: 8b510312a3f58d2b9449996bcfd07c822f11be00

comment:9 Changed 8 years ago by Alex Buts

refs #6362 SaveMD works

Changeset: 65686144415f72ebb040af9a52288baefc011c21

comment:10 Changed 8 years ago by Alex Buts

refs #6362 Removed notuse disk buffer mode from MDWorkspace modes

All file based workspaces have to use disk buffer now. If the disk buffer size is set to 0, the data are saved to HDD (or discarded if not modified) as soon as they are free.

Changeset: 0d8a0780b9fe6826e6ee986e37d2dcd93ba25ee2

comment:11 Changed 8 years ago by Alex Buts

refs #6362 LoadMD tests work

Changeset: 8ef22cf32374cc790ccda39a9c6a750569a0a726

comment:12 Changed 8 years ago by Alex Buts

refs #6362 SliceMD reconfigured to use write output buffer

Changeset: 8704af4e3d0b9080c74d993bfb3632c7eb374b21

comment:13 Changed 8 years ago by Alex Buts

refs #6362 Modified MDBoxBaseTest to reflect new work patterns

Changeset: 0e68c86d3752226da3bd435f97cf75ed1fd62411

comment:14 Changed 8 years ago by Alex Buts

refs #6362 UseWrieBuffer meth is available on BoxController interface

and always reports true for export to python.

Changeset: 0dccf3bc49874561175ac72a4d54d4e3e9b549a5

comment:15 Changed 8 years ago by Alex Buts

refs #6362 Commented yet unused file from cmake list

Changeset: 7811e0ecb200362ca7b4feab7a8af60a9df270f0

comment:16 Changed 8 years ago by Alex Buts

refs #6362 fixing Unix error

Changeset: fe217c03a8242511f5205abd1a88ef9c81b9b183

comment:17 Changed 8 years ago by Alex Buts

refs #6362 fixing Unix error (missing boost header)

Changeset: 7bc34073e41879dc4927cf903fe08b6f5d6c1f5e

comment:18 Changed 8 years ago by Alex Buts

refs #6362 attempt to fix mutexing issue on Unix

(not fully tested yet on Win but there are hopes. )

Changeset: ed3b4a2f56531b4121a0968403663d492f69ba52

comment:19 Changed 8 years ago by Alex Buts

refs #6362 Attempt to use recursive mutex in suspicious places only

Changeset: 83beea3c2ecb887d137302a9b5e21e5047ecffcb

comment:20 Changed 8 years ago by Alex Buts

refs #6362 SaveMDTest deletes files before and after testing

(this is to fix recent problems with tests)

Changeset: 88564dc671ca635d8d8a94f88612b811f4fc69fa

comment:21 Changed 8 years ago by Alex Buts

refs #6362 All failing tests trying to delete files before and after

Changeset: 78bd02d2a840ba8e929e333557ef40a4bb2aeec0

comment:22 Changed 8 years ago by Alex Buts

refs #6362 Now it will hopefully delete loose files from previous runs

(to address test failing after forces stop)

Changeset: f2595c32cad71d5ecd35693352d35a9e30b6a068

comment:23 Changed 8 years ago by Alex Buts

refs #6362 deleting files for loader

Changeset: de553d27fdde386d129e8582111fa02b87360215

comment:24 Changed 8 years ago by Alex Buts

refs #6362 disabled all failing tests except one

trying to see what is going on

Changeset: b88385adb2b47c1566906a38e2289f19b38ca55a

comment:25 Changed 8 years ago by Alex Buts

refs #6362 Not calling Nexus writer when no events to write

Changeset: 348193860ae77420e41e577956692ecaeffb39d7

comment:26 Changed 8 years ago by Alex Buts

refs #6362 Redefined nexus writer and enabled couple of tests

, failing earlier

Changeset: c6c5ce26d7eb465c7b7538092bd88034cc53db6c

comment:27 Changed 8 years ago by Alex Buts

refs #6362 Syntax error

Changeset: d63d42f2c0dba47d9fab3d3474306ff0a3270218

comment:28 Changed 8 years ago by Alex Buts

refs #6362 Trying to fix/disable the failing tests

Changeset: bdc863ceecb305b6eac520c91bdd329a6a523024

comment:29 Changed 8 years ago by Alex Buts

refs #6362 Enabled one previously failing test to see what happens

Changeset: c126b1df5b83e97b00f6fa8a894324acc86a278f

comment:30 Changed 8 years ago by Alex Buts

refs #6362 Enabled another failing test

Changeset: 68d8fc39f1b6531b81cadaeb3ca6dffbb6aa3af0

comment:31 Changed 8 years ago by Alex Buts

refs #6362 Enabling remaining failing tests

Changeset: ef907c2ac69890b6f5d1e0b2064feecb7d3ed56f

comment:32 Changed 8 years ago by Alex Buts

refs #6362 unblocking some performance tests (not all yet)

Changeset: 2f55d5f8581ddd5dd14c6a5630d42c081e2758c4

comment:33 Changed 8 years ago by Alex Buts

  • Description modified (diff)
  • Summary changed from Extract part of the code respponsible for flat box structure into separate class to Move workspace file based operations to ISaveable class and simplify file-based operations

comment:34 Changed 8 years ago by Alex Buts

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

The main purpose of this ticket is achieved, though the structure of the MDBoxes is not yet optimal. But main things that done are:

1) ISaveable/DiskBuffer are mainly responsible for bookkeeping for file-based operations delegating particular object specific operations to children. 2) Controlling parameters are reduced to 4 and user should not set them alone. I hope their meaning is more transparent as usually they are set up by appropriate IO operations.

It is easy/difficult to test this ticket. If all tests and MD algorithms are working fine, which should be obvious to the time of testing, the changes are correct.

A code review and suggestions on further improvements would be useful.

comment:35 Changed 8 years ago by Alex Buts

  • Blocking 5849 removed

comment:36 Changed 8 years ago by Martyn Gigg

  • Status changed from verify to verifying
  • Tester set to Martyn Gigg

comment:37 Changed 8 years ago by Martyn Gigg

  • Status changed from verifying to closed

Ticket #5849 related to file-based MD workspaces no functioning correctly and it would appear that this works correctly now. The unit & system tests are fine also.

There has been an issue regarding performance. Ticket #6513

comment:38 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7208

Note: See TracTickets for help on using tickets.