Systems and methods for persistent address space management
First Claim
1. A method for managing storage operations on a non-volatile storage medium, the method comprising:
- a storage client issuing a message to a storage layer, the message specifying a logical identifier that is no longer in use by the storage client to reference data stored on the non-volatile storage medium;
responsive to receiving the message from the storage client, the storage layer storing a persistent note, wherein the persistent note comprises the specified logical identifier and indicates that the specified logical identifier does not correspond to valid data stored on the non-volatile storage medium;
the storage layer providing an interface configured to indicate whether identified logical identifiers correspond to valid data stored on the non-volatile storage medium, wherein the interface is independent of a read interface for accessing data corresponding to the identified logical identifiers stored on the non-volatile storage medium; and
responsive to receiving a request from the storage client, the storage layer determining whether a logical identifier corresponds to valid data stored on the non-volatile storage medium based on whether an entry corresponding to the logical identifier exists in an index maintained by the storage layer and comprising entries corresponding to assignments between logical identifiers and physical storage locations of the non-volatile storage medium;
wherein at least one of the storage layer and the storage client is embodied as non-transitory instructions stored on a non-volatile storage medium.
14 Assignments
0 Petitions
Accused Products
Abstract
Data is stored on a non-volatile storage media in a sequential, log-based format. The formatted data defines an ordered sequence of storage operations performed on the non-volatile storage media. A storage layer maintains volatile metadata, which may include a forward index associating logical identifiers with respective physical storage units on the non-volatile storage media. The volatile metadata may be reconstructed from the ordered sequence of storage operations. Persistent notes may be used to maintain consistency between the volatile metadata and the contents of the non-volatile storage media. Persistent notes may identify data that does not need to be retained on the non-volatile storage media and/or is no longer valid.
-
Citations
19 Claims
-
1. A method for managing storage operations on a non-volatile storage medium, the method comprising:
-
a storage client issuing a message to a storage layer, the message specifying a logical identifier that is no longer in use by the storage client to reference data stored on the non-volatile storage medium; responsive to receiving the message from the storage client, the storage layer storing a persistent note, wherein the persistent note comprises the specified logical identifier and indicates that the specified logical identifier does not correspond to valid data stored on the non-volatile storage medium; the storage layer providing an interface configured to indicate whether identified logical identifiers correspond to valid data stored on the non-volatile storage medium, wherein the interface is independent of a read interface for accessing data corresponding to the identified logical identifiers stored on the non-volatile storage medium; and responsive to receiving a request from the storage client, the storage layer determining whether a logical identifier corresponds to valid data stored on the non-volatile storage medium based on whether an entry corresponding to the logical identifier exists in an index maintained by the storage layer and comprising entries corresponding to assignments between logical identifiers and physical storage locations of the non-volatile storage medium; wherein at least one of the storage layer and the storage client is embodied as non-transitory instructions stored on a non-volatile storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A storage system comprising:
-
a non-volatile storage device; a storage client configured to issue an invalidation directive, the invalidation directive designating a logical identifier that is no longer in use by the storage client to reference data stored on the non-volatile storage device; a storage layer configured to maintain a forward map comprising assignments between logical identifiers of a logical address space and respective storage units of the non-volatile storage device, the respective storage units of the non-volatile storage device comprising data assigned to the logical identifiers; wherein the storage layer is configured such that, responsive to receiving the invalidation directive from the storage client, the storage layer writes persistent metadata on the non-volatile storage device, wherein the persistent metadata comprises the designated logical identifier and indicates that the designated logical identifier does not correspond to valid data stored on the non-volatile storage device; and wherein the storage layer is configured to return an indication that the designated logical identifier does not correspond to data stored on the non-volatile storage device in response to a query pertaining to the designated logical identifier and while data corresponding to the designated logical identifier remains on the non-volatile storage device, the query being independent of a read command; wherein at least one of the storage layer and the storage client is embodied as non-transitory instructions stored on a non-volatile storage medium. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium comprising program code configured for execution by a computing device to cause the computing device to perform operations, comprising:
-
mapping identifiers of a logical address space to respective storage addresses of a non-volatile storage device in response to storing data segments corresponding to the identifiers at the respective storage addresses; in response to a discard request comprising a particular identifier of the logical address space; invalidating a mapping between the particular identifier and the respective storage address of the non-volatile storage device, and storing invalidation metadata on the non-volatile storage device, wherein the invalidation metadata comprises the particular logical identifier and is configured to indicate that the particular logical identifier does not correspond to valid data stored on the non-volatile storage device; and indicating whether specified identifiers of the logical address space correspond to valid data stored on the non-volatile storage device in response to queries pertaining to the specified identifiers based on whether mappings exist between the specified identifiers and respective storage addresses of the non-volatile storage device, the queries being independent of a read command. - View Dependent Claims (16, 17, 18, 19)
-
Specification