Recovering free space in nonvolatile storage with a computer storage system supporting shared objects
First Claim
1. A computer comprising:
- a nonvolatile storage device;
a plurality of objects stored on the nonvolatile storage device;
a plurality of entities stored on the nonvolatile storage device, wherein each entity includes one or more of the stored plurality of objects, wherein at least a first entity and a second entity of the plurality of entities can share objects;
a processing system comprising a processing unit and a memory, the processing system configured to;
in response to creating the first entity comprising a first set of the objects, generate a first probabilistic data structure representing inclusion of the first set of the objects in the first entity;
in response to creating the second entity comprising a second set of the objects, generate a second probabilistic data structure representing inclusion of the second set of the objects in the second entity; and
in response to deleting the second entity, for each object in the second set of the objects;
for each entity of the plurality of entities, apply a probabilistic data structure of the entity to the object to determine if the object likely is included in the entity, andin response to a determination that the object is not likely included in any entity in the plurality of entities, delete the object.
1 Assignment
0 Petitions
Accused Products
Abstract
To identify objects shared by entities and to, in turn, identify free space in nonvolatile storage, a computer system uses a probabilistic data structure which tests whether an element is a member of a set. Such probabilistic data structures are created for entities in the storage system that share objects. The probabilistic data structure for an entity represents the objects that are used by that entity. When an entity is deleted, each object used by that entity is compared to the probabilistic data structures of other entities to determine if there is a likelihood that the object is used by one or more of the other entities. If the likelihood determined for an object is above an acceptable threshold, then the object is not deleted. If the likelihood determined for an object is below the set threshold, then the object can be deleted and the corresponding storage locations can be marked as free.
19 Citations
18 Claims
-
1. A computer comprising:
-
a nonvolatile storage device; a plurality of objects stored on the nonvolatile storage device; a plurality of entities stored on the nonvolatile storage device, wherein each entity includes one or more of the stored plurality of objects, wherein at least a first entity and a second entity of the plurality of entities can share objects; a processing system comprising a processing unit and a memory, the processing system configured to; in response to creating the first entity comprising a first set of the objects, generate a first probabilistic data structure representing inclusion of the first set of the objects in the first entity; in response to creating the second entity comprising a second set of the objects, generate a second probabilistic data structure representing inclusion of the second set of the objects in the second entity; and in response to deleting the second entity, for each object in the second set of the objects; for each entity of the plurality of entities, apply a probabilistic data structure of the entity to the object to determine if the object likely is included in the entity, and in response to a determination that the object is not likely included in any entity in the plurality of entities, delete the object. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An article of manufacture comprising:
-
a computer storage device, computer program instructions stored on the computer storage device which, when processed by a processing system of a computer, the processing system comprising a processing unit and a memory, configures the computer to be comprising; a nonvolatile storage device; a plurality of objects stored on the nonvolatile storage device; a plurality of entities stored on the nonvolatile storage device, wherein each entity includes one or more of the stored plurality of objects, wherein at least a first entity and a second entity of the plurality of objects can share objects; the processing system configured to; in response to creating the first entity comprising a first set of the objects, generate a first probabilistic data structure representing inclusion of the first set of the objects in the first entity; in response to creating the second entity comprising a second set of the objects, generate a second probabilistic data structure representing inclusion of the second set of the objects in the second entity; and in response to deleting the second entity, for each object in the second set of the objects; for each entity of the plurality of entities, apply a probabilistic data structure of the entity to the object to determine if the object likely is included in the entity, and in response to a determination that the object is not likely included in any entity in the plurality of entities, delete the object. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer-implemented process performed by a computer program executing on a computer, the computer comprising a processing system, comprising a processing unit and a memory, and a nonvolatile storage device, a plurality of objects stored on the nonvolatile storage device, and a plurality of entities stored on the nonvolatile storage device, wherein each entity includes one or more of the stored plurality of objects, wherein a first entity and a second entity in the plurality of objects can share objects, the computer-implemented process comprising:
-
in response to creating the first entity comprising a first set of the objects, generating a first probabilistic data structure representing inclusion of the first set of the objects in the first entity; in response to creating the second entity comprising a second set of the objects, generating a second probabilistic data structure representing inclusion of the second set of the objects in the second entity; and in response to deleting the second entity, for each object in the second set of the objects; for each entity of the plurality of entities, apply a probabilistic data structure of the entity to the object to determine if the object likely is included in the entity, and in response to a determination that the object is not likely included in any entity in the plurality of entities, delete the object. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification