IP Library Granted Patent US 9,569,722
Granted Patent B2
US 9,569,722 · App. 14/514,901 · Granted Feb 14, 2017

Optimal persistence of a business process

Inventors: Abhinay R. Nagpal (Pune, IN); Sri Ramanathan (Lutz, FL); Sandeep Ramesh (Pune, IN); Gandhi Sivakumar (Victoria, AU); Matthew B. Trevathan (Roswell, GA)
Assignee: International Business Machines Corporation
G06N3/084G06F17/3041G06F17/30607G06N3/08G06Q10/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,569,722
App. No.
14/514,901
Granted
Feb 14, 2017
Kind
B2
Abstract

Aspects of the invention provide for automatically selecting optimal fetch settings for business processes as a function of database query load and relational context by monitoring usage of a data retrieval point with respect to a defined unit of work. A multilayer feed-forward neural network is used to predict, as a function of training sets composed of historical data generated by the monitored usage of the data retrieval point, a future value of a data size of results from an eager fetch setting for the data retrieval point. The eager fetch is automatically revised to a lazy fetch setting in response to determining that the future data size value of the eager fetch setting results is larger than a permissible memory resource threshold.

Claims (75)

1. A computer-implemented method for automatically selecting fetch settings for business processes as a function of database query load and relational context, the method comprising executing on a processor the steps of:

monitoring usage of at least one data retrieval point with respect to a defined unit of work, wherein the at least one data retrieval point is enabled during a creation of a business process execution language process;

using a multilayer feed-forward neural network to predict, as a function of training sets composed of historical data generated by the monitored usage of the at least one data retrieval point, a future value of a data size of results from an eager fetch setting for the at least one data retrieval point; and

automatically revising the eager fetch setting for the at least one data retrieval point to a lazy fetch setting in response to determining that the future value of the data size of results from the eager fetch setting is larger than a permissible memory resource threshold.

2. The computer-implemented method of claim 1 , wherein the using the multilayer feed-forward neural network to predict the future value of the data size of results from the eager fetch setting for the at least one data retrieval point comprises:

collecting periodic resource demand statistics for the at least one data retrieval point from the monitored usage;

compiling the collected periodic resource demand statistics over a specified historic timeframe;

translating the compiled periodic resource demand statistics into a logged traffic load measurement;

deriving object-relational mapping demand requirements associated with the logged traffic load measurement into an initial training data set comprising day and time statistics;

training the multilayer feed-forward neural network using the initial training data set;

using the trained multilayer feed-forward neural network to predict a frequency pattern for the at least one data retrieval point using the compiled periodic resource demand statistics over a previous specified timeframe; and

assigning the predicted frequency pattern to the at least one data retrieval point as the future value of the data size of results from the eager fetch setting for the at least one data retrieval point.

3. The computer-implemented method of claim 2 , further comprising:

updating the initial training data set to contain statistics for a current time period; and

periodically retraining the multilayer feed-forward neural network through a back-propagation learning algorithm and a nonlinear sigmoid activation function as a function of the updated initial training set.

4. The computer-implemented method of claim 3 , wherein the defined unit of work is an application session defined from an open method to a close method, the method further comprising:

capturing a thread stack trace at a point when the open method is invoked; and

using the thread stack trace to uniquely identify and match a business process to tuned optimal settings calculated for it in the defined retrieval patterns.

5. The computer-implemented method of claim 3 , wherein the at least one data retrieval point is one of a plurality of data retrieval points that are enabled during the creation of the business process execution language process, the method further comprising:

in response to determining that future values of data sizes of results from an eager fetch setting for the plurality of data retrieval points are larger than the permissible memory resource threshold, automatically selecting one of a batch fetch setting and a join fetch setting as fetch settings for each of the plurality of data retrieval points.

6. The computer-implemented method of claim 5 , further comprising:

selecting the join fetching in response to determining that an entity relationship of the plurality of data retrieval points to a database is a collection relationship.

7. The computer-implemented method of claim 5 , further comprising:

determining for each of the plurality of data retrieval points whether data loaded is dependent upon a query result from another query process, wherein determining that the data loaded is dependent upon a query result from another query process is in response to determining that a task corresponding to the respective data retrieval point always requires at least one additional query to acquire all information needed from a database;

selecting an eager fetch setting for each of the plurality of data retrieval points that are determined to be dependent upon a query result from another query process; and

selecting a lazy fetch setting for each of the plurality of data retrieval points that are determined to be not dependent upon a query result from another query process.

8. A computer system for automatically selecting fetch settings for business process data retrieval points as a function of database query load and relational context, the computer system comprising:

a processor;

a computer readable memory in circuit communication with the processor; and

a computer readable storage system in circuit communication with the processor and with the computer readable memory;

wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby:

monitors usage of at least one data retrieval point with respect to a defined unit of work, wherein the at least one data retrieval point is enabled during a creation of a business process execution language process;

uses a multilayer feed-forward neural network to predict, as a function of training sets composed of historical data generated by the monitored usage of the at least one data retrieval point, a future value of a data size of results from an eager fetch setting for the at least one data retrieval point; and

automatically revises the eager fetch setting for the at least one data retrieval point to a lazy fetch setting in response to determining that the future value of the data size of results from the eager fetch setting is larger than a permissible memory resource threshold.

9. The computer system of claim 8 , wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby uses the multilayer feed-forward neural network to predict the future value of the data size of results from the eager fetch setting for the at least one data retrieval point by:

collecting periodic resource demand statistics for the at least one data retrieval point from the monitored usage;

compiling the collected periodic resource demand statistics over a specified historic timeframe;

translating the compiled periodic resource demand statistics into a logged traffic load measurement;

deriving object-relational mapping demand requirements associated with the logged traffic load measurement into an initial training data set comprising day and time statistics;

training the multilayer feed-forward neural network using the initial training data set;

using the trained multilayer feed-forward neural network to predict a frequency pattern for the at least one data retrieval point using the compiled periodic resource demand statistics over a previous specified timeframe; and

assigning the predicted frequency pattern to the at least one data retrieval point as the future value of the data size of results from the eager fetch setting for the at least one data retrieval point.

10. The computer system of claim 9 , wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby further:

updates the initial training data set to contain statistics for a current time period; and

periodically retrains the multilayer feed-forward neural network through a back-propagation learning algorithm and a nonlinear sigmoid activation function as a function of the updated initial training set.

11. The computer system of claim 10 , wherein the defined unit of work is an application session defined from an open method to a close method, and wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby further:

captures a thread stack trace at a point when the open method is invoked; and uses the thread stack trace to uniquely identify and match a business process to tuned optimal settings calculated for it in the defined retrieval patterns.

12. The computer system of claim 10 , wherein the at least one data retrieval point is one of a plurality of data retrieval points that are enabled during the creation of the business process execution language process; and

wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby further, in response to determining that future values of data sizes of results from an eager fetch setting for the plurality of data retrieval points are larger than the permissible memory resource threshold, automatically selects one of a batch fetch setting and a join fetch setting as fetch settings for each of the plurality of data retrieval points.

13. The computer system of claim 12 , wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby further:

selects the join fetching in response to determining that an entity relationship of the plurality of data retrieval points to a database is a collection relationship.

14. The computer system of claim 12 , wherein the processor executes program instructions stored on the computer-readable storage system via the computer readable memory and thereby further:

determines for each of the plurality of data retrieval points whether data loaded is dependent upon a query result from another query process, wherein determining that the data loaded is dependent upon a query result from another query process is in response to determining that a task corresponding to the respective data retrieval point always requires at least one additional query to acquire all information needed from a database;

selects an eager fetch setting for each of the plurality of data retrieval points that are determined to be dependent upon a query result from another query process; and

selects a lazy fetch setting for each of the plurality of data retrieval points that are determined to be not dependent upon a query result from another query process.

15. A computer program product for automatically selecting optimal fetch settings for each of a plurality of business processes as a function of database query load and relational context, the computer program product comprising:

a computer readable storage device having computer readable program code embodied therewith, the computer readable program code comprising instructions for execution by a processor that cause the processor to:

monitor usage of at least one data retrieval point with respect to a defined unit of work, wherein the at least one data retrieval point is enabled during a creation of a business process execution language process;

use a multilayer feed-forward neural network to predict, as a function of training sets composed of historical data generated by the monitored usage of the at least one data retrieval point, a future value of a data size of results from an eager fetch setting for the at least one data retrieval point; and

automatically revise the eager fetch setting for the at least one data retrieval point to a lazy fetch setting in response to determining that the future value of the data size of results from the eager fetch setting is larger than a permissible memory resource threshold.

16. The computer program product of claim 15 , wherein the computer readable program code instructions for execution by the processor further cause the processor to use the multilayer feed-forward neural network to predict the future value of the data size of results from the eager fetch setting for the at least one data retrieval point by:

collecting periodic resource demand statistics for the at least one data retrieval point from the monitored usage;

compiling the collected periodic resource demand statistics over a specified historic timeframe;

translating the compiled periodic resource demand statistics into a logged traffic load measurement;

deriving object-relational mapping demand requirements associated with the logged traffic load measurement into an initial training data set comprising day and time statistics;

training the multilayer feed-forward neural network using the initial training data set; using the trained multilayer feed-forward neural network to predict a frequency pattern for the at least one data retrieval point using the compiled periodic resource demand statistics over a previous specified timeframe; and

assigning the predicted frequency pattern to the at least one data retrieval point as the future value of the data size of results from the eager fetch setting for the at least one data retrieval point.

17. The computer program product of claim 16 , wherein the computer readable program code instructions for execution by the processor further cause the processor to:

update the initial training data set to contain statistics for a current time period; and

periodically retrain the multilayer feed-forward neural network through a back-propagation learning algorithm and a nonlinear sigmoid activation function as a function of the updated initial training set.

18. The computer program product of claim 17 , wherein the defined unit of work is an application session defined from an open method to a close method, and wherein the computer readable program code instructions for execution by the processor further cause the processor to:

capture a thread stack trace at a point when the open method is invoked; and

use the thread stack trace to uniquely identify and match a business process to tuned optimal settings calculated for it in the defined retrieval patterns.

19. The computer program product of claim 17 , wherein the at least one data retrieval point is one of a plurality of data retrieval points that are enabled during the creation of the business process execution language process; and

wherein the computer readable program code instructions for execution by the processor further cause the processor to, in response to determining that future values of data sizes of results from an eager fetch setting for the plurality of data retrieval points are larger than the permissible memory resource threshold, automatically select one of a batch fetch setting and a join fetch setting as fetch settings for each of the plurality of data retrieval points.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2014
From: NAGPAL, ABHINAY R.; RAMANATHAN, SRI; RAMESH, SANDEEP; SIVAKUMAR, GANDHI; TREVATHAN, MATTHEW B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033954/0734 →
Continuity (3)
Continuation 13974133 · Aug 23, 2013
Continuation 12947235 · Nov 16, 2010
Related Publication 20150032678A1 · Jan 29, 2015