WO2008087633A2 - Method for statistics based performance optimization of regenerated code - Google Patents

Method for statistics based performance optimization of regenerated code Download PDF

Info

Publication number
WO2008087633A2
WO2008087633A2 PCT/IL2008/000061 IL2008000061W WO2008087633A2 WO 2008087633 A2 WO2008087633 A2 WO 2008087633A2 IL 2008000061 W IL2008000061 W IL 2008000061W WO 2008087633 A2 WO2008087633 A2 WO 2008087633A2
Authority
WO
WIPO (PCT)
Prior art keywords
code
software
statistics
regenerated
avp
Prior art date
Application number
PCT/IL2008/000061
Other languages
French (fr)
Other versions
WO2008087633A3 (en
Inventor
Benjamin Volkow
Gil Shafran
Original Assignee
Traffix Communication Systems Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Traffix Communication Systems Ltd. filed Critical Traffix Communication Systems Ltd.
Publication of WO2008087633A2 publication Critical patent/WO2008087633A2/en
Publication of WO2008087633A3 publication Critical patent/WO2008087633A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code

Definitions

  • 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.
  • Diameter Base Protocol is intended to provide an Authentication
  • AAA Authorization and Accounting
  • the DBP was written by the Internet Engineering Task Force (IETF).
  • IETF Internet Engineering Task Force
  • 3GPP 3rd Generation Partnership Project
  • 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.
  • AVP Attribute Value Pair
  • 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.
  • 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.
  • 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.
  • US Pat. Applic. No. 20060248315 Honda teaches a Stack Controller Efficiently
  • 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.
  • 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.
  • 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.
  • 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.
  • An automated method for optimization of stack software based on statistical analysis of performance and according to configuration parameters 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.
  • the logical conditions will be ordered according to frequency of occurrence, such that the one occurring most frequently is checked first.
  • 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.
  • This update may result in better performance of the software, better security and/or better memory usage.
  • 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.
  • the code, action order and handling can be altered and dynamically adapted according to parameters such as day, time, configuration and/or statistical data.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

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.

Description

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.

Claims

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.
PCT/IL2008/000061 2007-01-17 2008-01-15 Method for statistics based performance optimization of regenerated code WO2008087633A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88072407P 2007-01-17 2007-01-17
US60/880,724 2007-01-17

Publications (2)

Publication Number Publication Date
WO2008087633A2 true WO2008087633A2 (en) 2008-07-24
WO2008087633A3 WO2008087633A3 (en) 2010-01-28

Family

ID=39636464

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2008/000061 WO2008087633A2 (en) 2007-01-17 2008-01-15 Method for statistics based performance optimization of regenerated code

Country Status (1)

Country Link
WO (1) WO2008087633A2 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478828B2 (en) 2010-02-12 2013-07-02 Tekelec, Inc. Methods, systems, and computer readable media for inter-diameter-message processor routing
US8547908B2 (en) 2011-03-03 2013-10-01 Tekelec, Inc. Methods, systems, and computer readable media for enriching a diameter signaling message
US8549495B2 (en) 2009-12-14 2013-10-01 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
US8578050B2 (en) 2010-02-12 2013-11-05 Tekelec, Inc. Methods, systems, and computer readable media for providing peer routing at a diameter node
US8613073B2 (en) 2009-10-16 2013-12-17 Tekelec, Inc. Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality
US8750126B2 (en) 2009-10-16 2014-06-10 Tekelec, Inc. Methods, systems, and computer readable media for multi-interface monitoring and correlation of diameter signaling information
US9148388B2 (en) 2013-05-23 2015-09-29 Tekelec, Inc. Methods, systems, and computer readable media for performing enhanced service routing
US9537775B2 (en) 2013-09-23 2017-01-03 Oracle International Corporation Methods, systems, and computer readable media for diameter load and overload information and virtualization
JP2017147733A (en) * 2012-06-11 2017-08-24 テケレック・インコーポレイテッドTekelec, Inc. Method and system for routing diameter message in diameter signaling router and computer readable medium
US9888001B2 (en) 2014-01-28 2018-02-06 Oracle International Corporation Methods, systems, and computer readable media for negotiating diameter capabilities
US9935922B2 (en) 2011-01-21 2018-04-03 Tekelec, Inc. Methods, systems, and computer readable media for screening diameter messages within a diameter signaling router (DSR) having a distributed message processor architecture
US10027760B2 (en) 2015-05-22 2018-07-17 Oracle International Corporation Methods, systems, and computer readable media for short and long term policy and charging rules function (PCRF) load balancing
US10117127B2 (en) 2015-07-08 2018-10-30 Oracle International Corporation Methods, systems, and computer readable media for communicating radio access network congestion status information for large numbers of users
US11102246B2 (en) 2015-10-22 2021-08-24 Versafe Ltd. Methods for hypertext markup language (HTML) input field obfuscation and devices thereof
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006033A (en) * 1994-08-15 1999-12-21 International Business Machines Corporation Method and system for reordering the instructions of a computer program to optimize its execution
US6016512A (en) * 1997-11-20 2000-01-18 Telcordia Technologies, Inc. Enhanced domain name service using a most frequently used domain names table and a validity code table
US6971091B1 (en) * 2000-11-01 2005-11-29 International Business Machines Corporation System and method for adaptively optimizing program execution by sampling at selected program points

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006033A (en) * 1994-08-15 1999-12-21 International Business Machines Corporation Method and system for reordering the instructions of a computer program to optimize its execution
US6016512A (en) * 1997-11-20 2000-01-18 Telcordia Technologies, Inc. Enhanced domain name service using a most frequently used domain names table and a validity code table
US6971091B1 (en) * 2000-11-01 2005-11-29 International Business Machines Corporation System and method for adaptively optimizing program execution by sampling at selected program points

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
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> *

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8613073B2 (en) 2009-10-16 2013-12-17 Tekelec, Inc. Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality
US9647986B2 (en) 2009-10-16 2017-05-09 Tekelec, Inc. Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality
US8958306B2 (en) 2009-10-16 2015-02-17 Tekelec, Inc. Methods, systems, and computer readable media for providing diameter signaling router with integrated monitoring functionality
US8750126B2 (en) 2009-10-16 2014-06-10 Tekelec, Inc. Methods, systems, and computer readable media for multi-interface monitoring and correlation of diameter signaling information
US8549495B2 (en) 2009-12-14 2013-10-01 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
US8627298B2 (en) 2009-12-14 2014-01-07 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
US8498202B2 (en) 2010-02-12 2013-07-30 Tekelec, Inc. Methods, systems, and computer readable media for diameter network management
US8601073B2 (en) 2010-02-12 2013-12-03 Tekelec, Inc. Methods, systems, and computer readable media for source peer capacity-based diameter load sharing
US8996636B2 (en) 2010-02-12 2015-03-31 Tekelec, Inc. Methods, systems, and computer readable media for answer-based routing of diameter request messages
US8578050B2 (en) 2010-02-12 2013-11-05 Tekelec, Inc. Methods, systems, and computer readable media for providing peer routing at a diameter node
US8995256B2 (en) 2010-02-12 2015-03-31 Tekelec, Inc. Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)
US8527598B2 (en) 2010-02-12 2013-09-03 Tekelec, Inc. Methods, systems, and computer readable media for answer-based routing of diameter request messages
US8483233B2 (en) 2010-02-12 2013-07-09 Tekelec, Inc. Methods, systems, and computer readable media for providing local application routing at a diameter node
US9088478B2 (en) 2010-02-12 2015-07-21 Tekelec, Inc. Methods, systems, and computer readable media for inter-message processor status sharing
US8504630B2 (en) 2010-02-12 2013-08-06 Tekelec, Inc. Methods, systems, and computer readable media for diameter application loop prevention
US8792329B2 (en) 2010-02-12 2014-07-29 Tekelec, Inc. Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)
US8799391B2 (en) 2010-02-12 2014-08-05 Tekelec, Inc. Methods, systems, and computer readable media for inter-diameter-message processor routing
US8532110B2 (en) 2010-02-12 2013-09-10 Tekelec, Inc. Methods, systems, and computer readable media for diameter protocol harmonization
US8554928B2 (en) 2010-02-12 2013-10-08 Tekelec, Inc. Methods, systems, and computer readable media for providing origin routing at a diameter node
US8478828B2 (en) 2010-02-12 2013-07-02 Tekelec, Inc. Methods, systems, and computer readable media for inter-diameter-message processor routing
US8644324B2 (en) 2010-02-12 2014-02-04 Tekelec, Inc. Methods, systems, and computer readable media for providing priority routing at a diameter node
US9935922B2 (en) 2011-01-21 2018-04-03 Tekelec, Inc. Methods, systems, and computer readable media for screening diameter messages within a diameter signaling router (DSR) having a distributed message processor architecture
US8547908B2 (en) 2011-03-03 2013-10-01 Tekelec, Inc. Methods, systems, and computer readable media for enriching a diameter signaling message
JP2017147733A (en) * 2012-06-11 2017-08-24 テケレック・インコーポレイテッドTekelec, Inc. Method and system for routing diameter message in diameter signaling router and computer readable medium
US9148388B2 (en) 2013-05-23 2015-09-29 Tekelec, Inc. Methods, systems, and computer readable media for performing enhanced service routing
US9537775B2 (en) 2013-09-23 2017-01-03 Oracle International Corporation Methods, systems, and computer readable media for diameter load and overload information and virtualization
US9888001B2 (en) 2014-01-28 2018-02-06 Oracle International Corporation Methods, systems, and computer readable media for negotiating diameter capabilities
US10027760B2 (en) 2015-05-22 2018-07-17 Oracle International Corporation Methods, systems, and computer readable media for short and long term policy and charging rules function (PCRF) load balancing
US10117127B2 (en) 2015-07-08 2018-10-30 Oracle International Corporation Methods, systems, and computer readable media for communicating radio access network congestion status information for large numbers of users
US11102246B2 (en) 2015-10-22 2021-08-24 Versafe Ltd. Methods for hypertext markup language (HTML) input field obfuscation and devices thereof
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof

Also Published As

Publication number Publication date
WO2008087633A3 (en) 2010-01-28

Similar Documents

Publication Publication Date Title
WO2008087633A2 (en) Method for statistics based performance optimization of regenerated code
RU2436148C2 (en) Adaptive gateway for switching transactions and data on untrusted networks using context-based rules
EP2321937B1 (en) Load balancing for services
EP2853074B1 (en) Methods for optimizing service of content requests and devices thereof
US10795744B2 (en) Identifying failed customer experience in distributed computer systems
CN103634138B (en) The remotely management of distributed scheduling and O&amp;M method and system thereof
CN104054067A (en) Frameworks and interfaces for offload device-based packet processing
CN108737471B (en) Network access method and device
Bremler-Barr et al. Openbox: Enabling innovation in middlebox applications
US20210344777A1 (en) Enhanced self-assembling and self-configuring microservices
WO2023011274A1 (en) Communication protocol conversion method, and device, system, and gateway device
US9176719B2 (en) Resolving prerequisites for a client device in an open service gateway initiative (OSGI) framework
CN112988378A (en) Service processing method and device
US20050108397A1 (en) Reducing number of messages processed by control processor by bundling control and data messages and offloading the TCP connection setup and termination messages
WO2021092448A1 (en) Managing shared applications at the edge of a content delivery network
US11729167B2 (en) Authorization proxy
US20220311791A1 (en) Systems and methods for low latency stateful threat detection and mitigation
US8499023B1 (en) Servlet-based grid computing environment using grid engines and switches to manage resources
US11323368B1 (en) System and method for web service atomic transaction (WS-AT) affinity routing
Aguiar et al. Lessons learned and challenges on benchmarking publish-subscribe IoT platforms
Györgyi et al. P4rrot: Generating p4 code for the application layer
CN114745260B (en) Method, device, equipment and storage medium for enhancing computing power of content distribution network
Bonfoh et al. Transparent and dynamic deployment of lightweight transport protocols
Baraki et al. MOCCAA: A Delta-synchronized and Adaptable Mobile Cloud Computing Framework.
US20040111522A1 (en) Method and apparatus for improving packet processing

Legal Events

Date Code Title Description
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

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08702642

Country of ref document: EP

Kind code of ref document: A2