# US 12,111,796 B2 · System and method for maintaining a comprehensive catalog of hierarchical file data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,111,796 B2
- Document ID: US12111796B2
- Status: Granted
- Kind: B2
- Application number: 18/210,493
- Filed: 2023-06-15
- Published: 2023-12-21
- Granted: 2024-10-08
- Earliest claimed: 2022-06-20
- Assignees: Starfish Storage Corporation
- Applicants: Starfish Storage Corporation
- Inventors: Marcin W. Gozdalik; Marcin Barczynski; Stanislaw K. Skonieczny; Dariusz Dzialak; Douglas H. Hughes; Bradley C. Elkin; Michal K. Albrycht
- Web page: https://patentgrep.com/patent/US12111796B2

## CPC

- G06F 16/185: Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof (details of archiving G06F16/11)
- G06F 16/148: {File search processing}
- G06F 16/164: {File meta data generation}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method for maintaining a comprehensive catalog of metadata records that describes hierarchical file data held in one or more file systems includes a Modular Change Processor (MCP) that captures event notifications pertaining to contents of affected directories within the file systems, coalesces the translated event notifications, and transmits to the catalog, instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’. An Enumerator Computer (EC) receives from the catalog, identities of directories having metadata marked ‘out-of-sync’; receives from the file systems, updated contents of the ‘out-of-sync’ directories; generates replacement metadata for the updated contents; and sends the replacement metadata to the catalog, optionally with instructions to replace the metadata marked ‘out-of-sync’ with corresponding replacement metadata and to mark the replacement metadata as ‘in-sync’.

## Claims

### Claim 1

A system for maintaining a comprehensive catalog of metadata records that describes hierarchical file data held in one or more file systems, the system comprising:
a Modular Change Processor (MCP) communicably couplable to one or more specialized file systems containing hierarchical file data, and to a catalog containing metadata corresponding to the hierarchical file data;
an Enumerator Computer (EC) communicably couplable to the catalog and to the one or more specialized file systems;
the MCP having a first memory, a first processor, and a first stored program in the first memory executable by the first processor, the first stored program configured to:
(a) cause the MCP to capture event notifications in one or more native formats generated by the one or more specialized file systems, the event notifications pertaining to contents of affected directories within the hierarchical file data;
(b) cause the MCP to translate the event notifications into a common format;
(c) cause the MCP to coalesce the translated event notifications into one or more coalesced notifications for particular ones of the affected directories; and
(d) cause the MCP to use the coalesced notifications to generate and transmit to the catalog, instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’ independently of any reference to the contents of the affected directories;
the EC having a second memory, a second processor, and a second stored program in the second memory executable by the second processor, the second stored program configured to:
(e) cause the EC to receive from the catalog, identities of directories having metadata marked ‘out-of-sync’ (the ‘out-of-sync’ directories) independently of any reference to the contents of the affected directories;
(f) cause the EC, after said cause (e), to receive; from the one or more specialized file systems, updated contents of the ‘out-of-sync’ directories;
(g) cause the EC to generate replacement metadata for the updated contents; and
(h) cause the EC to send the replacement metadata to the catalog.

### Claim 2 (depends on 1)

The system of claim 1, wherein each of said one or more coalesced notifications comprises an aggregation of a plurality of said event notifications affecting a particular directory.

### Claim 3 (depends on 2)

The system of claim 2, wherein each of said one or more coalesced notifications comprises a status indicator for the particular directory.

### Claim 4 (depends on 3)

The system of claim 3, wherein each of said one or more coalesced notifications comprises a status indicator with a timestamp, for the particular directory.

### Claim 5 (depends on 4)

The system of claim 4, wherein said cause (d) further comprises causing the MCP to use the coalesced notifications to generate and transmit to the catalog, instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’ with an out-of-sync-time timestamp.

### Claim 6 (depends on 5)

The system of claim 5, wherein said cause (e) further comprises causing the EC to receive from the catalog, identities of directories (identified directories) having metadata marked ‘out-of-sync’ (the identified ‘out-of-sync’ directories) with an out-of-sync timestamp plus any tolerance, is greater than any in-sync-time timestamp.

### Claim 7 (depends on 6)

The system of claim 6, wherein said cause (f) further comprises causing the EC to receive, from the one or more specialized file systems, updated contents of the identified ‘out-of-sync’ directories.

### Claim 8 (depends on 7)

The system of claim 7, wherein said cause (h) further comprises causing the EC to send the replacement metadata to the catalog and mark the identified ‘out-of-sync’ directories with an in-sync-time timestamp.

### Claim 9 (depends on 1)

The method of claim 1, wherein the updated contents of the ‘out-of-sync’ directories of said cause (f) further comprises contents of any new directories.

### Claim 10 (depends on 1)

The system of claim 1, wherein said cause (h) further comprises sending the replacement metadata to the catalog with instructions to replace the metadata marked ‘out-of-sync’ with corresponding replacement metadata and to mark the replacement metadata as ‘in-sync’ at a particular time.

### Claim 11 (depends on 1)

The system of claim 1, wherein the native formats include one or more of: real-time notifications of events; snapshots of events having taken place over a predetermined time interval; lists of events having taken place over a predetermined time interval, and/or combinations thereof.

### Claim 12 (depends on 11)

The system of claim 11, wherein the native formats include one or more of formats generated by: change log event processors; snapshot-based event processors; policy based event processors; and/or combinations thereof.

### Claim 13 (depends on 1)

The system of claim 1, wherein said instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’, further comprises instructions to mark metadata corresponding to a tree containing the affected directories as ‘tree-out-of-sync’.

### Claim 14

A method of maintaining a comprehensive catalog of metadata records that describes hierarchical file data held in one or more file systems, the method comprising:
(a) configuring a Modular Change Processor (MCP) for being communicably coupled to one or more specialized file systems containing hierarchical file data, and to a catalog containing metadata corresponding to the hierarchical file data;
(b) configuring an Enumerator Computer (EC) for being communicably coupled to the catalog and to the specialized file systems;
(c) capturing, with the MCP, event notifications in one or more native formats generated by the one or more specialized file systems, the event notifications pertaining to contents of affected directories within the hierarchical file data;
(d) translating, with the MCP, the event notifications into a common format;
(e) coalescing, with the MCP, the translated event notifications into one or more coalesced notifications for particular ones of the affected directories;
(f) with the MCP, using the coalesced notifications to generate and transmit to the catalog, instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’ independently of any reference the contents of the affected directories;
(g) with the EC, receiving from the catalog, identities of directories having metadata marked ‘out-of-sync’ (the ‘out-of-sync’ directories) independently of any reference to the contents of the affected directories;
(h) with the EC, after said receiving (g), receiving from the one or more specialized file systems, updated contents of the ‘out-of-sync’ directories;
(i) generating, with the EC, replacement metadata for the updated contents; and
(j) sending, with the EC, the replacement metadata to the catalog.

### Claim 15 (depends on 14)

The method of claim 14, wherein each of said one or more coalesced notifications comprises an aggregation of a plurality of said event notifications affecting a particular directory.

### Claim 16 (depends on 15)

The method of claim 15, wherein each of said one or more coalesced notifications comprises a status indicator for the particular directory.

### Claim 17 (depends on 16)

The method of claim 16, wherein each of said one or more coalesced notifications comprises a status indicator with a timestamp, for the particular directory.

### Claim 18 (depends on 17)

The method of claim 17, wherein said step (f) further comprises using the coalesced notifications to generate and transmit to the catalog, instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’ with an out-of-sync-time timestamp.

### Claim 19 (depends on 18)

The method of claim 18, wherein said step (g) further comprises receiving from the catalog, identities of directories (identified directories) having metadata marked ‘out-of-sync’ (the identified ‘out-of-sync’ directories) with an out-of-sync timestamp plus any tolerance, which is greater than any in-sync-time timestamp.

### Claim 20 (depends on 19)

The method of claim 19, wherein said step (h) further comprises receiving, from the one or more specialized file systems, updated contents of the identified ‘out-of-sync’ directories.

### Claim 21 (depends on 20)

The method of claim 20, wherein said step (j) further comprises sending the replacement metadata to the catalog and marking the identified ‘out-of-sync’ directories with an in-sync-time timestamp.

### Claim 22 (depends on 14)

The method of claim 14, wherein the updated contents of the ‘out-of-sync’ directories of said step (j) further comprises contents of any new directories.

### Claim 23 (depends on 14)

The system of claim 14, wherein said step (j) further comprises sending the replacement metadata to the catalog with instructions to replace the metadata marked ‘out-of-sync’ with corresponding replacement metadata and to mark the replacement metadata as ‘in-sync’ at a particular time.

### Claim 24 (depends on 14)

The system of claim 14, wherein the native formats include one or more of: real-time notifications of events; snapshots of events having taken place over a predetermined time interval; lists of events having taken place over a predetermined time interval, and/or combinations thereof.

### Claim 25 (depends on 24)

The system of claim 24, wherein the native formats include one or more of formats generated by: change log event processors; snapshot-based event processors; policy based event processors; and/or combinations thereof.

### Claim 26 (depends on 14)

The system of claim 14, wherein said instructions to mark metadata corresponding to the affected directories as ‘out-of-sync’, further comprises instructions to mark metadata corresponding to a tree containing the affected directories as ‘tree-out-of-sync’.
