Tracking large numbers of moving objects in an event processing system

US9804892B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9804892-B2
Application numberUS-201615360650-A
CountryUS
Kind codeB2
Filing dateNov 23, 2016
Priority dateMay 13, 2011
Publication dateOct 31, 2017
Grant dateOct 31, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for tracking large numbers of moving objects in an event processing system are provided. An input event stream can be received, where the events in the input event stream represent the movement of a plurality of geometries or objects. The input event stream can then be partitioned among a number of processing nodes of the event processing system, thereby enabling parallel processing of one or more continuous queries for tracking the objects. The partitioning can be performed such that each processing node is configured to track objects in a predefined spatial region, and the spatial regions for at least two nodes overlap. This overlapping window enables a single node to find, e.g., all of the objects within a particular distance of a target object, even if the target object is in the process of moving from the region of that node to the overlapping region of another node.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, by a computer system, an input event stream comprising a sequence of events, the sequence of events representing movement of a plurality of objects, the input event stream including a first event of the sequence of events, and the first event being associated with a first object of the plurality of objects; partitioning, by the computer system, the input event stream among a plurality of processing nodes to facilitate parallel tracking of the plurality of objects using a plurality of bit vectors that correspond to the plurality of processing nodes, each of the plurality of bit vectors comprising a plurality of bit values corresponding to the plurality of objects, and the partitioning of the input event stream comprising, for each event in the sequence of events: determining, by the computer system using a first bit value of a first bit vector of the plurality of bit vectors that is associated with a first processing node of the plurality of processing nodes, that the first processing node is not currently tracking the first object of the plurality of objects, the first bit value being associated with the first object; changing, by the computer system, the first bit value from a first value to a second value that is different than the first value; and transmitting, by the computer system, a command to the first processing node for inserting the first event into a first spatial-region-representing relation that is operated upon by the first processing node. 2. The method of claim 1 , wherein: the plurality of processing nodes operate upon a plurality of spatial-region-representing relations, the plurality of spatial-region-representing relations including the first spatial-region-representing relation; each event of the sequence of events includes an identifier of the associated object and a current spatial position of the object; and the partitioning the input event stream comprises, for each event: determining a subset of processing nodes in the plurality of processing nodes configured to track objects in a predefined spatial region that encompasses the current position of the object; and for each processing node in the plurality of processing nodes: determining whether the processing node is in the subset; when the processing node is in the subset, determining whether to cause the event to be inserted or updated in the first spatial-region-representing relation operated on by the processing node; and when the processing node is not in the subset, determining whether to cause the event to be deleted from the first spatial-region-representing relation operated on by the processing node. 3. The method of claim 2 , wherein determining whether to cause the event to be inserted or updated in the first spatial-region-representing relation operated on by the processing node comprises: retrieving, from a bit vector associated with the processing node, a bit value associated with the object; when the bit value is the first value: transmitting to the processing node a command for inserting the event into the first spatial-region-representing relation; and setting the bit value to the second value; and when the bit value is the second value, transmitting a command to the processing node for updating the event in the first spatial-region-representing relation. 4. The method of claim 3 , wherein determining whether to cause the event to be inserted or updated further comprises transmitting to the processing node, a command for inserting the event into the first spatial-region-representing relation if the bit value is zero and transmitting to the processing node, a command for updating the event in the stream if the bit value is one. 5. The method of claim 2 , wherein determining whether to delete the event from the relation operated on by the processing node comprises: retrieving, from a bit vector stored for the processing node, a bit value associated with the object; and when the bit value is the second value: transmitting to the processing node a command for deleting the event from the relation; and setting the bit value to the first value. 6. The method of claim 2 , wherein determining whether to delete the event from the relation operated on by the processing node further comprises: retrieving, from a bit vector stored for the processing node, a bit value associated with the object; and if the bit value is one: transmitting to the processing node a command for deleting the event from the relation; and clearing the bit value to zero. 7. The method of claim 1 , wherein partitioning the input event stream further comprises: prior to the changing the first bit value, identifying, by the computer system, from the first bit vector corresponding to the first processing node, the first bit value; and determining, by the computer system, a type of the command to be sent to the first processing node based on the first bit value. 8. The method of claim 1 , wherein the input event stream further includes a second event of the sequence of events that is also associated with the first object, wherein the partitioning further includes: determining, by the computer system, using a second bit value of the first bit vector, that the first processing node is currently tracking the first object; changing, by the computer system, the first bit value from the second value to the first value; and transmitting, by the computer system, another command to the first processing node for deleting one or more events associated with the first object from the first spatial-region-representing relation operated upon by the first processing node. 9. The method of claim 1 , wherein the computer system is a load balancing node of an event processing system. 10. The method of claim 1 , wherein the plurality of objects are motor vehicles. 11. The method of claim 1 , wherein each processing node of the plurality of processing nodes is configured to track an object in the plurality of objects in a predefined spatial region, and wherein the predefined spatial region for at least two processing nodes in the plurality of processing nodes overlap, wherein the predefined spatial regions for the plurality of processing nodes are one-dimensional, two-dimensional, or three-dimensional regions. 12. A non-transitory computer readable medium having stored thereon program code executable by a processor, the program code comprising: code that causes the processor to receive an input event stream comprising a sequence of events, the sequence of events representing movement of a plurality of objects, the input event stream including a first event of the sequence of events, and the first event being associated with a first object of the plurality of objects; code that causes the processor to partition the input event stream among a plurality of processing nodes to facilitate parallel tracking of the plurality of objects using a plurality of bit vectors that correspond to the plurality of processing nodes, each of the plurality of bit vectors comprising a plurality of bit values corresponding to the plurality of objects, and the code that causes the processor to partition the input event stream comprises, for each event in the sequence of events: code that causes the processor to determine using a first bit value of a first bit vector of the plurality of bit vectors that is associated with a first processing node of the plurality of processing nodes, that the first processing node is not currently tracking the first object of the plurality of objects, the first bit value being associated with the first object; code that causes the proces

Assignees

Inventors

Classifications

  • Event management; Broadcasting; Multicasting; Notifications · CPC title

  • Vectors, bitmaps or matrices · CPC title

  • G06F9/5027Primary

    the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • Trees, e.g. B+trees · CPC title

  • Updates performed during online database operations; commit processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9804892B2 cover?
Techniques for tracking large numbers of moving objects in an event processing system are provided. An input event stream can be received, where the events in the input event stream represent the movement of a plurality of geometries or objects. The input event stream can then be partitioned among a number of processing nodes of the event processing system, thereby enabling parallel processing …
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/5027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 31 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).