# US 11,030,249 B2 · Explorable visual analytics system having reduced latency in loading data

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

- Number: US 11,030,249 B2
- Document ID: US11030249B2
- Status: Granted
- Kind: B2
- Application number: 16/228,185
- Filed: 2018-12-20
- Published: 2020-04-02
- Granted: 2021-06-08
- Earliest claimed: 2018-10-01
- Assignees: Palo Alto Networks, Inc.
- Applicants: Palo Alto Networks, Inc.
- Inventors: Seyed Amir Yahyavi Firouz Abadi; Saman Amirpour Amraii; Laleh Roosta Pour
- Web page: https://patentgrep.com/patent/US11030249B2

## CPC

- G06F 16/9027: {Trees}
- G06F 7/14: Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/26: Visual data mining; Browsing structured data
- G06F 16/904: Browsing; Visualisation therefor (for navigating the web G06F16/954; browsing optimisation for the web G06F16/957)
- G06F 17/10: Complex mathematical operations {(function generation by table look-up G06F1/03; evaluation of elementary functions by calculation G06F7/544)}
- G06T 15/00: Three-dimensional [3D] image rendering
- G06T 15/005: {General purpose rendering architectures}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A method and system for processing datasets having a number of data points are described. A tree corresponding to the dataset and having multiple levels is provided. Each level includes a portion of the number of data points organized into tile(s). The levels are based on the number of data points and client resource(s). A manifest indicating a particular number of data points in each tile for each level of the tree is provided and sent to a client. A request for a portion of the tile(s) of a level of the plurality of levels is received from the client. The portion of the tile(s) corresponds to a portion of the dataset and is determined based on the manifest. The portion of the tile(s) includes not more than a maximum number of data points corresponding to the at least one client resource.

## Claims

### Claim 1

A method, comprising:
providing, using a processor, a tree corresponding to a dataset having a number of data points, the tree having a plurality of levels, each of the plurality of levels including at least a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of a client, a first level of the plurality of levels including not more than a maximum number of data points corresponding to the at least one client resource, each tile of the at least one tile in a remaining portion of the plurality of levels including not more than the maximum number of data points;
providing, using the processor, a manifest for the tree, the manifest indicating a particular number of data points in each of the at least one tile for each level of the tree;
providing the manifest to the client; and
receiving, from the client, a request for a portion of the at least one tile of a level of the plurality of levels, the portion of the at least one tile for the level corresponding to a portion of the dataset and being determined based on the manifest, the portion of the at least one tile including not more than the maximum number of data points.

### Claim 2 (depends on 1)

The method of claim 1, wherein a second level of the plurality of levels includes the number of data points, the maximum number of data points being selected from a predetermined maximum number of data points and a calculated maximum number of data points based on a query of the at least one client resource.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first level is a root level of the tree and the second level is a highest level of the tree, a portion of the plurality of levels between the root level and the highest level hierarchically including numbers of data points between the maximum number of data points and the number of data points.

### Claim 4 (depends on 1)

The method of claim 1, wherein the dataset is a portion of a first dataset, the first dataset including the dataset and a second dataset, the tree and the dataset corresponding to a first interval, the second dataset having a second number of data points and corresponding to a second interval, the method further comprising:
providing, using the processor, a second tree for the second dataset and the second interval, the second tree having a second plurality of levels, each of the second plurality of levels including a second portion of the second number of data points organized into at least a second tile; and
providing, using the processor, an additional manifest for the second tree, the additional manifest indicating an additional number of data points in each of the at least the second tile for each level of the second tree.

### Claim 5 (depends on 4)

The method of claim 4, wherein the providing the manifest includes:
providing the manifest and the second manifest to the client; and wherein the method further includes
sending, in response to the request, the portion of the at least one tile from the tree for the first interval and a second portion of the at least the second tile of a second level from the second tree for the second interval, the second portion of the at least the second tile corresponding to the portion of the at least one tile.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
compressing the tree to provide a compressed binary tree.

### Claim 7

A method, comprising:
providing, using a processor, a tree corresponding to a dataset having a number of data points, the tree having a plurality of levels, each of the plurality of levels including a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of a client;
providing, using the processor, a manifest for the tree, the manifest indicating a particular number of data points in each of the at least one tile for each level of the tree;
providing the manifest to the client; and
receiving, from the client, a request for a portion of the at least one tile of a level of the plurality of levels, the portion of the at least one tile for the level corresponding to a portion of the dataset and being determined based on the manifest, the portion of the at least one tile including not more than a maximum number of data points corresponding to the at least one client resource,
wherein a first level of the plurality of levels includes not more than the maximum number of data points and a second level of the plurality of levels includes the number of data points, the maximum number of data points being selected from a predetermined maximum number of data points and a calculated maximum number of data points based on a query of the at least one client resource; and
wherein the plurality of levels corresponds to a plurality of sampling ratios for the dataset.

### Claim 8

A system, comprising:
a processor configured to:
provide a tree corresponding to a dataset having a number of data points, the tree having a plurality of levels, each of the plurality of levels including at least a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of a client, a first level of the plurality of levels including not more than a maximum number of data points corresponding to the at least one client resource, each tile of the at least one tile in a remaining portion of the plurality of levels including not more than the maximum number of data points;
provide a manifest for the tree, the manifest indicating a particular number of data points in each of the at least one tile for each level of the tree;
provide the manifest to the client; and
receive, from the client, a request for a portion of the at least one tile of a level of the plurality of levels, the portion of the at least one tile for the level corresponding to a portion of the dataset and being determined based on the manifest, the portion of the at least one tile including not more than the maximum number of data points; and
a memory coupled to the processor and configured to provide the processor with instructions.

### Claim 9 (depends on 8)

The system of claim 8, wherein a second level of the plurality of levels includes the number of data points, the maximum number of data points being selected from a predetermined maximum number of data points and a calculated maximum number of data points based on a query of the at least one client resource.

### Claim 10 (depends on 9)

The system of claim 9, wherein the first level is a root level of the tree and the second level is a highest level of the tree, a portion of the plurality of levels between the root level and the highest level hierarchically including numbers of data points between the maximum number of data points and the number of data points.

### Claim 11 (depends on 9)

The system of claim 9, wherein the dataset is a portion of a first dataset, the first dataset including the dataset and a second dataset, the tree and the dataset corresponding to a first interval, the second dataset having a second number of data points and corresponding to a second interval, and wherein the processor is further configured to:
provide a second tree for the second dataset and the second time interval, the second tree having a second plurality of levels, each of the second plurality of levels including a second portion of the second number of data points organized into at least a second tile; and
provide an additional manifest for the second tree, the additional manifest indicating an additional number of data points in each of the at least the second tile for each level of the second tree.

### Claim 12 (depends on 11)

The system of claim 11, wherein to provide the manifest, the processor is further configured to:
provide the manifest and the second manifest to the client; and wherein the processor is further configured to
send, in response to the request, the portion of the at least one tile from the tree for the first interval and a second portion of the at least the second tile of a second level from the second tree for the second interval, the second portion of the at least the second tile corresponding to the portion of the at least one tile.

### Claim 13 (depends on 9)

The system of claim 9, wherein the processor further compresses the tree to provide a compressed binary tree.

### Claim 14

A system, comprising:
a processor configured to:
provide a tree corresponding to a dataset having a number of data points, the tree having a plurality of levels, each of the plurality of levels including a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of a client;
provide a manifest for the tree, the manifest indicating a particular number of data points in each of the at least one tile for each level of the tree;
provide the manifest to the client; and
receive, from the client, a request for a portion of the at least one tile of a level of the plurality of levels, the portion of the at least one tile for the level corresponding to a portion of the dataset and being determined based on the manifest, the portion of the at least one tile including not more than a maximum number of data points corresponding to the at least one client resource; and
a memory coupled to the processor and configured to provide the processor with instructions;
wherein a first level of the plurality of levels includes not more than the maximum number of data points and a second level of the plurality of levels includes the number of data points, the maximum number of data points being selected from a predetermined maximum number of data points and a calculated maximum number of data points based on a query of the at least one client resource;
wherein the plurality of levels corresponds to a plurality of sampling ratios for the dataset.

### Claim 15

A computer program product for processing a dataset having a number of data points, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
providing a tree corresponding to the dataset, the tree having a plurality of levels, each of the plurality of levels including at least a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of a client, a first level of the plurality of levels including not more than a maximum number of data points corresponding to the at least one client resource, each tile of the at least one tile in a remaining portion of the plurality of levels including not more than the maximum number of data points;
providing a manifest for the tree, the manifest indicating a particular number of data points in each of the at least one tile for each level of the tree;
providing the manifest to the client; and
receiving a request for a portion of the dataset from the client based on the manifest, the portion of the dataset corresponding to a level of the plurality of levels of the tree and at least a portion of the at least one tile for the level, the portion of the dataset including not more than a maximum number of data points corresponding to the at least one client resource.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein a second level of the plurality of levels includes the number of data points, the maximum number of data points being selected from a predetermined maximum number of data points and a calculated maximum number of data points based on a query of the at least one client resource.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein the first level is a root level of the tree and the second level is a highest level of the tree, a portion of the plurality of levels between the root level and the highest level hierarchically including numbers of data points between the maximum number of data points and the number of data points.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the dataset is a portion of a first dataset, the first dataset including the dataset and a second dataset, the tree and the dataset corresponding to a first interval, the second dataset having a second number of data points and corresponding to a second interval, the computer program product further includes computer instructions for:
providing a second tree for the second dataset and the second time interval, the second tree having a second plurality of levels, each of the second plurality of levels including a second portion of the second number of data points organized into at least a second tile; and
providing an additional manifest for the second tree, the additional manifest indicating an additional number of data points in each of the at least the second tile for each level of the second tree.

### Claim 19 (depends on 18)

The computer-program product of claim 18, wherein the computer instructions for providing the manifest include instructions for:
providing the manifest and the second manifest to the client; and wherein the computer instructions further include instructions for
sending, in response to the request, the portion of the at least one tile from the tree and a second portion of the at least the second tile of a second level from the second tree.

### Claim 20 (depends on 15)

The computer program product of claim 15, further comprising computer instructions for:
compressing the tree to provide a compressed binary tree.

### Claim 21

A method, comprising:
receiving, at a client, a manifest for a tree corresponding to a dataset having a number of data points, the tree having a plurality of levels, each of the plurality of levels including at least a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of the client, a first level of the plurality of levels including not more than a maximum number of data points corresponding to the at least one client resource, each tile of the at least one tile in a remaining portion of the plurality of levels including not more than the maximum number of data points, the manifest being for the tree and indicating a particular number of data points in each of the at least one tile for each level of the tree;
receiving, at a processor for the client, a request for a portion of the dataset;
determining, using the processor and based on the manifest, a level of the plurality of levels of the tree and a portion of the at least one tile for the level corresponding to the portion of the dataset and including not more than the maximum number of data points; and
sending a request for the at least a portion of the at least one tile of the level.

### Claim 22 (depends on 21)

The method of claim 21, further comprising:
receiving the portion of the dataset in a compressed binary format;
decompressing, using the processor, in parallel part of the portion of the dataset.

### Claim 23

A system for using a dataset having a number of data points, the system comprising:
an execution engine for receiving a request for a portion of the dataset and tracking processing of the portion of the dataset;
a download manager, coupled with the execution engine and for controlling reception and decompression of a manifest for a tree, the tree corresponding to the dataset and having a plurality of levels, each of the plurality of levels including a portion of the number of data points organized into at least one tile, the plurality of levels being based on the number of data points in the data set and at least one client resource of a client, the manifest indicating a particular number of data points in each of the at least one tile for each level of the tree, a first level of the plurality of levels including not more than a maximum number of data points corresponding to the at least one client resource, each tile of the at least one tile in a remaining portion of the plurality of levels including not more than the maximum number of data points;
a dataset module coupled with the download manager and the execution engine, the dataset module determining, based on the manifest, a level of the plurality of levels of the tree and a portion of the at least one tile for the level corresponding to the portion of the data, the portion of the at least one tile including not more than a maximum amount of data, the maximum amount of data corresponding to the at least one client resource, the dataset module providing the portion of the at least one tile of the level to the download manager, the download manager further controlling an external request for, reception of and decompression of the portion of the at least one tile of the level.
