Dynamic Search Health Monitoring
AssigneeMicrosoft Corporation
InventorsBrion Stone, Viktoriya Taranov, Michal Piaseczny, Menton Joseph Frable
Life of this patent
Estimating the term…
Abstract
A method for monitoring search performance on a server computer includes determining the processing time for a plurality of operations related to a search on the server computer. The determined processing time for each of the plurality of operations is stored in a database. Aggregate processing times are determined for the plurality of operations and the aggregate processing times are stored in the database.
Claims20
A method for monitoring search performance on a server computer, the method comprising:
- determining processing time on the server computer for a plurality of operations performed on the server computer related to a search;
- storing the determined processing time for each of the plurality of operations in a database;
- calculating aggregate processing times for the plurality of operations;
- and
- storing the aggregate processing times in the database.
A server computer that is configured to monitor search performance, the server computer comprising:
- a processing unit;
- a data storage system storing instructions that, when executed by the processing unit, cause the processing unit to:
- create a web front-end module that processes search requests from a client computer over a network and that returns the results of the search requests to the client computer;
- create one or more search crawl components that locate requested data for a search in one or more files on the server computer and that provide an index to the requested data;
- create one or more search query components that parses the search requests and uses the index to locate the requested data on the server computer;
- and
- create a search performance processing module that calculates search processing time in a plurality of code segments executed on the server computer as a result of a search, and that calculates aggregate performance time for the plurality of code segments, the search performance processing module storing the processing time for each monitored code segment in a usage database that is accessible to a plurality of server computers in a server farm, the search performance processing module also storing the calculated aggregate performance times in the usage database.
A computer-readable data storage medium comprising instructions that, when executed by a processing unit of a server computer, cause the processing unit to:
- determine processing time on the server computer for a plurality of operations performed on the server computer related to a search, the plurality of operations including operations related to a search query and operations related to a search crawl, the measuring of the processing time for search query operations causing the processing unit to:
- identify one or more code segments corresponding to a search query operation,
- start a timer at the start of each of the one or more code segments,
- stop the timer at the end of each of the one or more code segments, and
- determine the time from the start of each code segment to the end of each code segment, and
- the measuring of the processing time for search crawl operations causing the processing unit to:
- identify one or more handlers corresponding to a search crawl operation,
- start a timer when each of the one or more handlers is executed for the search crawl operation,
- stop the timer for each of the one or more handlers at the end of the search crawl operation, and
- determine the time that each of the one or more handlers is executed for the search crawl operation;
- store the measured processing time for each of the plurality of operations in a database;
- calculate aggregate processing times for the plurality of operations, the calculating of aggregate processing times for the plurality of operations causing the processing unit to:
- obtain the processing time for two or more search query operations performed on the server computer during a predetermined time interval,
- add the processing time for the two or more search query operations, and
- divide the sum of the processing time for the two or more search query operations by the number of search query operations performed on the server computer within the predetermined time interval,
- obtain the processing time for two or more search crawl operations performed on the server computer during the predetermined time interval,
- add the processing time for the two or more search crawl operations, and
- divide the sum of the processing time for the two or more search crawl operations by the number of search crawl operations performed on the server computer within the predetermined time interval,
- add the processing time for two or more code segments executed on the server computer during two or more search query operations, and divide the sum of the processing time for the two or more code segments by the predetermined time interval,
- and
- add the processing time for two or more handlers executed on the server computer during one or more search crawl operations, and divide the sum of the processing time for the two or more handlers by the predetermined time interval;
- and
- store the aggregate processing times in the database.
Dependencies are inferred from the claim text.