Patent ID: 9588986
Date: 2017-03-07
CPC Classifications: G06F

Claim:
1. A method for data backup and recovery by a processor based on linked file repositories with each of the linked file repositories representing an individual file system capable of storing at least one version of a file and being connected to at least one server system, wherein the method includes: placing each of the linked file repositories in one of a plurality of positions for storing the at least one version of the file; continuously numbering each of the plurality of positions of each of the linked file repositories; determining a number of the at least one version of the file by the one of a plurality of positions of the one of the linked file repositories; for each of the linked file repositories, performing at least one function operation for each file stored in the linked file repositories matching at least one rule, wherein the at least one function operation includes at least one of a deduplication function allowing deduplicating files based on the version number, an indexing function allowing to index the file and providing search and discovery capabilities, and an expiration function for moved files determining when a moved file expires and is being deleted time-based or event-based; wherein the at least one rule includes a file extension matching a certain pattern, a file name matching one of a plurality of patterns, a file path name matching the one of a plurality of patterns, a file owner matching the one of a plurality of patterns, a file creation, and a modification or last access time matching a specified date and a specified time range; and implementing the version-recovery process on a block-differential basis by performing one of: receiving a write operation with a new one of the at least one version of the file to be written from one of the at least one server system and a preceding one of the linked file repositories, determining if the new one of the at least one version of the file to be written exists in the one of the linked file repositories, if the new one of the at least one version of the file to be written exists in the one of the linked file repositories performing one of: comparing data of the new one of the at least one version of the file to be written and an existing one of the at least one version of the of the file to be written, moving the different data blocks from the existing one of the at least one version of the of the file to be written from the one of the linked file repositories to a subsequent one of the linked file repositories if versioning policies indicate a higher number of the at least one version as compared to a position number of the one of the linked file repositories, otherwise: storing the different data blocks of the new one of the at least one version of the file to be written from one of the at least one server system and the preceding one of the linked file repositories, and if the at least one version of the file to be written does not exist in the one of the linked file repositories: storing the new one of the at least one version of the file to be written from the one of the linked file repositories; including the version number and a file name of the requested version of the file to be read as part of the read operation, wherein the requested version number is one of an integer number, a date range, and a time range; and setting the version number of the requested version as a file attribute prior to the read operation.