Network/Multi-User

Insight uses a file-based database with built-in transactional controls to prevent data corruption in standard power-loss or drive disconnection situations.

Proper implementation of standard file-locking protocols is important to prevent data corruption. This is to ensure that only one user at a time is modifying a given part of the file and that after modification, all users see the updated and consistent version of the data. In some instances, even if a network filesystem claims to issue a lock over a piece of data, it does not prevent concurrent access, resulting in the database file becoming corrupt.

Insight uses filesystem-locking functions that are reliable. However, as a best practice, ensure to verify file-locking protocols, especially where multiple network filesystem technologies are used.

For example, a typical configuration in an environment with both Linux and Windows users is to provide filesystem access via NFS to Linux and via CIFS/Samba to Windows. These two systems must coordinate file locking in such a way that a lock taken via NFS is also enforced against CIFS/Samba users (and vice-versa) to avoid database corruption.

Note: Machines running Linux and many network-attached storage [NAS] devices use Samba for sharing files. In a multi-user Insight environment, Opportunistic Locks must be disabled for the project directories to avoid database corruption. For details on opportunistic locks and their implications, please see this page on the Samba website.

Note:  Linux machines may also access shared files via CIFS. When accessing an Insight project on a CIFS filesystem, byte range lock requests must be disabled by using the nobrl mount option.

Testing

To make it as easy as possible for administrators to validate their filesystem environments, Insight includes a built-in filesystem testing tool. This tool generates database traffic that is designed to induce and detect corruption as quickly as possible in the absence of proper locking.

It is important to run this test on at least two machines at once, as it is only through concurrent access that such arises. You will want to run this tool in such a way that all filesystem paths are tested simultaneously. For example, if you have Linux, Windows, and Mac OS X systems, and multiple paths by which a single filesystem can be mounted, you must test all such paths at the same time.

To run the Database Test Tool:

  1. Install and run the Insight launcher as usual.
  2. To avoid the potential for damage to an existing project, create a new project just for this test. All systems involved in the test should open this same project.
  3. Launch the main Insight program.
  4. From the Help menu, click on Debug and choose Database Test Tool.
  5. Click Start.

Repeat on each machine involved in the test. If there is a filesystem locking problem, it is likely that the test will almost immediately fail. However, we recommend letting it run for a period of hours (e.g. overnight) to be certain, particularly if there are many different interlocking systems involved.

If the test fails, please contact [email protected] to discuss how best to proceed.