IP Library Granted Patent US 10,769,001
Granted Patent B2
US 10,769,001 · App. 15/927,516 · Granted Sep 8, 2020

System and method for process state processing

Inventors: Dong Li (Santa Clara, CA); Huaiyu Zhu (Newark, CA); Jing Chen (Palo Alto, CA); Michael Lin (Milpitas, CA); Shray Kapoor (Fremont, CA); Yichong Lin (Saratoga, CA)
Assignee: DiDi Research America, LLC
G06F9/542G06F9/544G06F9/545G06F9/546G06F12/0253G06F16/9024G06F16/951G06F9/54G06F2209/548
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,769,001
App. No.
15/927,516
Granted
Sep 8, 2020
Kind
B2
Abstract

Process states of computing devices may be obtained and processed. Process event information of a computing device may be obtained. The process event information may characterize states of processes of the computing device. The process event information may be stored within a queue. Graph information may be determined based on the process event information within the queue. The graph information may characterize states of processes of the computing device using nodes and edges. The graph information may be stored within a graph database.

Claims (38)

1. A system for processing process states, the system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to perform:

obtaining process event information of a computing device, the process event information characterizing states of processes of the computing device;

storing the process event information within a queue;

determining graph information based on the process event information within the queue, the process event information including a respective unique process identifier for each of the processes of the computing device, each of the respective unique process identifiers being based on a combination of a respective reusable process identifier and a respective process start time, the graph information characterizing states of processes of the computing device using nodes and edges, each node of the graph information representing a respective process of the processes of the computing device, and each edge of the graph information representing a respective relationship between two or more processes of the processes of the computing device;

determining, based on the respective edges of the graph information and the respective unique process identifiers based on the combination of the respective reusable process identifiers and the respective process start times, an order of any of the processes of the computing device or process events associated with the process event information; and

storing the graph information within a graph database.

2. The system of claim 1 , wherein the process event information is obtained from a process state collector agent running on the computing device.

3. The system of claim 2 , wherein the process event information is obtained and stored within the queue by an event receiver server of the system.

4. The system of claim 3 , wherein the queue is a distributed buffer storage.

5. The system of claim 3 , wherein the graph information is determined by a stream processor of the system and the stream processor is, to determine the graph information, configured to identify and order process events based on the process event information within the queue.

6. The system of claim 5 , wherein the graph information includes parent-child relationships and properties of the processes of the computing device.

7. The system of claim 5 , wherein the stream processor uses process event information obtained at different times to identity missing process start events or missing process termination events.

8. The system of claim 1 , wherein the graph information is stored within the graph database using a key-value database structure.

9. The system of claim 1 , wherein the instructions further cause the system to perform:

obtaining a query regarding a given process of the computing device; and

determining a response to the query based on the graph information within the graph database.

10. The system of claim 9 , wherein the query is obtained and responded to by a query server of the system.

11. The system of claim 10 , wherein the query server provides a set of application programming interfaces to obtain and respond to the query, the set of application programming interfaces including a single-call application programming interface, an iterative application programming interface, and a batch-processing application programming interface.

12. A method for processing process states, the method implemented by a computing system including one or more processors and non-transitory storage media storing machine-readable instructions, the method comprising:

obtaining process event information of a computing device, the process event information characterizing states of processes of the computing device;

storing the process event information within a queue;

determining graph information based on the process event information within the queue, the process event information including a respective unique process identifier for each of the processes of the computing device, each of the respective unique process identifiers being based on a combination of a respective reusable process identifier and a respective process start time, the graph information characterizing states of processes of the computing device using nodes and edges, each node of the graph information representing a respective process of the processes of the computing device, and each edge of the graph information representing a respective relationship between two or more processes of the processes of the computing device;

determining, based on the respective edges of the graph information and the respective unique process identifiers based on the combination of the respective reusable process identifiers and the respective process start times, an order of any of the processes of the computing device or process events associated with the process event information; and

storing the graph information within a graph database.

13. The method of claim 12 , wherein the process event information is obtained from a process state collector agent running on the computing device.

14. The method of claim 13 , wherein the process event information is obtained and stored within the queue by an event receiver server of the computing system.

15. The method of claim 14 , wherein the queue is a distributed buffer storage.

16. The method of claim 14 , wherein the graph information is determined by a stream processor of the computing system and the stream processor is, to determine the graph information, configured to identify and order process events based on the process event information within the queue.

17. The method of claim 16 , wherein the graph information includes parent-child relationships and properties of the processes of the computing device.

18. The method of claim 16 , wherein the stream processor uses process event information obtained at different times to identity missing process start events or missing process termination events.

19. The method of claim 12 , wherein the graph information is stored within the graph database using a key-value database structure.

20. The method of claim 12 , further comprising:

obtaining a query regarding a given process of the computing device; and

determining a response to the query based on the graph information within the graph database.

21. The method of claim 20 , wherein the query is obtained and responded to by a query server of the computing system.

22. The method of claim 21 , wherein the query server provides a set of application programming interfaces to obtain and respond to the query, the set of application programming interfaces including a single-call application programming interface, an iterative application programming interface, and a batch-processing application programming interface.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2020
From: DIDI (HK) SCIENCE AND TECHNOLOGY LIMITED
To: BEIJING DIDI INFINITY TECHNOLOGY AND DEVELOPMENT CO., LTD.
Reel/Frame 053180/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2020
From: DIDI RESEARCH AMERICA, LLC
To: DIDI (HK) SCIENCE AND TECHNOLOGY LIMITED
Reel/Frame 053081/0934 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 6TH INVENTOR'S FIRST NAME PREVIOUSLY RECORDED AT REEL: 045321 FRAME: 0749. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Nov 19, 2018
From: LI, DONG; ZHU, HUAIYU; CHEN, JING; LIN, MICHAEL; KAPOOR, SHRAY; LIN, YICHONG
To: DIDI RESEARCH AMERICA, LLC
Reel/Frame 047549/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2018
From: LI, DONG; ZHU, HUAIYU; CHEN, JING; LIN, MICHAEL; KAPOOR, SHRAY; LIN, TICHONG
To: DIDI RESEARCH AMERICA, LLC
Reel/Frame 045321/0749 →
Continuity (2)
Continuation 15927104 · Mar 21, 2018
Related Publication 20190294482A1 · Sep 26, 2019