# US 2023/0058047 A1 · Storing data based on device location

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

- Number: US 2023/0058047 A1
- Document ID: US20230058047A1
- Status: Published application
- Kind: A1
- Application number: 18/046,449
- Filed: 2022-10-13
- Published: 2023-02-23
- Earliest claimed: 2020-03-05
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: Bradley Baron; Benjamin Ralph Hollis; Joshua Schumacher
- Web page: https://patentgrep.com/patent/US20230058047A1

## CPC

- H04L 51/222: using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
- G06F 16/29: Geographical information databases
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- H04L 51/52: for supporting social networking services
- H04L 63/0272: {Virtual private networks}
- 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 63/0861: {using biometrical features, e.g. fingerprint, retina-scan (cryptographic mechanisms or cryptographic arrangements for entity authentication using biological data H04L9/3231)}
- H04L 63/102: {Entity profiles}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are provided for storing data based on device location. The systems and methods include operations for: determining, by a messaging application server, a geographical location associated with a client device; identifying, by the messaging application server, a plurality of storage devices located in different geographical regions; computing, by the messaging application server, a plurality of distances between the geographical location associated the client device and the geographical regions of the plurality of storage devices; selecting, by the messaging application server based on the computed plurality of distances, a first storage device of the plurality of storage device that is in a geographical region that is closest to the geographical location associated with the client device; and storing, by the messaging application server on the first storage device, data associated with a messaging application implemented on the client device.

## Claims

### Claim 1

A method comprising:
identifying, by a messaging application server, a plurality of storage devices located in different geographical regions;
computing, by the messaging application server, a plurality of distances comprising a distance between a geographical location associated with a client device and each of the geographical regions of each of the plurality of storage devices;
determining that the client device is not associated with any of the plurality of storage devices;
automatically selecting a random storage device or default storage device of the plurality of storage device in which to store data; and
after a threshold period of time during which a trajectory profile is generated, moving the data from the random storage device or the default storage device to a first storage device that is selected using the trajectory profile.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating the trajectory profile from a history of geographical positions of the client device and duration of time that the client device remained at each of the geographical positions; and
based on the trajectory profile, determining the geographical location associated with the client device.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
presenting a notification to a user of the client device to confirm the geographical location; and
in response to receiving input that confirms the geographical location, storing, by the messaging application server on the first storage device, data associated with a messaging application implemented on the client device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the geographical location comprises a predicted future location of the client device, further comprising predicting the future location based on a combination of a current motion, velocity, altitude and path of the client device.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
determining that the client device is currently engaged in travel to a destination, the determination being made based on a determination that the current motion of the client device is greater than a specified speed or that the altitude of the client device is higher than a threshold; and
setting the destination as the predicted future location of the client device.

### Claim 6 (depends on 4)

The method of claim 4, wherein the data is stored on a second storage device of the plurality of storage devices, and further comprising moving the data from the second storage device to the first storage device before the client device reaches the predicted future location.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining that a collection of the data comprises transient data that will be automatically deleted in a given period of time;
responsive to determining that the collection of the data includes the transient data, moving a first portion of the data from a second storage device to the first storage device, the first portion of the data excluding the transient data; and
retaining the transient data on the second storage device.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
determining that the client device is not associated with any of the plurality of storage devices;
automatically selecting a random storage device or default storage device of the plurality of storage device in which to store the data; and
after a threshold period of time during which the trajectory profile is generated, moving the data from the random storage device or the default storage device to the first storage device that has been selected using the trajectory profile.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
determining that the client device accesses the messaging application server through a virtual private network (VPN) a specified number of times over a specified interval; and
based upon determining that the client device accesses the messaging application server through the VPN the specified number of times over the specified interval, setting as the geographical location associated with the client device a location of a VPN server of the VPN.

### Claim 10 (depends on 9)

The method of claim 9, wherein determining that the client device accesses the messaging application server through the VPN comprises:
detecting a mismatch between a current physical location of the client device and location information specified in packets exchanged between the client device and the messaging application server.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
determining the current physical location based on GPS coordinates received from the messaging application implemented on the client device or based on triangulating the current physical location.

### Claim 12 (depends on 11)

The method of claim 11, wherein determining that the client device accesses the messaging application server through the VPN comprises determining that a source address in a packet of information exchanged with the client device matches an address associated with a VPN provider.

### Claim 13 (depends on 11)

The method of claim 11, wherein the location of the VPN server of the VPN is set as the geographical location instead of a current physical location of the client device.

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
determining that the client device is currently engaged in travel to a destination that is a threshold distance away from the geographical location associated with the client device, the determination being made based on movement information indicating that the client device is moving faster than a specified speed or is at an altitude of the client device is higher than a threshold;
predicting an amount of time the client device will stay at the destination; and
in response to determining that the amount of time is less than a threshold, retaining the data at the first storage device instead of moving the data to a second storage device of the plurality of storage devices, the geographical region of the second storage device being closer to the destination than the geographical region of the first storage device.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
determining that the client device is currently engaged in travel to a destination that is a threshold distance away from the geographical location associated with the client device;
predicting an amount of time the client device will stay at the destination; and
in response to determining that the amount of time is more than a threshold, moving the data from the first storage device to a second storage device of the plurality of storage devices, the geographical region of the second storage device being closer to the destination than the geographical region of the first storage device.

### Claim 16 (depends on 1)

The method of claim 1, further comprising:
periodically updating the geographical location associated with the client device; and
repeating the selecting and storing each time the geographical location is updated.

### Claim 17

A system comprising:
a processor configured to perform operations comprising:
identifying, by a messaging application server, a plurality of storage devices located in different geographical regions;
computing, by the messaging application server, a plurality of distances comprising a distance between a geographical location associated with a client device and each of the geographical regions of each of the plurality of storage devices;
determining that the client device is not associated with any of the plurality of storage devices;
automatically selecting a random storage device or default storage device of the plurality of storage device in which to store data; and
after a threshold period of time during which a trajectory profile is generated, moving the data from the random storage device or the default storage device to a first storage device that is selected using the trajectory profile.

### Claim 18 (depends on 17)

The system of claim 17, the operations comprising:
generating the trajectory profile comprising a history of geographical positions of the client device and duration of time that the client device remained at each of the geographical positions; and
based on the trajectory profile, determining the geographical location associated with the client device.

### Claim 19

A non-transitory machine-readable storage medium that includes instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
identifying, by a messaging application server, a plurality of storage devices located in different geographical regions;
computing, by the messaging application server, a plurality of distances comprising a distance between a geographical location associated with a client device and each of the geographical regions of each of the plurality of storage devices;
determining that the client device is not associated with any of the plurality of storage devices;
automatically selecting a random storage device or default storage device of the plurality of storage device in which to store data; and
after a threshold period of time during which a trajectory profile is generated, moving the data from the random storage device or the default storage device to a first storage device that is selected using the trajectory profile.

### Claim 20 (depends on 19)

The non-transitory machine-readable storage medium of claim 19, the operations comprising:
generating the trajectory profile from a history of geographical positions of the client device and duration of time that the client device remained at each of the geographical positions; and
based on the trajectory profile, determining the geographical location associated with the client device.
