Optimizing a cache of compiled expressions by removing variability
US-2018307469-A1 · Oct 25, 2018 · US
US10782944B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10782944-B2 |
| Application number | US-201916515157-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 18, 2019 |
| Priority date | Apr 20, 2017 |
| Publication date | Sep 22, 2020 |
| Grant date | Sep 22, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Approaches presented herein enable optimization of a cache of compiled XML Path Language (XPath) expressions by removing variability from XPath expressions. More specifically, XPath expressions are identified that are the same but for one or more hardcoded values. These hardcoded values are identified and replaced in an identified XPath expression with an identifier to form a cache optimized XPath expression that lacks the hardcoded value variability of the identified XPath expressions. This cache optimized XPath expression is inserted into a definition of a cache optimized function. The optimized XPath expression receives values as arguments of the cache optimized Xpath function and passes the received values to the variable identifier in the cache optimized XPath expression. The identified XPath expressions can then be rewritten as calls to the cache optimized function. Therefore, only the cache optimized XPath expression, instead of several of the identified XPath expressions, is stored in the cache.
Opening claim text (preview).
What is claimed is: 1. A method for optimizing a cache of compiled XML Path Language (XPath) expressions, the method comprising: identifying a plurality of XPath expressions, wherein at least a portion of each XPath expression is the same among the plurality and at least one hardcoded value differs between a first XPath expression of the plurality and a second XPath expression of the plurality; generating a cache optimized XPath expression from the first XPath expression by replacing the differing at least one hardcoded value with a variable identifier; and inserting the cache optimized XPath expression into a definition of a cache optimized XPath function, wherein the cache optimized XPath expression is configured to receive a value as an argument of the cache optimized XPath function and to pass the received value to the variable identifier in the cache optimized XPath expression. 2. The method of claim 1 , the method further comprising replacing the first XPath expression with a call to the cache optimized XPath function, wherein the call comprises the at least one hardcoded value of the first XPath expression as an argument of the call. 3. The method of claim 2 , the method further comprising: providing a user with a recommendation to replace a XPath expression of the plurality of XPath expressions with a call to the cache optimized XPath function; and performing the replacing of the first XPath expression in response to approval of the recommendation by the user. 4. The method of claim 1 , the method further comprising: wrapping a call to the cache optimized XPath function with a wrapping function, the wrapping function configured to pass the at least one hardcoded value of the first XPath expression to the cache optimized XPath function in response to receiving the first XPath expression as an argument; and replacing the first XPath expression with a call to the wrapping function, wherein the call comprises the first XPath expression as an argument of the call. 5. The method of claim 4 , the wrapping function further configured to select from a plurality of hardcoded values to pass to the cache optimized XPath function based on an XPath expression of the plurality of XPath expressions received by the wrapping function. 6. The method of claim 4 , the method further comprising: providing a user with a recommendation to replace a XPath expression of the plurality of XPath expressions with a call to the wrapping function; and performing the replacing of the first XPath expression in response to approval of the recommendation by the user. 7. The method of claim 1 , the identifying the plurality of XPath expressions further comprising parsing at least a subset of the plurality of XPath expressions without compiling the plurality of XPath expressions. 8. The method of claim 1 , the method being performed process being carried out as a review during a code development process. 9. A computer system for optimizing a cache of compiled XML Path Language (XPath) expressions, the computer system comprising: a memory medium comprising program instructions; a bus coupled to the memory medium; and a processor, for executing the program instructions, coupled to a compiled XPath expression optimizer tool via the bus that when executing the program instructions causes the system to: identify a plurality of XPath expressions, wherein at least a portion of each XPath expression is the same among the plurality and at least one hardcoded value differs between a first XPath expression of the plurality and a second XPath expression of the plurality; generate a cache optimized XPath expression from the first XPath expression by replacing the differing at least one hardcoded value with a variable identifier; and insert the cache optimized XPath expression into a definition of a cache optimized XPath function, wherein the cache optimized XPath expression is configured to receive a value as an argument of the cache optimized XPath function and to pass the received value to the variable identifier in the cache optimized XPath expression. 10. The computer system of claim 9 , the instructions further causing the system to replace the first XPath expression with a call to the cache optimized XPath function, wherein the call comprises the at least one hardcoded value of the first XPath expression as an argument of the call. 11. The computer system of claim 10 , the instructions further causing the system to: provide a user with a recommendation to replace a XPath expression of the plurality of XPath expressions with a call to the cache optimized XPath function; and perform the replacing of the first XPath expression in response to approval of the recommendation by the user. 12. The computer system of claim 9 , the instructions further causing the system to: wrap a call to the cache optimized XPath function with a wrapping function, the wrapping function configured to pass the at least one hardcoded value of the first XPath expression to the cache optimized XPath function in response to receiving the first XPath expression as an argument; and replace the first XPath expression with a call to the wrapping function, wherein the call comprises the first XPath expression as an argument of the call. 13. The computer system of claim 12 , wherein the wrapping function is further configured to select from a plurality of hardcoded values to pass to the cache optimized XPath function based on an XPath expression of the plurality of XPath expressions received by the wrapping function. 14. The computer system of claim 12 , the instructions further causing the system to: provide a user with a recommendation to replace a XPath expression of the plurality of XPath expressions with a call to the wrapping function; and perform the replacing of the first XPath expression in response to approval of the recommendation by the user. 15. The computer system of claim 9 , the instructions further causing the system to parse at least a subset of the plurality of XPath expressions without compiling the plurality of XPath expressions. 16. A computer program product for optimizing a cache of compiled XML Path Language (XPath) expressions, the computer program product comprising a computer readable storage device, and program instructions stored on the computer readable storage device, to: identify a plurality of XPath expressions, wherein at least a portion of each XPath expression is the same among the plurality and at least one hardcoded value differs between a first XPath expression of the plurality and a second XPath expression of the plurality; generate a cache optimized XPath expression from the first XPath expression by replacing the differing at least one hardcoded value with a variable identifier; and insert the cache optimized XPath expression into a definition of a cache optimized XPath function, wherein the cache optimized XPath expression is configured to receive a value as an argument of the cache optimized XPath function and to pass the received value to the variable identifier in the cache optimized XPath expression. 17. The computer program product of claim 16 , the computer readable storage device further comprising instructions to replace the first XPath expression with a call to the cache optimized XPath function, wherein the call comprises the at least one hardcoded value of the first XPath expression as an argument of the call. 18. The computer program product of claim 17 , the computer readable storage device further comprising instructions to: provide a user with
Query translation · CPC title
Optimisation · CPC title
Query optimisation · CPC title
Query execution · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.