Systems and methods for notifying listeners of events
First Claim
Patent Images
1. An event listening system, the event listening system comprising:
- a file system including a plurality of files, the plurality of files logically stored in a tree;
for each of the plurality of files, a first data structure configured to track a set of listening files that are listening for events that affect the corresponding file;
a plurality of processes that each listen for events that affect at least one of the plurality of files;
a second data structure configured to track, for each of the plurality of files, which of the plurality of processes are listening to each of the files;
a listening module configured to receive an identifier for a first file of the plurality of files and to determine whether the first file is relevant to any of the plurality of processes using the first data structure and the second data structure;
a traverse module configured to traverse a first set of first data structures that correspond to a subset of the plurality of files that represent one branch of the tree; and
an update module configured to update at least one of the corresponding first data structures of the file in at least one traversed level by reviewing a scope of at least one of the listening files of the first data structure that corresponds to the file'"'"'s parent.
12 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, systems and methods are provided for tracking events wherein an event system monitors certain areas of a system. When an event occurs in one area of the system, the event system notifies the processes listening to that area of the system of the event.
-
Citations
26 Claims
-
1. An event listening system, the event listening system comprising:
-
a file system including a plurality of files, the plurality of files logically stored in a tree;
for each of the plurality of files, a first data structure configured to track a set of listening files that are listening for events that affect the corresponding file;
a plurality of processes that each listen for events that affect at least one of the plurality of files;
a second data structure configured to track, for each of the plurality of files, which of the plurality of processes are listening to each of the files;
a listening module configured to receive an identifier for a first file of the plurality of files and to determine whether the first file is relevant to any of the plurality of processes using the first data structure and the second data structure;
a traverse module configured to traverse a first set of first data structures that correspond to a subset of the plurality of files that represent one branch of the tree; and
an update module configured to update at least one of the corresponding first data structures of the file in at least one traversed level by reviewing a scope of at least one of the listening files of the first data structure that corresponds to the file'"'"'s parent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for listening for events, the method comprising:
-
logically storing a plurality of files in a tree;
for each of the plurality of files, tracking a set of listening files that are listening for events that affect the corresponding file;
storing a plurality of processes that each listen for events that affect at least one of the plurality of files;
for each of the plurality of files, tracking which of the plurality of processes are listening to each of the files;
receiving an identifier for a first file of the plurality of files;
determining whether the first file is relevant to any of the plurality of processes using the first data structure and the second data structure;
traversing a first set of first data structures that correspond to a subset of the plurality of files that represent one branch of the tree; and
updating at least one of the corresponding first data structures of the file in at least one traversed level, wherein updating includes reviewing a scope of at least one of the listening files of the first data structure that corresponds to the file'"'"'s parent. - View Dependent Claims (12, 13)
-
-
14. A system for listening for events, the system comprising:
-
a file structure comprising a plurality of files that are logically stored in a tree;
for each of the plurality of files, a data structure corresponding to each files, the data structure comprising;
a set of identifiers of the plurality of files that are listening for events that affect the corresponding file; and
an indication of the currentness of the data structure. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method for listening for events, the method comprising:
-
logically storing a plurality of files in a tree; and
for each of the plurality of files, storing a data structure corresponding to each files, the data structure comprising a set of identifiers of the plurality of files that are listening for events that affect the corresponding file and an indication of the currentness of the data structure. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A system for queuing event messages in a file system, the system comprising:
-
a plurality of processes that each listen for events that affect at least one of a plurality of files a first data structure configured to determine, for each of the plurality of processes, a set of listening files to which each of the plurality of processes is listening; and
a message module configured;
to receive an event message related to a first file of the plurality of files, the event message including an indication of a minimum scope that would have generated the event message;
to search the first data structure to determine a first subset of the plurality of processes that that listen for files that are affected by the event using the sets of listening files;
to determine a second subset of the first subset by removing from the first subset, processes whose scope is less than the minimum scope of the event message; and
to inform the second subset of the event message. - View Dependent Claims (25, 26)
-
Specification