IP Library Patent Application 13545253
Patent Application
App. No. 13/545,253

Correlated Tracing of Requests through TDS

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 None
App. No.
13/545,253
Abstract

A trace header with an activity identifier is sent between a client and a database server as part of a request message stream. The activity identifier gets logged by client-side connection-related traces, by server-side traces, and by database engine traces. The activity identifier can be used to exactly correlate a thread on the client to threads on the server. Additionally, specific threads within a database engine may be correlated using the activity identifier to track the threads that processed a particular request. This enhances troubleshooting of the database system, particularly when there are many concurrent users and threads.

Claims (52)

1 . A computer-implemented method, comprising:

generating a request by a thread on a client machine, the request comprising data to be sent to a database server using packets configured using a Tabular Data Stream (TDS) protocol;

inserting a trace header into the request, the trace header comprising an activity identifier that is unique to the request, the activity identifier comprising a randomly generated globally unique identifier (GUID) associated with the thread on the client machine plus a sequence number associated with the request generated by the thread, wherein a new sequence number is assigned to each request sent by the thread; and

transmitting the request to the database server.

2 . The computer-implemented method of claim 1 , further comprising:

logging the request in one or more layers of a stack using a tracing operation.

3 . The computer-implemented method of claim 1 , further comprising:

logging the request in a client driver stack layer;

logging the request in a TDS protocol stack layer; and

logging the request in a database server stack layer.

4 . The computer-implemented method of claim 3 , further comprising:

correlating the logged requests in the client driver stack layer, the TDS protocol stack layer, and the database server stack layer using the activity identifier.

5 . The computer-implemented method of claim 1 , further comprising:

receiving the request at the database server; and

associating the activity identifier with one or more threads running on the database server.

6 . The computer-implemented method of claim 5 , further comprising:

correlating two or more of the threads running on the database that were used to process the request containing the activity identifier.

7 . The computer-implemented method of claim 1 , wherein the request is a SQL batch or Remote Procedure Call (RPC) request.

8 . The computer-implemented method of claim 1 , wherein the GUID a sixteen-byte number and the sequence number is a four-byte number.

9 . The computer-implemented method of claim 1 , further comprising:

generating a response on database server, the response comprising data to be sent to the client machine using packets configured using the TDS protocol;

inserting a trace header into the response, the trace header comprising the activity identifier; and

transmitting the response to the client machine.

10 . A computer system, comprising:

one or more processors;

system memory;

one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the processors to perform a method for tracing requests in a database system, the processor operating to:

generate a request by a thread, the request comprising data to be sent to a database server using packets configured using a Tabular Data Stream (TDS) protocol;

insert a trace header into the request, the trace header comprising a activity identifier that is unique to the request, the activity identifier comprising a randomly generated globally unique identifier (GUID) associated with the thread on the client machine plus a sequence number associated with the request generated by the thread, wherein a new sequence number is assigned to each request sent by the thread; and

transmit the request to the database server.

11 . The computer system of claim 10 , the processor further operating to:

log the request in one or more layers of a stack using a tracing operation.

12 . The computer system of claim 10 , the processor further operating to:

log the request in a client driver stack layer;

log the request in a TDS protocol stack layer; and

log the request in a database server stack layer.

13 . The computer system of claim 10 , the processor further operating to:

correlate the logged requests in the client driver stack layer, the TDS protocol stack layer, and the database server stack layer using the activity identifier.

14 . The computer system of claim 10 , wherein the request is a SQL batch or Remote Procedure Call (RPC) request.

15 . The computer system of claim 10 , wherein the GUID a sixteen-byte number and the sequence number is a four-byte number.

16 . A computer-implemented method, comprising:

receiving a request by a thread on a database server, the request comprising data packets configured using a Tabular Data Stream (TDS) protocol;

identifying a trace header in the request, the trace header comprising an activity identifier that is unique to the request, the activity identifier comprising a randomly generated globally unique identifier (GUID) associated with the thread on the client machine plus a sequence number associated with the request generated by the thread, wherein a new sequence number is assigned to each request sent by the thread; and

associating the activity identifier with one or more threads running on the database server.

17 . The computer-implemented method of claim 16 , further comprising:

correlating two or more of the threads running on the database that were used to process the request containing the activity identifier.

18 . The computer-implemented method of claim 16 , further comprising:

generating a response on database server, the response comprising data to be sent to a client machine using packets configured using the TDS protocol;

inserting a trace header into the response, the trace header comprising the activity identifier; and

transmitting the response to the client machine.

19 . The computer-implemented method of claim 16 , wherein the request is a SQL batch or Remote Procedure Call (RPC) request.

20 . The computer-implemented method of claim 16 , wherein the GUID a sixteen-byte number and the sequence number is a four-byte number.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2012
From: WU, RONG; JACOB, CHERYAN; HALMANS, JEROME R.; HONG, XINWEI; KIM, YOUNG GAH
To: MICROSOFT CORPORATION
Reel/Frame 028521/0001 →