IP Library Granted Patent US 10,567,475
Granted Patent B2
US 10,567,475 · App. 15/997,622 · Granted Feb 18, 2020

High-speed trace functionality in an on-demand services environment

Inventor: Mark Wilding (Issaquah, WA)
Assignee: salesforce.com, inc.
H04L67/06G06F11/3636H04L43/04H04L47/622H04L47/624H04L49/9036H04L67/02H04L67/10
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,567,475
App. No.
15/997,622
Granted
Feb 18, 2020
Kind
B2
Abstract

Techniques and architectures to provide trace functionality. Trace record data is received from a plurality of client threads executed by one or more processors. The trace record data is stored in a plurality of chunks maintained in an in-use list. The in-use list has a chunk for individual use by the corresponding client threads. Chunks in the in-use list are moved to a completed queue when a chunk in the in-use list is substantially full. A chunk from a free list is placed in the in-use list to replace removed chunks. The chunks from the completed queue are stored in at least one memory device.

Claims (41)

1. A system comprising:

at least one memory device; and

one or more processors coupled with the at least one memory device, the one or more processors to:

receive database statement data from a plurality of client threads executed by the one or more processors,

cause the database statement data to be stored in a plurality of chunks maintained in an in-use list, the in-use list having a chunk for individual use by the corresponding client threads,

cause chunks in the in-use list to be moved to a completed queue when a chunk in the in-use list is substantially full,

cause a chunk from a free list to be placed in the in-use list to replace removed chunks,

cause the chunks from the completed queue to be stored in the at least one memory device.

2. The system of claim 1 further comprising a plurality of service processes/threads to receive the database statement data from instrumentation points and cause the database statement data to be stored in the chunks in the in-use list.

3. The system of claim 1 wherein the chunks in the completed queue are periodically moved to a processing queue by and chunks from the processing queue are stored in the at least one memory device.

4. The system of claim 1 wherein the plurality of client threads comprise threads corresponding to multiple tenants within a multitenant environment.

5. The system of claim 2 , wherein, to provide database statement monitoring, chunks corresponding to a particular service processes/threads are stored in private memory corresponding to the particular service processes/threads and chunks are managed in a round robin fashion.

6. The system of claim 2 , wherein, chunks are stored in a shared memory that is shared by multiple service processes/threads.

7. The system of claim 1 wherein database statement data comprises details captured by a software product corresponding to a selected client thread.

8. A method to provide trace database statement monitoring functionality, the method comprising:

receiving database statement data from a plurality of client threads executed by one or more processors;

causing the database statement data to be stored in a plurality of chunks maintained in an in-use list, the in-use list having a chunk for individual use by the corresponding client threads;

causing chunks in the in-use list to be moved to a completed queue when a chunk in the in-use list is substantially full;

causing a chunk from a free list to be placed in the in-use list to replace removed chunks; and

causing the chunks from the completed queue to be stored in at least one memory device.

9. The method of claim 8 wherein a plurality of service processes/threads receive the database statement data from instrumentation points and cause the database statement data to be stored in the chunks in the in-use list.

10. The method of claim 8 wherein the chunks in the completed queue are periodically moved to a processing queue and chunks from the processing queue are stored in the at least one memory device.

11. The method of claim 8 wherein the plurality of client threads comprise threads corresponding to multiple tenants within a multitenant environment.

12. The method of claim 8 , wherein, to provide database statement monitoring, chunks corresponding to a particular service processes/threads are stored in private memory corresponding to the particular service processes/threads and chunks are managed in a round robin fashion.

13. The method of claim 8 , wherein chunks are stored in a shared memory that is shared by multiple service processes/threads.

14. The method of claim 8 wherein database statement data comprises details captured by a software product corresponding to a selected client thread.

15. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:

receive database statement data from a plurality of client threads executed by the one or more processors;

cause the database statement data to be stored in a plurality of chunks maintained in an in-use list, the in-use list having a chunk for individual use by the corresponding client threads;

cause chunks in the in-use list to be moved to a completed queue when a chunk in the in-use list is substantially full;

cause a chunk from a free list to be placed in the in-use list to replace removed chunks;

cause the chunks from the completed queue to be stored in at least one memory device.

16. The non-transitory computer-readable medium of claim 15 further comprising instructions that, when executed by the one or more processors, cause a plurality of service processes/threads to receive the database statement data from instrumentation points and cause the database statement data to be stored in the chunks in the in-use list.

17. The non-transitory computer-readable medium of claim 15 wherein the chunks in the completed queue are periodically moved to a processing queue and chunks from the processing queue are stored in the at least one memory device.

18. The non-transitory computer-readable medium of claim 15 wherein the plurality of client threads comprise threads corresponding to multiple tenants within a multitenant environment.

19. The non-transitory computer-readable medium of claim 16 , wherein, to provide database statement monitoring, chunks corresponding to a particular service processes/threads are stored in private memory corresponding to the particular service processes/threads and chunks are managed in a round robin fashion.

20. The non-transitory computer-readable medium of claim 16 , wherein, chunks are stored in a shared memory that is shared by multiple service processes/threads.

21. The non-transitory computer-readable medium of claim 15 wherein database statement data comprises details captured by a software product corresponding to a selected client thread.

22. The system of claim 1 wherein the database statement data comprises one or more of memory usage for statement execution, processor usage for statement execution, storage capacity usage for statement execution and/or network usage for statement execution.

23. The method of claim 8 wherein the database statement data comprises one or more of memory usage for statement execution, processor usage for statement execution, storage capacity usage for statement execution and/or network usage for statement execution.

24. The non-transitory computer-readable medium of claim 15 wherein the database statement data comprises one or more of memory usage for statement execution, processor usage for statement execution, storage capacity usage for statement execution and/or network usage for statement execution.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0333 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2018
From: WILDING, MARK
To: SALESFORCE.COM, INC.
Reel/Frame 046445/0029 →