The present invention relates to a service node, network, and method for pre-fetching for remote program installation, and more particularly, relates to improving remote installation performance of operating systems and at least one peripheral application in a computer cluster environment.
Known tools help administrators remotely install operating systems and at least one peripheral application for respective client computers. A known tool includes a server-client architecture, as shown in prior art
The computing node 12 may be classified according to its intended purpose. The computing node 12 may include computing nodes for scientific computation, business analysis, and statistics, for example. The operating system and at least one peripheral application needed for installation may be similar for each type of computing node 12. Therefore, while there are different types of computing nodes, the software packages which need to be requested for installing operating systems and their peripheral applications may be similar.
Software packages may be similar for each type of computing node request sequence, thus there may be request sequence similarity, because the installation of software packages needs to be done based on the installation of other software packages. The request sequence is recorded in the program installation unit 14. The computing node 12 runs the program installation unit 14, when a computing node 12 issues a package request. The program installation unit 14 sequentially issues package requests to the service node 10 according to a fixed order.
In a large cluster, response speed of a service node 10 is critical. Response speed is critical, since faster response speed of the service node 10, means reduced operating system and peripheral application installation time.
In a service node 10, a service program unit 16 sends a required software package to a computing node 12 in response to a request from the program installation unit 14 of the computing node 12. A file system cache 18 may be used in the service node 10. The service program unit 16 first searches in the cache 18, hen the unit 16 needs a package to send to the computing node 12. The cache 18 improves package reading performance of the service node 10, since a package can be read from the cache 18 faster than reading the package from an external storage device 20, for example. Thus, the service program unit 16 can respond to a package request from a computing node 12 at a higher speed using a cache 18, than without a cache.
Only packages that have been read previously can be found in the cache 18. The package must first be read from the external storage device 20 into the cache 18 by the service program unit 16. The service program unit 16 can then read out from the cache 18 when a package is read for the first time.
Packages in the cache 18 may also overflow. Due to the limited size of the cache 18, some algorithms may need to shift some packages or files out from the cache 18. Therefore, when the packages that have been previously recorded in the cache 18 are read again, it is possible packages have overflowed. Therefore, the service program unit 16 has to re-read the packages from the external storage device 20.
In one embodiment, a system for package pre-fetching for remote program installation includes a service node having a processor, a computing node type database, and a cache, the service node being configured to receive at least one package request for a package required for an installation of an operating system and at least one peripheral application thereof from a computing node, and determine a package request sequence by which the computing node issues the at least one package request according to a type of the computing node.
In another embodiment, a method for implementing package pre-fetching for remote program installation includes receiving a package request for a package required for an installation of an operating system and at least one peripheral application thereof from a computing node, and determining a package request sequence by which the computing node issues at least one package request according to a type of the computing node, so as to pre-read a subsequent package into a cache before the computing node issues a request for the subsequent package.
Various other features, exemplary features, and attendant advantages of the present disclosure will become more fully appreciated as the same becomes better understood when considered in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the several views.
The figures form a part of the specification and are used to describe the embodiments of the invention and explain the principle of the invention together with the literal statement. The foregoing and other objects, aspects, and advantages will be better understood from the following non-limiting detailed description of preferred embodiments of the invention with reference to the drawings, wherein:
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings.
A computing node 12 may include an program installation unit 14 that sequentially issues at least one package request that is required for installing an operating system and at least one peripheral application associated with the operating system to the service node 10 according to a fixed request sequence. The service node 10 may include a service program unit 16, a cache 18, a computing node type database 22, and a request sequence database 24. An external storage device 20 for storing data may be coupled to service node 12. The external storage device 20 may be provided to store data, such as operating systems and their peripheral applications, which may be installed on the computing nodes 12.
The computing node type database 22 stores identification information for each computing node 12 requesting packages. The identification information for each computing node 12 may include an address, computing node type, and other identification information. The request sequence database 24 is provided for storing a package request sequence corresponding to each computing node type of the operating system and peripheral application to be installed on a computing node 12.
In one embodiment, the service program unit 16 is provided to determine the identification information, such as the address and type of computing node, of the computing node 12 issuing the package request. The service program unit 16 receives a package request from a computing node 12 and then searches the computing node type database 22 for the computing node type corresponding to the address of the computing node 12 issuing the package request. The service program unit 16 then searches the request sequence database 24 for the package request sequence corresponding to the computing node type. The service program unit 16 then pre-reads a subsequent package into the cache 18 from the external storage device 20 before the computing node 12 issues a package request for the subsequent package. In another embodiment, reading packages from the external storage device 20 is not required when the package request sequence associated with the type of the computing node 12 is already stored in the request sequence database 24. As a result, service node 10 response times are reduced substantially.
In one embodiment, the service node 10 reads a subsequent package into the cache 18 while the package is read from the external storage device 20, and while simultaneously sending the requested package, in sequence, to the computing node 12. The service node 10 reads a subsequent package in sequence into cache 18 from the external storage device 20, after receiving the package request from the computing node 12. In another embodiment, the service program unit 16 reads all packages in, other than the first package request in sequence into cache 18 from the external storage device 20 after having received the first package request and package request sequence from the computing node 12.
The service program unit 16 first receives a request for package Z from a computing node 12, shown as step S1 in
The service program unit 16 then pre-reads a subsequent package into the cache 18 from the external storage device 20 before the computing node 12 issues a package request for the subsequent package, shown as step S3 in
The service program unit 16 then sends package Z and package A simultaneously to the computing node 12. The service program unit 16 then receives a request for package A from computing node 12. The service program unit 16 then reads package B into cache 18 from the external storage device 20. The service program unit 16 searches the cache 18 for the package A, locates package A, and sends package A to the computing node 12. Computing node 12 then sends a request to the service program unit 16 for package B. Again, the service program unit 16 searches the cache 18 for the package B, locates it, and then sends package B to the computing node 12.
In another embodiment, the service program unit 16 first receives a request for package Z from a computing node 12. The service program unit 16 determines the identification information, such as the address and type of computing node, of the computing node 12 issuing the request for package Z. The service program unit 16 then searches the computing node type database 22 for the computing node type corresponding to the address of the computing node 12 issuing the package request. The service program unit 16 then searches the request sequence database 24 for the package request sequence corresponding to the computing node type, shown as step S2 in
In another embodiment, packages are not read from the external storage device 20, if the computing node 12 sends a package request to the service program unit 16. In this embodiment, the service program unit 16 reads packages from the cache 18 and not from the external storage device 20. The response time to service node 10 is substantially reduced by reading packages to the computing node 12 directly from the cache 18. The request sequence database 24 stores the package request sequence corresponding to each computing node type.
The service program unit 16 identifies the corresponding computing node type issuing the package request. The service program unit 16 then queries the request sequence database 24 to determine if the package request sequence corresponding to the identified computing node type is stored in the database 24, when receiving a request for package Z from computing node 12. The service program 16 may indicate if the computing node 12 is not the first requesting a package in that type of computing nodes. The request sequence will not be recorded if the package request sequence corresponding to the computing node type is stored in the database 24.
The service program unit 16 may record the name of package Z in the request sequence database 24, if the package request sequence corresponding to the computing node type is not stored in the request sequence database 24. Computing node 12 receives package Z after the service program unit 16 reads package Z. The service program unit 16 then receives a request for package A from computing node 12. The service program unit 16 records the name of package A sequentially after the name of package Z, in the request sequence database 24. The service program unit 16 then reads package A and sends it to computing node 12.
Computing node 12 receives package A after the service program unit 16 reads package A. The service program unit 16 records the name of package B sequentially after the name of package A in the request sequence database 24. The service program unit 16 then reads package B and sends it to the computing node 12. The computing node 12 receives package B after the service program unit 16 reads package B.
In another embodiment, the package request sequence is recorded when a computing node 12, for each type of computing node, first acquires all requested packages in the request sequence database 24. The computing node type corresponding to the computing node 12 requesting the packages is identified by the service program unit 16, after the unit 16 receives a package request.
The service program unit 16 then determines whether the package request sequence of the computing node type is stored in the request sequence database 24. The request sequence by which the computing node 12 requests packages is not recorded if the package request sequence of that computing node type is already stored in the request sequence database 24. The package requests from the computing node 12 are sequentially received, if the package request sequence of the computing node type is not stored in the request sequence database 24. The request sequence is recorded in the request sequence database 24 after all the package requests are received if the request sequence database 24 has not yet recorded the request sequence.
In another in another embodiment, the request sequence database 24 can be disabled and the package sequence corresponding to the computing node type can be received using installation configuration files. The service program unit 16 stores the installation configuration files. The installation configuration files comprise a software package and a package request sequence for each computing node 12 installing operating systems and their associated peripheral applications. The request sequence by which the respective computing node 12 requests packages can be obtained if the installation configuration files are analyzed.
Those skilled in the art will appreciate that various adaptations and modifications of the just-described preferred embodiments can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.
Number | Date | Country | Kind |
---|---|---|---|
2007 1 0196066 | Nov 2007 | CN | national |
This application is a continuation of copending U.S. patent application Ser. No. 12/277,937, filed Nov. 25, 2008, which claims priority to Chinese Patent Application No. 200710196066.2, filed Nov. 30, 2007, from all of which priority is claimed and which are herein incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5361358 | Cox et al. | Nov 1994 | A |
5963743 | Amberg | Oct 1999 | A |
6138212 | Chiacchia et al. | Oct 2000 | A |
6202206 | Dean | Mar 2001 | B1 |
6606744 | Mikurak | Aug 2003 | B1 |
6611915 | Kubik et al. | Aug 2003 | B1 |
6684397 | Byer et al. | Jan 2004 | B1 |
6918113 | Patel et al. | Jul 2005 | B2 |
6959320 | Shah et al. | Oct 2005 | B2 |
7039766 | Smith | May 2006 | B1 |
7085915 | St. John et al. | Aug 2006 | B1 |
7143142 | Piersol | Nov 2006 | B1 |
7200689 | Kahle | Apr 2007 | B2 |
7238218 | Hepner et al. | Jul 2007 | B2 |
7331038 | Snodgrass et al. | Feb 2008 | B1 |
7472256 | Nair et al. | Dec 2008 | B1 |
7487297 | El-Essawy et al. | Feb 2009 | B2 |
7512944 | Schneider et al. | Mar 2009 | B2 |
7549149 | Childress et al. | Jun 2009 | B2 |
7620948 | Rowe et al. | Nov 2009 | B1 |
7925491 | Sasatani | Apr 2011 | B2 |
8015023 | Lee et al. | Sep 2011 | B1 |
8352937 | Sanders | Jan 2013 | B2 |
8438559 | Naslavsky et al. | May 2013 | B2 |
8543998 | Barringer | Sep 2013 | B2 |
8689210 | Ding et al. | Apr 2014 | B2 |
8893249 | Arai | Nov 2014 | B2 |
20010049769 | Ono | Dec 2001 | A1 |
20020002658 | Okayasu et al. | Jan 2002 | A1 |
20020157089 | Patel | Oct 2002 | A1 |
20020188942 | Bryan et al. | Dec 2002 | A1 |
20030004882 | Holler | Jan 2003 | A1 |
20030046682 | Crespo et al. | Mar 2003 | A1 |
20030061451 | Beyda | Mar 2003 | A1 |
20040045000 | Hara et al. | Mar 2004 | A1 |
20040187104 | Sardesai et al. | Sep 2004 | A1 |
20040237082 | Alcazar et al. | Nov 2004 | A1 |
20050198628 | Graham et al. | Sep 2005 | A1 |
20050203968 | Dehghan et al. | Sep 2005 | A1 |
20050235281 | Lefrancois et al. | Oct 2005 | A1 |
20060005016 | Lee et al. | Jan 2006 | A1 |
20060136367 | Todd | Jun 2006 | A1 |
20060161915 | Barr et al. | Jul 2006 | A1 |
20060225072 | Lari | Oct 2006 | A1 |
20070124541 | Lang et al. | May 2007 | A1 |
20070150450 | Murase | Jun 2007 | A1 |
20070198652 | Dickens et al. | Aug 2007 | A1 |
20070214325 | Sasamoto | Sep 2007 | A1 |
20070234343 | Gouge et al. | Oct 2007 | A1 |
20070283101 | El-Essawy et al. | Dec 2007 | A1 |
20080208789 | Almog et al. | Aug 2008 | A1 |
20090144287 | Ding et al. | Jun 2009 | A1 |
20090265701 | Naslavsky et al. | Oct 2009 | A1 |
20110113070 | McCurdy | May 2011 | A1 |
20130232463 | Nagaraja | Sep 2013 | A1 |
20140215455 | Ding et al. | Jul 2014 | A1 |
Number | Date | Country |
---|---|---|
101038532 | Sep 2007 | CN |
101453416 | Jun 2009 | CN |
Entry |
---|
Darko Kirovski et al. “Enabling Trusted Software Integrity”, [Online], ACM 2005, pp. 1-13, [Retrieved from Internet on Dec. 12, 2015], <http://delivery.acm.org/10.1145/610000/605409/p108-kirovski.pdf>. |
Amir Roth et al., “Effective Jump-Pointer Prefetching for Linked Data Structures”, [Online], IEEE 1999, pp. 1-11, [Retrieved from Internet on Dec. 12, 2015], <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=765944>. |
Abhinav Parate et al., “Practical Prediction and Prefetch for Faster Access to Applications on Mobile phones”, [Online], ACM 2013, pp. 1-10, [Retrieved from Internet on Dec. 12, 2015], <http://delivery.acm.org/10.1145/2500000/2493490/p275-parate.pdf>. |
Liang Zhong et al., “A Prefetching Framework for the Streaming Loading of Virtual Software”, [Online], IEEE 2010, pp. 712-717, [Retrieved from Internet on Dec. 12, 2015], <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5695671>. |
Non-Final Office Action from U.S. Appl. No. 12/277,937 dated Feb. 16, 2012. |
Non-Final Office Action from U.S. Appl. No. 12/277,937 dated Jul. 18, 2012. |
Non-Final Office Action from U.S. Appl. No. 12/277,937 dated Jan. 11, 2013. |
Notice of Allowance and Fee(s) Due from U.S. Appl. No. 12/277,937 dated Jul. 09, 2013. |
Notice of Allowance and Fee(s) Due from U.S. Appl. No. 12/277,937 dated Nov. 22, 2013. |
Flower et al., “Kernel Optimizations and Prefetch with the Spike Executable Optimizer,” 2001, Proc. 4th Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4), 2001, pp. 1-9. |
Aamodt et al., “A Framework for Modeling and Optimization of Prescient Instruction Prefetch,” ACM SIGMETRICS Performance Evaluation Review, vol. 31. No. 1, ACM, 2003, pp. 13-24. |
Solihin et al., “Using a User-Level Memory Thread for Correlation Prefetching,” Computer Architecture, 2002. Proceedings, 29th Annual International Symposium on IEEE, 2002, pp. 1-12. |
Jun et al., “An Adaptive and Selective Instruction Active Push Mechanism for Multi-Core Architecture,” Networking, Architecture and Storage (NAS), 2010 IEEE Fifth International Conference on IEEE, 2010, pp. 359-366. |
Boukerche et al., “Scheduling and Buffering Mechanisms for Remote Rendering Streaming in Virtual Walkthrough Class of Applications,”Proceedings of the 2nd ACM international workshop on Wireless multimedia networking and performance modeling ACM, 2006, pp. 53-60. |
Huang et al., “A Dedicated Adaptive Loop Pre-fetch Mechanism for Stream-like Application,” Solid-State and Integrated Circuit Technology (ICSICT), 2010 10th IEEE International Conference on IEEE, 2010, pp. 1-3. |
Kirovski et al., “Enabling Trusted Software Integrity,” ACM SIGPLAN Notices. vol. 37. No. 10, ACM, 2002, pp. 1-13. |
Suzuki et al., “Study on Caching, Mirroring, and Pre-fetch Methods for Educational Internet,” Applications and the Internet Workshops, 2001, Proceedings, 2001 Symposium on IEEE, 2001, pp. 45-50. |
Ding et al., U.S. Appl. No. 12/277,937, filed Nov. 25, 2008. |
Number | Date | Country | |
---|---|---|---|
20140215455 A1 | Jul 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12277937 | Nov 2008 | US |
Child | 14230939 | US |