An out-of-band fine-grained method of time out management
Publication Date: 2014-Jun-27
The IP.com Prior Art Database
In a computing system which is combined with many different hardware and software components, it is really important to detect the unexpected timeout or hung as soon as possible. This article presents an out-of-band method to apply the timeout control to such a computing system. With this method, we can add the time out control mechanism into a legacy system without updating or recompiling the legacy functional code. This method has such advantages: - Safety; It is out-of-band which means no need to touch the legacy functional code. So we have a small chance to break the normal functions when applying this timeout control. - Fine granularity; The control can be applied to one specific method of a class which is really small/fine granularity; - Flexiable; We can just easily add, remove or update the time out control by updating an XML configure file. - Easy to implement. The framework of the timeout control is straightforward and easy to implement.
Page 01 of 7
In the enterprise system, time out management is important.
Especially for the hardware system, the hardware behavior/operation is often part of the task,
so the time out of the task often indicates some potential hardware issue which needs to be solved as soon as possible .
For example, in storage system, when disk fails, a service action will be triggered to replace it, and format of the disk is the most time consuming part of the service action.
For normal case, it should take more than 1 hour to finish the format, and if it takes more than 1 hours, it means the disk is bad.
So with the time out mechanism, we can detect the hardware issue as soon as possible and then fix them.
In IT industry, there are many hardware systems with legacy management code, those management code is developed years ago and there is time out mechanism for them.
So how can we make apply the time out control to legacy code package?
Also, when implementing the new code package, how can we add time out mechanism?
The most often way used is to add separate time out control for separate tasks, classes or code pieces.
Example needed here:
The drawbacks of the solutions are:
- The solution is in-bind which needs much code development effort and also difficult to change the time out control (eg. add/remove the control for specific scenario).
- For legacy system, it is a huge work effort to update existing code package to add the time out control;
And also, it is really risky to update so many places and may make the code totally NOT work.
- For the new system, when developing the code, also needs to always reminder to add time out control for every needed plance;
And once we forget the time out control for one scenario, we have to rewrite our code and then upgrade the customer's box which is also risky.
The core idea of the invention is:
- Provide an out-of-band find-grained time out control method/solution
- When we want to apply the time out control for one class's method,
we can parse the byte code (or .class file) for the original source code,
and insert the time out control code into the entry/exit point of the original code;
- Then when the method is invoked, our out-of-band frame work can start monitor the time out for that method
Advantages of the invention:
- Out-of-band: no need to touch the original function code
--grained method of time out management
grained method of time out management
Page 02 of 7
- Fine-Grained: can control any method for any class
- Flexible: can easily add/remove/change time out control for one class's method by updating XML config file without any source code update - Can be used to applied to any legacy system without code update
This is the general framework for the time out control system:
- "Legacy Code Package" is the source code which we want to add time out control for;