Correlating input and output requests between client and server components in a multi-tier application
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-007/00
G06F-015/173
G06F-017/30
H04L-029/08
H04L-029/06
출원번호
US-0365484
(2012-02-03)
등록번호
US-9549030
(2017-01-17)
발명자
/ 주소
Malloy, Patrick
Crosby, Peter Anthony
Meagher, Robert
출원인 / 주소
RIVERBED TECHNOLOGY, INC.
대리인 / 주소
Park, Vaughan, Fleming & Dowler LLP
인용정보
피인용 횟수 :
1인용 특허 :
46
초록▼
The present invention relates to correlating requests between a client and a server to a particular transaction. In one embodiment, transactions in a system of clients and servers are monitored and traced. From this information, a context comprising sets or groupings of transaction call sequences ar
The present invention relates to correlating requests between a client and a server to a particular transaction. In one embodiment, transactions in a system of clients and servers are monitored and traced. From this information, a context comprising sets or groupings of transaction call sequences are determined. For example, a sequence of method calls on a client process is traced to a socket carrying data for transmission of a request message to a server. In response to this request message, the server then executes a set of method calls that can be correlated to the request message and the socket. This set of actions is considered part of a causally related grouping, and thus, associated together. In one embodiment, HTTP requests from a client may be comprise a unique custom header that is readily identified and traced. For other protocols, a client socket is associated with a corresponding server socket or to data received over a socket receive call.
대표청구항▼
1. A method of marking a transaction at a first node for correlation with a related transaction at a second node, said method comprising: determining when a socket connection is opened by the first node for a communication destined to the second node;assigning a connection ID to the socket connectio
1. A method of marking a transaction at a first node for correlation with a related transaction at a second node, said method comprising: determining when a socket connection is opened by the first node for a communication destined to the second node;assigning a connection ID to the socket connection;emitting the connection ID responsive to a successful socket write action by the first node;emitting, at offsets within the communication, respective markers for each of the offsets, wherein each offset corresponds to a number of bytes from a start of the socket connection; andmaintaining an index that is keyed on the markers and a timestamp indicating when each marker was created, wherein the markers correspond to checksum values. 2. The method of claim 1, further comprising emitting an amount of data sent and an amount data received for each socket connection. 3. The method of claim 1, wherein emitting the respective markers comprises emitting a checksum value calculated based on the offset. 4. The method of claim 1, wherein emitting the checksum value comprises emitting a Jenkins checksum value based on the offset. 5. The method of claim 1, wherein emitting the respective markers comprises emitting a checksum and the offset as a pair value. 6. A method for correlating communications between a first node and a second node for a transaction, said method comprising: monitoring a plurality of method calls and a plurality of socket actions at the first and second nodes;assigning a socket ID to each socket connection that is opened on the first and second nodes;emitting, for each successful socket write action and each successful socket read action at the first and second nodes, the socket ID and respective marker corresponding to an offset within the connection, wherein each offset corresponds to a number of bytes from a start of the socket connection;maintaining an index that is keyed on the markers and a timestamp indicating when each marker was created, wherein the markers correspond to checksum values; andcorrelating the communications between the first and second nodes based on the socket ID and the respective markers. 7. The method of claim 6, wherein emitting the respective markers corresponding to an offset within the connection comprises emitting a checksum value calculated based on the offset. 8. The method of claim 6 further comprising emitting, for each successful socket write action, a local address, a remote address, a number of bytes sent, and a checksum value. 9. The method of claim 6, further comprising emitting, for each successful socket read action, a local address, a remote address, a number of bytes received, and a checksum value. 10. The method of claim 6, further comprising recording each of the plurality of method calls and their corresponding emissions to a database. 11. The method of claim 6, further comprising maintaining an index that is keyed on identifiers for the first and second nodes, an identifier for each process associated with the method calls, and an identifier for the socket connection. 12. The method of claim 6, wherein correlating the communications between the first and second nodes based on the socket ID and the respective markers comprises a lookup for socket calls matching the socket ID and a corresponding range of markers. 13. The method of claim 6, wherein correlating the communications between the first and second nodes based on the socket ID and the respective markers comprises a lookup for socket calls matching the socket ID and a corresponding range of checksum values calculated for offsets within the communications. 14. A method for correlating a transaction recorded at two or more nodes, comprising: monitoring a plurality of method calls and a plurality of socket actions for transactions at each of the two or more nodes;associating a socket with each socket connection that is opened;for each successful socket connection, emitting the socket, a local address, and a remote address;for each successful socket write action, emitting the socket, a current output stream offset, a number of bytes sent, and on selected fixed boundaries and at the end of a socket connection a checksum value, wherein each offset corresponds to a number of bytes from a start of the socket connection;for each successful socket read action, emitting the socket, a current input stream offset, a number of bytes received, and on selected fixed boundaries and at the end of a socket connection, a checksum value;associating each emission with at least one of the plurality of method calls;recording information about each of the plurality of method calls and their corresponding emissions;maintaining an index that is keyed on checksum values and a timestamp indicating when each checksum value was created; andidentifying a correlation between at least two of the plurality of method calls based on the recorded information. 15. The method of claim 14, wherein identifying the correlation comprises determining a relation between at least two of the plurality of method calls based on a heuristic matching of the emitted checksums. 16. The method of claim 14, wherein identifying the correlation comprises determining a relation between at least two of the plurality of method calls based on a heuristic matching of custom headers. 17. The method of claim 14, further comprising displaying transactions related to correlated method calls as a single transaction to a user. 18. The method of claim 17, wherein displaying transactions related to correlated method calls as a single transaction to a user comprises displaying the single transaction with method calls that span between the first and second nodes. 19. A first node configured to mark a transaction for correlation with a related transaction at a second node, said first node comprising: a memory comprising executable program code; anda processor configured by the executable program code to determine when a socket connection is opened by the client for a communication destined to the second node, assign a connection ID to the socket connection, emit the connection ID responsive to a successful socket write action by the first node, emit, at offsets within the communication, respective markers for each of the offsets, wherein each offset corresponds to a number of bytes from a start of the socket connection, and maintain an index that is keyed on the markers and a timestamp indicating when each marker was created, wherein the markers correspond to checksum values. 20. The first node of claim 19, wherein the processor is configured to emit an amount of data sent and an amount data received for each socket connection. 21. The first node of claim 19, wherein the processor is configured to emit a checksum value calculated based on the offset. 22. The first node of claim 19, wherein the processor is configured to emit a Jenkins checksum value based on the offset. 23. The first node of claim 19, wherein the processor is configured to emit a checksum and the offset as a pair value. 24. A system configured to correlate communications between a first node and a second node for a transaction of an application running over a network, said system comprising: a communications interface coupled to the network and configured to receive trace information from at least the first and second nodes;a processor; a non-transitory computer-readable medium having computer-readable instructions executable by a computer such that, when executing said instructions, a computer will perform a computer-implemented method for correlating communications between a first node and a second node for a transaction of an application running over a network, the method comprising: monitoring a plurality of method calls and a plurality of socket actions for transactions at each of the two or more nodes,associating a socket ID with each socket connection that is opened,wherein for each successful socket connection, the socket ID, a local address, and a remote address has been emitted by the first and second nodes,wherein for each successful socket write action, the socket ID, a current output stream offset, a number of bytes sent, and on selected fixed boundaries and at the end of a socket connection a checksum value has been emitted by the first and second nodes, wherein each offset corresponds to a number of bytes from a start of the socket connection, wherein for each successful socket read action, the socket ID, a current input stream offset, a number of bytes received, and on selected fixed boundaries and at the end of a socket connection, a checksum value, has been emitted by the first and second nodes,associating each emission with at least one of the plurality of method calls, record information about each of the plurality of method calls and their corresponding emissions,maintaining an index that is keyed on checksum values and a timestamp indicating when each checksum value was created, andidentifying a correlation between at least two of the plurality of method calls based on the recorded information. 25. The system of claim 24, wherein the processor is configured to determine a relation between at least two of the plurality of method calls based on a heuristic matching of the emitted checksums. 26. The system of claim 24, wherein the processor is configured to determine a relation between at least two of the plurality of method calls based on a heuristic matching of custom headers. 27. The system of claim 24, wherein the processor is configured to provide information for displaying transactions related to correlated method calls as a single transaction to a user. 28. The system of claim 27, wherein the processor is configured to provide information for displaying the single transaction with method calls that span between the first and second nodes.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (46)
Barsness,Eric Lawrence; Santosuosso,John Matthew, Apparatus and method for monitoring usage of components in a database index.
Block,Timothy Roy; Cernohous,Bob Richard; Simonson,Steven John; Unterholzner,John Christian, Apparatus and method for processing sequenced records across multiple network connections.
Benson, Donald Edward; Gallagher, Edward Joseph; Ho, Mang-Rong; Richardson, Dwayne Lorenzo, Method and apparatus for entity removal from a content management solution implementing time-based flagging for certainty in a relational database environment.
Barnett, Paul T.; Braddock, Daniel M.; Clarke, Allan Drew; DuPré´, David Leigh; Gimarc, Richard; Lehr, Theodore F.; Palmer, Annette; Ramachandran, Rajinikala; Reynolds, James; Spellmann, Amy Carolyn; West, Carolyn; Wise, Timothy E.; Zauli, Tom; Zink, Kenneth, Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications.
Barnett,Paul T.; Braddock,Daniel M.; Clarke,Allan Drew; DuPr챕쨈,David Leigh; Gimarc,Richard; Lehr,Theodore F.; Palmer,Annette; Ramachandran,Rajinikala; Renyolds,James; Spellman,Amy Carolyn; West,Carolyn; Wise,Timothy E.; Zauli,Tom; Zink,Kenneth, Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications.
David, Ram Adva Fish; Kenchammana-Hosekote, Dilip Raghu; Adams, Alistair Edwin, Methods and systems for associating location information with a wireless local area network.
Russell, Travis E.; Marsico, Peter J., Methods, systems, and computer program products for providing media content delivery audit and verification services.
Block, Timothy Roy; Cernohous, Bob Richard; Simonson, Steven John; Unterholzner, John Christian, Processing sequenced records across multiple network connections.
Madrid Louise M. ; Meier Richard A. ; Putzolu Franco ; Sharma Sunil ; O'Shea Thomas J. ; Troisi James H. ; Zeller Hansjorg ; Gilbert Gary M. ; Maier Donald S. ; Davis Elizabeth G. ; Celis Pedro, Relational database system and method with high availability compliation of SQL programs.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.