Mechanism for performing fast directory lookup in a server system
First Claim
Patent Images
1. A method for sending a notification by a server system of changes in a directory registered for notification, the server system including a processor, the method comprising:
- generating an index for a node of a file system, the file system comprising a plurality of nodes, at least one of the nodes having an ancestor node, each node comprising a data container, each node associated with a unique numeric identifier;
in response to a request received by the server system to modify a node, determining whether a directory is an ancestor node of the modified node by dividing the numeric identifier of the directory node into the index of the modified node, whereby no remainder resulting from the division determines the directory node is an ancestor of the modified node;
sending a notification of a change in the directory registered for notification, wherein the directory registered for notification is associated with the directory node.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a novel technique for maintaining directory-based quota, for performing directory notification to a client system, and performing other such operations by efficiently finding ancestral directory associations on a server system without performing multiple accesses to data structures associated with the directory associations. Since data structures do not need to be accessed multiple times, performance of the server system can be improved.
56 Citations
27 Claims
-
1. A method for sending a notification by a server system of changes in a directory registered for notification, the server system including a processor, the method comprising:
-
generating an index for a node of a file system, the file system comprising a plurality of nodes, at least one of the nodes having an ancestor node, each node comprising a data container, each node associated with a unique numeric identifier; in response to a request received by the server system to modify a node, determining whether a directory is an ancestor node of the modified node by dividing the numeric identifier of the directory node into the index of the modified node, whereby no remainder resulting from the division determines the directory node is an ancestor of the modified node; sending a notification of a change in the directory registered for notification, wherein the directory registered for notification is associated with the directory node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A server system for sending a notification of changes in a directory registered for notification, the server system comprising:
-
a processor; an index generation engine generating a first index and a second index for each node of a file system, comprising a plurality of nodes, at least one of the nodes having an ancestor node, each node comprising a data container and comprising a first index and a second index; an index manipulation engine configured, in response to a request received by the server system to modify a node, to divide the first index of the modified node by the inode number of the directory registered for notification and responsive to the result of the division not leaving a remainder, determine the directory registered for changes is an ancestor of the modified node, without performing a text-based comparison using a name of the ancestor node; and a directory notification engine configured to send a notification of a modification in the directory registered for notification. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method for sending a change notification by a server of changes in a file system directory registered for notification, the server system including a processor, the method comprising:
-
generating, for each directory node of a file system, a first index and a second index, the first index representing an inode number of the directory, the second index representing a multiplication of a first index and a second index of an immediate parent of the directory node, the file system comprising a plurality of nodes including a root node, each node comprising a first index and a second index; generating, for each data container node of the file system, a first index and a second index, the first index representing an inode number the immediate parent of the data container node, the second index representing a multiplication of a first index and second index of the immediate parent of the data container; in response to a request received by the server system to modify a data container node, identifying an ancestor node by dividing the second index of the modified data container node by the first index of the directory registered for change, wherein the ancestor node is associated with the directory registered for change; and in response to no remainder resulting from the division, sending a notification of a change in the file system directory registered for notification. - View Dependent Claims (17)
-
-
18. A non-transitory computer readable medium containing executable program instructions for execution by a processor, comprising:
-
program instructions that generate an index in a data structure associated with each node of a file system, whereby the index of a root node identifies a node; program instructions that in response to a request received via a file-based protocol to modify a node, identify an ancestor node by dividing the index associated with the modified node by the inode number of an ancestor node of the modified node, the ancestor node associated with a directory registered for notification, whereby no remainder resulting from the division identifies the directory registered for notification as an ancestor of the modified node; and program instructions that send a notification via the file-based protocol of a change in the directory registered for notification. - View Dependent Claims (19, 20, 21)
-
-
22. A method for sending a notification by a server system of changes in a directory registered for notification, the server system including a processor, the method comprising:
-
generating a first index and a second index associated with each leaf node of a file system, comprising a plurality of nodes, each leaf node having at least one ancestor node, and each leaf node comprising a data container, a first index, and a second index, wherein the first index is a multiplication a plurality of prime numbers, and wherein the second index is a multiplication of a plurality of prime numbers; in response to a request received by the server system to modify a leaf node, identifying an ancestor node by dividing the first index associated with the modified leaf node by a prime number associated with the ancestor node, the ancestor node associated with the directory registered for notification; and sending a notification of a change in the directory registered for notification. - View Dependent Claims (23, 24)
-
-
25. A system for sending a notification by a server system of changes in a directory registered for notification, the server system comprising:
-
a processor; an index generation engine generating a first index and a second index for each leaf node of a file system, comprising a plurality of nodes, each leaf node having at least one ancestor node, and each leaf node comprising a data container, a first index, and a second index, wherein the first index is a product of a first set of prime numbers, and wherein the second index is a product of a second set of prime numbers; an index manipulation engine configured, in response to a request received by the server system to modify a leaf node, to divide the first index associated the modified leaf node by a prime number associated with a directory node, to determine whether the directory node is an ancestor of the modified leaf node, the ancestor node associated with the directory registered for notification; and a directory notification engine configured to send a notification of a modification in the directory registered for notification. - View Dependent Claims (26, 27)
-
Specification