IP Library Granted Patent US 11,893,415
Granted Patent B2
US 11,893,415 · App. 17/322,255 · Granted Feb 6, 2024

System and method for process and data observation in a networked service environment

Inventors: Adam David Blue (Austin, TX); Theodor Getu Berhane (Austin, TX); Thomas Coyne (Austin, TX)
Assignee: Q2 Software, Inc.
G06F9/4881G06F9/465G06F9/466
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,893,415
App. No.
17/322,255
Granted
Feb 6, 2024
Kind
B2
Abstract

Embodiments as disclosed herein provide computing systems and methods that effectively serve to isolate processes in a computing environment. The isolation of such processes may serve additionally to substantially increase the observability of such processes, allowing a granular insight into data associated with those processes and the performing of individual tasks.

Claims (102)

1. A system, comprising:

a non-transitory computer readable medium, comprising instructions for a task handler, the task handler comprising:

a parent portion adapted for executing in a parent process to:

initialize a first task;

receive a first request for the first task over a first connection to a first communication channel;

accept the first request for the first task over the first connection to the first communication channel without reading data from the first request;

create a first child process and providing the first connection to the first communication channel associated with the first request to the first child process without reading data from the first connection to the first communication channel associated with the first request, wherein the first child process is a copy of the parent process executing in a first separate process space from the parent process and the parent process configures the first child process to start execution at a child entry point associated with a child portion of the task handler;

create a first child tracking entry associated with the first child process in a process map;

receive first data associated with the execution of the first child process from the first child process over a second communication channel;

store the received first data associated with the execution of the first child process in the first child tracking entry; and

the child portion of the task handler is adapted for executing in the first child process to:

read the first request over the first connection to the first communication channel to identify the requested first task;

invoke the identified requested first task to perform the first request;

provide a first response to the first request directly from the first child process over the first connection to the first communication channel without involvement of the parent process;

determine the first data associated with the execution of the first child process; and

send the first data associated with the execution of the first child process to the parent process over the second communication channel.

2. The system of claim 1 , wherein creating the first child process comprises forking the parent process.

3. The system of claim 1 , wherein the first communication channel and the second communication are different.

4. The system of claim 3 , wherein the first communication channel is a TCP channel and the second communication channel is a UDP channel.

5. The system of claim 1 , wherein the parent portion is further adapted for executing in the parent process to:

receive a second request for a second task over a second connection to the first communication channel;

accept the second request for the second task over the second connection to the first communication channel without reading data from the second request;

create a second child process and provide the second connection to the first communication channel associated with the first request to the second child process without reading data from the second connection to the first communication channel associated with second request, wherein the second child process is a copy of the parent process executing in a second separate process space from the parent process and the parent process configures the second child process to start execution at the child entry point associated with the child portion of the task handler;

create a second child tracking entry associated with the second child process in the process map;

receive second data associated with the execution of the second child process from the second child process over the second communication channel;

store the received second data associated with the execution of the second child process in the second child tracking entry; and

the child portion of the task handler is adapted for executing in the second child process to:

read the second request over the second connection to the first communication channel to identify the requested second task;

invoke the identified second task to perform the second request;

provide a second response to the second request directly from the second child process over the second connection to the first communication channel without involvement of the parent process;

determine the second data associated with the execution of the second child process; and

send the second data associated with the execution of the second child process to the parent process over the second communication channel.

6. The system of claim 5 , wherein the second task is different than the first task.

7. The system of claim 1 , wherein first data associated with execution of the first child process comprises memory usage statistics, I/O statistics, or timing statistics on the first child process obtained from an operating system by the first child process.

8. A non-transitory computer readable medium, comprising instructions for:

a task handler, the task handler comprising:

a parent portion adapted for executing in a parent process to:

initialize a first task;

receive a first request for the first task over a first connection to a first communication channel;

accept the first request for the first task over the first connection to the first communication channel without reading data from the first request;

create a first child process and providing the first connection to the first communication channel associated with the first request to the first child process without reading data from the first connection to the first communication channel associated with first request, wherein the first child process is a copy of the parent process executing in a first separate process space from the parent process and the parent process configures the first child process to start execution at a child entry point associated with a child portion of the task handler;

create a first child tracking entry associated with the first child process in a process map;

receive first data associated with the execution of the first child process from the first child process over a second communication channel;

store the received first data associated with the execution of the first child process in the first child tracking entry; and

the child portion of the task handler is adapted for executing in the first child process to:

read the first request over the first connection to the first communication channel to identify the requested first task;

invoke the identified requested first task to perform the first request;

provide a first response to the first request directly from the first child process over the first connection to the first communication channel without involvement of the parent process;

determine the first data associated with the execution of the first child process; and

send the first data associated with the execution of the first child process to the parent process over the second communication channel.

9. The non-transitory computer readable medium of claim 8 , wherein creating the first child process comprises forking the parent process.

10. The non-transitory computer readable medium of claim 8 , wherein the first communication channel and the second communication are different.

11. The non-transitory computer readable medium of claim 10 , wherein the first communication channel is a TCP channel and the second communication channel is a UDP channel.

12. The non-transitory computer readable medium of claim 8 , wherein the parent portion is further adapted for executing in the parent process to:

receive a second request for a second task over a second connection to the first communication channel;

accept the second request for the second task over the second connection to the first communication channel without reading data from the second request;

create a second child process and provide the second connection to the first communication channel associated with the first request to the second child process without reading data from the second connection to the first communication channel associated with second request, wherein the second child process is a copy of the parent process executing in a second separate process space from the parent process and the parent process configures the second child process to start execution at the child entry point associated with the child portion of the task handler;

create a second child tracking entry associated with the second child process in the process map;

receive second data associated with the execution of the second child process from the second child process over the second communication channel;

store the received second data associated with the execution of the second child process in the second child tracking entry; and

the child portion of the task handler is adapted for executing in the second child process to:

read the second request over the second connection to the first communication channel to identify the requested second task;

invoke the identified second task to perform the second request;

provide a second response to the second request directly from the second child process over the second connection to the first communication channel without involvement of the parent process;

determine the second data associated with the execution of the second child process; and

send the second data associated with the execution of the second child process to the parent process over the second communication channel.

13. The non-transitory computer readable medium of claim 12 , wherein the second task is different than the first task.

14. The non-transitory computer readable medium of claim 8 , wherein first data associated with execution of the first child process comprises memory usage statistics, I/O statistics, or timing statistics on the first child process obtained from an operating system by the first child process.

15. A method, comprising:

providing a task handler, the task handler comprising:

a parent portion adapted for executing in a parent process to:

initialize a first task;

receive a first request for the first task over a first connection to a first communication channel;

accept the first request for the first task over the first connection to the first communication channel without reading data from the first request;

create a first child process and providing the first connection to the first communication channel associated with the first request to the first child process without reading data from the first connection to the first communication channel associated with first request, wherein the first child process is a copy of the parent process executing in a first separate process space from the parent process and the parent process configures the first child process to start execution at a child entry point associated with a child portion of the task handler;

create a first child tracking entry associated with the first child process in a process map;

receive first data associated with the execution of the first child process from the first child process over a second communication channel;

store the received first data associated with the execution of the first child process in the first child tracking entry; and

the child portion of the task handler is adapted for executing in the first child process to:

read the first request over the first connection to the first communication channel to identify the requested first task;

invoke the identified requested first task to perform the first request;

provide a first response to the first request directly from the first child process over the first connection to the first communication channel without involvement of the parent process;

determine the first data associated with the execution of the first child process; and

send the first data associated with the execution of the first child process to the parent process over the second communication channel.

16. The method of claim 15 , wherein creating the first child process comprises forking the parent process.

17. The method of claim 15 , wherein the first communication channel and the second communication are different.

18. The method of claim 17 , wherein the first communication channel is a TCP channel and the second communication channel is a UDP channel.

19. The method of claim 15 , wherein the parent portion is further adapted for executing in the parent process to:

receive a second request for a second task over a second connection to the first communication channel;

accept the second request for the second task over the second connection to the first communication channel without reading data from the second request;

create a second child process and provide the second connection to the first communication channel associated with the first request to the second child process without reading data from the second connection to the first communication channel associated with second request, wherein the second child process is a copy of the parent process executing in a second separate process space from the parent process and the parent process configures the second child process to start execution at the child entry point associated with the child portion of the task handler;

create a second child tracking entry associated with the second child process in the process map;

receive second data associated with the execution of the second child process from the second child process over the second communication channel;

store the received second data associated with the execution of the second child process in the second child tracking entry; and

the child portion of the task handler is adapted for executing in the second child process to:

read the second request over the second connection to the first communication channel to identify the requested second task;

invoke the identified second task to perform the second request;

provide a second response to the second request directly from the second child process over the second connection to the first communication channel without involvement of the parent process;

determine the second data associated with the execution of the second child process; and

send the second data associated with the execution of the second child process to the parent process over the second communication channel.

20. The method of claim 19 , wherein the second task is different than the first task.

21. The method of claim 15 , wherein first data associated with execution of the first child process comprises memory usage statistics, I/O statistics, or timing statistics on the first child process obtained from an operating system by the first child process.

Assignments (3)
SECURITY INTEREST Recorded Aug 8, 2025
From: K2M, INC.; VB SPINE US OPCO LLC
To: TEXAS CAPITAL BANK, AS COLLATERAL AGENT
Reel/Frame 072340/0397 →
SECURITY INTEREST Recorded Jul 29, 2024
From: Q2 SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 068111/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2021
From: BLUE, ADAM DAVID; BERHANE, THEODOR GETU; COYNE, THOMAS
To: Q2 SOFTWARE, INC.
Reel/Frame 056357/0452 →
Continuity (3)
Provisional Application 63037429 · Jun 10, 2020
Provisional Application 63037434 · Jun 10, 2020
Related Publication 20210389983A1 · Dec 16, 2021