# US 10,482,107 B2 · Apparatus, system and method for the efficient storage and retrieval of 3-dimensionally organized data in cloud-based computing architectures

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

- Number: US 10,482,107 B2
- Document ID: US10482107B2
- Status: Granted
- Kind: B2
- Application number: 14/936,440
- Filed: 2015-11-09
- Published: 2016-03-03
- Granted: 2019-11-19
- Earliest claimed: 2011-10-18
- Assignees: Ubiterra Corporation
- Applicants: Ubiterra Corporation
- Inventors: Peter W. Flanagan
- Web page: https://patentgrep.com/patent/US10482107B2

## CPC

- G06F 16/285: {Clustering or classification}
- G01V 1/302: {in 3D data cubes}
- G01V 1/345: {Visualisation of seismic data or attributes, e.g. in 3D cubes}
- G06F 3/0611: {in relation to response time}
- G06F 3/064: {Management of blocks}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F 16/355: Creation or modification of classes or clusters
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G01V: GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS (means for indicating the location of accidentally buried, e.g. snow-buried, persons A63B29/02)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A cloud based storage system and methods for uploading and accessing 3-D data partitioned across distributed storage nodes of the system. The data cube is processed to identify discrete partitions thereof, which partitions may be organized according to the x (e.g., inline), y (e.g., crossline) and/or z (e.g., time) aspects of the cube. The partitions are stored in unique storage nodes associated with unique keys. Sub-keys may also be used as indexes to specific data values or collections of values (e.g., traces) within a partition. Upon receiving a request, the proper partitions and values within the partitions are accessed, and the response may be passed to a renderer that converts the values into an image displayable at a client device. The request may also facilitate data or image access at a local cache, a remote cache, or the storage partitions using location, data, retrieval, and/or rendering parameters.

## Claims

### Claim 1

A method of obtaining image data from cloud storage comprising:
generating a request for an image at a client device, wherein:
the image is a graphical rendering of image data rendered according to a rendering parameter,
the image data is a subset of an image data set having a multi-dimensionally organized form, the image data set partitioned across a plurality of remote storage nodes of a cloud storage,
the request includes each of an identifier associated with a location in the image data set and the rendering parameter,
the request is used to determine whether a cached image is available in a local cache of the client device, the cached image including the requested image; and
when the cached image is not available in the local cache, the request is further used to determine whether the image data is cached in a remote cache, the remote cache configured to store the image data for rendering the image according to the rendering parameter when the cached image is not available in the local cache; and
when the image data is not available in the remote cache, caching the image data for rendering the image in the remote cache, the image data retrieved from the plurality of remote storage nodes.

### Claim 2 (depends on 1)

The method of claim 1 wherein the request further comprises a uniform resource locator comprising a network location for a server configured to access the remote cache and the plurality of remote storage nodes of the cloud storage and a retrieval parameter.

### Claim 3 (depends on 2)

The method of claim 2 wherein:
the image data set comprises a plurality of seismic trace data values,
the network location is a network address for the server,
the server manages a retrieval of the seismic trace data values from the plurality of remote storage nodes,
the retrieval parameter includes at least one trace identifier, and
the rendering parameter includes data processing information applied by a rendering application run against the image data.

### Claim 4 (depends on 2)

The method of claim 2 wherein:
the network location comprises a network address of the server,
the server manages retrieval and rendering of images from image data of the image data set, and
the retrieval parameter includes at least one of an inline value, a cross line value, and a time value.

### Claim 5 (depends on 1)

The method of claim 1 wherein:
the local cache is a browser cache,
the request includes a full uniform resource locator comprising a network location, a retrieval parameter, and the rendering parameter, the full uniform resource locator for accessing the cached image in the browser cache;
the network location and the retrieval parameter are used to access the image data cached in the remote cache,
the rendering parameter is used by a rendering application to generate the image; and
the retrieval parameter is used to generate a plurality of partition keys to retrieve the image data from the plurality of remote storage nodes.

### Claim 6 (depends on 1)

The method of claim 1 wherein each of the plurality of remote storage nodes is a virtual storage node.

### Claim 7 (depends on 1)

The method of claim 1 wherein the image data set comprises three-dimensional data and the image data for rendering the image is a two-dimensional portion of the three-dimensional data.

### Claim 8 (depends on 7)

The method of claim 7 wherein the request further comprises a retrieval parameter, the retrieval parameter including an aspect parameter and a number parameter for generating keys to retrieve the image data from the plurality of remote storage nodes for rendering the two-dimensional portion of the three-dimensional data.

### Claim 9

A method of obtaining data from cloud storage comprising:
receiving a request for an image, wherein:
the image is a graphical rendering of image data rendered according to a rendering parameter,
the image data is a subset of an image data set having a multi-dimensionally organized form and partitioned across at least a first node and a second node of a remote distributed storage system, and
the request includes an identifier associated with the requested image and the rendering parameter;
when the image data corresponding to the requested image is not cached in a remote cache, generating a first key for retrieving a first portion of the image data from the first node and a second key for retrieving a second portion of the image data from the second node; and
providing the first portion of the image data, the second portion of the image data, and the rendering parameter to a browser for rendering of the requested image according to the rendering parameter.

### Claim 10 (depends on 9)

The method of claim 9 wherein the request includes a network address for a server in operable communication with the remote distributed storage system.

### Claim 11 (depends on 9)

The method of claim 9 further comprising caching the first portion of the image data and the second portion of the image data in the remote cache and caching the requested image at a rendering cache.

### Claim 12 (depends on 11)

The method of claim 11 wherein the rendering cache is a browser cache.

### Claim 13 (depends on 9)

The method of claim 9 wherein the image data set comprises three-dimensional data and the request further comprising an aspect parameter, the method further comprising:
generating the first key and the second key based on the aspect parameter;
providing the image data, the aspect parameter, and the rendering parameter to the browser, the image data being a two-dimensional portion of the three-dimensional data;
rendering the image data at the browser based on the aspect parameter and the rendering parameter to generate the requested image; and
caching the requested image in a browser cache of the browser.

### Claim 14 (depends on 10)

The method of claim 10 wherein the request further includes a network parameter, an aspect parameter and a number parameter, the method further comprising, when the image is not in a rendering cache, at the server:
when the first portion of the image data and the second portion of the image data are cached at a remote cache, retrieving the first portion of the image data and the second portion of the image data from the remote cache;
when the first portion of the image data and the second portion of the image data are not cached at the remote cache, retrieving the first portion of the image data and the second portion of the image data from the remote distributed storage system; and
transmitting the first portion of the image data and the second portion of the image data to a renderer to generate the requested image according to the rendering parameter.

### Claim 15 (depends on 14)

The method of claim 14, further comprising caching the first portion of the image data and the second portion of the image data in the remote cache when the first portion of the image data and the second portion of the image data are not cached in the remote cache.

### Claim 16 (depends on 15)

The method of claim 15 further comprising generating, when the first portion of the image data and the second portion of the image data are not cached in the remote cache, the first key for retrieving the first portion of the image data from the first node and the second key for retrieving the second portion of the image data from the second node using the aspect parameter and a number parameter of the request.

### Claim 17 (depends on 9)

The method of claim 9 wherein the image data set comprises three-dimensional data, the method further comprising:
providing the image data, an aspect parameter, and the rendering parameter to the browser, the image data being a two-dimensional portion of the image data set, and
rendering the image data at the browser based on the aspect parameter and the rendering parameter to generate the requested image.

### Claim 18 (depends on 17)

The method of claim 17 further comprising caching the two-dimensional portion of the image data set in a rendering cache.

### Claim 19

An apparatus comprising:
a server in operable communication with a remote distributed storage and a remote cache, the server including a processor operably coupled with a tangible computer memory including computer readable instructions for:
receiving a request for an image, wherein:
the image is a graphical rendering of image data rendered according to a rendering parameter,
the image data is a subset of an image data set having a multi-dimensionally organized form and partitioned across at least a first node and a second node of remote distributed storage, the request including an identifier associated with the requested image and the rendering parameter;
when the image data is not cached in the remote cache, generating a first key for retrieving a first portion of the image data from the first node and a second key for retrieving a second portion of the image data from the second node; and
providing each of the first portion of the image data and the second portion of the image data to a requesting browser for rendering by the browser according to the rendering parameter to generate the requested image.
