IP Library Granted Patent US 9,992,264
Granted Patent B2
US 9,992,264 · App. 15/013,760 · Granted Jun 5, 2018

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

Inventor: Mark Wilding (Issaquah, WA)
Assignee: salesforce.com, inc.
H04L67/06H04L47/622H04L67/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 9,992,264
App. No.
15/013,760
Granted
Jun 5, 2018
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 trace record data from a plurality of client threads executed by the one or more processors,

cause the trace record 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 trace record data from instrumentation points and cause the trace record data to be stored in the chunks in the in-use list.

3. The system of claim 1 wherein chunks store context information in a header portion.

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

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

6. The system of claim 2 , wherein, to provide a session trace, 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.

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

8. The system of claim 1 wherein trace record data comprises details captured by a software product corresponding to a selected client thread.

9. A method to provide trace functionality, the method comprising:

receiving trace record data from a plurality of client threads executed by one or more processors;

causing the trace record 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.

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

11. The method of claim 9 wherein chunks store context information in a header portion.

12. The method of claim 9 wherein the chunks in the completed queue are moved to a processing queue by a trace flusher and chunks from the processing queue are stored in the at least one memory device.

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

14. The method of claim 9 , wherein, to provide a session trace, 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.

15. The method of claim 9 , wherein, to provide a trace, chunks are stored in a shared memory that is shared by multiple service processes/threads.

16. The method of claim 9 wherein trace record data comprises details captured by a software product corresponding to a selected client thread.

17. 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 trace record data from a plurality of client threads executed by the one or more processors;

cause the trace record 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.

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

19. The non-transitory computer-readable medium of claim 17 wherein chunks store context information in a header portion.

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

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

22. The non-transitory computer-readable medium of claim 18 , wherein, to provide a session trace, 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.

23. The non-transitory computer-readable medium of claim 18 , wherein, to provide a trace, chunks are stored in a shared memory that is shared by multiple service processes/threads.

24. The non-transitory computer-readable medium of claim 17 wherein trace record data comprises details captured by a software product corresponding to a selected client thread.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069430/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2016
From: WILDING, MARK
To: SALESFORCE.COM, INC.
Reel/Frame 037649/0455 →
Continuity (1)
Related Publication 20170223089A1 · Aug 3, 2017