# US 11,307,850 B2 · Efficient change analysis in poly-lingual corpus hierarchies

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

- Number: US 11,307,850 B2
- Document ID: US11307850B2
- Status: Granted
- Kind: B2
- Application number: 17/028,670
- Filed: 2020-09-22
- Published: 2022-03-24
- Granted: 2022-04-19
- Earliest claimed: 2020-09-22
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Ryan D. Murray
- Web page: https://patentgrep.com/patent/US11307850B2

## CPC

- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 16/2272: {Management thereof}
- G06F 16/245: Query processing
- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/3604: Analysis of software for verifying properties of programs (testing of software G06F11/3668)
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 16/1844: {Management specifically adapted to replicated file systems}
- G06F 16/2255: {Hash tables}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/285: {Clustering or classification}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques to determine deltas of a target data structure against a source data structure. One technique includes obtaining directory level checksums and rolling checksums for a source set of code in a first data structure, obtaining directory level checksums and rolling checksums for a target set of code in a second data structure, comparing the directory level checksums and the rolling checksums obtained for the target set of code against the directory level checksums and the rolling checksums obtained for the source set of code, identifying a location of change data of the target set of code at directory level within the second data structure based on the comparison of the directory level checksums and the rolling checksums obtained for the target set of code against the directory level checksums and the rolling checksums obtained for the source set of code, and outputting the location of the change data.

## Claims

### Claim 1

A method comprising:
obtaining, by a data processing system, directory level checksums and rolling checksums for a source set of code in a first data structure that is a hierarchical data structure;
obtaining, by the data processing system, a target set of code in a second data structure that is a hierarchical data structure;
calculating, by the data processing system, directory level checksums for the target set of code, wherein the directory level checksums are calculated for each directory level node of the second data structure;
calculating, by the data processing system, rolling checksums for the target set of code based on the directory level checksums for the target set of code;
comparing, by the data processing system, the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums calculated for the source set of code;
identifying, by the data processing system, a location of change data of the target set of code at directory level within the second data structure based on the comparison of the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums obtained for the source set of code; and
outputting, by the data processing system, the location of the change data;
wherein upon calculating the directory level checksums for each directory level node, the directory level checksums are stored and maintained for downstream processing including the comparison of the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums calculated for the source set of code; and rolling checksums are calculated for each directory level node of the second data structure as a concatenation of the directory level checksum for the directory level node and the directory level checksums for all descendent directory level nodes of the directory level node.

### Claim 2 (depends on 1)

The method of claim 1, wherein the obtaining the directory level checksums and rolling checksums for the source set of code, comprises:
creating directories for the first data structure;
creating source files for the source set of code;
populating the directories with the source files;
calculating the directory level checksums for the source set of code; and
calculating the rolling checksums for the source set of code based on the directory level checksums for the source set of code.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
creating, by the data processing system, directories for the second data structure;
creating, by the data processing system, target files for the target set of code; and
populating, by the data processing system, the directories with the target files.

### Claim 4 (depends on 1)

The method of claim 1, wherein the hierarchical data structure is in native format, and the comparing comprises a top down approach starting at root level comparison and working down each branch for the directory level checksum and the rolling checksum comparisons.

### Claim 5 (depends on 1)

The method of claim 1, wherein the hierarchical data structure is in reverse format, and the comparing comprises a bottom up approach starting at root level comparison and working up each segment for the directory level checksum and the rolling checksum comparisons.

### Claim 6 (depends on 1)

The method of claim 1, further comprising obtaining, by the data processing system, file level checksums for the source set of code in the first data structure, and calculating, by the data processing system, file level checksums for the target set of code, wherein:
the comparing comprises comparing the file level checksums, the directory level checksums, and the rolling checksums calculated for the target set of code against the file level checksums, the directory level checksums, and the rolling checksums calculated for the source set of code;
the identifying comprises identifying the location of the change data of the target set of code at the directory level and file level within the second data structure based on the comparison of the file level checksums, the directory level checksums, and the rolling checksums calculated for the target set of code against the file level checksums, the directory level checksums, and the rolling checksums calculated for the source set of code; and
outputting, by the data processing system, the location of the change data.

### Claim 7

A non-transitory computer-readable memory storing a plurality of instructions executable by one or more processors, the plurality of instructions comprising instructions that when executed by the one or more processors cause the one or more processors to perform processing comprising:
obtaining directory level checksums and rolling checksums for a source set of code in a first data structure that is a hierarchical data structure;
obtaining a target set of code in a second data structure that is a hierarchical data structure;
calculating directory level checksums for the target set of code, wherein the directory level checksums are calculated for each directory level node of the second data structure;
calculating rolling checksums for the target set of code based on the directory level checksums for the target set of code;
comparing the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums calculated for the source set of code;
identifying a location of change data of the target set of code at directory level within the second data structure based on the comparison of the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums obtained for the source set of code; and
outputting the location of the change data,
wherein upon calculating the directory level checksums for each directory level node, the directory level checksums are stored and maintained for downstream processing including the comparison of the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums calculated for the source set of code; and rolling checksums are calculated for each directory level node of the second data structure as a concatenation of the directory level checksum for the directory level node and the directory level checksums for all descendent directory level nodes of the directory level node.

### Claim 8 (depends on 7)

The non-transitory computer-readable memory of claim 7, wherein the obtaining the directory level checksums and rolling checksums for the source set of code, comprises:
creating directories for the first data structure;
creating source files for the source set of code;
populating the directories with the source files;
calculating the directory level checksums for the source set of code; and
calculating the rolling checksums for the source set of code based on the directory level checksums for the source set of code.

### Claim 9 (depends on 7)

The non-transitory computer-readable memory of claim 7, wherein the processing further comprises:
creating directories for the second data structure;
creating target files for the target set of code; and
populating the directories with the target files.

### Claim 10 (depends on 7)

The non-transitory computer-readable memory of claim 7, wherein the hierarchical data structure is in native format, and the comparing comprises a top down approach starting at root level comparison and working down each branch for the directory level checksum and the rolling checksum comparisons.

### Claim 11 (depends on 7)

The non-transitory computer-readable memory of claim 7, wherein the hierarchical data structure is in reverse format, and the comparing comprises a bottom up approach starting at root level comparison and working up each segment for the directory level checksum and the rolling checksum comparisons.

### Claim 12 (depends on 7)

The non-transitory computer-readable memory of claim 7, wherein the processing further comprises:
the comparing comprises comparing the file level checksums, the directory level checksums, and the rolling checksums calculated for the target set of code against the file level checksums, the directory level checksums, and the rolling checksums calculated for the source set of code;
the identifying comprises identifying the location of the change data of the target set of code at the directory level and file level within the second data structure based on the comparison of the file level checksums, the directory level checksums, and the rolling checksums calculated for the target set of code against the file level checksums, the directory level checksums, and the rolling checksums calculated for the source set of code; and
outputting the location of the change data.

### Claim 13

A system comprising:
one or more processors; and
a memory coupled to the one or more processors, the memory storing a plurality of instructions executable by the one or more processors, the plurality of instructions comprising instructions that when executed by the one or more processors cause the one or more processors to perform processing comprising:
obtaining directory level checksums and rolling checksums for a source set of code in a first data structure that is a hierarchical data structure;
obtaining a target set of code in a second data structure that is a hierarchical data structure;
calculating directory level checksums for the target set of code, wherein the directory level checksums are calculated for each directory level node of the second data structure;
calculating rolling checksums for the target set of code based on the directory level checksums for the target set of code;
comparing the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums obtained for the source set of code;
identifying a location of change data of the target set of code at directory level within the second data structure based on the comparison of the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums calculated for the source set of code; and
outputting the location of the change data,
wherein upon calculating the directory level checksums for each directory level node, the directory level checksums are stored and maintained for downstream processing including the comparison of the directory level checksums and the rolling checksums calculated for the target set of code against the directory level checksums and the rolling checksums calculated for the source set of code; and rolling checksums are calculated for each directory level node of the second data structure as a concatenation of the directory level checksum for the directory level node and the directory level checksums for all descendent directory level nodes of the directory level node.

### Claim 14 (depends on 13)

The system of claim 13, wherein the obtaining the directory level checksums and rolling checksums for the source set of code, comprises:
creating directories for the first data structure;
creating source files for the source set of code;
populating the directories with the source files;
calculating the directory level checksums for the source set of code; and
calculating the rolling checksums for the source set of code based on the directory level checksums for the source set of code.

### Claim 15 (depends on 13)

The system of claim 13, wherein the hierarchical data structure is in native format, and the comparing comprises a top down approach starting at root level comparison and working down each branch for the directory level checksum and the rolling checksum comparisons.

### Claim 16 (depends on 13)

The system of claim 13, wherein the hierarchical data structure is in reverse format, and the comparing comprises a bottom up approach starting at root level comparison and working up each segment for the directory level checksum and the rolling checksum comparisons.

### Claim 17 (depends on 13)

The system of claim 13, wherein the processing further comprises:
the comparing comprises comparing the file level checksums, the directory level checksums, and the rolling checksums calculated for the target set of code against the file level checksums, the directory level checksums, and the rolling checksums calculated for the source set of code;
the identifying comprises identifying the location of the change data of the target set of code at the directory level and file level within the second data structure based on the comparison of the file level checksums, the directory level checksums, and the rolling checksums calculated for the target set of code against the file level checksums, the directory level checksums, and the rolling checksums calculated for the source set of code; and
outputting the location of the change data.
