|Publication number||WO2008087633 A2|
|Publication date||24 Jul 2008|
|Filing date||15 Jan 2008|
|Priority date||17 Jan 2007|
|Also published as||WO2008087633A3|
|Publication number||PCT/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|
|Inventors||Benjamin Volkow, Gil Shafran|
|Applicant||Traffix Communication Systems Ltd.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (3), Non-Patent Citations (1), Referenced by (24), Classifications (3), Legal Events (3)|
|External Links: Patentscope, Espacenet|
METHOD FOR STATISTICS BASED PERFORMANCE OPTIMIZATION OF
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.
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.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US6006033 *||15 Aug 1994||21 Dec 1999||International Business Machines Corporation||Method and system for reordering the instructions of a computer program to optimize its execution|
|US6016512 *||18 Aug 1998||18 Jan 2000||Telcordia Technologies, Inc.||Enhanced domain name service using a most frequently used domain names table and a validity code table|
|US6971091 *||1 Nov 2000||29 Nov 2005||International Business Machines Corporation||System and method for adaptively optimizing program execution by sampling at selected program points|
|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>|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8478828||11 Feb 2011||2 Jul 2013||Tekelec, Inc.||Methods, systems, and computer readable media for inter-diameter-message processor routing|
|US8483233||11 Feb 2011||9 Jul 2013||Tekelec, Inc.||Methods, systems, and computer readable media for providing local application routing at a diameter node|
|US8498202||11 Feb 2011||30 Jul 2013||Tekelec, Inc.||Methods, systems, and computer readable media for diameter network management|
|US8504630||11 Feb 2011||6 Aug 2013||Tekelec, Inc.||Methods, systems, and computer readable media for diameter application loop prevention|
|US8527598||11 Feb 2011||3 Sep 2013||Tekelec, Inc.||Methods, systems, and computer readable media for answer-based routing of diameter request messages|
|US8532110||11 Feb 2011||10 Sep 2013||Tekelec, Inc.||Methods, systems, and computer readable media for diameter protocol harmonization|
|US8547908||5 Mar 2012||1 Oct 2013||Tekelec, Inc.||Methods, systems, and computer readable media for enriching a diameter signaling message|
|US8549495||25 Feb 2012||1 Oct 2013||International Business Machines Corporation||Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code|
|US8554928||11 Feb 2011||8 Oct 2013||Tekelec, Inc.||Methods, systems, and computer readable media for providing origin routing at a diameter node|
|US8578050||11 Feb 2011||5 Nov 2013||Tekelec, Inc.||Methods, systems, and computer readable media for providing peer routing at a diameter node|
|US8601073||11 Feb 2011||3 Dec 2013||Tekelec, Inc.||Methods, systems, and computer readable media for source peer capacity-based diameter load sharing|
|US8613073||18 Oct 2010||17 Dec 2013||Tekelec, Inc.||Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality|
|US8627298||14 Dec 2009||7 Jan 2014||International Business Machines Corporation||Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code|
|US8644324||11 Feb 2011||4 Feb 2014||Tekelec, Inc.||Methods, systems, and computer readable media for providing priority routing at a diameter node|
|US8750126||11 Feb 2011||10 Jun 2014||Tekelec, Inc.||Methods, systems, and computer readable media for multi-interface monitoring and correlation of diameter signaling information|
|US8792329||11 Feb 2011||29 Jul 2014||Tekelec, Inc.||Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)|
|US8799391||1 Jul 2013||5 Aug 2014||Tekelec, Inc.||Methods, systems, and computer readable media for inter-diameter-message processor routing|
|US8958306||18 Oct 2010||17 Feb 2015||Tekelec, Inc.||Methods, systems, and computer readable media for providing diameter signaling router with integrated monitoring functionality|
|US8995256||20 Feb 2014||31 Mar 2015||Tekelec, Inc.||Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)|
|US8996636||30 Aug 2013||31 Mar 2015||Tekelec, Inc.||Methods, systems, and computer readable media for answer-based routing of diameter request messages|
|US9088478||11 Feb 2011||21 Jul 2015||Tekelec, Inc.||Methods, systems, and computer readable media for inter-message processor status sharing|
|US9148388||23 May 2013||29 Sep 2015||Tekelec, Inc.||Methods, systems, and computer readable media for performing enhanced service routing|
|US9537775||23 Sep 2013||3 Jan 2017||Oracle International Corporation||Methods, systems, and computer readable media for diameter load and overload information and virtualization|
|US9647986||16 Dec 2013||9 May 2017||Tekelec, Inc.||Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality|
|10 Sep 2008||121||Ep: 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 2009||NENP||Non-entry into the national phase in:|
Ref country code: DE
|10 Feb 2010||122||Ep: pct application non-entry in european phase|
Ref document number: 08702642
Country of ref document: EP
Kind code of ref document: A2