Scalable and Manageable content based Object Management
Original Publication Date: 2004-Mar-25
Included in the Prior Art Database: 2004-Mar-25
Consider the case in which storage devices contain a heterogeneous set of objects. Each object has a different set of attributes and the need to be managed (that is, moved from one device to another, compressed, etc.) according to these attributes. To use a concrete example, DICOM medical images (DICOM objects) contain tags that assign values to certain object attributes, such as the age of the patient whose image is contained inside the DICOM object, the image compression format, etc. One may want to define a lifecycle for each image to define how the storage manager will treat the image according to its tag values, e.g., in the US, images of a child could be kept for 23 years, while adult images could be kept for 7 years. A simple approach would be to have the storage manager understand the inner structure of the objects and interpret their attributes. The storage manager could then hold a state machine that expresses the life-cycle of each object and executes it. The problems with this solution are: 1. Since the storage manager needs to know the inner structure of the object, the storage manager would have to be changed whenever one wanted to add a new type of object. 2. The storage manager would need to keep a state machine for each object and constantly monitor the object. This is unlikely to be scaled. 3. Defining the object's state machine would be harder, as each unique object would need to be addressed specifically. The above issues have deterred storage-management solutions from providing content-based management for stored objects. Each object is treated the same. One can look, for example, at TSM and see that all objects arriving from a specific TSM node are treated the same, no matter their content. This invention suggests an approach that allows for easy, scalable, and manageable content-based storage management by introducing classifiers, equivalence classes, object pools, and policies.