Prioritizing Update of Inactive Memory Devices

The recycling prioritization system uses machine learning to estimate when computer systems will be vacated, enabling efficient background updates and memory swaps, thus reducing downtime and optimizing resource use in computing environments.

JP7765467B2Active Publication Date: 2025-11-06ORACLE INT CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023523615
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-19
Filing Date
2021-10-18
Publication Date
2025-11-06
Estimated Expiration
2041-10-18

AI Technical Summary

Technical Problem

Existing methods for recycling computing resources, such as server-side computer systems, result in significant downtime and inefficient use of cloud-based resources due to time-consuming erasure and firmware updates, and lack optimal timing for recycling events.

Method used

A recycling prioritization system that employs machine learning to estimate when computer systems are likely to be vacated, allowing for prioritized background updates and swaps of non-volatile memory devices, minimizing downtime and optimizing resource use.

Benefits of technology

This approach reduces downtime and conserves network bandwidth by efficiently updating and recycling computer systems based on priority, ensuring minimal disruption and resource efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007765467000001
    Figure 0007765467000001
  • Figure 0007765467000002
    Figure 0007765467000002
  • Figure 0007765467000003
    Figure 0007765467000003
Patent Text Reader

Abstract

Exemplary embodiments facilitate the prioritized recycling of computing resources leased to customers in a cloud-based computing environment, e.g., server-side computing systems and associated resources (e.g., non-volatile memory, associated firmware, data, etc.). This prioritizes recycling of computing resources (e.g., non-volatile memory) that are being forensically analyzed / examined, sanitized, and / or updated, for example, based on an estimate of when the computing resources are most likely to be recycled via background sanitization and updating. Computing resources that are likely to be recycled first are prioritized over computing resources that are likely to be recycled later. By prioritized recycling of computing resources in accordance with embodiments described herein, other cloud-based computing resources used to perform the computing resource recycling are efficiently allocated and maintained.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Patent Application No. 17 / 074,356, filed October 19, 2020, entitled "Priority Update of Inactive Memory Devices" (ORACP0262 / ORACP00515-US-NP), which is incorporated herein by reference for all purposes as if fully set forth herein. [Background technology]

[0002] background This application relates to computing, and more particularly to software, systems, and methods for increasing the efficiency of recycling computing resources in a computing environment while minimizing downtime of the computing resources.

[0003] Systems and methods for selectively recycling computing resources, e.g., computer systems and associated memory, data, software, etc., are being employed in a variety of demanding applications, including cloud-based applications that involve leasing server-side computer systems (e.g., servers) to external customers. In this case, the associated server-side computer systems must be recycled once they are relinquished by the previous customer and before being delivered or leased to a new customer. Such applications often require efficient mechanisms for easily recycling computing resources while minimizing downtime of the computing resources and minimizing cloud-based resources required to perform the recycling operation.

[0004] In an exemplary cloud-based computing environment, computer systems are recycled and then handed over to subsequent users. This recycling process includes digitally sanitizing and updating the computer systems, for example, by erasing historical data (e.g., data from previous customers) and updating outdated firmware running on the computer's non-volatile memory devices.

[0005] Traditionally, when a user relinquishes a leased computer system, the entire computer system is taken offline while the computer system is recycled, for example, by erasing the non-volatile memory and replacing it with new firmware and associated data. However, this can result in significant downtime for the computer system and loss of revenue for the host organization. Furthermore, traditional erasing and reinstalling firmware and data can be particularly time-consuming, further lengthening the downtime of the computer system.

[0006] Alternative methods for recycling computing resources are similarly inefficient because they require excessive cloud-based resources for the recycling operation. Furthermore, existing methods generally lack the ability to optimally determine the timing of a recycling event, rather than simply following a particular event, e.g., the release of a computing resource by a particular customer. Summary of the Invention

[0007] overview Various embodiments described herein employ a recycling prioritization system in communication with a computer background update system to facilitate selectively and efficiently allocating cloud-based computing resources to perform background updates of computer systems and attached memory devices according to a priority order. Computer systems and attached memory devices (e.g., non-volatile memory) can be prioritized for recycling. Thus, cloud-based computing resources used to recycle computer systems can efficiently focus on updating computer systems and attached non-volatile memory according to the priority order. Priorities may be set to preferentially perform recycling operations (e.g., background updates) on computer systems that are most likely to require recycling next.

[0008] An exemplary method facilitates efficient use of network-accessible computing resources used to recycle or refresh other computing resources in a cloud-based computing environment. The exemplary method includes determining a set of computers currently being used by one or more users of the cloud-based computing environment, obtaining one or more metrics associated with each computer in the set of computers, using the one or more metrics to determine one or more estimates regarding when each computer in the set of computers is likely to be vacated by its current user, and using the one or more estimates for each computer in the set of computers to determine when to initiate a background refresh process to recycle each computer.

[0009] In a more specific embodiment, the using step further includes preferentially recycling each computer using the one or more estimates, such that computers in the set of computers that are estimated to be recycled earlier according to the one or more estimates are preferentially handled by the background update process.

[0010] The recycling step can further include updating firmware on one or more memory devices of each recycled computer using a background update process. The one or more memory devices can include one or more replacement memory devices configured to be switched in (by the background update process) to replace one or more memory devices of each computer relinquished by a current user.

[0011] The recycling may further include updating firmware and / or software on one or more memory devices of each recycled computer using a background update process, and performing a forensic analysis on the one or more memory devices of each recycled computer using the background update process. The one or more memory devices may include, for example, one or more non-volatile memory devices that house or represent a network interface controller (NIC), a basic input / output system (BIOS), a field programmable gate array (FPGA), etc.

[0012] The one or more metrics may include one or more of: a first metric indicating a period of time each computer has been in use, the first metric indicating a computer that has been used for a longer period of time is more likely to be vacated by a user; a second metric indicating a past period of time that a user has continued to use one or more computers, the second metric indicating a computer used by a user who vacates computers frequently is more likely to be vacated by the user; a third metric indicating a turnover rate of each computer according to each computer's identification number, the third metric indicating a computer identified as associated with a high turnover rate is more likely to be vacated by a user; a fourth metric indicating a temperature associated with each computer, the fourth metric indicating a computer associated with a lower temperature is more likely to be vacated; and a fifth metric indicating an output value of the machine learning model that accounts for one or more of the first metric, the second metric, the third metric, and the fourth metric of the machine learning model.

[0013] Accordingly, various embodiments described herein may facilitate prioritizing background updates of one or more non-volatile memory devices of a computer system, which facilitates preserving network bandwidth used to perform background updates and associated recycling of non-volatile memory and associated computing resources (e.g., firmware, data, etc.).

[0014] It should be noted that, traditionally, updates to non-volatile memory devices may be performed simultaneously for all computer systems in use. However, this is inefficient and unnecessarily drains network bandwidth. The embodiments described herein overcome the challenges associated with traditional approaches for facilitating the recycling of computer resources (e.g., non-volatile memory and associated firmware, data, etc.) and related background recycling practices.

[0015] A further understanding of the nature and advantages of specific embodiments disclosed herein may be realized by reference to the remaining portions of the specification and the attached drawings. [Brief explanation of the drawings]

[0016] [Figure 1] FIG. 1 illustrates a first exemplary system and an attached computing environment that facilitates selectively performing background refresh of computing resources using a restore backend according to priority values ​​determined by a recycling prioritization system that may be implemented via one or more cloud services and / or application programming interfaces and / or code libraries. [Figure 2] 1 is an exemplary flow chart illustrating a first exemplary method that may be employed to selectively prioritize recycling and associated background updates of multiple computing devices (i.e., computer systems) used by one or more users of FIG. 1 according to, for example, an estimate of when a particular computer system will most likely be recycled next. [Figure 3] FIG. 1 illustrates a second exemplary system that may be implemented via the system of FIG. 1 , illustrating the use of machine learning and related artificial intelligence to use computer system data to determine an estimate (i.e., a priority value) that indicates the likelihood that a computer system has been relinquished by a previous customer and requires recycling (e.g., background updating). [Figure 4] FIG. 4 illustrates exemplary components of a memory swap system that may be employed to facilitate background updates performed, for example, by the computer background update module of FIG. 3. [Figure 5] 5 is a flow chart illustrating a second exemplary method suitable for use with the embodiment of FIGS. 1-4. [Figure 6]FIG. 1 is a schematic block diagram illustrating an example network environment that can be used to practice implementations described herein. [Figure 7] FIG. 1 is a block diagram illustrating an example computing device or system that can be used to practice implementations described herein. DETAILED DESCRIPTION OF THE INVENTION

[0017] Detailed Description of the Embodiments For purposes of this disclosure, a computing environment may be any collection of computing resources used to perform one or more tasks, including computer processing. A computer may be any processor in communication with memory. A computing resource may be any component, mechanism, or performance or quantity of a computing environment, including, but not limited to, a processor, memory, software applications, user input and output devices, servers, data, etc.

[0018] A networked computing environment may be any computing environment that includes computers in communication with each other, i.e., a computer network. Similarly, a networked software application may be computer code configured to facilitate communication with or use of one or more computing resources (e.g., servers) over a network.

[0019] For purposes of this disclosure, a server may be any computing resource (e.g., computer and / or software, etc.) configured to provide content (e.g., data and / or functionality) to another computing resource or entity (i.e., a client) that requests that content. A client may be any computer or system configured to receive content from another computer or system referred to as a server. A server system may be any collection of one or more servers and associated computing resources.

[0020] A data center may be any collection of one or more buildings or facilities for housing multiple computer systems (also referred to herein simply as computers), e.g., servers, and other cloud-based computing resources.

[0021] A cloud-based computing resource may be any computing resource housed by a data center or other collection of one or more servers in communication with each other.

[0022] A cloud service may be any mechanism (e.g., one or more web services, application programming interfaces (APIs)) for enabling users and / or other software applications to utilize data and / or functionality provided through the cloud. A cloud may also be any collection of one or more servers. For example, a particular cloud may be implemented using one or more data centers with servers that provide data, data storage, and other functionality accessible to client devices.

[0023] A particular data center can provide a centralized location for concentrating computing and networking equipment for users to access, consume, and store large amounts of data. Often, in a collection of computing systems (e.g., a cloud computing system), common resources such as processors and memory are configured for rotational use by different users. Such computing collections utilize rewritable memory, such as flash memory. Such memory is erased after use by one user and rewritten for the next user. For example, a cloud service provider must ensure that when a new user begins accessing a cloud resource, the resource is properly configured for the subsequent user and that information from the previous user is not available.

[0024] For clarity, some well-known components, such as the Internet, hard drives, processors, power supplies, routers, Internet Service Providers (ISPs), input / output (I / O) workflow orchestrators, process schedulers, identity management clouds, process clouds, authentication authorities, business process management systems, database management systems, middleware, etc., are not necessarily explicitly called out in the figures. However, one of ordinary skill in the art with access to the present teachings would know how to implement each component to meet the needs of a particular implementation.

[0025] FIG. 1 illustrates a first exemplary system 10 and an associated computing environment that facilitates selectively performing background refresh of computing resources using a restore backend 22 according to priority values ​​determined by a recycling prioritization system 40 that may be implemented via one or more cloud services and / or application programming interfaces and / or code libraries that may run among or be included within a control plane cloud service 24 (also referred to herein as a control plane cloud service module 24).

[0026] The exemplary system 10 includes one or more client systems 12 that communicate, for example, via the Internet or other network, with a server system 14. The server system 14 may be implemented via a data center or may represent a cloud.

[0027] It should be noted that, in general, the grouping of various modules in system 10 is exemplary and may be modified. For example, particular modules may be combined with or implemented within other modules, and modules may be distributed across a network or across one or more computing devices or virtual machines in different ways (than shown) without departing from the scope of the present teachings.

[0028] For example, switch 28 (described in more detail below) is shown as being included in recovery backend 22, but may be considered to be outside of recovery backend 22 without departing from the scope of the present teachings. Similarly, service processor 38 of front-end processing module 18 may be considered to be part of one or more server-side computer systems 20, as opposed to being part of front-end processing module 18, without departing from the scope of the present teachings.

[0029] Additionally, alternative groupings and arrangements of modules in systems that can be readily configured by those skilled in the art for use with the present teachings (and related embodiments described herein) are described in more detail in the above-identified and incorporated U.S. patent application (entitled "Configurable Memory Device Connected to a Microprocessor").

[0030] In an exemplary embodiment of the present disclosure, client system 12 includes client-side software 16 to facilitate access to data and functionality provided by server system 14. Exemplary server system 14 includes front-end processing module 18, which may be implemented via one or more web services and / or application programming interfaces (APIs) and associated processors, including service processor 38.

[0031] For purposes of this disclosure, software functionality may be computer code, i.e., any function, capability, or feature provided through software, e.g., stored or located data. As described in more detail below, software functionality may include operations such as obtaining data about computing objects (e.g., business objects), performing enterprise-related tasks, computing analytics, launching specific dialog boxes, performing searches, implementing forensic analysis algorithms on memory devices, etc.

[0032] The front-end processing module 18 is in communication with one or more first computer systems 20, whose resources are selectively leased to users, e.g., customers of the owner of the server system 14. Typically, the first computer systems 20 include one or more first memory devices 30, which are used to facilitate operation of the first computer systems 20. Note that, herein, the term "memory device" may be used interchangeably with the term "memory."

[0033] Requests (in which a user of client system 12 instructs first computer system 20 to perform an operation by issuing one or more request messages from client system 12 to computer system 20) are processed by front-end processing service processor 38. Service processor 38 facilitates interfacing client system 12 to server-side computing resources, including first memory device 30 (and associated firmware, data, etc.) of first computer system 20, in addition to other computing resources provided by computer system 20 (e.g., processing software, operating system software, application software, etc.).

[0034] A first memory device 30 is said to be online or active when service processor 38 is processing messaging from client system 12, thereby potentially affecting the use of first memory device 30. That is, first memory device 30 is being used or available to client system 12 via front-end processing module 18. Similarly, a first memory device 30 is said to be offline or inactive when first memory device 30 is electronically isolated from client system 12 and front-end processing module 18 (e.g., via switch 28, as described in more detail below). Note that service processor 38 may include functionality similar to a baseboard management controller (BMC) for monitoring the server (computer system) hardware and communicating with various peripherals, such as a field programmable gate array (FPGA), a basic input / output system (BIOS), etc.

[0035] In an exemplary embodiment of the present disclosure, the recovery backend 22 includes various modules 26, 28, 32-36 and related functions involved in performing background updates and related processing for one or more offline memory devices 32-36. The recovery backend 22 communicates with a service processor 38 of the frontend processing 18 and the first memory device 30 of the first computer system 20.

[0036] The various modules 26, 28, 32-36 of the recovery backend 22 include a root of trust processor (ROT) 26 (also referred to herein as a ROT processor). The ROT 26 implements functionality for securely interfacing one or more cloud services of the control plane cloud services 24 to one or more of the memory devices 32-36 of the recovery backend 22 via a switch 28. As described in more detail below, the ROT 26 can selectively control the switching operation of the switch 28, for example, by issuing one or more control signals to the switch 28.

[0037] Switch 28 selectively couples service processor 38 to one or more of memory devices 30-36 (e.g., in response to one or more control signals issued by ROT processor 26). In this embodiment, service processor 38 is electrically coupled to first memory device 30 via switch 28.

[0038] For purposes of illustration, first memory device 30 is shown as being included in first computer system 20. However, first memory device 30 may or may not be included in first computer system 20. Switch 28 includes functionality for selectively electrically disconnecting communication between service processor 38 and first memory device 30 and reconnecting service processor 38 to one or more other memories, such as one of memory devices 32-34 that is currently offline.

[0039] This switching and reconnection is referred to herein as a swap. For example, if ROT 26 issues a control signal to switch 28 to disconnect service processor 38 from first memory device 30, place first memory device 30, and then connect to third memory device 34, then third memory device 34 may be considered part of first computer system 20 as long as it is usable by first computer system 20. In this case, the previous first memory 30 is electronically moved to restore backend 22 via switch 28.

[0040] Note that the ROT processor 26 also communicates with one or more cloud services (e.g., web services, application programming interfaces (APIs), etc.) of the control plane cloud service 24. In an exemplary embodiment of the present disclosure, the control plane cloud service 24 includes modules for performing back-end processing, such as forensic analysis and data writing (accomplished through the ROT processor 26) of one or more of the offline memories 32-36 that are being prepared for use to replace the first memory device 30 when another user is assigned the first computer system 20.

[0041] Downtime of the first computer system 20 can be avoided by selectively using offline back-end processing to prepare memory devices 32-36 for later use in connection with the first computer system 20 while the first memory device 30 is offline.

[0042] For example, if first computer system 20 is relinquished by a first user of client system 12 after using first memory device 30, ROT processor 26 may detect this event, e.g., via signaling from one or more cloud services of control plane cloud service 24. Upon detecting such a relinquishment event, ROT processor 26 may electronically swap first memory device 30 using switch 28. For example, first memory device 30 may be electronically swapped and replaced with a third memory device 34 that has been sanitized, updated, or otherwise processed in preparation for use by a subsequent user of first computer system 20.

[0043] This swap time, which occurs when handing over a first computer system 20 from a first user to a second user (or in preparation for handing over to a second user), may be close to zero, virtually eliminating downtime for the computer system 20.

[0044] It should be noted that the embodiments described herein may include additional beneficial techniques beyond just offline background processing for the purposes of performing recycling operations.

[0045] For example, as described in more detail below, control plane cloud services module 24 includes one or more cloud services (e.g., web services) or other modules for implementing recycling prioritization system 40. In an exemplary embodiment of the present disclosure, recycling prioritization system 40 ranks all computer systems 20 within a plurality of available computer systems based on an estimate of when all computer systems 20 will be relinquished. When a computer system (e.g., computer system 20) is relinquished, it is backgrounded. For example, existing memory device 30 is electronically disconnected from computer system 20 (e.g., via switch 28 in response to a control signal from ROT processor 26), and new memory that has been sanitized, i.e., backgrounded (via a recycling operation), is electronically switched in its place, i.e., switched online for use by computer system 20 and subsequent users.

[0046] The computing resources of server system 14 available for background processing are then applied to a subset of all computer systems 20. This subset is selected based on the highest priority value, i.e., the value corresponding to the estimated likelihood that a particular computer system and attached memory device will soon require background processing and associated recycling operations for future use.

[0047] Generally, the more computing system resources of server system 14 are available for background processing operations, the larger the subset may be, depending on the demands of a particular computing environment.

[0048] In summary, different users occupy computer systems for different durations. When a new software update or configuration becomes available for deployment, various embodiments described herein prioritize background updating and sanitizing (e.g., performing a recycle operation on) the computer system that is most likely to be recycled next (based on an estimate or priority value determined by recycling prioritization system 40).

[0049] It should be noted that the exact method for determining or estimating how likely it is that a computer system will next need to be recycled may be implementation specific and may vary depending on the specifics of a particular implementation.

[0050] Nevertheless, embodiments may use one or more of several methods to facilitate estimating the likelihood that a computer system will next be relinquished and recycled, including, but not limited to, considering the following factors:

[0051] The shortest period during which a machine has been used and the longest period during which a machine has been used. Such data represents a metric that indicates that a machine, i.e., a computer system, that has been used for a longer period is more likely to be recycled next than a machine that has just been assigned to a new user (and vice versa).

[0052] A history of customers who have owned the machine for the shortest time and customers who have owned the machine for the longest time. Such customer history data represents a metric whereby machines owned by users associated with high turnover are more likely to be recycled next, as indicated by such a metric.

[0053] Machine SKU numbers and / or types (e.g., E3-2c Compute, E3-2c Block Storage, etc.) categorized by the SKUs of the shortest and longest leased machines in history. Turnover data (or other identification numbers) associated with machine SKUs represent a metric that can indicate the likelihood that a particular machine will be recycled next.

[0054] A load metric inferred by measuring the host's central processing unit (CPU) temperature. As indicated by this metric, a lower CPU temperature indicates a machine that is underutilized and therefore more likely to be recycled.

[0055] Using any one or a combination of the above methods, a metric output by a machine learning model (e.g., an artificial intelligence (AI) module) that predicts which machines are most likely to be recycled next by determining patterns of usage time, customer historical behavior, SKU type, and system load.

[0056] It should be noted that recycling prioritization of computer systems (and attached memory devices) in accordance with the embodiments described herein may be particularly useful in computing environments (e.g., cloud-based environments) that have limited computing resources, such as limited bandwidth or other system resources.

[0057] Additionally, the background update mechanisms and methods described herein can be significant due in part to the importance of implementing updates to computer software, firmware, and / or other related configurations. Such updates can take a significant amount of time, and if a recycling event is blocked (e.g., due to limited computing environment resources), this can translate into lost revenue for the owner of the server system 14 and the associated computing environment. Furthermore, blocking updates can result in excessive downtime for the computer system, which may become unavailable for lease when down or offline, thus adversely affecting the resilience of the multiple computer systems 20.

[0058] FIG. 2 is an exemplary flow chart illustrating a first exemplary method 60 that may be employed to selectively prioritize recycling and associated background updates of multiple computing devices (i.e., computer systems) used by one or more users of FIG. 1 (via client system 12 of FIG. 1 ), for example, according to an estimate of when a particular computer system (e.g., one of computer systems 20 of FIG. 1 ) is most likely to be recycled next.

[0059] 1 and 2, in a first step 62, a plurality of computer systems are enabled for updating.

[0060] In a second step 64, the recycling prioritization system 40 of FIG. 1 initiates a process to estimate immediate recyclability (i.e., an estimate of when or how soon computer systems need to be recycled and / or an estimate of how immediate a recycling event is for each computer system).

[0061] 1 may then estimate (or in some use cases determine) that, for example, computer system A, which uses memory A (also referred to herein as memory device), and computer system B, which uses memory B, are most likely to be relinquished next in a third step 66. Additionally, recycling prioritization system 40 of FIG. 1 may determine that sufficient server system resources exist to efficiently background refresh computer systems A and B and attached memories A and B, respectively.

[0062] In a fourth step 68, the recycle prioritization system 40 of Figure 1 may initiate a background update process for computer systems A and B and memories A and B. Initiation of the background update may be accomplished by one or more control signals sent from the recycle prioritization system 40 of Figure 1 to the ROT processor 26 of the restore backend 22.

[0063] In this exemplary use case scenario, the fifth step 70 (which occurs after the background updates of computer systems A and B and memories A and B have completed successfully) is a waiting step, understanding that the users of computer systems A and B may not immediately relinquish their computer systems.

[0064] Once the systems are relinquished, a sixth step 72 involves electronically swapping the background update memories A and B into their respective computer systems A and B such that the previously offline memories A and B are brought online. This swap may be accomplished by control signals issued from the ROT processor 26 to the switch 28.

[0065] Subsequently, in a seventh step 74, the recycling and memory swapping of computer systems A and B and memories A and B is completed.

[0066] It should be noted that the first exemplary method 60 and associated use case scenarios may be altered and modified, for example, the method 60 may be repeatedly performed on those computers among a plurality of computers that have not yet been prepared by background processing of the alternative offline memory.

[0067] Furthermore, while the first exemplary method 60 is described as updating two computer systems (A and B) simultaneously, embodiments of the present disclosure are not limited thereto. The number of computer systems that are background updated at any one time may be implementation- and computing environment-specific and may vary based on available computing environment resources, such as bandwidth (which may be used for the background update process), processing load, etc.

[0068] FIG. 3 illustrates a second exemplary system 80 that may be implemented via system 10 of FIG. 1 and illustrates the use of machine learning and related artificial intelligence (e.g., by artificial intelligence (AI) module 40) to use computer system data (e.g., data stored in customer and machine database 86 and / or data directly available via polling of sensors 88, 90 on computer system 20) to determine an estimate (i.e., a priority value) indicating the likelihood that computer system 20 has been relinquished by a previous customer and requires recycling (e.g., a background update).

[0069] In the second exemplary system 80, the server system 14 is shown to include an AI module 84 within the recycling prioritization system 40. For illustrative purposes, the AI ​​module 84 is shown to receive input from a temperature sensor 88 and a SKU transmitter 90 (e.g., in response to polling and / or request messages). Note that the SKUs may alternatively be obtained from (or pushed by) the customer and machine database 86.

[0070] The customer and machine database 86 may also provide metrics relating computer system SKUs to turnover rates, and metrics relating individual customers to turnover rates (e.g., how often associated computer systems are relinquished and need to be recycled).

[0071] The AI ​​module 84 may be trained (e.g., via supervised and / or unsupervised learning methods) using input data from the various modules 88, 90, 86 to gradually improve the ability of the AI ​​module 84 to accurately estimate when a particular computer system is likely to be recycled, e.g., to estimate the likelihood that a particular computer system needs to be recycled immediately or sooner than other computer systems.

[0072] For illustrative purposes, AI module 84 provides output to computer background update module 82, which includes additional code for selectively initiating background updates and related processing (e.g., recycling operations) for a set of one or more computer systems that are estimated by AI module 84 to be more likely to require background updates than other computer systems.

[0073] 1 to perform background processing of the computer system and attached memory device 92 according to the priority estimates (also referred to as precedence estimates) output by the AI ​​module 84. Note that the memory device 92 may include a non-volatile memory device containing firmware, although embodiments are not limited to the use of non-volatile memory and firmware.

[0074] Figure 4 illustrates example components 26, 28, 38 of memory swap system 52 that may be employed to facilitate background updates, such as those performed by computer background update module 82 of Figure 3. In an exemplary embodiment of the present disclosure, selective memory swap system 52 is shown to include ROT processor 26, service processor 38 (of front-end processing module 18 of Figure 1), and switch 28 of recovery back-end 22 of Figure 1. Note that, although first online memory device 30 of Figure 1 is not shown in Figure 4, selective memory swap system 52 is also in communication with first online memory device 30 of Figure 1.

[0075] 4, the control plane cloud service 24 is shown communicating with the ROT 26 of the selective memory swap system 52 via a first bus (Bus 1). The ROT 26 communicates with the switch 28 via a second bus (Bus 2), and the service processor 38 communicates with the switch 28 via a third bus (Bus 3). The switch 28 communicates with a second offline non-volatile memory 32 via a fourth bus (Bus 4), which in turn communicates with a third non-volatile memory device 34 via a fifth bus (Bus 5).

[0076] It should be noted that switch 28 may be implemented using a variety of technologies. Those skilled in the art with access to the present teachings will be readily able to determine an appropriate switch configuration to meet their particular implementation needs without undue experimentation. In one implementation, switch 28 may be implemented using a multiplexer (MUX) in communication with an operational serial peripheral interface (OSPI).

[0077] Figure 5 is a flow diagram of a second exemplary method 130 suitable for use with the embodiments of Figures 1-4. The second exemplary method 130 facilitates efficient use of network-accessible computing resources used to recycle or refresh other computing resources in a cloud-based computing environment (e.g., corresponding to cloud or server system 14 of Figure 1).

[0078] A first determining step 132 involves determining a set of computers (eg, from computer system 20 of FIG. 1) that are currently being used by one or more users of the cloud-based computing environment.

[0079] A subsequent obtaining step 134 involves obtaining one or more metrics associated with each computer in the set of computers (e.g., metrics corresponding to inputs to recycling prioritization system 40 and associated AI module 84, as shown in FIG. 3).

[0080] Next, using step 136 includes using one or more metrics (e.g., via AI module 84 of FIG. 3) to determine one or more estimates (e.g., estimates output by AI module 84 of FIG. 3) regarding when each computer in the set of computers is likely to be surrendered by its current user.

[0081] Finally, using step 138 includes using one or more estimates for each computer in the set of computers to determine when to initiate a background update process that recycles each computer. Using step 138 may be implemented by code and related functionality provided by background update module 82 of FIG. 3 and associated memory swap system 52 of FIG. 4.

[0082] It should be noted that second exemplary method 130 may be modified without departing from the scope of the present teachings. For example, second exemplary method 130 may further specify that using step 138 further includes preferentially recycling each computer using the one or more estimates, such that computers in the set of computers that are estimated to be recycled earlier according to the one or more estimates are preferentially handled by the background update process.

[0083] Recycling can further include updating firmware on one or more memory devices of each recycled computer using a background update process. The one or more memory devices can include one or more replacement memory devices (e.g., offline memory devices 32-36 of FIG. 1 ) configured to be switched in by the background update process and replace one or more memory devices of each computer relinquished by a current user.

[0084] The recycling may further include updating firmware, software, and / or data on one or more memory devices of each recycled computer using a background update process. The one or more memory devices may be non-volatile memory devices.

[0085] The example method 130 may further specify that the one or more metrics include one or more of: a first metric indicating a period of time each computer has been in use, the first metric indicating a computer that has been used for a longer period of time is more likely to be vacated by a user; a second metric indicating a past period of time that a user has continued to use the one or more computers, the second metric indicating a computer used by a user who vacates computers frequently is more likely to be vacated by the user; a third metric indicating a turnover rate of each computer according to each computer's identification number, the third metric indicating a computer identified as associated with a high turnover rate is more likely to be vacated by a user; a fourth metric indicating a temperature associated with each computer, the fourth metric indicating a computer associated with a lower temperature is more likely to be vacated; and a fifth metric indicating an output value of the machine learning model that accounts for one or more of the first metric, the second metric, the third metric, and the fourth metric of the machine learning model.

[0086] The obtaining step 134 may further include obtaining the one or more metrics by probing one or more computer systems and one or more databases using a cloud service that runs one or more web services.

[0087] A ROT processor (e.g., ROT processor 26 of FIG. 4 ) in communication with a cloud service (e.g., corresponding to recycling prioritization system 40 of FIGS. 1 and 3 and control plane cloud services module 24 of FIG. 4 ) includes a root of trust (ROT) processor in communication with the cloud service and facilitates selectively invoking one or more processes for implementing background update processes for one or more memory devices (e.g., memory device 92 of FIG. 3 ) in communication with the ROT processor (e.g., via computer background update module 82 of FIG. 3 ).

[0088] Figure 6 is a schematic block diagram illustrating a system 900 and associated computing environment that can be used to implement the embodiments of Figures 1-5. The embodiments may be implemented as a standalone application (e.g., resident on a user device) or as a web-based application implemented using a combination of client-side and server-side code.

[0089] The general-purpose system 900 includes user devices 960-990, specifically, a desktop computer 960, a notebook computer 970, a smartphone 980, a mobile phone 985, and a tablet 990. The general-purpose system 900 can interface with any type of user device, such as a thin client computer, an Internet-enabled mobile phone, an Internet-connected mobile device, a tablet, an electronic book, or a PDA capable of displaying and viewing web pages, other types of electronic documents and UIs, and / or running applications. As shown, the system 900 supports five user devices, but any number of user devices can be supported.

[0090] Web server 910 is used to process requests from web browsers and standalone applications for web pages, electronic documents, enterprise data or other content, and other data from user computers. Web server 910 may also provide push data or syndicated content, such as RSS feeds, of data related to enterprise operations.

[0091] The application server 920 runs one or more applications. The applications may be implemented as one or more scripts or programs written in a programming language such as Java, C, C++, C#, or a scripting language such as JavaScript or European Computer Manufacturers Association Script (ECMAScript), Perl, Hypertext Preprocessor (PHP), Python, Ruby, or Tool Command Language (TCL). Applications may be built using libraries or application frameworks such as Rails, Enterprise JavaBeans, or .NET. Web content may be created using HyperText Markup Language (HTML), Cascading Style Sheets (CSS), and other web technologies, including templating languages ​​and parsers.

[0092] Data applications running on application server 920 are configured to process input data and user computer requests and may store or retrieve data from data storage devices or databases 930. Databases 930 store data created and used by the data applications. In one embodiment, databases 930 include relational databases configured to store, update, and retrieve data in response to SQL-formatted commands or other database query languages. Other embodiments may use unstructured data storage architectures and NoSQL (Not Only SQL) databases.

[0093] In one embodiment, application server 920 includes one or more general-purpose computers capable of executing programs or scripts. In one embodiment, web server 910 is implemented as an application running on one or more general-purpose computers. Web server 910 and application server 920 may be combined and run on the same computer.

[0094] Electronic communication networks 940-950 enable communication between user computing devices 960-990, web server 910, application server 920, and database 930. In one embodiment, networks 940 and 950 may include any electrical or optical communication device, such as wired network 940 and wireless network 950. Networks 940 and 950 may also include one or more local area networks, such as an Ethernet network, a wide area network, such as the Internet, a cellular carrier data network, or a virtual network, such as a virtual private network.

[0095] System 900 is an example for running applications in accordance with embodiments of the present invention. In another embodiment, application server 920, web server 910, and, optionally, database 930 may be combined into a single server computer application and system. In further embodiments, virtualization and virtual machine applications may be used to implement one or more of application server 920, web server 910, and database 930.

[0096] In yet another embodiment, all or part of the web and application functionality may be integrated into an application running on each user's computer, for example, a JavaScript application on the user's computer may be used to retrieve or analyze data and display parts of the application.

[0097] 1 and 6, client system 12 of FIG. 1 may be implemented via one or more of desktop computer 960, tablet 990, smartphone 980, notebook computer 970, and / or mobile phone 985 of FIG. 6. Server system 14 and accessory modules 18-28 of FIG. 1 may be implemented via web server 910 and / or application server 920 of FIG. 6. Customer and machine database 86 of FIG. 3 may be implemented using data storage device 930 of FIG. 6.

[0098] 7 shows a block diagram of an exemplary computing device or system 500 that may be used for the implementations described herein. For example, a computing device 1000 may be used to implement the server devices 910, 920 of FIG. 6 and to perform the methods described herein. In some implementations, the computing device 1000 may include a processor 1002, an operating system 1004, a memory 1006, and an input / output (I / O) interface 1008.

[0099] In various implementations, the processor 1002 can be used to implement the various functions and features described herein and to perform the methods described herein. Although the processor 1002 is described as performing the methods described herein, any suitable component or combination of components of the computing device 1000, or any suitable processor or combination of processors associated with the device 1000, or any suitable system, can perform the steps described herein. The methods described herein may be performed on a user device, a server, or a combination of both.

[0100] The exemplary computing device 1000 also includes a software application 1010, which may be stored in the memory 1006 or any other suitable storage location or computer-readable medium. The software application 1010 provides instructions that enable the processor 1002 to perform the functions described herein and other functions. The components of the computing device 1000 may be implemented by one or more processors or any combination of hardware devices, and any combination of hardware, software, firmware, etc.

[0101] 7 illustrates each of the processor 1002, operating system 1004, memory 1006, I / O interfaces 1008, and software applications 1010 as a single block. These blocks 1002, 1004, 1006, 1008, and 1010 may represent multiple processors, multiple operating systems, multiple memories, multiple I / O interfaces, and multiple software applications. In various implementations, the computing device 1000 may not include all of the components illustrated and / or may include other components instead of or in addition to the components illustrated.

[0102] Although the detailed description has been set forth with reference to particular embodiments, these particular embodiments are merely exemplary and not limiting. For example, although features have been described with respect to particular types of resources (e.g., non-volatile memory) or operations, the features described herein are applicable to other cloud computing resources and operations.

[0103] Additionally, although cloud computing is described as an example of a computing system in which a memory recovery system may be implemented by a motherboard, the memory recovery system of the present invention may be used in other computing environments in which memory devices or other electronic hardware are updated in the background. For example, network cards, hard drives, etc. may be updated without interfering with currently running software.

[0104] The routines of particular embodiments can be implemented using any suitable programming language, including C, C++, Java, assembly language, etc. Different programming techniques can be used, for example, procedural or object-oriented programming techniques. The routines can be executed on a single processing unit or multiple processors. While steps, actions, or operations are described in a particular order, this order may be changed in different particular embodiments. In some particular embodiments, steps described herein that are performed sequentially may be performed simultaneously.

[0105] Certain embodiments may be implemented in a computer-readable storage medium for use by or in connection with an instruction execution system, machine, system, or device. Certain embodiments may be implemented in the form of control logic in software or hardware, or a combination of both. This control logic, when executed by one or more processors, is operable to perform those described in certain embodiments. For example, a non-transitory medium, such as a hardware storage device, may be used to store the control logic, which may include executable instructions.

[0106] Certain embodiments may be implemented using programmed general-purpose digital computers, application-specific integrated circuits, programmable logic devices, field-programmable gate arrays, optical systems, chemical systems, biological systems, quantum or nano-engineered systems, etc. Other components and mechanisms can be used. In general, the functionality of certain embodiments can be achieved by any means known in the art. Distributed or networked systems, components and / or circuits can be used. Cloud computing or cloud services can be used. Data can be transmitted or transferred via wires, wirelessly, or other means.

[0107] Furthermore, one or more elements shown in the drawings may be located in a more remote or centralized manner, or may be removed as needed, as long as they are operable. Thus, implementations in which a program or code that enables a computer to perform any of the above methods is stored on a machine-readable medium are also included within the spirit and scope of the present invention.

[0108] A "processor" includes any suitable hardware and / or software system, mechanism, or component that processes data, signals, or other information. A processor may include a general-purpose central processing unit, multiple processing units, a system with dedicated circuitry for implementing a function, or other systems. Processing is not limited to geographic location or time. For example, a processor may perform functions in, for example, "real time," "offline," or "batch mode." Portions of processing may be performed at different times and in different locations by different (or similar) processing systems. Examples of processing systems include servers, clients, end-user devices, routers, switches, networked devices, etc. A computer is any processor in communication with a memory. Memory may be any suitable processor-readable storage medium, such as random access memory (RAM), read-only memory (ROM), a magnetic or optical disk, or other suitable non-transitory medium for storing instructions executed by a processor.

[0109] As used in the description and claims herein, the words "a," "an," and "the" include the plural unless the context clearly dictates otherwise. Also, as used in the description and claims herein, "in" means "in" and "on" unless the context clearly dictates otherwise.

[0110] Thus, although specific embodiments have been described herein, any modifications, variations, and substitutions are encompassed within this disclosure. In some cases, certain embodiments may employ some features without corresponding use of other features without departing from the spirit and scope of the invention. Accordingly, many modifications may be made to adapt a particular situation or material to the essential scope and spirit.

Claims

1. 1. A method for using a network-accessible computing resource to be used to recycle or refresh other computing resources in a cloud-based computing environment, the method comprising: one or more processors determining a set of computers currently being used by one or more users of the cloud-based computing environment; the one or more processors obtaining one or more metrics associated with each computer in the set of computers; the one or more processors using the one or more metrics to determine one or more estimates regarding when each computer in the set of computers is likely to be relinquished by a current user of each computer in the set of computers; the one or more processors using the one or more estimates for each computer in the set of computers to determine when to initiate a background update process that recycles each computer; using further includes preferentially recycling each computer using the one or more estimates such that a computer in the set of computers that is estimated to be recycled earlier according to the one or more estimates is preferentially processed by the background update process; recycling further includes the one or more processors updating firmware on one or more memory devices of each computer being recycled using the background update process; The method, wherein the one or more memory devices include one or more replacement memory devices configured to be switched over by the background update process to replace the one or more memory devices of each computer relinquished by the current user.

2. 2. The method of claim 1, wherein recycling further comprises the one or more processors using the background update process to update software on one or more memory devices of each computer being recycled.

3. recycling further includes the one or more processors using the background update process to perform a forensic analysis on one or more memory devices of each computer being recycled; The method of claim 1 , wherein the one or more memory devices include one or more non-volatile memory devices.

4. The one or more metrics are: a first metric indicating the duration for which each computer has been in use, the first metric indicating that a computer that has been in use for a longer period of time is more likely to be vacated by the user sooner; a second metric indicative of a past period during which the user continues to use one or more computers, the second metric indicating that computers used by users who frequently vacate computers are more likely to be vacated earlier by the users; a third metric indicating a turnover rate of each computer according to each computer's identification number, the third metric indicating that a computer identified as being associated with a high turnover rate is more likely to be surrendered by said user earlier; a fourth metric indicative of a temperature associated with each computer, the fourth metric indicating that a computer associated with a lower temperature is more likely to be surrendered earlier; and a fifth metric indicating an output value of the machine learning model that explains one or more of the first metric, the second metric, the third metric, and the fourth metric of the machine learning model.

5. 5. The method of claim 4, wherein obtaining further comprises the one or more processors obtaining the one or more metrics by probing one or more computer systems and one or more databases using a cloud service that runs one or more web services.

6. 6. The method of claim 5, further comprising a root of trust (ROT) processor in communication with the cloud service, selectively launching one or more processes for performing the background update process on one or more memory devices in communication with the ROT processor.

7. A device, one or more processors; and one or more computer-readable storage media storing logic that causes said one or more processors to perform the method of any one of claims 1 to 6.

8. A program causing one or more processors to execute the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • On-vehicle device

    JP2004249914A

  • Software updating device

    JP2011053954A

  • System and method for analyzing unauthorized intrusion into computer network

    JP2013240114A

  • Information processing device and method for replacing storage unit thereof

    JP2014154042A

  • Application self-service for assured log management in cloud environments

    JP2017097858A