Patent ID: 11934347
Assignee: EMC IP HOLDING COMPANY LLC
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 14:
15. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor, cause the performance of operations, the operations comprising:
maintaining an in-memory virtual view snapshot generation counter that is increased responsive to a snapshot of a virtual view being created, wherein a virtual inode is associated with at least one filesystem object represented in the virtual view;
maintaining an in-memory inode total weight corresponding to an inode of the filesystem object;
instantiating an in-memory virtual inode cache dataset for the filesystem object represented in the virtual view, the in-memory virtual inode cache dataset comprising:
a snapshot generation counter initialized based on the in-memory virtual view snapshot generation counter,
sharing-related data initialized based on an inode mapping file entry corresponding to a real inode of the filesystem object, and
an inode access weight initialized based on a weight stored in the inode mapping file entry; and

determining whether the real inode associated with the filesystem object is a shared inode, wherein the shared inode is shared among a group of virtual views, the determining comprising:
evaluating the in-memory virtual view snapshot generation counter and the snapshot generation counter of the in-memory virtual inode cache dataset, the evaluating comprising:
in response to the in-memory virtual view snapshot generation counter not being equal to the snapshot generation counter of the in-memory virtual inode cache dataset, determining that the real inode is shared, or evaluating the sharing-related data, and
in response to the sharing-related data indicating that there is sharing at an intermediate indirect block level, determining that the real inode is shared, or determining whether sharing is at an inode level, wherein the sharing-related data comprises a leaf shared value, and wherein the leaf shared value is indicative of whether sharing is at the inode level, and
in response to the sharing-related data indicating that there is sharing at the inode level, evaluating the inode access weight and the in-memory inode total weight, and,
in response to the leaf shared value and the inode access weight being less than the in-memory inode total weight, determining that the real inode is shared,

wherein the virtual view is configured to allow access to select objects of a real filesystem, and
wherein the virtual inode maps to the real inode according to a table associated with the virtual view.