IP Library › Granted Patent US 10,231,085
Granted Patent B1
US 10,231,085 · App. 16/124,014 · Granted Mar 12, 2019

Scaling out moving objects for geo-fence proximity determination

Inventors: Santosh Kumar (Bangalore, IN); Santosh Kumar Singh (New Delhi, IN); Prithviraj Singh (Bangalore, IN); Rahul Gupta (Bangalore, IN); Yathish Gatty (Bangalore, IN); Kunal Mulay (Indore, IN)
Assignee: Oracle International Corporation
H04W4/021G06F9/542G06F17/30241G06F17/30324H04L67/18H04W4/023
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 10,231,085
App. No.
16/124,014
Granted
Mar 12, 2019
Kind
B1
Abstract

An event processing system for distributing geospatial computations with geo-fences is disclosed. The system can partition and distribute geo-fences efficiently for parallel computation, and can track a potentially unlimited number of moving objects. A computing device determines a minimum bounding rectangle (MBR) covering a geographic area indexed by a geo-grid, and partitions the MBR and a set of geo-fences to a plurality of processing nodes. The computing device receives input events of a stream comprising locations within the geographic area. The device distributes the events to partitions on processing nodes, based at least on the events' locations. The device can determine a partition identifier corresponding to a respective location in constant time. The computing device then combines partition results to obtain a single geospatial computation result.

Claims (46)

1. A method, comprising:

determining, by a computing device, a geo grid minimum bounding rectangle (MBR) covering a geographic area indexed by a geo grid;

partitioning the geo grid minimum bounding rectangle to a respective processing node of a plurality of processing nodes;

replicating, by the computing device, a set of geo fences to the plurality of processing nodes, wherein the geo fences bound regions within the geographic area;

receiving input events of a stream, a respective input event comprising respective location information for a location within the geographic area;

distributing the respective input event to a respective partition on the respective processing node based at least in part on the respective location information;

receiving, from the respective processing node, an output result corresponding to a respective partition result;

combining, by the computing device, the respective partition result with a second partition result to obtain a single result corresponding to a geospatial computation; and

outputting the single result corresponding to the geospatial computation for a user.

2. The method of claim 1 , wherein distributing the respective input event to the respective partition further comprises determining a partition identifier corresponding to the respective location information in constant time.

3. The method of claim 2 , wherein determining the partition identifier corresponding to the respective location information in constant time is based at least in part on a grid cell partitioner partition representation.

4. The method of claim 2 , wherein determining the partition identifier corresponding to the respective location information in constant time is based at least in part on computing the partition identifier.

5. The method of claim 4 , wherein computing the partition identifier is based at least in part on a modulus operation and/or a matrix operation.

6. The method of claim 2 , further comprising mapping the partition identifier to the respective processing node based at least in part on a modulus operation, a division operation, and/or a custom function.

7. The method of claim 1 , further comprising adjusting a cell size of the geo grid.

8. The method of claim 1 , wherein, responsive to the respective location information of the respective input event matching a respective geo fence, the respective partition result is computed, by the respective processing node, as a spatial function applied to at least the respective location information.

9. A system, comprising:

a memory configured to store computer-executable instructions; and

a processor configured to access the memory and execute the computer-executable instructions to perform a method for distributing a geospatial computation, the method comprising:

determining a geo grid minimum bounding rectangle (MBR) covering a geographic area indexed by a geo grid;

partitioning the geo grid minimum bounding rectangle to a respective processing node of a plurality of processing nodes;

replicating a set of geo fences to the plurality of processing nodes, wherein the geo fences bound regions within the geographic area;

receiving input events of a stream, a respective input event comprising respective location information for a location within the geographic area;

distributing the respective input event to a respective partition on the respective processing node based at least in part on the respective location information;

receiving, from the respective processing node, an output result corresponding to a respective partition result;

combining the respective partition result with a second partition result to obtain a single result corresponding to a geospatial computation; and

outputting the single result corresponding to the geospatial computation for a user.

10. The system of claim 9 , wherein while distributing the respective input event to the respective partition, the processor further performs determining, from a grid cell partitioner partition representation, a partition identifier corresponding to the respective location information in constant time.

11. The system of claim 10 , wherein determining the partition identifier corresponding to the respective location information in constant time is based at least in part on computing the partition identifier.

12. The system of claim 11 , wherein computing the partition identifier is based at least in part on a modulus operation and/or a matrix operation.

13. The system of claim 10 , wherein the processor further performs mapping the partition identifier to the respective processing node based at least in part on a modulus operation, a division operation, and/or a custom function.

14. The system of claim 9 , wherein the processor further performs adjusting a cell size of the geo grid.

15. The system of claim 9 , wherein, responsive to the respective location information of the respective input event matching a respective geo fence, the respective partition result is computed, by the respective processing node, as a spatial function applied to at least the respective location information.

16. A non-transitory computer-readable medium storing computer-executable code that, when executed by a processor, cause the processor to perform a method for distributing a geospatial computation, the method comprising:

determining a geo grid minimum bounding rectangle (MBR) covering a geographic area indexed by a geo grid;

partitioning the geo grid minimum bounding rectangle to a respective processing node of a plurality of processing nodes;

replicating a set of geo fences to the plurality of processing nodes, wherein the geo fences bound regions within the geographic area;

receiving input events of a stream, a respective input event comprising respective location information for a location within the geographic area;

distributing the respective input event to a respective partition on the respective processing node based at least in part on the respective location information;

receiving, from the respective processing node, an output result corresponding to a respective partition result;

combining the respective partition result with a second partition result to obtain a single result corresponding to a geospatial computation; and

outputting the single result corresponding to the geospatial computation for a user.

17. The computer-readable medium of claim 16 , wherein while distributing the respective input event to the respective partition, the processor further performs determining a partition identifier corresponding to the respective location information based at least in part on computing the partition identifier.

18. The computer-readable medium of claim 17 , wherein computing the partition identifier is based at least in part on a modulus operation and/or a matrix operation.

19. The computer-readable medium of claim 17 , wherein the processor further performs mapping the partition identifier to the respective processing node based at least in part on a modulus operation, a division operation, and/or a custom function.

20. The computer-readable medium of claim 16 , wherein, responsive to the respective location information of the respective input event matching a respective geo fence, the respective partition result is computed, by the respective processing node, as a spatial function applied to at least the respective location information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2018
From: KUMAR, SANTOSH; SINGH, SANTOSH KUMAR; SINGH, PRITHVIRAJ; GUPTA, RAHUL; GATTY, YATHISH; MULAY, KUNAL
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 046814/0954 →
Priority Claims (1)
IN 201741034830 · Sep 30, 2017 · national
Cited By (6)
US 12,272,448 US 12,438,826 US 12,554,885 US 12,587,371 US 12,602,238 US 12,695,709