Balancing mainframe and distributed workloads based on performance and costs

Uloženo v:
Podrobná bibliografie
Název: Balancing mainframe and distributed workloads based on performance and costs
Patent Number: 11675,631
Datum vydání: June 13, 2023
Appl. No: 17/035873
Application Filed: September 29, 2020
Abstrakt: In an approach for balancing mainframe and distributed workloads, a processor receives a request to allocate an application workload to a mainframe platform and a distributed computing platform. The application workload includes a plurality of work units. A processor collects performance and cost data associated with the application workload, the mainframe platform, and the distributed computing platform. A processor determines the mainframe platform and the distributed computing platform for the plurality of work units of the application workload, based on the analysis of the performance and cost data. A processor allocates the plurality of work units of the application workload to run on the mainframe platform and the distributed computing platform respectively to balance performance and cost in real time.
Inventors: KYNDRYL, INC. (New York, NY, US)
Assignees: Kyndryl, Inc. (New York, NY, US)
Claim: 1. A computer-implemented method executed by one or more processors comprising: receiving a request to allocate an application workload to at least one target environment comprising at least one mainframe platform and at least one distributed computing platform, the application workload comprising a discrete application or service, the application workload including a plurality of work units; evaluating the application workload and breaking the application workload into the plurality of work units; ranking activities of the plurality of work units, the ranking comprising scoring the activities based on at least one of required resource consumption of the activities of the plurality of work units and cost information for use of the at least one target environment; collecting data associated with and the at least one target environment, wherein the data includes performance and cost data associated with at least one of server availability, server processing speed, and server capacity for each server of a plurality of servers in the at least one target environment; selecting a target environment from the at least one target environment, based on the ranking, an analysis of the performance and cost data, and a cost model, the selected target environment comprising at least one mainframe platform and at least one distributed computing platform, the cost model identifying opportunities to save costs based on sending at least one of the work units to the at least one distributed computing platform instead of the at least one mainframe platform; allocating the plurality of work units of the application workload to execute on the selected target environment, based in part on the the cost model, wherein the allocating balances performance and cost of executing the plurality of work units of the application workload on the selected target environment while optimizing the time required for the selected target environment to respond to the received request; initiating execution of the application workload on the selected target environment automatically after allocating the plurality of work units, wherein the selected target environment executes the application workload; receiving results of the execution from the selected target environment; and utilizing the received results for subsequent execution of one or more application workloads on the at least one target environment.
Claim: 2. The computer-implemented method of claim 1 , further comprising: determining that historical data related to the application workload exists in a repository, wherein the historical data includes data of at least one historical processing performance of executing the application workload on the at least one target environment; verifying the historical data; and prioritizing the at least one target environment for the plurality of work units of the application workload based on the historical data.
Claim: 3. The computer-implemented method of claim 1 , further comprising: determining that no historical data related to the application workload exists in a repository; performing a cost estimation of allocating the plurality of work units of the application workload to the at least one target environment; and prioritizing the at least one target environment for the plurality of work units of the application workload based on the cost estimation.
Claim: 4. The computer-implemented method of claim 1 , wherein the performance and cost data comprises data selected from the group consisting of: usage, cost, latency, and throughput data associated with the at least one target environment.
Claim: 5. The computer-implemented method of claim 1 , wherein selecting the at least one target environment for the plurality of work units of the application workload further comprises: in response to determining two or more platforms within the selected target environment provide a same cost, selecting the platform with a higher performance history for a type of workload associated with the application workload; and in response to determining two or more platforms within the selected target environment provide the same performance characteristics, selecting the platform with a lower cost.
Claim: 6. The computer-implemented method of claim 1 , further comprising dynamically updating historical data associated with the application workload to include the received execution results.
Claim: 7. A computer program product comprising: one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising: program instructions to receive a request to allocate an application workload to at least one target environment comprising at least one mainframe platform and at least one distributed computing platform, the application workload comprising a discrete application or service, the application workload including a plurality of work units; program instructions to evaluate the application workload and break the application workload into the plurality of work units; program instructions to rank activities of the plurality of work units, the ranking comprising scoring the activities based on at least one of required resource consumption of the activities of the plurality of work units and cost information for use of the at least one target environment; program instructions to collect data associated with the at least one target environment, wherein the data includes performance and cost data associated with at least one of server availability, server processing speed, and server capacity for each server of a plurality of servers in the at least one target environment; program instructions to select a target environment from the at least one target environment based on the ranking, an analysis of the performance and cost data, and a cost model, the selected target environment comprising at least one mainframe platform and at least one distributed computing platform, the cost model identifying opportunities to save costs based on sending at least one of the work units to the at least one distributed computing platform instead of the at least one mainframe platform; program instructions to allocate the plurality of work units of the application workload to execute on the selected target environment based in part on the cost model, wherein the allocating balances performance and cost of executing the plurality of work units of the application workload on the selected target environment while optimizing the time required for the selected target environment to respond to the received request; and program instructions to initiate execution of the application workload on the selected target environment automatically after allocating the plurality of work units, wherein the selected target environment executes the application workload; program instructions to receive results of the execution from the selected target environment; and program instructions to utilize the received results for subsequent execution of one or more application workloads on the at least one target environment.
Claim: 8. The computer program product of claim 7 , further comprising: program instructions, stored on the one or more computer-readable storage media, to determine that historical data related to the application workload exists in a repository, wherein the historical data includes data of at least one historical processing performance of executing the application workload on the at least one target environment; program instructions, stored on the one or more computer-readable storage media, to verify the historical data; and program instructions, stored on the one or more computer-readable storage media, to prioritize the at least one target environment for the plurality of work units of the application workload based on the historical data.
Claim: 9. The computer program product of claim 7 , further comprising: program instructions, stored on the one or more computer-readable storage media, to determine that no historical data related to the application workload exists in a repository; program instructions, stored on the one or more computer-readable storage media, to perform a cost estimation of allocating the plurality of work units of the application workload to the at least one target environment; and program instructions, stored on the one or more computer-readable storage media, to prioritize the at least one target environment for the plurality of work units of the application workload based on the cost estimation.
Claim: 10. The computer program product of claim 7 , wherein the performance and cost data comprises data selected from the group consisting of: usage, cost, latency, and throughput data associated with the at least one target environment.
Claim: 11. The computer program product of claim 7 , wherein program instructions to select the at least one target environment for the plurality of work units of the application workload further comprise: program instructions, in response to determining two or more platforms within the selected target environment provide a same cost, to select the platform with a higher performance history for a type of workload associated with the application workload; and program instructions, in response to determining two or more platforms within the selected target environment provide the same performance characteristics, to select the platform with a lower cost.
Claim: 12. The computer program product of claim 7 , further comprising program instructions, stored on the one or more computer-readable storage media, to dynamically update historical data associated with the application workload to include the received execution results.
Claim: 13. A computer system comprising: one or more computer processors, one or more computer readable storage media, and program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising: program instructions to receive a request to allocate an application workload to at least one target environment comprising at least one mainframe platform and at least one distributed computing platform, the application workload comprising a discrete application or service, the application workload including a plurality of work units; program instructions to evaluate the application workload and break the application workload into the plurality of work units; program instructions to rank activities of the plurality of work units, the ranking comprising scoring the activities based on at least one of required resource consumption of the activities of the plurality of work units and cost information for use of the at least one target environment; program instructions to collect data associated with the at least one target environment, wherein the data includes performance and cost data associated with at least one of server availability, server processing speed, and server capacity for each server of a plurality of servers in the at least one target environment; program instructions to select a target environment from the at least one target environment based on the ranking, an analysis of the performance and cost data, and a cost model, the selected target environment comprising at least one mainframe platform and at least one distributed computing platform, the cost model identifying opportunities to save costs based on sending at least one of the work units to the at least one distributed computing platform instead of the at least one mainframe platform; program instructions to allocate the plurality of work units of the application workload to MR execute on the selected target environment based in part on the cost model, wherein the allocating balances performance and cost of executing the plurality of work units of the application workload on the selected target environment while optimizing the time required for the selected target environment to respond to the received request; and program instructions to initiate execution of the application workload on the selected target environment automatically after allocating the plurality of work units, wherein the selected target environment executes the application workload; program instructions to receive results of the execution from the selected target environment; and program instructions to utilize the received results for subsequent execution of one or more application workloads on the at least one target environment.
Claim: 14. The computer system of claim 13 , further comprising: program instructions, stored on the one or more computer-readable storage media, to determine that historical data related to the application workload exists in a repository, wherein the historical data includes data of at least one historical processing performance of executing the application workload on the at least one target environment; program instructions, stored on the one or more computer-readable storage media, to verify the historical data; and program instructions, stored on the one or more computer-readable storage media, to prioritize the at least one target environment for the plurality of work units of the application workload based on the historical data.
Claim: 15. The computer system of claim 13 , further comprising: program instructions, stored on the one or more computer-readable storage media, to determine that no historical data related to the application workload exists in a repository; program instructions, stored on the one or more computer-readable storage media, to perform a cost estimation of allocating the plurality of work units of the application workload to the at least one target environment; and program instructions, stored on the one or more computer-readable storage media, to prioritize the at least one target environment for the plurality of work units of the application workload based on the cost estimation.
Claim: 16. The computer system of claim 13 , wherein the performance and cost data comprises data selected from the group consisting of: usage, cost, latency, and throughput data associated with the at least one target environment.
Claim: 17. The computer system of claim 13 , wherein program instructions to select the at least one target environment for the plurality of work units of the application workload further comprise: program instructions, in response to determining two or more platforms within the selected target environment provide a same cost, to select the platform with a higher performance history for a type of workload associated with the application workload; and program instructions, in response to determining two or more platforms within the selected target environment provide the same performance characteristics, selecting the platform with a lower cost.
Patent References Cited: 8032846 October 2011 Balasubramanian
8406756 March 2013 Reeves
8412822 April 2013 Weinman, Jr.
8583799 November 2013 Podila
8843929 September 2014 Oppenheimer
8868711 October 2014 Skjolsvoid
8959220 February 2015 Frey et al.
9081613 July 2015 Bieswanger et al.
9384061 July 2016 Deivanayagam et al.
9495222 November 2016 Jackson
9680657 June 2017 Spicer et al.
10841236 November 2020 Jin
10891201 January 2021 Kozlovsky
11016889 May 2021 Benjamin
11379266 July 2022 Toal
20080071894 March 2008 Luss
20100166065 July 2010 Perlman
20120011518 January 2012 Duan
20130263117 October 2013 Konik
20150215173 July 2015 Dutta
20150263985 September 2015 Schmitter et al.
20160087909 March 2016 Chatterjee et al.
20160300024 October 2016 Janssen
20170075709 March 2017 Feng et al.
20170090988 March 2017 Young
20170126795 May 2017 Kumar et al.
20170308411 October 2017 Brill
20180064936 March 2018 Shazley et al.
20190155652 May 2019 Chou
20190213052 July 2019 Arikuma
20200026575 January 2020 Guim Bernat
20200089533 March 2020 Guha
2251784 October 2017









Other References: Weintraub, Phil, “Compute Trends and the Evolution of the IBM Mainframe”, IBM Systems Media, Jul. 18, 2019, 3 pages, <https://ibmsystemsmag.com/IBM-Z/07/2019/compute-trends-ibm-mainframe>. cited by applicant
Anonymous et al., “Mainframe Cost Optimization”, BMC Software Inc., Accessed on Aug. 11, 2020, 11 pages, <https://www.bmc.com/it-solutions/mlc-software-management.html>. cited by applicant
Anonymous et al., “Mainframes: Are They a Legacy Technology?”, SACA, California, United States, Aug. 15, 2019, 3 pages, <https://www.sacatech.com/2019/08/15/mainframes-are-they-a-legacy-technology/>. cited by applicant
Bingell, Nicholas Dayl, “Cost Factors that Influence Ownership of Mainframe or Cloud-Based Data Center Environments”, University of Oregon, Applied Information Management, Dec. 2014, 45 pages, <https://pdfs.semanticscholar.org/f557/d19ab2039406812c9a6051c4562b8f463f0c.pdf>. cited by applicant
Crutcher et al., “Considerations of Moving Applications Off the Mainframe”, Splice Machine, Jan. 22, 2020, 17 pages, <https://splicemachine.com/considerations-of-moving-applications-off-the-mainframe/>. cited by applicant
Mell et al., “The NIST Definition of Cloud Computing”, Recommendations of the National Institute of Standards and Technology, Special Publication 800-145, Sep. 2011, 7 pages. cited by applicant
O'Malley, Christopher, “Guess What? Mainframe Use Is Growing, But Challenges Remain Unsolved”, Forbes Technology Council, Forbes Media LLC, Jul. 6, 2018, 6 pages, <https://www.forbes.com/sites/forbestechcouncil/2018/07/06/guess-what-mainframe-use-is-growing-but-challenges-remain-unsolved/#5653009a5ee9>. cited by applicant
Rogers, Roger, “The financial impact of indirect costs in mainframe and distributed IT environments”, IBM Corporation, IBM IT Economics Consulting & Research, Nov. 2018, 5 Pages<https://www.ibm.com/downloads/cas/OMG4E8WQ>. cited by applicant
Woodie, Alex, “Moving Off Big Iron? Be Very Careful, Gartner Says”, IT Jungle, Dec. 9, 2019, 5 Pages, <https://www.itjungle.com/2019/12/09/moving-off-big-iron-be-very-careful-gartner-says/>. cited by applicant
British Office Action in GB Application No. GB2113295.6 dated Apr. 20, 2022, 12 pages. cited by applicant
Primary Examiner: Lee, Adam
Attorney, Agent or Firm: Housley, Dan
Calderon, Andrew M.
Calderon Safran & Cole, P.C.
Přístupové číslo: edspgr.11675631
Databáze: USPTO Patent Grants
Popis
Abstrakt:In an approach for balancing mainframe and distributed workloads, a processor receives a request to allocate an application workload to a mainframe platform and a distributed computing platform. The application workload includes a plurality of work units. A processor collects performance and cost data associated with the application workload, the mainframe platform, and the distributed computing platform. A processor determines the mainframe platform and the distributed computing platform for the plurality of work units of the application workload, based on the analysis of the performance and cost data. A processor allocates the plurality of work units of the application workload to run on the mainframe platform and the distributed computing platform respectively to balance performance and cost in real time.