Patent ID: 9456026
Filing Date: 2016-09-27
CPC Classification: G06F,H04L

Claim Text:
1. A method comprising: receiving a client file change notification request from a local client process at a local node, the client file change notification request specifying a file path and an identifier for the local client process such that a file change notification message is sent to the local client process in response to detecting a change in a directory specified by the file path; performing a first flagging of a local client process at one or more of a first local node and one or more second local nodes to receive file change information in response to receiving the client file change notification request from a local client process at a local node without sending the file change notification request to a global node to reduce communications with the global node; creating an entry for the local client process in a local database of the first local node based on the client file change notification request, the local database comprising entries corresponding to the first flagging of the local client processes, the local database entry comprising the local client process identifier and the file path; performing a second flagging of the first local node to receive file change information for a file path in response to the first flagging, the local client process being the first local client process of a plurality of local client processes associated with the local node flagged to receive file change information for the file path; creating an entry for the first local node in a global database of a global node in response to the second flagging, the global database comprising entries corresponding to the second flagging of the first local node, the global database entry comprising the local node identifier and the file path; detecting by the first local node a file change that comprises a client one or more of creating, deleting, or modifying a file system item addressed through a file path; creating, on the first local node, a file change notification message in response to detecting the file change, the first local node sending the file change notification message to one or more local client processes flagged to receive file change information for the file path based on entries in the local database, wherein a local client process is associated with the first local node and represents a client connected to the first local node and wherein the file change notification message comprises information regarding a file change for the file path; checking the global database of the global node to determine one or more second local nodes flagged to receive file change information for the file path, the one or more second local nodes different than the first local node; sending a file change notification message from the first local node to the determined one or more second local nodes in response to receiving identification of the one or more second local nodes flagged to receive file change information for the file path, a second local node sending a file change notification message to one or more second local client processes flagged to receive file change information for the file path, the one or more second local client processes associated with the second local node and being different than the one or more local client processes associated with the first local node wherein a second local client process represents a client connected to a second local node; receiving, by the first local node, a client unflaq request, the client unflag request specifying the file path and the identifier for the local client process such that delivery of the file change notification messages to the local client process in response to detecting a change in a directory specified by the file path ceases; performing a first unflagging of a local client process at the first local node from receiving file change information for the file path in response to the client unflag request without sending the client unflag request to the global node; updating an entry for the local client process in the local database with a deletion marker and a first timestamp based on a determination that the local client process is the last local client process unflagged to receive file change notifications for the file path, the first timestamp indicating a time when the last local client process was unflagged to receive file change notifications for the file path, the entry being removed from the local database in response to expiration of a predetermined period of time after the time indicated by the first timestamp; performing a second unflagging of a local node from receiving file change information for a file path in response to the first unflagging, the local client process being the last local client process of a plurality of local client processes associated with the furst local node unflagged to receive file change information for the file path; and updating an entry for the first local node in the global database with a deletion marker and a second timestamp in response to the second unflagging, the second timestamp indicating a time when the last local node was unflagged to receive file change notifications for the file path, the entry being removed from the global database based on expiration of a predetermined period of time after the time indicated by the second timestamp.