IP Library Granted Patent US 11,762,932
Granted Patent B2
US 11,762,932 · App. 16/917,736 · Granted Sep 19, 2023

Spatial search using key-value store

Inventors: Swagata Prateek (Vancouver, CA); Vi Thuy Hai Nguyen (Vancouver, CA); Timur Amirov (Vancouver, CA); Anton Polyakov (North Vancouver, CA); Szymon Ulewicz (Vancouver, CA)
Assignee: Amazon Technologies, Inc.
G06F16/9537G06F16/901G06F16/9538H04W4/021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,762,932
App. No.
16/917,736
Granted
Sep 19, 2023
Kind
B2
Abstract

A spatial search may be performed using representations of geometric shapes stored in a key-value store. A request to perform a spatial search may be received, the request including a geometric shape composed of one or more points. The points of the geometrical shape may be translated into one or more spatial indexes representing spatial cells using a space-filling curve. A key-value store may then be incrementally searched for each spatial index to identify spatial cells intersecting the geometric shape for which other known geometric shapes exist. The key-value store may then be searched to identify the known geometric shapes intersecting the geometric shape included in the search.

Claims (38)

1. A system, comprising:

a key-value data store comprising a plurality of spatial cell indexes and a plurality of cell membership indexes;

at least one processor; and

a memory, storing program instructions that when executed cause the at least one processor to implement a geofencing service, configured to:

receive a request from a client to perform a spatial search, wherein the request comprises a provided geometric shape and an identifier of a predefined geometric shape, wherein the spatial search identifies geometric shapes that intersect the provided geometric shape;

translate the provided geometric shape into one or more indexes composing the provided geometric shape, the one or more indexes translated in accordance with a space-filling curve that defines points within a multi-dimensional space as locations along a single-dimensional path that fills the multi-dimensional space;

identify one or more spatial cells matching at least one of the one or more indexes, wherein to identify the one or more spatial cells the geofencing service is configured to perform, for individual ones of the one or more indexes, a plurality of queries of a key-value store using a sliding window on the respective index;

query the cell membership indexes of the key-value store to determine one or more members of the identified spatial cells; and

send to the client a response to the request based at least in part on the identifier of the predefined geometric shape matching one of the determined one or more members of the identified spatial cells.

2. The system of claim 1 , wherein the spatial search is a spatiotemporal search.

3. The system of claim 1 , wherein the translating of the geometric shape into one or more indexes is performed using a spherical projection.

4. The system of claim 1 , wherein the geofencing service supports a plurality of clients including the client, and wherein at least one of the plurality of cell indexes comprises an identifier associated with the client of the plurality of clients.

5. A method, comprising:

receiving a request from a client to perform a spatial search, the request comprising a geometric shape;

translating the geometric shape into one or more indexes composing the geometric shape, the one or more indexes translated in accordance with a space-filling curve that defines points within a multi-dimensional space as locations along a single-dimensional path that fills the multi-dimensional space;

identifying one or more spatial cells matching at least one of the one or more indexes by querying a key-value store comprising a plurality of cell indexes describing spatial cells;

querying the key-value store to determine one or more geometric shapes that are members of the identified spatial cells, the key-value store further comprising a plurality of cell membership indexes; and

sending to the client a response to the request to perform the spatial search based at least in part on the determined one or more members of the identified spatial cells.

6. The method of claim 5 , wherein the geometric shape is a point and wherein the spatial search identifies geometric shapes that contain or intersect the point.

7. The method of claim 5 , wherein the geometric shape comprises multiple points and wherein the spatial search identifies geometric shapes that contain or intersect the geometric shape.

8. The method of claim 5 , wherein identifying the one or more spatial cells matching at least one of the one or more indexes comprises performing, for individual ones of the one or more indexes, a plurality of queries of the key-value store using a sliding window on a respective index.

9. The method of claim 5 , wherein the spatial search is a spatiotemporal search.

10. The method of claim 5 , wherein the geometric shape comprises two or more spatial dimensions.

11. The method of claim 5 , wherein the translating of the geometric shape into one or more indexes is performed using a spherical projection.

12. The method of claim 5 , wherein the receiving, the translating, the identifying, the querying and the sending are performed by a geofencing service, wherein the geofencing service supports a plurality of clients including the client, and wherein at least one of the a plurality of cell indexes comprises an identifier associated with the client of the plurality of clients.

13. One or more non-transitory, computer-readable storage media, storing program instructions that when executed on or across one or more computing devices cause the one or more computing devices to implement:

receiving a request from a client to perform a spatial search, the request comprising a geometric shape;

translating the geometric shape into one or more indexes composing the geometric shape, the one or more indexes translated in accordance with a space-filling curve that defines points within a multi-dimensional space as locations along a single-dimensional path that fills the multi-dimensional space;

identifying one or more spatial cells matching at least one of the one or more indexes by querying a key-value store comprising a plurality of cell indexes describing spatial cells;

querying the key-value store to determine one or more geometric shapes that are members of the identified spatial cells, the key-value store further comprising a plurality of cell membership indexes; and

sending to the client a response to the request to perform the spatial search based at least in part on a comparison of the determined one or more members of the identified spatial cells with one or more geometric shapes identified by search criteria of the request to perform the spatial search.

14. The one or more non-transitory, computer-readable storage media of claim 13 , wherein the geometric shape is a point and wherein the spatial search identifies geometric shapes that contain or intersect the point.

15. The one or more non-transitory, computer-readable storage media of claim 13 , wherein the geometric shape comprises multiple points and wherein the spatial search identifies geometric shapes that contain or intersect the geometric shape.

16. The one or more non-transitory, computer-readable storage media of claim 13 , wherein identifying the one or more spatial cells matching at least one of the one or more indexes comprises performing, for individual ones of the one or more indexes, a plurality of queries of the key-value store using a sliding window on a respective index.

17. The one or more non-transitory, computer-readable storage media of claim 13 , wherein the spatial search is a spatiotemporal search.

18. The one or more non-transitory, computer-readable storage media of claim 13 , wherein the geometric shape comprises two or more spatial dimensions.

19. The one or more non-transitory, computer-readable storage media of claim 13 , wherein the translating of the geometric shape into one or more indexes is performed using a spherical projection.

20. The one or more non-transitory, computer-readable storage media of claim 13 , wherein the receiving, the translating, the identifying, the querying and the sending are performed by a geofencing service, wherein the geofencing service supports a plurality of clients including the client, and wherein at least one of the a plurality of cell indexes comprises an identifier associated with the client of the plurality of clients.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2021
From: PRATEEK, SWAGATA; NGUYEN, VI THUY HAI; AMIROV, TIMUR; POLYAKOV, ANTON; ULEWICZ, SZYMON
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 056517/0407 →
Continuity (1)
Related Publication 20210406328A1 · Dec 30, 2021