# US 2005/0005070 A1 · Snapshot marker

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2005/0005070 A1
- Document ID: US20050005070A1
- Status: Published application
- Kind: A1
- Application number: 10/612,081
- Filed: 2003-07-02
- Published: 2005-01-06
- Earliest claimed: 2003-07-02
- Assignees: FalconStor Software, Inc.
- Inventors: Wai Lam
- Web page: https://patentgrep.com/patent/US20050005070A1

## CPC

- G06F 11/2064: {while ensuring consistency}
- G06F 11/2074: {Asynchronous techniques}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 12/0866: for peripheral storage systems, e.g. disk cache
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- Y10S 707/99953: Recoverability
- Y10S 707/99955: Archiving or backup
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A method for generating a snapshot that records data transmitted to a storage system prior to a selected moment in time, while allowing a client server to continue sending data to the storage system, is disclosed. A snapshot marker is inserted into a cache, data continues to be flushed to disk until the snapshot marker is flushed from the cache, and a snapshot is performed. Additionally, a method for recording data stored in a storage system is disclosed that includes initiating a transaction with the storage system according to standard protocols, transmitting to the storage system a command representing a snapshot request, and performing a snapshot of the data. In accordance with one implementation, the command is transmitted as a SCSI command descriptor block.

## Claims

### Claim 1

A method for recording data transmitted to a storage system, the storage system having a cache and at least one storage device, the data comprising initial data items and additional data items, wherein the initial data items are transmitted to the storage system prior to a moment in time, and the additional data items are transmitted to the storage system after the moment in time, the method comprising:
receiving, by the cache, data transmitted to the storage system;
flushing, from the cache to the at least one storage device, one or more of the initial data items;
receiving, by the cache, one or more additional data items, while at least one of the initial data items is flushed from the cache; and
recording the initial data items.

### Claim 2 (depends on 1)

The method of claim 1, wherein the cache comprises non-volatile memory.

### Claim 3 (depends on 1)

The method of claim 1, wherein the cache comprises volatile memory.

### Claim 4 (depends on 1)

The method of claim 1, wherein initial data items and additional data items are received from a single client server.

### Claim 5 (depends on 1)

The method of claim 1, wherein initial data items and additional data items are received from a plurality of client servers.

### Claim 6 (depends on 1)

The method of claim 1, wherein the at least one storage device is a block-level storage device.

### Claim 7

A method for recording data transmitted to a storage system, the storage system having a cache and at least one storage device, the data comprising data items transmitted to the storage system, the method comprising:
receiving data items by the cache;
inserting a marker into the cache, wherein the marker is an indication that one or more of the data items received by the cache are to be recorded; and
recording the one or more of the data items.

### Claim 8 (depends on 7)

The method of claim 7, further comprising flushing from the cache the one or more of the data items, prior to the recording of the one or more of the data items.

### Claim 9 (depends on 8)

The method of claim 8, further comprising flushing the marker from the cache, prior to the recording of the one or more of the data items.

### Claim 10 (depends on 9)

The method of claim 9, further comprising flushing the one or more of the data items prior to the flushing of the marker.

### Claim 11 (depends on 7)

The method of claim 7, wherein the one or more of the data items are received by the cache prior to the insertion of the marker into the cache.

### Claim 12 (depends on 7)

The method of claim 7, wherein the cache comprises non-volatile memory.

### Claim 13 (depends on 7)

The method of claim 7, wherein the cache comprises volatile memory.

### Claim 14 (depends on 7)

The method of claim 7, wherein the data is transmitted to the storage system over a network.

### Claim 15 (depends on 14)

The method of claim 14, wherein the cache receives data items and flushes data items on a first-in-first-out basis.

### Claim 16 (depends on 14)

The method of claim 14, wherein the network is a WAN.

### Claim 17 (depends on 14)

The method of claim 14, wherein the network is a LAN.

### Claim 18 (depends on 14)

The method of claim 14, wherein the network is a Fibre-Channel-based SAN.

### Claim 19 (depends on 14)

The method of claim 14, wherein the network is an internet.

### Claim 20 (depends on 14)

The method of claim 14, wherein the network is an intranet.

### Claim 21 (depends on 7)

The method of claim 7, wherein the at least one storage device is a block-level storage device.

### Claim 22

A method for recording data generated by a client server and transmitted to a storage system, the method comprising:
storing data, received from the client server, in the storage system;
receiving a command from the client server to perform a snapshot of the data; and
generating a snapshot of the data stored in the storage system in response to the command.

### Claim 23 (depends on 22)

The method of claim 22, wherein the command is transmitted in accordance with SCSI protocols.

### Claim 24 (depends on 23)

The method of claim 23, wherein the command comprises instructions contained in a SCSI command descriptor block.

### Claim 25 (depends on 22)

The method of claim 22, wherein the client server communicates with the storage system over a network.

### Claim 26 (depends on 25)

The method of claim 25, wherein the network is a WAN.

### Claim 27 (depends on 25)

The method claim 25, wherein the network is a LAN.

### Claim 28 (depends on 25)

The method of claim 25, wherein the network is a Fibre-Channel-based SAN.

### Claim 29 (depends on 25)

The method of claim 25, wherein the network is an internet.

### Claim 30 (depends on 25)

The method of claim 25, wherein the network is an intranet.

### Claim 31 (depends on 22)

The method of claim 22, wherein the command is received periodically.

### Claim 32 (depends on 22)

The method of claim 22, wherein the command is received aperiodically.

### Claim 33 (depends on 32)

The method of claim 32, wherein the command is received prior to and in association with a data processing operation.

### Claim 34 (depends on 33)

The method of claim 33, wherein the data processing operation comprises synchronizing two storage systems.

### Claim 35

A method for recording data generated by a client server and transmitted to a storage system, the method comprising:
transmitting data to a storage system for storage;
generating a command to perform a snapshot of the data stored by the storage system; and
transmitting the command to the storage system to perform a snapshot of the data.

### Claim 36 (depends on 35)

The method of claim 35, wherein the command is transmitted in accordance with SCSI protocols.

### Claim 37 (depends on 36)

The method of claim 36, wherein the command comprises instructions contained in a SCSI command descriptor block.

### Claim 38 (depends on 35)

The method of claim 35, wherein the client server communicates with the storage system over a network.

### Claim 39 (depends on 38)

The method of claim 38, wherein the network is a WAN.

### Claim 40 (depends on 38)

The method claim 38, wherein the network is a LAN.

### Claim 41 (depends on 38)

The method of claim 38, wherein the network is a Fibre-Channel-based SAN.

### Claim 42 (depends on 38)

The method of claim 38, wherein the network is an internet.

### Claim 43 (depends on 38)

The method of claim 38, wherein the network is an intranet.

### Claim 44 (depends on 35)

The method of claim 35, wherein the command is transmitted periodically.

### Claim 45 (depends on 35)

The method of claim 35, wherein the command is transmitted aperiodically.

### Claim 46 (depends on 45)

The method of claim 45, wherein the command is transmitted prior to and in association with a data processing operation.

### Claim 47 (depends on 46)

The method of claim 46, wherein the data processing operation comprises synchronizing two storage systems.

### Claim 48

A system for recording data transmitted to a storage system, the data comprising initial data items and additional data items, wherein the initial data items are transmitted to the storage system prior to a moment in time, and the additional data items are transmitted to the storage system after the moment in time, wherein the storage system comprises:
a cache for receiving data transmitted to the storage system, for flushing one or more of the initial data items to the at least one storage device, and for receiving one or more additional data items while flushing at least one of the initial data items; and
a controller for recording the initial data items.

### Claim 49 (depends on 48)

The system of claim 48, wherein the cache comprises non-volatile memory.

### Claim 50 (depends on 48)

The system of claim 48, wherein the cache comprises volatile memory.

### Claim 51 (depends on 48)

The system of claim 48, wherein initial data items and additional data items are received from a single client server.

### Claim 52 (depends on 48)

The system of claim 48, wherein initial data items and additional data items are received from a plurality of client servers.

### Claim 53 (depends on 48)

The system of claim 48, wherein the at least one storage device is a block-level storage device.

### Claim 54

A system for recording data transmitted to a storage system, the data comprising data items transmitted to the storage system, wherein the storage system comprises:
a cache for receiving data items; and
a controller for inserting a marker into the cache, wherein the marker is an indication that one or more of the data items received by the cache are to be recorded, and for recording the one or more of the data items.

### Claim 55 (depends on 54)

The system of claim 54, wherein the cache flushes the one or more of the data items prior to the recording of the one or more of the data items.

### Claim 56 (depends on 55)

The system of claim 55, wherein the cache flushes the marker prior to the recording of the one or more of the data items.

### Claim 57 (depends on 56)

The system of claim 56, wherein the cache flushes the one or more of the data items prior to the flushing of the marker.

### Claim 58 (depends on 54)

The system of claim 54, wherein the cache receives the one or more of the data items prior to the insertion of the marker into the cache.

### Claim 59 (depends on 54)

The system of claim 54, wherein the cache comprises non-volatile memory.

### Claim 60 (depends on 54)

The system of claim 54, wherein the cache comprises volatile memory.

### Claim 61 (depends on 54)

The system of claim 54, wherein the data is transmitted to the storage system over a network.

### Claim 62 (depends on 61)

The system of claim 61, wherein the cache receives data items and flushes data items on a first-in-first-out basis.

### Claim 63 (depends on 61)

The system of claim 61, wherein the network is a WAN.

### Claim 64 (depends on 61)

The system of claim 61, wherein the network is a LAN.

### Claim 65 (depends on 61)

The system of claim 61, wherein the network is a Fibre-Channel-based SAN.

### Claim 66 (depends on 61)

The system of claim 61, wherein the network is an internet.

### Claim 67 (depends on 61)

The system of claim 61, wherein the network is an intranet.

### Claim 68 (depends on 54)

The system of claim 54, wherein the at least one storage device is a block-level storage device.

### Claim 69

A system for recording data generated by a client server and transmitted to a storage system, comprising:
a memory for storing data, received from the client server, in the storage system; and
a controller for receiving a command from the client server to perform a snapshot of the data, and for generating a snapshot of the data stored in the storage system in response to the command.

### Claim 70 (depends on 69)

The system of claim 69, wherein the command is transmitted in accordance with SCSI protocols.

### Claim 71 (depends on 70)

The system of claim 70, wherein the command comprises instructions contained in a SCSI command descriptor block.

### Claim 72 (depends on 69)

The system of claim 69, wherein the client server communicates with the storage system over a network.

### Claim 73 (depends on 72)

The system of claim 72, wherein the network is a WAN.

### Claim 74 (depends on 72)

The system claim 72, wherein the network is a LAN.

### Claim 75 (depends on 72)

The system of claim 72, wherein the network is a Fibre-Channel-based SAN.

### Claim 76 (depends on 72)

The system of claim 72, wherein the network is an internet.

### Claim 77 (depends on 72)

The system of claim 72, wherein the network is an intranet.

### Claim 78 (depends on 69)

The system of claim 69, wherein the command is received periodically.

### Claim 79 (depends on 69)

The system of claim 69, wherein the command is received aperiodically.

### Claim 80 (depends on 79)

The system of claim 79, wherein the command is received prior to and in association with a data processing operation.

### Claim 81 (depends on 80)

The system of claim 80, wherein the data processing operation comprises synchronizing two storage systems.

### Claim 82

A system for recording data stored in a storage system, comprising:
a client server for generating data, for transmitted the data to a storage system for storage, for generating a command to perform a snapshot of the data stored by the storage system, and for transmitting the command to the storage system to perform a snapshot of the data; and
a storage system for receiving the data from the client server, for receiving the command from the client server, and for performing the snapshot of the data in response to the command.

### Claim 83 (depends on 82)

The system of claim 82, wherein the command is transmitted in accordance with SCSI protocols.

### Claim 84 (depends on 83)

The system of claim 83, wherein the command comprises instructions contained in a SCSI command descriptor block.

### Claim 85 (depends on 82)

The system of claim 82, wherein the client server communicates with the storage system over a network.

### Claim 86 (depends on 85)

The system of claim 85, wherein the network is a WAN.

### Claim 87 (depends on 85)

The system claim 85, wherein the network is a LAN.

### Claim 88 (depends on 85)

The system of claim 85, wherein the network is a Fibre-Channel-based SAN.

### Claim 89 (depends on 85)

The system of claim 85, wherein the network is an internet.

### Claim 90 (depends on 85)

The system of claim 85, wherein the network is an intranet.

### Claim 91 (depends on 82)

The system of claim 82, wherein the command is transmitted periodically.

### Claim 92 (depends on 82)

The system of claim 82, wherein the command is transmitted aperiodically.

### Claim 93 (depends on 92)

The system of claim 92, wherein the command is transmitted prior to and in association with a data processing operation.

### Claim 94 (depends on 93)

The system of claim 93, wherein the data processing operation comprises synchronizing two storage systems.
