# US 12,182,160 B2 · Data exchange availability, listing visibility, and listing fulfillment

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

- Number: US 12,182,160 B2
- Document ID: US12182160B2
- Status: Granted
- Kind: B2
- Application number: 16/994,325
- Filed: 2020-08-14
- Published: 2022-02-17
- Granted: 2024-12-31
- Earliest claimed: 2020-08-14
- Assignees: Snowflake Inc.
- Applicants: Snowflake Inc.
- Inventors: Pui Kei Johnston Chu; Benoit Dageville; Prasanna Krishnan; Elkhan Mammedov; Chao Ren; Bowen Zhang; Rongpeng Zheng
- Web page: https://patentgrep.com/patent/US12182160B2

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 21/606: {by securing the transmission between two devices or processes}
- G06Q 30/0201: Market modelling; Market analysis; Collecting market data
- G06Q 30/0617: {Representative agent}
- H04L 63/107: {wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals}
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/52: specially adapted for the location of the user terminal
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Provided herein are systems and methods for providing a secure and efficient way to manage a data exchange's availability and manage the visibility of data listings of the data exchange. For example, the method may comprise specifying, by an exchange admin of the data exchange, a set of regions where the data exchange is available, each of the set of regions comprising one or more remote deployments. The method may further comprise specifying by a data provider, one or more of the set of regions where a data listing owned by the data provider is visible. Upon receiving a request to access the data listing from a remote deployment of the one or more regions, the data provider may determine whether to reject or fulfill the request. In response to determining that the request should be fulfilled, replicating data of the data listing to the remote deployment.

## Claims

### Claim 1

A method comprising:
specifying a set of geographical regions where a data exchange is available by specifying, within a first data persistence object (DPO), a string comprising a location identifier of each of the set of geographical regions, each of the set of geographical regions comprising one or more remote deployments and wherein the first DPO extends a base DPO of the data exchange that stores metadata defining the data exchange, wherein each of the one or more remote deployments corresponds to a deployment shard, wherein each deployment shard in a geographical region has a similar location identifier of the geographical region, wherein information related to the data exchange in the geographical region is accessible within the deployment shard, wherein the information related to the data exchange in the geographical region is duplicated to a new deployment shard in response to creation of the new deployment shard in the geographical region;
specifying one or more of the set of geographical regions where a data listing is visible;
in response to receiving a request to access the data listing from a remote deployment of the one or more geographical regions, determining whether to reject or fulfill the request, wherein the request to access the data listing from the remote deployment comprises a global message for managing requests to data providers for access to data listings, and wherein the global message updates the base DPO of the data exchange with information of the request, wherein the global message includes custom logic that is utilized to perform the update of the base DPO with the information of the request; and
in response to determining to fulfill the request, replicating, by a processing device, data of the data listing to the remote deployment.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
parsing the string to determine the set of geographical regions wherein the data exchange is available;
obtaining each remote deployment from each of the set of geographical regions wherein the data exchange is to be available; and
replicating the data exchange to each remote deployment from each of the set of geographical regions wherein the data exchange is to be available.

### Claim 3 (depends on 2)

The method of claim 2, wherein replicating the data exchange to a remote deployment comprises:
generating a global representation of the data exchange;
replicating metadata of the data exchange to the remote deployment; and
creating a local replica of the data exchange on the remote deployment based on the global representation.

### Claim 4 (depends on 1)

The method of claim 1, wherein specifying the one or more of the set of geographical regions where a data listing is visible comprises:
modifying the base DPOof the data exchange with a second string comprising a location identifier of each of the one or more geographical regions where the data listing is visible.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
parsing the second string to determine the one or more geographical regions wherein the data listing is to be visible;
obtaining each remote deployment from each of the one or more geographical regions wherein the data listing is to be visible; and
replicating the data listing to each remote deployment from each of the one or more geographical regions wherein the data listing is to be visible.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
modifying the one or more of the set of geographical regions where the data listing is visible by adding one or more new location identifiers to the string or removing one or more of the location identifiers from the string.

### Claim 7 (depends on 1)

The method of claim 1, further comprising receiving a request for exchange administrator approval to publish the data listing.

### Claim 8 (depends on 7)

The method of claim 7, wherein the request for exchange administrator approval to publish the data listing comprises a global message for managing requests by data providers for approval to publish data listings, and wherein the global message updates a DPO of a remote deployment the exchange admin is hosted on with information of the request.

### Claim 9

A system comprising:
a memory; and
a processing device operatively coupled to the memory, the processing device to:
specify a set of geographical regions where a data exchange is available by specifying, within a first data persistence object (DPO),a string comprising a location identifier of each of the set of geographical regions, each of the set of geographical regions comprising one or more remote deployments and wherein the first DPO extends a base DPO of the data exchange that stores metadata defining the data exchange, wherein each of the one or more remote deployments corresponds to a deployment shard, wherein each deployment shard in a geographical region has a similar location identifier of the geographical region, wherein information related to the data exchange in the geographical region is accessible within the deployment shard, wherein the information related to the data exchange in the geographical region is duplicated to a new deployment shard in response to creation of the new deployment shard in the geographical region;
specify one or more of the set of geographical regions where a data listing is visible;
in response to receiving a request to access the data listing from a remote deployment of the one or more geographical regions, determine whether to reject or fulfill the request, wherein the request to access the data listing from the remote deployment comprises a global message for managing requests to data providers for access to data listings, and wherein the global message updates the base DPO of the data exchange with information of the request, wherein the global message includes custom logic that is utilized to perform the update of the base DPO with the information of the request; and
in response to determining to fulfill the request, replicate data of the data listing to the remote deployment.

### Claim 10 (depends on 9)

The system of claim 9, wherein the processing device is further to:
parse the string to determine the set of geographical regions wherein the data exchange is available;
obtain each remote deployment from each of the set of geographical regions wherein the data exchange is to be available; and
replicate the data exchange to each remote deployment from each of the set of geographical regions wherein the data exchange is to be available.

### Claim 11 (depends on 10)

The system of claim 10, wherein to replicate the data exchange, the processing device is to:
generate a global representation of the data exchange;
replicate metadata of the data exchange to the remote deployment; and
create a local replica of the data exchange on the remote deployment based on the global representation.

### Claim 12 (depends on 9)

The system of claim 9, wherein to specify the one or more of the set of geographical regions where a data listing is visible, the processing device is to:
modify the base DPOof the data exchange with a second string comprising a location identifier of each of the one or more geographical regions where the data listing is visible.

### Claim 13 (depends on 12)

The system of claim 12, wherein the processing device is further to:
parse the second string to determine the one or more geographical regions wherein the data listing is to be visible;
obtain each remote deployment from each of the one or more geographical regions wherein the data listing is to be visible; and
replicate the data listing to each remote deployment from each of the one or more geographical regions wherein the data listing is to be visible.

### Claim 14 (depends on 12)

The system of claim 12, wherein the processing device is further to:
modify the one or more of the set of geographical regions where the data listing is visible by adding one or more new location identifiers to the string or removing one or more of the location identifiers from the string.

### Claim 15 (depends on 9)

The system of claim 9, wherein the processing device is further to:
receive a request for exchange administrator approval to publish the data listing.

### Claim 16 (depends on 15)

The system of claim 15, wherein the request for exchange administrator approval to publish the data listing comprises a global message for managing requests by data providers for approval to publish data listings, and wherein the global message updates a DPO of a remote deployment the exchange admin is hosted on with information of the request.

### Claim 17

A non-transitory computer-readable medium having instructions stored thereon which, when executed by a processing device, cause the processing device to:
specify a set of geographical regions where a data exchange is available by specifying, within a first data persistence object (DPO), a string comprising a location identifier of each of the set of geographical regions, each of the set of geographical regions comprising one or more remote deployments and wherein the first DPO extends a base DPO of the data exchange that stores metadata defining the data exchange, wherein each of the one or more remote deployments corresponds to a deployment shard, wherein each deployment shard in a geographical region has a similar location identifier of the geographical region, wherein information related to the data exchange in the geographical region is accessible within the deployment shard, wherein the information related to the data exchange in the geographical region is duplicated to a new deployment shard in response to creation of the new deployment shard in the geographical region;
specify one or more of the set of geographical regions where a data listing is visible;
in response to receiving a request to access the data listing from a remote deployment of the one or more geographical regions, determine whether to reject or fulfill the request, wherein the request to access the data listing from the remote deployment comprises a global message for managing requests to data providers for access to data listings, and wherein the global message updates the base DPO of the data exchange with information of the request, wherein the global message includes custom logic that is utilized to perform the update of the base DPO with the information of the request; and
in response to determining to fulfill the request, replicate, by the processing device, data of the data listing to the remote deployment.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the processing device is further to:
parse the string to determine the set of geographical regions wherein the data exchange is available;
obtain each remote deployment from each of the set of geographical regions wherein the data exchange is to be available; and
replicate the data exchange to each remote deployment from each of the set of geographical regions wherein the data exchange is to be available.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein to replicate the data exchange, the processing device is to:
generate a global representation of the data exchange;
replicate metadata of the data exchange to the remote deployment; and
create a local replica of the data exchange on the remote deployment based on the global representation.

### Claim 20 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein to specify the one or more of the set of geographical regions where a data listing is visible, the processing device is to:
modify the base DPOof the data exchange with a second string comprising a location identifier of each of the one or more geographical regions where the data listing is visible.

### Claim 21 (depends on 20)

The non-transitory computer-readable medium of claim 20, wherein the processing device is further to:
parse second the string to determine the one or more geographical regions wherein the data listing is to be visible;
obtain each remote deployment from each of the one or more geographical regions wherein the data listing is to be visible; and
replicate the data listing to each remote deployment from each of the one or more geographical regions wherein the data listing is to be visible.

### Claim 22 (depends on 20)

The non-transitory computer-readable medium of claim 20, wherein the processing device is further to:
modify the one or more of the set of geographical regions where the data listing is visible by adding one or more new location identifiers to the string or removing one or more of the location identifiers from the string.

### Claim 23 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the processing device is further to:
receive a request for exchange administrator approval to publish the data listing.

### Claim 24 (depends on 23)

The non-transitory computer-readable medium of claim 23, wherein the request for exchange admin approval to publish the data listing comprises a global message for managing requests by data providers for approval to publish data listings, and wherein the global message updates a DPO of a remote deployment the exchange administrator is hosted on with information of the request.
