Abstract:
An interface between an existing local file system and a data store (e.g., a “write-once” store) generates and exports to the data store a “versioned” file system. The state of the local file system at a given point in time can be determined using the versioned file system. Preferably, the versioned file system comprises a set of structured data representations (such as XML) that comprise metadata associated with the actual file system data. In operation, the interface creates and exports to the data store structured data representations, which correspond to versions of the local file system, as well as the actual file system data that these structured data representations represent. A cache associated with the interface stores recently used data and metadata, as well as all write data and metadata waiting to be transferred to the data store. Prior to transfer, one or more data transformations, such as compression, encryption, de-duplication and the like, may be applied to the data and metadata. The data store comprises any type of back-end storage device, system or architecture. In one embodiment, the data store comprises one or more cloud storage service providers. As necessary, a given structured data representation is then used to retrieve an associated version of the file system. In this manner, the versioned file system only requires write-once behavior from the data store to preserve its complete state at any point-in-time. The cache facilitates near-instant restore of the file system on an as-needed basis. When the interface is positioned in “front” of a generic data store, the interface has the effect of turning that data store into a “versioned file system” (“VFS”). A content control system (CCS) is used to configure and manage the interface.