Patent ID: 7389303
Filing Date: 2008-06-17
Classification: G06F,Y10S

Abstract:
1. In a distributed computing environment, a method of determining a resource manager associated with a file in order to allow the resource manager to monitor transactional relations for that file within a volume, the method comprising: identifying an opening of a file object chosen from a plurality of file objects within a volume of a file system, wherein transactions associated with the plurality of file objects are monitored by a corresponding resource manager chosen from a plurality of resource managers for the volume, and wherein each of the plurality of resources managers is a file object that participates in a file object transaction and provides a subsystem that implements a transaction-protected resource that monitors and controls changes to file objects within its scope defined by the collection of file objects for which it is responsible such that a file object within a resource managers scope is associated only with that resource manager and the resource manager independently maintains a set of metadata and provides transactional capabilities for all file objects within its scope, which guarantees transactional consistency; based on the opening of the file object, creating a file control block that provides an in-memory data structure in which the file system maintains state for the open file object, wherein the file control block forms part of a hierarchical data structure within the file system's directory tree, which includes a root file object representing a default resource manager for files not managed by other resource managers in the file system and at least one subdirectory file object under the root file object representing another resource manager within the directory tree, wherein both the root file object and the at least one subdirectory file object include special properties and attributes, including per-resource manager transactional-related metadata maintained on a per resource manager basis, rather than on a per volume basis, and wherein the default resource manage becomes the default depository for transactional metadata for all files that are not part of the at least one subdirectory resource manager; determining if the file control block includes a valid pointer to a resource manager control block, wherein if no valid control block exists for the resource manager control block, the method further comprises; determining if the file control block is flagged as the at least one subdirectory file object in the directory tree, wherein if the control block is flagged as such, a new resource manager control block for the file object is created and a pointer to the new resource manager control block is stored in a field for the file control block created, and wherein if the file control block is not flagged as the subdirectory file object, the method further comprises: determining whether a file control block exists for a parent file object in the directory tree, wherein if the file control block for the parent exists, determining a resource manager control block for the parent file object and assigning a pointer to the file control block to the file object opened that references the resource manager control block for the parent file object, and wherein if no parent file control block exists, the method further comprises: traversing the directory tree until a higher parent with a valid resource manager control block is found or a higher parent is flagged as the root file object or the at least one subdirectory file object, wherein if a valid resource manager control block is found for the higher parent, a pointer to the valid resource manager control block is including in a field of at least the file control block for the file object open, and wherein if the control block for the higher parent is flagged, a new resource manager control block for the control block for the higher parent is created and a pointer thereto is included in a field for at least the file control block for the file object created.