Hybrid File Store Versioning Rules


Hybrid File Store supports versioning, where successive versions of files are stored and then restored using a Point-In-Time view (PIT) later.

Versioning is controlled using two retention settings in the Command Center:

  • Enable Versions

  • Version Interval

If Enable Versions is selected, a new version of a file is created when the file is opened for writing and the following conditions are true:

  1. The file is opened in write mode, truncated, unlinked, or renamed. Only one new version is created for a file open operation. Also, no new versions are created until the file is closed and reopened.

  2. The file is not already opened in write mode by either this client or another client.

  3. The time elapsed since the last version was created is greater than the version interval.

The Version Interval setting reduces the frequency of versions that are created. Sometimes, applications repeatedly open and close files very frequently, and therefore it is unnecessary to keep so many versions. In this case, you can increase the version interval to save space on the index server and slightly improve the performance of Hybrid File Store.

Note: If this feature is used, do not create a PIT view to a time before the version interval has expired.

Example 1:

Assume that versions are enabled, and the version interval is to 10 minutes.

  1. A user creates an empty file at 10:00 am. This is version 1.

  2. At 10:20 am, the user opens the file for writing. The Hybrid File Store creates version 2.

  3. For 20 minutes, the user writes data and then closes the file. Now, all the is written to version 2.

  4. At 11:00 am, the user reopens the file and writes more data. This is version 3.

  5. A PIT view is created for 10:30 am. The data read will be from version 2.

Example 2:

In this example, the PIT view is created too soon. Again, assume that the version interval is 10 minutes.

  1. A user creates an empty file at 12:00 pm. This is version 1. The user writes data and then closes the file.

  2. A PIT view is created at 12:01pm. The user expects the PIT to be a snapshot of what was written at 12:00 pm.

  3. The file is re-opened at 12:02 and overwritten with new data. No new version is created because the version interval of 10 minutes has not expired yet.

  4. The user reads the new data in the PIT view and not the data created before the PIT was created. This is because, the new data is still being written to version 1. To avoid this problem, the PIT should not be created until 12:10 pm, or you must decrease the version interval.

Note: Versioning from NFSv3 clients is not supported. This is because NFSv3 protocol does not support open/close requests from the client, and it is unpredictable when new versions will be created. NFSv4 fully supports versioning. A share that contains both v3 and v4 clients can be enabled for versioning, but files written by v3 clients may not create new versions at expected intervals. Therefore, it is recommended not to use PITs to restore data written by v3 clients.