Data is stored by utilizing a first operating mode and a second operating mode. In one embodiment, in the first operating mode, a continuous replication method is utilized to store data on a primary storage system and to generate a backup version of the data on a backup storage system. While data is being stored in accordance with the first operating mode, one or more activities performed by the data storage system(s) are monitored. As long as the monitored activity or activities display a first status, the first operating mode is maintained. If the monitored activity or activities display a change in status, the first operating mode is suspended, and data is stored pursuant to the second operating mode. In one embodiment, in the second operating mode, a delta replication method is utilized to store data on the primary storage system and to back up the data on the backup storage system.
In one example, an apparatus is provided to store data in one or more data storage systems by selecting from among at least a first operating mode and a delta replication operating mode. The apparatus comprises a means for storing data pursuant to the first operating mode and a means for ascertaining a first status of a criterion pertaining to an activity performed by the one or more data storage systems while operating in the first operating mode. The apparatus further comprises a means for detecting a change in the criterion to a second status, and a means for storing data pursuant to the delta replication operating mode in response to the change.
Method And System For Synchronizing Storage System Data
Wai Lam - Jericho NY, US Ronald S. Niles - Teaneck NJ, US Xiaowei Li - Hauppauge NY, US
Assignee:
FalconStor, Inc. - Melville NY
International Classification:
G06F 12/00 G06F 13/00
US Classification:
711161, 711100, 711154, 711162
Abstract:
In accordance with an example of an embodiment of the invention, a method for comparing a first unit of data stored in a first storage system and a second unit of data stored in a second storage system is provided. The method comprises generating a first digest that represents the first unit of data, generating an initial value associated with the first unit of data, and deriving an encoded value using the first digest and the initial value. The method further comprises transmitting the encoded value from the first storage system to the second storage system, generating a second digest that represents the second unit of data, and deriving a decoded value using the second digest to decode the encoded value. The method also comprises transmitting the decoded value from the second storage system to the first storage system, and determining whether the first unit of data and the second unit of data are duplicates of one another by comparing the decoded value and the initial value. Systems are also disclosed.
Wai T. Lam - Jericho NY, US Ronald S. Niles - Teaneck NJ, US Xiaowei Li - Hauppauge NY, US
Assignee:
FalconStor, Inc. - Melville NY
International Classification:
G06F 12/00 G06F 13/00
US Classification:
711161, 711100, 711154, 711162
Abstract:
In accordance with one example, a method for comparing data units is disclosed comprising generating a first digest representing a first data unit stored in a first memory. A first encoded value is generated based, at least in part, on the first digest and a predetermined value. A second digest representing a second data unit stored in a second memory different from the first memory, is generated. A second encoded value is derived based, at least in part, on the second digest and the predetermined value. It is determined whether the first data unit and the second data unit are the same based, at least in part, on the first digest, the first predetermined value, the first encoded value, and the second digest, by first processor. If the second data unit is not the same as the first data unit, the first data unit is stored in the second memory.
Method And System For Synchronizing Storage System Data
Wai Lam - Jericho NY, US Ronald Niles - Teaneck NJ, US Xiaowei Li - Hauppauge NY, US
International Classification:
G06F012/00
US Classification:
711162000
Abstract:
A method and system are provided for comparing data stored in a first storage system with corresponding data stored in a second storage system. In one implementation, the first system generates a random value associated with a respective data block P, and transmits to the second system an identifier associated with the data block P, and the random value. The second system generates a first digest representing a data block B, uses the first digest to encode the random value, producing a first encoded value, and transmits the first encoded value to the first system. The first system generates a second digest representing the data block P, uses the second digest to encode the random value, producing a second encoded value, and compares the first and second encoded values. If the two encoded values are equal, the data block B is a duplicate of the data block P. If the two encoded values are not the same, the data blocks are different. Additionally, a method is provided for synchronizing data stored on a second system to data stored on a first system. In one implementation, a data block P stored on a first system is compared to a data block B stored on a second system, as described above. If the two data blocks are different, the first system transmits a copy of the data block P, and the second system stores the copied data block P.
Wai Lam - Jericho NY, US Xiaowei Li - Hauppauge NY, US
International Classification:
G06F012/16
US Classification:
707204000, 711162000, 711135000
Abstract:
The method traverses a storage device, performing read operations on each allocated data block on the device, recording each I/O access to the device resulting from the read operations, and identifying the data blocks involved in each I/O access to determine which blocks contain valid data. The data blocks that contain valid data are then replicated.
Wai Lam - Jericho NY, US Xiaowei Li - Hauppauge NY, US
International Classification:
H04K001/00
US Classification:
713185000
Abstract:
A software vendor freely distributes software to users and issues smart cards to be used with the software. The smart card includes at least one software module missing from the software package and a list of allowed functionality dictating the capabilities of the software package. A user authenticates, using, e.g., public key cryptography, the smart card, which authorizes the use of the software. Once authorized, the module missing from the software is reunited with the rest of the software package. The software can be used limited to the allowed functionality included with the card. If more or different functionality is needed, the user can purchase another card authorizing such additional functionality, and then transfer the new functionality to the old smart card.
Method And System For Protecting And Verifying Stored Data
Wai Lam - Jericho NY, US Xiaowei Li - Hauppauge NY, US
International Classification:
G06F 17/30
US Classification:
726030000
Abstract:
A data file stored in a file volume is locked such that subsequent alterations to the contents of the file may be detected. A data protection module retrieves the data file from storage, hashes the data file, generating a file digest, and stores the file digest in a record. A data segment comprising the file digest is defined and transmitted to a smart card. The smart card hashes the segment, generating a segment digest, and uses a private key to encode the segment digest, generating a digital signature. The digital signature is stored in the record. The record is subsequently used to verify the contents of the data file. The smart card's public key is used to decode the digital signature, generating a decoded value. The defined segment within the record is retrieved, and a segment digest is recomputed based on the segment. The decoded value is compared to the recomputed segment digest. If the decoded value is the same as the recomputed segment digest, the contents of the segment are determined to be valid.