Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberWO2008087633 A2
Publication typeApplication
Application numberPCT/IL2008/000061
Publication date24 Jul 2008
Filing date15 Jan 2008
Priority date17 Jan 2007
Also published asWO2008087633A3
Publication numberPCT/2008/61, PCT/IL/2008/000061, PCT/IL/2008/00061, PCT/IL/8/000061, PCT/IL/8/00061, PCT/IL2008/000061, PCT/IL2008/00061, PCT/IL2008000061, PCT/IL200800061, PCT/IL8/000061, PCT/IL8/00061, PCT/IL8000061, PCT/IL800061, WO 2008/087633 A2, WO 2008087633 A2, WO 2008087633A2, WO-A2-2008087633, WO2008/087633A2, WO2008087633 A2, WO2008087633A2
InventorsBenjamin Volkow, Gil Shafran
ApplicantTraffix Communication Systems Ltd.
Export CitationBiBTeX, EndNote, RefMan
External Links: Patentscope, Espacenet
Method for statistics based performance optimization of regenerated code
WO 2008087633 A2
Abstract
An automated method for optimization of stack software based on statistical analysis of performance and according to configuration parameters. The method includes generating the original code, collecting statistics of usage patterns and feeding back the results of the statistics to recreate and optimize the code. The method further includes regenerating the code, reloading the regenerated code into the system and returning to the statistics collection step, wherein the sequence of generating, collecting, feeding back, regenerating and reloading are reiterated continuously, such that the method continuously provides increasingly optimum code performance.
Claims  (OCR text may contain errors)
We claim:
1. An automated method for optimization of stack software code comprising actions, said optimization based on statistical analysis of performance and configuration parameters, said method comprising: generating the original code; collecting statistics of usage patterns; feeding back the statistics to recreate and optimize the code; regenerating the code; reloading the regenerated code into the system; and returning to the statistics collection step, wherein the sequence of the generating, collecting, feeding back, regenerating and reloading steps are reiterated continuously, such that said method continuously provides increasingly optimum code performance.
2. The method according to claim 1, wherein said regenerated code is fully specification compliant.
3. The method according to claim 1 , wherein said regenerated code is strongly typed.
4. The method according to claim 1 , wherein said code is generated and regenerated in Java, said method further comprising generating byte code by a Java compiler.
5. The method according to claim 1 , wherein said code is generated and regenerated in C++, said method further comprising generating native code by a C++ compiler..
6. The method according to claim 1 , further comprising parsing according to three (3) levels of standards parsing: messages, definitions of Attribute-Value Pairs (AVP's) and state machines describing a life-cycle of a user session.
7. The method according to claim 6, wherein an AVP frequently used by the application layer is permanently cached once after being searched.
8. The method according to claim 1 , wherein said for an "if statement" with multiple logical conditions, the logical conditions are ordered according to frequency of occurrence, such that the one occurring most frequently is checked first.
9. The method according to claim 1, wherein said stack software is constructed of programming language code formatted into a plurality of structures.
10. The method according to claim 9, wherein said plurality of structures are layered in several levels of one of inheritance and encapsulation.
11. The method according to claim 1 , wherein said optimization of stack software based on statistical analysis of performance is provided according to Diameter Base Protocol (DBP).
12. The method according to claim 11 , wherein message handling performed according to said DBP as implemented in the stack software further comprises updating and modifying the software from one installation to the next based on network action usage patterns and statistical information.
13. The method according to claim 11 , further comprising giving priority to the most frequently used Diameter protocol messages, AVP's and state machine transitions.
14. The method according to claim 1, further comprising enabling adaptation of the internal structure of one of a software package and component according to at least one of the following variables: installation environment, configuration, date, time of day, gathered historical data and statistics.
15. The method according to claim 14, wherein said at least one variable is used in one of an on-line and off-line manner, in order to shift and adapt the different internals and structure of the software to fall in line with the configuration parameters supplied.
16. The method according to claim 1 , wherein the optimization results in at least one of better performance of the software, better security and better memory usage.
17. The method according to claim 1, wherein the code is layered in a way that gives priority to the most used of said actions.
18. The method according to claim 12, wherein said action usage patterns vary according to at least one of different times, days, scenarios and configurations, such that the order of said actions and their layout in the code stays the same.
19. The method according to claim 1, further comprising sorting of multiple outcomes of logical conditions, thereby frequently relieving the need to test improbable conditions, where each such logical testing can involve time-consuming operations.
Description  (OCR text may contain errors)

METHOD FOR STATISTICS BASED PERFORMANCE OPTIMIZATION OF

REGENERATED CODE

FIELD OF THE INVENTION The present invention relates generally to software execution methodology, and more particularly to methods for optimizing the execution of stack software based on statistical analysis and implementation.

BACKGROUND OF THE INVENTION The Diameter Base Protocol (DBP) is intended to provide an Authentication,

Authorization and Accounting (AAA) framework for applications such as network access or IP mobility. The DBP was written by the Internet Engineering Task Force (IETF). The DBP was adopted and extended by other standardization bodies such as the 3rd Generation Partnership Project (3GPP). The IETF is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. The 3GPP is a collaborative effort between groups of telecommunications associations, to provide a globally applicable third generation (3G) mobile phone system specification. All standards extending DBP use common user notation for protocol messages and content. Diameter is also intended to work in both local AAA and roaming situations.

Every Diameter command is defined by means of the Augmented Backus-Naur Form

(ABNF) syntax, according to the rules defined in Diameter Base Protocol. Whenever the definition and use of an AVP is not specified, what is stated in Diameter protocol details apply. An Attribute Value Pair (AVP) corresponds to an Information Element in a Diameter message.

The Diameter base protocol provides the following facilities: delivery of attribute value pairs (AVP's); capabilities negotiation; error notification; extensibility, through addition of new commands and AVP's; and basic services necessary for applications, such as handling of user sessions. All data delivered by the protocol is in the form of AVP's. Some of these AVP values are used by the Diameter protocol itself, e.g. peer-to-peer maintenance, while others deliver data associated with particular applications that employ Diameter. AVP's may be added arbitrarily to Diameter messages, so long as the required AVP's are included and AVP's that are explicitly excluded are not included. AVP's are used by the base Diameter protocol to support the following required features: transporting of user authentication information, for the purposes of enabling the Diameter server to authenticate the user; transporting of service specific authorization information, between client and servers, allowing the peers to decide whether a user's access request should be granted; exchanging resource usage information, which may be used for accounting purposes, capacity planning, etc; and relaying, proxying and redirecting of Diameter messages through a server hierarchy.

The Diameter message consists of a header followed by one or more Attribute- Value-Pairs (AVP's). An AVP includes a header and a value, and is used to encapsulate protocol-specific data such as routing information, as well as authentication, authorization or accounting information.

Software optimization is known in the art.

In US Pat. Applic. No. 20070226320, Yuval, et al, disclose a Device, System and

Method for Storage and Access of Computer Files. Briefly, some embodiments of the invention provide, for example, devices, systems and methods for storage and access of computer files. A method in accordance with an embodiment of the invention may include, for example, receiving from a remote site a request to access a first file having a plurality of blocks, said request having a pre-defined format encapsulating an original request of a client of a synchronous client-server system and in accordance with a pre-defined file system; determining, for each of at least some of said plurality of blocks, a differential portion representing a difference between each said block and a corresponding block of a second file; and sending said differential portion to said remote site.

In US Pat. Applic. No. 20070168563, Jha, et al, teach a Single Logical Network Interface for Advanced Load Balancing and Fail-Over Functionality. The invention sets forth an approach for aggregating a plurality of NICs in a computing device into a single logical NIC as seen by that computing device's operating system. The combination of the single logical NIC and a network resource manager provides a reliable and persistent interface to the operating system and to the network hardware, thereby improving the reliability and ease-of-configuration of the computing device. The invention also may improve communications security by supporting the 802.1X and the 802.1Q networking standards.

In US Pat. Applic. No. 20070011272, Bakke, et al disclose an Offload Stack for Network, Block and File Input and Output. An apparatus for offloading network, block and file functions from an operating system comprises a network interface coupled to a network for receiving packet flows; one or more processors each having one or more processor cores; a computer-readable medium carrying one or more operating systems and an input/output networking stack which are hosted in one or more of the processor cores. The networking stack is shared among the operating systems. The networking stack comprises instructions which when executed cause receiving a request for data transfer from one of the operating systems at internal network, block and file system interfaces, and permitting data to be transferred between the internal interfaces and a plurality of external interfaces by preventing the operating systems from performing the data transfer and performing the data transfer on behalf of the operating systems. In US Pat. Applic. No. 20060248315, Honda teaches a Stack Controller Efficiently

Using the Storage Capacity of a Hardware Stack and a Method Therefore. In a stack controller for use in a microprocessor when executing a program sequence, an interrupt controller monitors the number of free entries of a hardware stack to generate, when the free entry number reaches a number of push- or pop-trigger entries, a push or pop interrupt to send the interrupt to a main controller. In response to the push interrupt, the main controller retrieves data from the bottom of the hardware stack and pushes the data onto the software stack. The main controller repeats this sequence the times equal to a predetermined number of saving entries to perform push interrupt processing. In response to the pop interrupt, the main controller pops data from the software stack and stores the popped data at the bottom of the hardware stack. The main controller repeats this sequence the times equal to a predetermined number of restoring entries to perform pop interrupt processing.

In US Pat. Applic. No. 20060004961 , Tu1 et al, disclose Direct Processor Cache Access Within a System Having a Coherent Multi-Processor Protocol. The apparatus comprises a plurality of processors having cache traffic monitors to monitor cache traffic in the respective processors, a push optimizer coupled with the cache traffic monitors to receive cache traffic information and to determine a selected target processor for an operation to cause data to be pushed to a cache of the selected target processor and a bus agent coupled with the plurality of processors to push data to the cache memory of the selected target processor.

Thus, prior art methods are quite cumbersome, and it would be advantageous to provide a simplified, effective method to optimize the execution of software.

SUMMARY OF THE INVENTION

Accordingly, it is a principal object of the present invention to optimize the execution of stack software based on statistical analysis and implementation.

It is another principal object of the present invention to enable adaptation of the internals of a software package

It is one other principal object of the present invention to achieve higher utilization, efficiency and robustness.

It is one further principal object of the present invention to modify software in a dynamic method based on gathered information or defined criteria. It is still one other principal object of the present invention to generate code that is fully compliant with the Diameter standards.

It is yet one other principal object of the present invention to generate code that is strongly typed, i.e., every Diameter message generated code has a unique interface for adding and approaching its specification based AVPs and every generated AVP code has a unique interface fully compliant with its specification definition.

An automated method for optimization of stack software based on statistical analysis of performance and according to configuration parameters. The method includes generating the original code, collecting statistics of usage patterns and feeding back the results of the statistics to recreate and optimize the code. The method further includes regenerating the code, reloading the regenerated code into the system and returning to the statistics collection step, wherein the sequence of generating, collecting, feeding back, regenerating and reloading are reiterated continuously, such that the method continuously provides increasingly optimum code performance. The standards are used to compile code generated in Java or C++. Then the Java or C++ compiler generates byte code or native code respectively. There are 3 levels of standards parsing: messages, definitions of AVP's and state machines describing a life- cycle of a user session. Software is constructed of programming language code formatted into different structures. Those structures are layered in several levels of inheritance or encapsulation. The method described in this invention describes a mechanism which enables adaptation of the internals of a software package, the structure and connections between the different parts and arrangements forming the entire software package, in order to achieve higher utilization, efficiency and robustness. The software update is done in a dynamic method based on gathered information or defined criteria. In general the present invention collects statistics about the usages of the messages and uses this information to optimize the generated code.

Searching for a specific AVP in a message can be time-consuming, since it involves linear (AVP by AVP) parsing. Specific fields can be cached or specific patterns can be searched for according to statistical experience. Mechanisms are added to the generated code to count the usage of various elements. The application layer usage of the generated code is monitored for commonly used patterns and is regenerated to improve performance through automatic processing. The code is automatically generated. The statistics collection process runs automatically.

The statistics are fed back to recreate and optimize the regenerated code. The code is automatically reloaded into the system. The user only needs to approve the results.

The invention does not allow the application writer or the above layer to make any mistakes: the generated code is strongly typed;

AVP header flags rules are well-defined and the generated code does not allow any mistake; message types are well-defined and are specific rather than generic; and generated code is fully specification compliant. If a specific AVP is frequently used by the application layer, it can be permanently cached once after being searched only once and subsequently it will be used often.

For an if statement with multiple logical conditions, the logical conditions will be ordered according to frequency of occurrence, such that the one occurring most frequently is checked first. Functionality

The present invention provides a mechanism that enables adaptation of the internal structure of a software package or component according to variables such as installation environment, configuration, time of day, gathered historical data and statistics.

The method detailed in the present invention can use different parameters like those described above in either an on-line or off-line manner, in order to shift and adapt the different internals and structure of the software to fall in line with the configuration parameters supplied. By performing this update and using the information supplied, the functioning of the software is improved. This update may result in better performance of the software, better security and/or better memory usage.

Example 1 :

For efficiency reasons actions in the code are layered in a way that gives priority to the most used actions. Those action usage patterns and "popularity" can vary according to different times, days, scenarios and/or configurations, but the order of the actions and their layout in the code is static and stays the same.

Using the method of the invention, the code, action order and handling can be altered and dynamically adapted according to parameters such as day, time, configuration and/or statistical data.

Example 2:

In a Diameter protocol software stack implementation, checks regarding messages are preferably done in the most efficient way, which commonly gives priority to the most frequently used Diameter protocol messages and Attribute Value Pairs (AVP's). But in different network scenarios and installations, various messages are used differently according to varying patterns of repetition and amount and with different AVP's.

According to the principles of the present invention, Diameter message handling as implemented in the software can be updated and modified from one installation to the next based on network usage patterns and statistical information.

There has thus been outlined, rather broadly, the more important features of the invention in order that the detailed description thereof that follows hereinafter may be better understood. Additional details and advantages of the invention will be set forth in the detailed description, and in part will be appreciated from the description, or may be learned by practice of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS In order to understand the invention and to see how it may be carried out in practice, a preferred embodiment will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:

Fig. 1 is a prior art schematic block diagram, exemplifying software internals before optimization; Fig. 2 is a schematic block diagram representing high level software architecture, constructed in accordance with the principles of the present invention; and

Fig. 3 is a flow chart for optimizing the execution of stack software based on statistical analysis and implementation, constructed in accordance with the principles of the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT Fig. 1 is a pre-optimized flow, where several conditions are checked, and each one results in a set of operations. Fig. 1 provides details of high level internals of the software used in order to demonstrate the present invention. In the example detailed in Fig. 1 software is composed of four main Actions, layered from top condition 110 being checked resulting in Action 115 being performed to condition 140 being checked resulting in bottom Action 145 being performed, as organized during software development, giving the highest priority to Action 115 over the rest of the actions. Higher priority is also given to condition 120 being checked resulting in Action 125 being performed over Action 135 and Action 145, etc. Higher priority is also given to condition 130 being checked resulting in Action 135 being performed over Action 145. The lowest priority is given to condition 140 being checked. This ordering of the Actions was done during software development to provide the best performance suitable for most common software installations and configurations, where processing continues 150 after all actions are performed.

Fig. 2 is a schematic block diagram representing high level software architecture, constructed in accordance with the principles of the present invention. Using the available statistical data, it appears that the probability of the fourth condition 140 to be fulfilled is the highest resulting in Action 145 being performed, condition 130 follows resulting in Action 135 being performed, then condition 110 resulting in Action 115 being performed and condition 120 is the most unlikely to happen resulting in Action 125 being performed. This results in the code described in Fig. 2, where the conditions are sorted by their statistical significance. Sorting the logical conditions relieves the need to test improbable conditions, where each such logical test can involve message parsing and/or other time-consuming operations. Again processing continues 150 after all actions are performed.

In the Example in Fig. 2 the information gathered is used to adapt and optimize the four main Actions to achieve higher software efficiency, giving highest priority to Action 140 and lowest priority to Action 120.

Fig. 3 is a flow chart for the automated optimizing of the execution of stack software based on statistical analysis and implementation, constructed in accordance with the principles of the present invention. The first step is to generate the original code 310. The next step is to collect statistics of usage patterns 320 and then to feed the statistics back into the system in order to proceed to recreate and optimize the code 330. Then the code is reloaded into the system and the code is regenerated 340. The system again proceeds to collect statistics of usage patterns 320 and steps 320 to 340 continue reiteratively in order to continuously provide increasingly optimum code performance.

Having described the present invention with regard to certain specific embodiments thereof, it is to be understood that the description is not meant as a limitation, since further modifications will now suggest themselves to those skilled in the art, and it is intended to cover such modifications as fall within the scope of the appended claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US6006033 *15 Aug 199421 Dec 1999International Business Machines CorporationMethod and system for reordering the instructions of a computer program to optimize its execution
US6016512 *18 Aug 199818 Jan 2000Telcordia Technologies, Inc.Enhanced domain name service using a most frequently used domain names table and a validity code table
US6971091 *1 Nov 200029 Nov 2005International Business Machines CorporationSystem and method for adaptively optimizing program execution by sampling at selected program points
Non-Patent Citations
Reference
1 *FAJARDO: 'Open Diameter Software Architecture', [Online] June 2004, pages 1,3 - 7 Retrieved from the Internet: <URL:http://diameter.sourceforge.net/diameter-architecture/index.html>
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US847882811 Feb 20112 Jul 2013Tekelec, Inc.Methods, systems, and computer readable media for inter-diameter-message processor routing
US848323311 Feb 20119 Jul 2013Tekelec, Inc.Methods, systems, and computer readable media for providing local application routing at a diameter node
US849820211 Feb 201130 Jul 2013Tekelec, Inc.Methods, systems, and computer readable media for diameter network management
US850463011 Feb 20116 Aug 2013Tekelec, Inc.Methods, systems, and computer readable media for diameter application loop prevention
US852759811 Feb 20113 Sep 2013Tekelec, Inc.Methods, systems, and computer readable media for answer-based routing of diameter request messages
US853211011 Feb 201110 Sep 2013Tekelec, Inc.Methods, systems, and computer readable media for diameter protocol harmonization
US85479085 Mar 20121 Oct 2013Tekelec, Inc.Methods, systems, and computer readable media for enriching a diameter signaling message
US854949525 Feb 20121 Oct 2013International Business Machines CorporationUsing appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code
US855492811 Feb 20118 Oct 2013Tekelec, Inc.Methods, systems, and computer readable media for providing origin routing at a diameter node
US857805011 Feb 20115 Nov 2013Tekelec, Inc.Methods, systems, and computer readable media for providing peer routing at a diameter node
US860107311 Feb 20113 Dec 2013Tekelec, Inc.Methods, systems, and computer readable media for source peer capacity-based diameter load sharing
US861307318 Oct 201017 Dec 2013Tekelec, Inc.Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality
US862729814 Dec 20097 Jan 2014International Business Machines CorporationUsing appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code
US864432411 Feb 20114 Feb 2014Tekelec, Inc.Methods, systems, and computer readable media for providing priority routing at a diameter node
US875012611 Feb 201110 Jun 2014Tekelec, Inc.Methods, systems, and computer readable media for multi-interface monitoring and correlation of diameter signaling information
US879232911 Feb 201129 Jul 2014Tekelec, Inc.Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)
US87993911 Jul 20135 Aug 2014Tekelec, Inc.Methods, systems, and computer readable media for inter-diameter-message processor routing
US895830618 Oct 201017 Feb 2015Tekelec, Inc.Methods, systems, and computer readable media for providing diameter signaling router with integrated monitoring functionality
US899525620 Feb 201431 Mar 2015Tekelec, Inc.Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)
US899663630 Aug 201331 Mar 2015Tekelec, Inc.Methods, systems, and computer readable media for answer-based routing of diameter request messages
US908847811 Feb 201121 Jul 2015Tekelec, Inc.Methods, systems, and computer readable media for inter-message processor status sharing
US914838823 May 201329 Sep 2015Tekelec, Inc.Methods, systems, and computer readable media for performing enhanced service routing
US953777523 Sep 20133 Jan 2017Oracle International CorporationMethods, systems, and computer readable media for diameter load and overload information and virtualization
US964798616 Dec 20139 May 2017Tekelec, Inc.Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality
Classifications
International ClassificationG06F9/45
Cooperative ClassificationG06F8/4441
European ClassificationG06F8/4441
Legal Events
DateCodeEventDescription
10 Sep 2008121Ep: the epo has been informed by wipo that ep was designated in this application
Ref document number: 08702642
Country of ref document: EP
Kind code of ref document: A2
18 Jul 2009NENPNon-entry into the national phase in:
Ref country code: DE
10 Feb 2010122Ep: pct application non-entry in european phase
Ref document number: 08702642
Country of ref document: EP
Kind code of ref document: A2