Life-based computer resource provisioning
Through the life-based computer resource supply method, using machine learning classifiers to predict the service life of virtual machines and allocate resources, it solves the problem that cloud service providers are difficult to effectively utilize data to optimize resource allocation, and achieves higher operational efficiency and user satisfaction Spend.
Patent Information
- Application Number
- CN201980025336.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-13
- Filing Date
- 2019-03-27
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2039-03-27
AI Technical Summary
Cloud service providers find it difficult to effectively utilize the large amount of data they generate to optimize resource allocation and improve user experience, resulting in low operational efficiency and low user satisfaction.
Through a life-based computer resource provisioning method, a machine learning classifier is used to predict the service life of a virtual machine, classify it into short-life or long-life categories, and allocate hardware resources from a specific resource pool to achieve accurate decisions on resource provision.
This method can reduce resource competition, reduce service interruption, achieve better load balancing and resource utilization efficiency, and improve the overall performance and user satisfaction of cloud services.
Smart Images

Figure CN111971657B_ABST
Abstract
Description
Background Art
[0001] Cloud service providers offer computing resources to individuals and businesses over the Internet, enabling customers to rent standardized hardware and software rather than having to buy them. Service providers typically compete with each other in measurable categories such as price, feature set, performance, and user experience / satisfaction. While surveying customers is an accepted method for determining which categories need improvement and what users would like to see, cloud service providers also have a wealth of data generated by their services that can be data mined. The cloud service provider that can most quickly exploit this data will have a highly desirable advantage.
[0002] Understanding user behavior and usage patterns is important. This is the first step to improve operational efficiency (reduce costs) by minimizing service interruptions and maintaining stable performance and high user satisfaction. There has been extensive research interest in this area regarding cloud database services. More specifically, modeling database workload patterns and predicting user behavior has been studied. Some research focuses on understanding the resource requirements of user workloads and queries. For example, a database service provider can obtain workload and utilization data acquired by the provider to effectively allocate resources or help the database perform faster. Summary of the invention
[0003] A simplified overview is given below to provide a basic understanding of some aspects of the disclosed subject matter. This overview is not an exhaustive summary. It is not intended to identify key / critical elements or to define the scope of the claimed subject matter. Its sole purpose is to present some concepts in a simplified form as a prelude to a more detailed description that is presented later.
[0004] In short, the present disclosure relates to life-based computer resource provisioning. After creation, a machine learning classifier is used to classify a virtual machine into one of a plurality of life-span categories based on the characteristics of the creating user and the features of the virtual machine. The life-span category captures the different expected life spans of a virtual machine between when the virtual machine is created and when the virtual machine is deleted. For example, a life-span category may include a short life (e.g., equal to or less than 30 days) or a long life (e.g., greater than 30 days). Subsequently, resources for the virtual machine are provisioned from a hardware resource pool in a set of disjoint resource pools specific to the life-span category of the virtual machine. In this way, resource provisioning decisions are based on predicted classifications of the life of the virtual machine.
[0005] To achieve the foregoing and related purposes, certain illustrative aspects of the claimed subject matter are described herein in conjunction with the following description and accompanying drawings. These aspects indicate various ways in which the subject matter may be practiced, all of which are intended to be within the scope of the disclosed subject matter. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 It is a schematic block diagram of a resource provisioning system.
[0007] Figure 2 It is a schematic block diagram of a classifier training system.
[0008] Figure 3 is a schematic block diagram of an exemplary adaptation component.
[0009] Figure 4 It is a flow chart of the resource provisioning method.
[0010] Figure 5 It is a flow chart of the classification method.
[0011] Figure 6 is a flow chart of an adaptive resource provisioning method.
[0012] Figure 7 is a schematic block diagram illustrating a suitable operating environment for aspects of the present disclosure. DETAILED DESCRIPTION
[0013] Utilization and workload analysis is usually considered when allocating resources to virtual machines. Predicted utilization patterns or utilization levels are already used for optimal placement. For example, resources can be allocated to a database of a cloud service customer or subscriber based on the type of queries being run and the workload involved. In other words, the utilization and workload of the virtual machines that are created and not deleted are considered in the resource allocation.
[0014] The following details generally relate to lifespan-based computer resource provisioning. Lifespan refers to the lifespan of a virtual machine. In other words, the lifespan captures the expected survival time of a virtual machine, etc., between the creation time and the deletion time. One or more machine learning classifiers can be trained and utilized to predict the lifespan of newly created virtual machines, and to classify virtual machines into one of a plurality of lifespan categories based on various features, such as subscriber identity and virtual machine attributes. Hardware resources in disjoint resource pools can be allocated to virtual machines according to lifespan categories, so that virtual machines with similar expected lifespans are co-located. For example, a long-lived (e.g., greater than 30 days) virtual machine can be allocated to a resource pool designated for long-lived virtual machines, while a short-lived (e.g., less than or equal to 30 days) virtual machine can be allocated to a resource pool designated for short-lived virtual machines.
[0015] A resource provisioning scheme that co-locates virtual machines in disjoint resource pools based on expected lifetimes can provide many advantages. For example, co-locating long-lived virtual machines can alleviate resource contention between long-lived virtual machines and short-lived virtual machines that are being created and deleted, thereby providing better quality of service. In other words, identifying and segmenting virtual machines that cycle frequently rather than infrequently in terms of creation and deletion can eliminate the noisy neighbor problem. In addition, service interruptions to short-lived virtual machines due to maintenance can be reduced because some non-critical software patches (e.g., new features) may not need to be applied to virtual machines that will be deleted soon. In addition, better cluster provisioning and load balancing can be achieved because resource pools can be classified based in part on the frequency of creating and deleting virtual machines. For example, a short-lived resource pool may have a different fullness threshold tolerance than a long-lived resource pool. Therefore, by using different resource pools, the total available capacity slack may be less than when there is only one resource pool for all virtual machines. In other words, the total available capacity that can be utilized but not utilized when using different resource pools is less than when using a single resource pool, thereby making the use of different resource pools more efficient than a single resource pool.
[0016] Various aspects of the present disclosure are now described in more detail with reference to the accompanying drawings, wherein like reference numerals generally refer to like or corresponding elements throughout the text. However, it should be understood that the drawings and the detailed description related thereto are not intended to limit the claimed subject matter to the specific forms disclosed. On the contrary, it is intended to cover all modifications, equivalents, and alternative forms that fall within the spirit and scope of the claimed subject matter.
[0017] First reference Figure 1 , a resource provisioning system 100 is shown. The resource provisioning system 100 provides resources for virtual machines. A virtual machine includes a computer file called an image, which simulates a computer and is backed by physical hardware provided by a host or set of computers. More specifically, a virtual machine includes virtual hardware, such as a central processing unit, memory, hard drive, and other devices, which are mapped to real physical hardware. The resource provisioning system 100 provides hardware resources for the created virtual machines, including computing and storage resources and other resources (e.g., memory). In addition, the virtual machine can execute various operating systems and applications deployed thereon, including server applications, such as a database server or a network server. In other words, an instance of a virtual machine can be a database server or a network server.
[0018] The resource provisioning system 100 includes a request detection component 110, a lifespan classifier component 120, a category component 130, and a resource allocation component 140. The request detection component 110 is a mechanism for detecting a request, such as from a user or subscriber to a cloud service, for creating a virtual machine. The request detection component 110 passes information about the request, including a user identifier and virtual machine attributes, to the lifespan classifier component 120. The lifespan classifier component 120 is a machine learning classifier that learns and determines the expected lifespan of a virtual machine based on the learning. The category component 130 receives input from the lifespan classifier component 120 and assigns a lifespan category in a plurality of lifespan classes to the created virtual machine. For example, a virtual machine can be classified into a short lifespan category (e.g., less than or equal to 30 days) or a long lifespan category (e.g., greater than 30 days). The resource allocation component 140 is a mechanism for allocating or provisioning resources to a virtual machine from a set of disjoint hardware resource pools 150 (resource pool 0-resource pool N, where N is a positive number greater than or equal to 1). In addition, a resource pool is selected based on the lifespan class of the virtual machine, thereby selecting a resource pool corresponding to a specific lifespan class. For example, a resource pool specific to a short lifespan class may be selected, or a resource pool corresponding to a long lifespan class may be selected.
[0019] The lifespan classifier component 120 uses machine learning to automatically predict the expected lifespan or lifespan of a virtual machine. In addition, according to one implementation, the lifespan classifier component 120 can automatically predict the lifespan according to a specific confidence level. For example, the lifespan classifier component 120 can generate a prediction score associated with the classification of the virtual machine based on a set of features determined to be useful for predicting the lifespan. As an example, such features may include, but are not limited to, creation time, name, size, performance level, subscription type, and subscription history. For example, the lifespan classifier component 120 can generate a prediction score about whether the virtual machine will have a lifespan greater than 30 days, and the prediction score indicates the confidence level associated with the prediction. In this case, an exemplary score can be 90, indicating that the lifespan of the virtual machine is greater than 30 days, and the confidence level is 90%. In addition, based on a set of classifiers, more than one lifespan classifier can be used to achieve accurate prediction of the expected lifespan or lifespan. For example, an additional lifespan classifier component 120 can be used to predict the possibility that the lifespan of a virtual machine is less than or equal to 30 days. Furthermore, different classifiers can differ in features (e.g., feature subsets), training data (e.g., recent data vs. all data), categories (e.g., long-lived, short-lived, or medium-lived), and learning algorithms.
[0020] The classification component 130 can receive predictions from one or more lifespan classifier components 120 and assign a category to the virtual machine based thereon. In one instance, the classification component 130 can employ a predetermined or configurable threshold to classify the virtual machine. As an example, consider a binary classification of long lifespan (e.g., greater than 30 days) and short lifespan (e.g., less than or equal to 30 days). In the case of a single lifespan classifier, a threshold can be set so that if the classifier produces a prediction score of 90 or more, the virtual machine will be classified as long lifespan, otherwise the virtual machine will be classified as short lifespan. Alternatively, if there are two lifespan classifiers, then if the prediction score generated by the first classifier is ninety or more, the classification of the virtual machine may be long lifespan, and if the prediction score generated by the second classifier is ninety or more, the classification of the virtual machine may be short lifespan.
[0021] In addition to short-lived and long-lived, a third classification option is unknown. The unknown category can also be employed for one or more thresholds. For example, if the predicted score is less than a threshold "t1", the virtual machine can be classified as short-lived, and if the predicted score is greater than a threshold "t2", the virtual machine can be classified as long-lived. Otherwise, the virtual machine can be classified as unknown. For example, a virtual machine classified as unknown can be re-evaluated at a later time, where more information is available to classify it as short-lived or long-lived.
[0022] According to one embodiment, the lifespan classifier component 120 can identify a category and a probability of belonging to the category. As described above, the probability is used by the category component 130 to determine the category (and the threshold). However, the lifespan classifier component 120 can also be embodied as a classifier that does not output a probability. Instead, such a classifier will only indicate whether the virtual machine belongs to the category. In this case, since the lifespan classifier component 120 has the final say on the classification of the virtual machine, the category component 130 can be bypassed.
[0023] As described above, the resource provisioning system 100 can classify virtual machines as short-lived (meaning that the lifetime is less than or equal to 30 days), long-lived (meaning that the lifetime is greater than 30 days), or unknown. However, the resource provisioning system 100 is not limited to this. In fact, the number of categories and the boundaries between categories are configurable. As an example and not a limitation, another medium-life category between short-lived and long-lived can be introduced, which may mean that the lifetime is between 15 and 35 days.
[0024] The resource allocation component 140 can supply resources for virtual machines based on the category to which the virtual machines belong. The disjoint hardware resource pools 150 can have a correspondence with specific categories, so that virtual machines belonging to a first category are allocated allocated resources from a specific resource pool corresponding to the first category. In this way, virtual machines can be segmented and co-located with similar virtual machines in terms of life span. In an instance, each resource pool can have the same or similar hardware resources. However, the resource pools may be heterogeneous. In fact, in one embodiment, resources can be customized for classes. As an example and not limitation, a resource pool associated with a short-lived virtual machine may include a solid-state device to handle random inputs and outputs that occur when creating and deleting virtual machines.
[0025] As an example use case for the resource provisioning system 100, consider a cloud service provider system in a geographic region with limited resources. Conventionally, the system may run out of capacity. In this case, no customers can create virtual machines. Furthermore, when capacity is low, customers may not be able to create virtual machines. The resource provisioning system 100 enables the distinction between short-lived virtual machines and long-lived virtual machines. Thus, even when capacity is low, a set of resources can be allocated to allow for continuous creation and deletion of virtual machines. Furthermore, by segmenting resources for short-lived and long-lived virtual machines, long-lived virtual machines will not be affected by frequent creation and deletion in a separate resource cluster.
[0026] Turn your attention to Figure 2 , depicting a classifier training system 200. The classifier training system 200 includes Figure 1 The lifespan classifier component 120, the training component 210, the adaptation component 220 and the resource pool 150. The training component 210 obtains training data and employs such data to train the lifespan classifier component 120. As mentioned above, the lifespan classifier component 120 may be a machine learning component. In a supervised machine learning task, given the training data “D={(X1, y1), ..., (Xn, yn)}”, the goal is to learn a model “h” that is able to approximate the function “h” such that “f(Xi)=yi”. Each item “(Xi, yi)” that is a member of “D” may be referred to as a training example. In a classification task, “y i ” is a categorical value, while in regression tasks, “y i " is a numerical value. Each vector "x i" includes a set of features, each of which represents an attribute of the training example "i". According to one implementation, the lifespan classifier component 120 can be embodied as a random forest model as a collection of decision trees. Each tree is independently learned using a subset of features, which can be randomly selected. The final prediction of the random forest model is obtained by aggregating the predictions of all learned trees. Random forest is a general technique that is fast to train and has been shown to produce highly accurate predictions. Of course, other machine learning techniques can also be used, including neural networks, Bayesian belief networks, or expert systems. In addition, the training component 210 is not limited to supervised learning, and unsupervised learning can also be used.
[0027] The training data or training examples may be obtained from information captured about previous virtual machines. Since cloud service providers collect such information at least for billing purposes, this information is readily available. For example, for each virtual machine, the collected information may be the user, customer or subscriber ID, creation time, deletion time, virtual machine name, size and performance level, and subscription type and history. Other features may also be calculated from such collected information for use in training the classifier.
[0028] The creation time may include the date and time when the virtual machine was created. The date and time may be localized for the region in which the virtual machine is hosted. Next, the following features may be calculated:
[0029] Day of the week (1-7)
[0030] ·A day in January (1-31)
[0031] Week of the year (1-52)
[0032] Month of the year (1-12)
[0033] Time of day (0-23)
[0034] These features allow the model to capture temporal patterns. For example, the model can discover that VMs created on weekends have a lifetime of less than 30 days. One reason for this trend could be that VMs are created and deleted by automated processes.
[0035] A virtual machine can be named when it is created. If a database is deployed on the virtual machine, the virtual machine and the database can be named. For the name, the following characteristics can be calculated:
[0036] ·length
[0037] Number of characters
[0038] Different character rates (different number / length of characters)
[0039] Does the name contain letters and numbers?
[0040] Whether the name includes uppercase and lowercase letters
[0041] Does the name contain non-alphanumeric characters?
[0042] In this way, it can be determined whether a virtual machine or database was created manually or by an automated process. For example, a name manually written by a user may have a low character rate because the words comprising the name may include multiple repeated characters. On the other hand, a randomly created name generated by an automated process is more likely to have a higher character rate.
[0043] The storage size of a virtual machine or a deployed database may change over time. One could envision features that capture the absolute size as well as the change in size over the observed time period. For example, one could consider the following features:
[0044] The maximum, minimum, average, and standard deviation of absolute size in megabytes
[0045] The rate of change from the creation date to the forecast date
[0046] The rate of change in size can provide clues about age. For example, if the size of a database has not changed in the last two days, the database is likely older than 30 days.
[0047] A virtual machine can belong to versions and performance levels, and users can change versions and performance levels throughout its lifecycle. A specific number of resources can be allocated to each performance level. To account for versions and performance levels, the following characteristics can be calculated:
[0048] Version / performance level number changes
[0049] The number of different versions / performance levels
[0050] Version at the time of prediction
[0051] Performance level at the time of prediction
[0052] The difference between the version / performance level at creation and the version / performance level at forecast time
[0053] Maximum, minimum, and average resources allocated based on performance level
[0054] In the context of Platform as a Service (PaaS), virtual machine creation is associated with a subscription to the service. Subscriptions can be of various types, such as trial, consumption, and benefit plans. A feature can be created for each subscription type "t", which takes the value "1" if the subscription associated with the virtual machine was of type "t" at the time of virtual machine creation, and "0" otherwise. Assume "I" is the virtual machine for which we want to calculate features, "C" is the subscription associated with "I", and "T c ” is the time when “I” was created, “T p ” is the forecast time for “I”. You can get all virtual machines associated with subscription “C”. This includes the virtual machines in “T c ” and “T p ” and the virtual machines that are active between “T c " These virtual machines can be grouped into three groups: 1) c " was created before "T c ” and then delete the virtual machine. 2) In “T c " and at any time (even before "T c ” before) and 3) before “T c "After and "T p ” previously created. Note that group “1” is a subset of group “2”. For each of these groups, the following features can be calculated:
[0055] Number of virtual machines
[0056] The maximum, minimum, average, and standard deviation of the size of all virtual machines, where size is the maximum size of the virtual machine for groups "1" and "2"
[0057] The maximum, minimum, average, and standard deviation of the age of all databases in groups "1" and "2"
[0058] You can also create traits to capture the historical behavior of users associated with a subscription. For example, if all databases associated with a subscription have a lifetime of less than 30 days, then newly created databases may also have a lifetime of less than 30 days.
[0059] As described above, the lifespan classifier component 120 can implement a random forest model. One of the benefits of a random forest model is that it can extract the importance of features. That is, which features are most predictive. Gini importance can be used to measure feature importance. Gini importance is defined as the total reduction in node purity averaged over all trees in the forest. The Gini coefficient can be used to measure node impurity and is defined as "2p(1-p)", where "p" is the proportion of positive examples in the node. In an exemplary implementation, it can be determined that subscription history, name, and creation time can be the most predictive features.
[0060] The most predictive features are likely to be related to subscription history, which is the history of virtual machines owned by a subscription. This is intuitively expected. For example, if all virtual machines associated with a subscription are short-lived, new virtual machines associated with that subscription are likely to be short-lived as well. Similarly, features that indicate the number of databases created by a subscription are also very important.
[0061] The second most predictive feature may be related to the name. This confirms the assumption that it is very useful to identify whether a virtual machine was created manually or through an automated process.
[0062] The third most predictive feature can be related to creation time, specifically the time of day, day of month, and week of year that the VM was created. The time of day can indicate if the VM was created under automation, rather than during waking work hours. Likewise, VMs created on regional holidays can also indicate automated creations.
[0063] In one example, a subset of features can be used to classify a virtual machine immediately after creation. These features can include name, creation time, subscription history, etc. Alternatively, classification can be postponed for a predetermined period of time, such as two days. In this way, data can be collected from the virtual machine during operation and other information can be provided to assist in classification. In other words, given the data generated by a virtual machine in the first "x" days after the virtual machine is created, it can be predicted whether the lifetime of the virtual machine is greater than or less than "y" days, and the virtual machine can be classified based on this.
[0064] Accurate prediction is important because the costs associated with incorrect classification decisions can be high, such as negative impacts on load balancing strategies. However, it is impossible for a preliminarily trained classifier to classify all virtual machines without errors. The adaptation component 220 provides a mechanism for updating the classifier to resolve any misclassifications. The adaptation component 220 analyzes the categories and resources provided to the virtual machines through a specific resource pool to determine whether the placement is appropriate. In addition, the adaptation component 220 can provide feedback to the training component 210 when appropriate to enable refinement of one or more lifespan classifier components 120.
[0065] Turn your attention to Figure 3 , the adaptation component 220 is shown in more detail. As shown, the adaptation component 220 includes a mismatch detection component 310 and a migration component 320. The mismatch detection component 310 is configured to detect a mismatch between the classification of a virtual machine and the resource pool supporting the virtual machine during analysis. In one case, there may be a one-to-one relationship between the life category and the resource pool. After the initial classification and resource configuration, the virtual machine can be reclassified based on the currently available information. For example, consider the following virtual machine: the virtual machine was deleted shortly after creation, the virtual machine was classified as a long-life virtual machine, and resources were specified for the virtual machine from the long-life virtual machine resource pool. Therefore, the virtual machine is misclassified. Similarly, consider the following virtual machine: the virtual machine continues to exist for more than 30 days, but was previously classified as a short-life virtual machine with an expected life span of less than 30 days, and resources were provided from the short-life resource pool. The virtual machine is also misclassified. The mismatch detection component 310 can detect these types of mismatches and resource pool supplies.
[0066] The migration component 320 can at least initiate the migration of virtual machine resources from one resource pool in the resource pool 150 to another resource pool. Consider a situation where the life span of the virtual machine is longer than expected and the virtual machine has not been deleted. For example, the virtual machine is classified as short-lived, but the life span has exceeded the maximum threshold of the short-lived classification and now has a long-lived life span. In this case, the resources supplied for the virtual machine can be migrated from the short-lived resource pool to the long-lived resource pool. In another example, the virtual machine can be initially classified as unknown, and resources from the corresponding resource pool are supplied to the virtual machine. For example, if there is not enough available information to determine another category (such as short life or long life) at the time, the virtual machine can be classified as unknown. Alternatively, all virtual machines can be initially classified as unknown by default, and reclassification is attempted after a predetermined time (such as two days) after creation. In any case, resources configured for virtual machines classified as unknown can be migrated from unknown resource pools to known resource pools (e.g., short life, long life...).
[0067] The aforementioned systems, architectures, environments, etc. have been described with respect to the interactions between several components. It should be understood that such systems and components may include components or subcomponents specified therein, certain specified components or subcomponents, and / or other components. Subcomponents may also be implemented as components that are communicatively coupled to other components, rather than being contained in a parent component. In addition, one or more components and / or subcomponents may be combined into a single component to provide an aggregate function. For example, the lifespan classifier component 120 may be configured to include the functionality of a category component 130, so that the output of the lifespan classifier is a category that satisfies a specified level of prediction confidence. The communication between systems, components, and / or subcomponents may be accomplished according to a push and / or pull model. For the sake of brevity, these components may also interact with one or more other components that are not specifically described herein for the sake of introduction but are known to those skilled in the art.
[0068] In addition, various parts of the above disclosed systems and methods below may include or employ artificial intelligence, machine learning, or knowledge or rule-based components, subcomponents, processes, means, methodologies or mechanisms (e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, data fusion engines, classifiers, etc.). Such components may, in particular, automate certain mechanisms or processes performed thereby to make various parts of the systems and methods more adaptive, efficient and intelligent. As an example and not limitation, the lifespan classifier component 120 may employ such techniques to learn the expected lifespan of virtual machines and include a specific implementation of a cloud service database.
[0069] In view of the exemplary system described above, reference will be made to Figure 4-6 Flowcharts of the present invention are provided to better understand the methods that can be implemented according to the disclosed subject matter. Although the methodology is shown and described as a series of blocks for the purpose of simplifying the description, it should be understood and appreciated that the disclosed subject matter is not limited by the order of the blocks, as some blocks may appear in an order different from the order depicted and described herein and / or be performed simultaneously with other blocks. In addition, all of the blocks shown may not be required to implement the methods described below.
[0070] Figure 4 Resource provisioning method 400 is shown. At reference numeral 410, a machine learning classifier is trained. Figure 1A machine learning classifier such as the lifespan classifier component 120 in the example can be automatically trained using training data or training examples to learn the expected lifespan of a virtual machine. In a supervised learning approach, the training can include various features of the virtual machine and the lifespan of the virtual machine. In this case, various machine learning techniques can be used, including random weighted classifiers, neural networks, Bayesian networks, and knowledge-based systems. In one embodiment, a random forest can be used. A random forest is a collection of decision trees in which each tree learns independently using a subset of features, and the final prediction is obtained by aggregating the predictions of all trees.
[0071] At reference numeral 420, a virtual machine (VM) can be classified using a trained machine learning classifier. The classification relates to the expected life span or life of the virtual machine. The classification can classify the virtual machine into one of two or more categories. For example, these categories can include short life (e.g., 30 days or less), long life (e.g., greater than 30 days), or unknown. Of course, other categories (including intermediate levels between long life and short life) are also possible. In addition, one or more machine learning classifiers can be used. For example, a single machine learning classifier can classify a virtual machine as short life or long life, or a first machine learning classifier can classify a short life virtual machine, while a second machine learning classifier can classify a long life virtual machine.
[0072] At reference numeral 430, resources are provisioned to virtual machines based on the classification. Hardware resources may be partitioned or grouped into a plurality of resource pools. Hardware resources correspond to computing and storage resources, such as central processing units, memory, and hard disk drives. Resource pools may be specified for specific life categories attributable to virtual machines, so there may be a one-to-one relationship between resource pools and life categories. For example, one pool may correspond to a short life category, another pool may correspond to a long life category, and another pool may correspond to an unknown category. In operation, resources are provided to virtual machines based on the life category attributable to the virtual machines, so that the resources originate from the pool corresponding to the life category. In this way, resources may be intelligently provisioned to virtual machines of different groups based on the guidance of life.
[0073] Figure 55 is a flow chart of a classification method 500. At reference numeral 510, a classification of a virtual machine is initiated using a machine learning classifier. The classification may be triggered by creating a virtual machine (VM) or a specific instance thereof (such as a database). In one case, the classification may be initiated immediately after the virtual machine is created, for example, based on a subset of features, such as a name and subscription history. Alternatively, the classification may be initiated after a predetermined period of time (such as two days) after creation to allow for the collection of more information to assist in the classification. At reference numeral 520, a predicted confidence score for a first lifespan category is received. At 530, the score is compared to a threshold. If the score is greater than the threshold ("yes"), the method continues to 540, where the virtual machine is classified as having a first lifespan category. For example, if the confidence score returned by the machine learning classifier associated with a long-lived virtual machine is 95, and the threshold is 94, the virtual machine may be classified as having a long-lived confidence score. If the score is not greater than the threshold ("no"), the method continues at 550, where the virtual machine is classified as having a second lifespan category. For example, a virtual machine may be classified as being in the short-lived category because the confidence score is not greater than a threshold value representing the long-lived category.
[0074] Figure 6A method of adaptive resource provisioning 600 is shown. At reference numeral 610, a lifespan of a virtual machine or an instance thereof is determined. In one case, a service provider may track the creation and deletion dates of a virtual machine, at least for billing purposes. In the case where both the creation and deletion dates are available, the lifespan may be calculated as the difference between these dates. In the case where only the creation time is available, the lifespan may be calculated as at least the difference between the creation time and the current time. At reference numeral 620, a category of the virtual machine is identified. The category may be identified from metadata associated with the virtual machine, or may be obtained indirectly based on a specific resource pool that supplies resources to the virtual machine. At reference numeral 630, it is determined whether there is a mismatch between the lifespan and the category. In other words, the determination involves whether the category is appropriate for a given lifespan, so that for the determined lifespan, the virtual machine will be classified into the same lifespan category. If there is no mismatch ("no"), it indicates that the classification is appropriate and the method will terminate. If there is a mismatch ("yes"), it indicates that the classification is inappropriate and the method proceeds to reference numeral 640. At reference numeral 640, the mismatch is submitted to a machine learning classifier for training. More specifically, information about the virtual machine, the predicted category, and the appropriate category provides feedback to enable refinement of the classifier. Although not shown, in one instance, feedback about the correct category match can also be provided so as not to bias the classifier towards difficult-to-classify instances. At reference numeral 650, it is determined whether the virtual machine still exists, or in other words, whether it has not been deleted. If the virtual machine no longer exists ("no"), the method simply terminates. However, if the virtual machine still exists ("yes"), the method continues at 660, where a new category is determined based on the current lifespan. Next, at 670, the virtual machine is migrated to a different resource pool based on the category. For example, if the virtual machine was initially classified as short-lived, but continues to survive beyond the threshold of the short-lived classification, the virtual machine can be classified as long-lived and migrated from the short-lived resource pool to the long-lived resource pool.
[0075] Various aspects of the present disclosure are directed to the technical problem of improving the operational quality and efficiency of cloud services. Technical features related to solving these problems include automatically learning and characterizing the lifespan of virtual machines (or specific instances thereof), grouping virtual machines based on lifespan, and mapping groups to designated hardware resource pools, so that virtual machines with similar lifespans can be co-located.
[0076] The present disclosure supports various products and processes that perform or are configured to perform various actions related to provisioning life-guided computer resources. The following are one or more exemplary systems and methods.
[0077] A computer resource provisioning system includes: a processor coupled to a memory, the processor configured to execute computer executable instructions stored in the memory, the computer executable instructions causing the processor to perform the following actions when executed: detecting a request from a requester for creating a virtual machine; classifying the virtual machine into one of a plurality of lifespan categories using a machine learning classifier that generates a prediction score based on data related to one or more of the requester or the virtual machine, wherein the lifespan category captures the different lifespans of the virtual machine between when the virtual machine is created and when the virtual machine is deleted; and supplying resources for the virtual machine from a hardware resource pool in a set of disjoint resource pools specific to the lifespan category of the virtual machine. In the system, the plurality of lifespan categories include a short lifespan category and a long lifespan category based on a predetermined time corresponding to each category. In addition, the virtual machine can be classified as long lifespan or short lifespan based on a comparison of the prediction score with a threshold, wherein the classification depends on whether the prediction score is less than, equal to, or greater than the threshold. The system can also include detecting misclassification of the virtual machine based on the lifespan, and automatically updating the machine learning classifier using the misclassification. In addition, the misclassified virtual machine can be moved to another lifespan category. The system can also include classifying a database service implemented by the virtual machine into one lifespan category or multiple lifespan categories. Database services may be categorized based on the historical behavior of the requester, the name of the database, or the size of the database.
[0078] A resource provisioning method performed by a system, the system comprising at least one processor coupled to a memory storing machine executable instructions, the machine executable instructions controlling the system to perform actions when executed by the processor, including: detecting a request from a requester to create a virtual machine; using a machine learning classifier that generates a prediction score based on data related to one or more of the requester or the virtual machine to classify the virtual machine into one of a plurality of lifespan categories, wherein the lifespan category captures different lifespans of the virtual machine between when the virtual machine is created and when the virtual machine is deleted; and supplying resources for the virtual machine from a hardware resource pool that is disjoint from other resource pools and specific to the lifespan category of the virtual machine. The method also includes classifying the virtual machine into one of a plurality of lifespan categories including a short lifespan category and a long lifespan category based on a predetermined time corresponding to each category. In addition, the virtual machine can be classified as long lifespan or short lifespan based on a comparison of the prediction score with a threshold, wherein the classification depends on whether the prediction score is less than, equal to, or greater than the threshold. The method also includes detecting misclassification of the virtual machine based on the lifespan, and automatically updating the machine learning classifier based on the misclassification. In addition, the misclassified virtual machine can be moved to a different lifespan category corresponding to its current lifespan. The method also includes classifying the database service implemented by the virtual machine into one or more lifespan categories. The classification can also be performed based on at least one of the historical actions of the requester, the name of the database, or the size of the database provided by the database service.
[0079] A system for provisioning computer resources includes: a device for classifying a virtual machine into one of a plurality of lifespan categories using a machine learning classifier that generates a prediction score based on the identity of a requestor requesting to create a virtual machine and characteristics of the virtual machine; and a device for provisioning resources for the virtual machine from a hardware resource pool in a set of disjoint resource pools designated for the lifespan category of the virtual machine. The machine learning classifier of the system also generates a prediction score based on at least one of the creation time, the name of the virtual machine, or the size of the virtual machine. The system also includes: a device for detecting misclassification of a virtual machine; and a device for migrating virtual machine resources from a first resource pool to a second resource pool. The virtual machine implementation of the system exposes a database as a network accessible service, and the device for classification and provisioning operates on the database.
[0080] Survival analysis is a collection of statistical techniques for analyzing the expected duration until an event occurs. Traditionally, survival analysis has been used in the fields of life sciences and medicine, where the focus is on the survivability of certain individuals in a population who encounter a certain condition or the outcome after treatment is provided. In this article, survival analysis is used to analyze the survivability of a virtual machine or its instance (such as a database). In this case, the population includes virtual machines, and the event of interest is the death of the virtual machine, that is, being deleted or discarded.
[0081] Survivability analysis tools can be used to determine the proportion of a population that will survive after a given time "t". However, complete data on the age of the virtual machines is not available. Instead, only the current age can be observed. Therefore, the probability of survival can be exploited.
[0082] The survival function, defined as "S(t)P(T>t)", gives the probability that the event of interest has not occurred at time "t" for a randomly selected individual with a lifetime of "T". This survival function can be used to analyze the lifetime of virtual machines. For example, the probability that a database will survive a given amount of time can be calculated and compared to the survivability of virtual machines in different populations (e.g., different versions / editions).
[0083] An experiment was conducted on predicting the life span of a database based on whether it will be long-lived or short-lived. Data generated by the database in three regions were obtained, where these regions are called Region 1, Region 2, and Region 3. For each region, the databases were divided into three groups based on the database version, namely basic, standard, and advanced. Experiments were conducted on each subgroup, and a total of 9 sub-experiments (3 regions and 3 subgroups per region) were conducted. In the experiment, after two days, a prediction was made as to whether the database can survive for more than 30 days. In other words, the experiment distinguished between short-lived databases and long-lived databases. If the lifetime of the database exceeds 30 days, it is classified as positive, otherwise it is classified as negative.
[0084] According to the method, a random forest model was used for each subgroup in the dataset. The database in each subgroup was divided into 80% training and 20% test sets. The parameters of each model were adjusted by grid search through five cross-validation on the training set. The adjusted model was then used to predict the test set. Each experiment was performed five times, and the average accuracy, precision, and recall of the test set were reported. Accuracy is the ratio of correctly classified databases. Precision is the proportion of examples correctly classified as positive among all examples classified as positive. Recall is the proportion of examples correctly classified as positive among all actual positive examples.
[0085] The weighted random classifier serves as the baseline for comparison. The random classifier makes predictions in the following way. It first calculates the probability "p" that an example is positive based only on the class distribution in the training data. For each example, in the test set, it calculates a random number "r" between 0 and 1. If "r < p", the random classifier classifies the example as positive. Otherwise, the example is classified as negative.
[0086] First presented below are the results for the entire population, where the population was trained and classified across the entire region. Although the results are good, there is still a search for improvement. Subsequently, a method was designed to determine when a classification is more reliable (e.g., confident) or less reliable (e.g., uncertain). Compared to the overall population score, significant improvements can be achieved when the classification is confident.
[0087] Regarding the results for the entire population, across all versions and all regions, the random forest model significantly outperforms the baseline. In the base version, the average accuracy of the random forest model is "0.81" (baseline is "0.56"), the precision is "0.83" (baseline is "0.68"), and the recall is "0.92" (baseline is "0.68"). In the standard version, the average accuracy of the random forest model is "0.81" (baseline is "0.51"), the precision is "0.79" (baseline is "0.44"), and the recall is "0.88" (baseline is "0.56"). In the premium version, the average accuracy of the random forest model is "0.80" (baseline is "0.55"), the precision is "0.75" (baseline is "0.35"), and the recall is "0.66" (baseline is "0.35").
[0088] Overall, the accuracy obtained by the random forest model is higher than "0.80". This means that the model makes correct predictions at least 80% of the time. To better interpret the results, it is useful to look at the precision and recall scores. For example, in the base version, the average precision of the topic model is "0.83" and the average recall is "0.92". This means that from the database, the model can predict a lifespan of more than 30 days, and 83% of the predictions are correct. Additionally, the model is able to identify 92% of the database with a lifespan of more than 30 days.
[0089] In the premium version, it is difficult to predict whether the database will be long - lived. This is reflected by the low recall score. There are two reasons. First, the number of premium databases is significantly less than the number of basic or standard databases. Therefore, there are fewer training examples. Second, the distribution of positive and negative classes among premium databases is more imbalanced than that of basic or standard databases. This is reflected by the low scores obtained by the baseline.
[0090] To determine how well the topic model separates the short-lived and long-lived databases, the databases in the test set were divided according to their predicted categories and compared with the Kaplan-Meier survival curves for each group. As a result of the comparison, the topic model was apparently able to successfully separate the databases. However, the model is not perfect. In order to test for significant differences in the classification groupings, a log-rank test was performed. The log-rank test is a hypothesis test for comparing the survival distributions of two samples, where the null hypothesis is that the survival distributions are identical. The p-values for all classification groupings according to the random forest model are lower than "0.0000001". Therefore, the separation of the two categories is statistically significant. On the other hand, the p-value for the grouping classified by baseline is greater than "0.05", which is not statistically significant.
[0091] It is desirable to make resource provisioning decisions based on the predicted classification of a database. The cost of making the wrong decision can be high. For example, if a database predicted to be short-lived actually lives for more than 30 days, it may affect the load balancing strategy. Therefore, in addition to predicting the class of an example, a certain degree of confidence about the prediction can also be used. Random forests output an estimate of the probability that an example belongs to a certain class. This probability estimate can be used as a confidence level. Here, confidence simply means the probability estimate generated by the topic model, which is different from the meaning in general statistical terms.
[0092] In this section, the confidence level of the predictions is used to classify the predictions into two groups: confident and uncertain. A confident prediction should have a high confidence level. That is, the model predicts that the example belongs to the class with a high probability. Therefore, to mitigate the cost of misclassification, only confident predictions can be acted upon. For example, if the model predicts that a database will survive for more than 30 days with a 95% probability, then the database can be safely moved to a database that contains only long-lived servers. Ideally, confident predictions should obtain high accuracy, precision, and recall scores.
[0093] In a decision tree, the probability of an input example being classified as a positive (negative) example is equal to the proportion of positive (negative) examples in the leaf where the prediction is made. For example, if there are 10 examples in a leaf node and 8 of them are positive, the probability is 80% when the decision tree classifies the example as positive based on that leaf node. The class probabilities in a random forest are the result of averaging the class probabilities of the trees in the forest. If the probability that an example is positive is greater than "0.5", it is classified as positive; otherwise it is classified as negative. These probabilities can be used as the confidence of the prediction.
[0094] In order to determine whether the prediction is certain or uncertain, a threshold "t" is set, where "0.5≤t≤1", and the threshold is used in the following manner. Let "p" be the predicted probability that an example is classified as positive. In general, if "p>0.5", the example is positive. Otherwise it is classified as negative. If p≥t or p≤1-t, the prediction is considered certain. On the other hand, if "1-t<p<t", the prediction is considered uncertain. That is, predictions with a predicted probability close to "0.5" are considered uncertain. In order to determine the value of the threshold "t", the class distribution in the training data can be used. Let "q" be the percentage of positive examples in the training data. Then, "t=max(q, 1-q)" can be set. For example, if 70% of the training examples are positive, then "q=0.7". Therefore, "t=maximum(0.7, 0.3)=0.7."
[0095] The results show that confident predictions consistently improve over previous results without considering confidence, reaching an accuracy of "0.92" in some cases. The gains are greatest in the Basic and Advanced versions, where confident predictions account for an average of 63% and 71% of all predictions, respectively. There is not much improvement over the Standard version because the distribution of the short-lived database and the long-lived database is balanced. That is, the number of positive and negative examples is roughly the same. Therefore, the threshold separating confident and uncertain predictions is low. This results in confident predictions that cover almost all predictions. To be sure, confident predictions in the Standard version cover an average of 90% of all predictions. Interestingly, in most cases, especially in the Advanced version, uncertain predictions still outperform the baseline.
[0096] The confident predictions better separate the Standard and Advanced versions. This is reflected in the higher accuracy, precision, and recall scores. The log-rank test performed on the confident classification group outputs a p-value lower than "0.0000001", making the separation statistically significant.
[0097] On the other hand, the uncertainty forecast does not successfully separate the Standard and Advanced versions. On the Basic version, the separation is still statistically significant. However, this is not the case for the Standard and Advanced versions. The separation is not statistically significant.
[0098] Predicting the age of a database is not an easy task. Often, users follow different behavioral patterns. Therefore, even if two databases belong to the same version, they may have completely different characteristics. Moreover, the population contains outliers that have different characteristics from all other databases. Even with these difficulties, it was shown that the random forest model was able to achieve 80% accuracy in all predictions and, in many cases, 90% accuracy in confident predictions.
[0099] As used herein, the terms "component" and "system" and their various forms (e.g., component, system, subsystem, ...) are intended to refer to a computer-related entity, which is either hardware, or a combination of hardware and software, software, or software execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an instance, an executable file, an execution thread, a program, and / or a computer. As an illustration, both an application running on a computer and a computer can be a component. One or more components can reside in an execution process and / or thread, and a component can be located on one computer and / or distributed between two or more computers.
[0100] As used in this specification and the appended claims, the conjunction "or" is intended to mean an inclusive "or" rather than an exclusive "or," unless specified otherwise or clear from the context. In other words, "X" or "Y" refers to all inclusive permutations of "X" and "Y." For example, if "'A' employs 'X'," "'A employs 'X' and 'Y'," or "'A' employs 'X' and 'Y'," then "'A' employs 'X' or 'Y'" is satisfied in any of the foregoing instances.
[0101] Furthermore, to the extent that the terms "includes," "contains," "has," "having," or variations thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to how the term "comprising" is interpreted when used as a transitional word in the claims.
[0102] To provide context for the disclosed subject matter, Figure 7 The following discussion is intended to provide a brief, general description of suitable environments in which various aspects of the disclosed subject matter may be implemented. However, the suitable environments are merely examples and are not intended to imply any limitation on the scope of use or functionality.
[0103] Although the above disclosed systems and methods can be described in the general context of computer executable instructions of programs running on one or more computers, those skilled in the art will recognize that various aspects can also be implemented in combination with other program modules, etc. Typically, program modules include routines, programs, components, data structures, etc. that perform specific tasks and / or implement specific abstract data types. In addition, those skilled in the art will understand that the above systems and methods can be practiced using various computer system configurations, including single processor, multi-processor or multi-core processor computer systems, small computing devices, mainframe computers, and personal computers, handheld computing devices (e.g., personal digital assistants (PDAs), smart phones, tablet computers, watches...), microprocessor-based or programmable consumer or industrial electronics, etc. Various aspects can also be practiced in a distributed computing environment, in which tasks are performed by remote processing devices linked through a communication network. However, some (if not all) aspects of the disclosed subject matter can be practiced on stand-alone computers. In a distributed computing environment, program modules can be located in one or both of local and remote storage devices.
[0104] refer to Figure 7 , an example general purpose computer or computing device 702 (e.g., a desktop, laptop, tablet, watch, server, handheld, programmable consumer or industrial electronics, set-top box, gaming system, computing node, etc.) is shown. The computer 702 includes one or more processors 720, a memory 730, a system bus 740, (multiple) mass storage devices 750, and one or more interface components 770. The system bus 740 communicatively couples at least the above-mentioned system components. However, it should be understood that the computer 702, in its simplest form, can include one or more processors 720 coupled to the memory 730 to execute various computer executable actions, instructions, and / or components stored in the memory 730.
[0105] The processor(s) 720 may be implemented with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to perform the functions described herein. The general purpose processor may be a microprocessor, but alternatively, the processor may be any processor, controller, microcontroller, or state machine. The processor(s) 720 may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, multiple microprocessors, a multi-core processor, one or more microprocessors in combination with a DSP core, or any other such configuration. In one embodiment, the processor(s) 720 may be a graphics processor.
[0106] Computer 702 may include or otherwise interact with various computer-readable media to facilitate controlling computer 702 to implement one or more aspects of the disclosed subject matter. Computer-readable media can be any available media that can be accessed by computer 702, and includes both volatile and nonvolatile media and removable and non-removable media. Computer-readable media can include two different and mutually exclusive types, namely, computer storage media and communication media.
[0107] Computer storage media include volatile and nonvolatile removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media include storage devices such as memory devices (e.g., random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM) ...), magnetic storage devices (e.g., hard disk, floppy disk, cassette, tape ...), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) ...), and solid-state devices (e.g., solid-state drive (SSD), flash drive (e.g., card, stick, key drive ...) ...), or any other similar media that store (rather than transmit or transfer) desired information that can be accessed by computer 702. Therefore, computer storage media does not include modulated data signals and signals described with respect to communication media.
[0108] Communication media embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information as a signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
[0109] Memory 730 and mass storage device(s) 750 are examples of computer-readable storage media. Depending on the exact configuration and type of computing device, memory 730 may be volatile (e.g., RAM), non-volatile (e.g., ROM, flash memory, ...), or some combination of the two. As an example, a basic input / output system (BIOS) (including basic routines such as transferring information between elements within computer 702 during startup) may be stored in non-volatile memory, while volatile memory may act as an external cache to facilitate processing by processor(s) 720, etc.
[0110] The mass storage device(s) 750 include removable / non-removable volatile / non-volatile computer storage media for storing large amounts of data relative to the memory 730. For example, the mass storage device(s) 750 include, but are not limited to, one or more devices such as a magnetic or optical disk drive, a floppy disk drive, a flash memory, a solid state drive, or a memory stick.
[0111] The memory 730 and the mass storage device(s) 750 may include or have stored therein an operating system 760, one or more applications 762, one or more program modules 764, and data 766. The operating system 760 is used to control and allocate resources of the computer 702. The application 762 includes one or both of system and application software, and can utilize the management of resources by the operating system 760 to perform one or more operations through the program modules 764 and data 766 stored in the memory 730 and / or the mass storage device(s) 750. Therefore, the application 762 can turn the general-purpose computer 702 into a special-purpose machine according to the logic provided by it.
[0112] All or part of the claimed subject matter may be implemented using standard programming and / or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed functionality. By way of example and not limitation, the resource provisioning system 100 or a portion thereof may be an application 762 or form part of an application 762 and include one or more modules 764 and data 766 stored in a memory and / or (multiple) mass storage devices 750, the functionality of which may be implemented when executed by one or more processors 720.
[0113] According to a specific embodiment, (multiple) processors 720 may correspond to a system on chip (SOC) or similar architecture, including or in other words integrating both hardware and software on a single integrated circuit substrate. Here, (multiple) processors 720 may include one or more processors, and memories at least similar to (multiple) processors 720 and memory 730, etc. Conventional processors include a minimum number of hardware and software, and are widely dependent on external hardware and software. In contrast, the SOC implementation of the processor is more powerful because it has embedded hardware and software therein, so that specific functions can be implemented with minimal or no reliance on external hardware and software. For example, the resource supply system 100 and / or associated functions can be embedded in the hardware in the SOC architecture.
[0114] The computer 702 also includes one or more interface components 770 that are communicatively coupled to the system bus 740 and facilitate interaction with the computer 702. As an example, the interface component 770 can be a port (e.g., serial, parallel, PCMCIA, USB, FireWire, ...) or an interface card (e.g., sound, video, ...), etc. In one example implementation, the interface component 770 can be embodied as a user input / output interface to enable a user to input commands and information into the computer 702 through one or more input devices (e.g., a pointing device such as a mouse, trackball, stylus, touchpad, keyboard, microphone, joystick, game pad, satellite dish, scanner, camera, other computer, ...), such as through one or more gestures or voice input. In another example implementation, the interface component 770 can be embodied as an output peripheral interface for providing output to a display (e.g., LCD, LED, plasma, organic light emitting diode display (OLED) ...), a speaker, a printer, and / or other computers, etc. Still further, interface component 770 may be embodied as a network interface to enable communications with other computing devices (not shown), such as via a wired or wireless communication link.
[0115] What has been described above includes examples of various aspects of the claimed subject matter. Of course, it is not possible to describe every possible combination of components or methods for the purpose of describing the claimed subject matter, but one of ordinary skill in the art will recognize that many other combinations and permutations of the disclosed subject matter are possible. Therefore, the disclosed subject matter is intended to cover all such changes, modifications, and variations that fall within the spirit and scope of the appended claims.
Claims
1. A computer resource supply system, comprising: A processor coupled to a memory, the processor being configured to execute computer executable instructions stored in the memory, the computer executable instructions when executed causing the processor to perform the following actions: training a machine learning classifier to classify a plurality of databases into a plurality of lifespan categories based on a feature set, the feature set comprising at least different numbers of characters or different rates of characters included in the names of the plurality of databases, wherein the lifespan categories capture different database age periods, and wherein the database age period represents a length of time between when a database was created and when it was subsequently deleted; detecting a request from a requester for creating a database, the request including at least a name for the requested database; utilizing the machine learning classifier to classify the requested database into one of the plurality of life categories based at least on the name of the requested database; as well as Resources for the requested database are provisioned from a hardware resource pool in a set of disjoint resource pools, wherein the hardware resource pool is specific to the lifespan class of the requested database.
2. The system of claim 1 , wherein the machine learning classifier generates a prediction score and the requested database is classified into one of the plurality of life categories based on a comparison of the prediction score to a threshold.
3. The system of claim 1, wherein the plurality of life span categories include a long life span category and a short life span category.
4. The system of claim 1, wherein the actions further comprise: Detecting misclassification of databases based on age; as well as The machine learning classifier is automatically updated using the misclassification.
5. The system of claim 4, wherein the actions further comprise migrating resources of the misclassified database from a first resource pool to a second resource pool, wherein the second resource pool corresponds to a new category based on a current usage period. The system according to claim 1 , wherein the requested database is a database provided by a cloud database service.
7. The system of claim 1, wherein the categorizing further comprises categorizing the requested database based on historical actions of the requester.
8. The system of claim 1, wherein the classifying further comprises classifying the requested database based on a size of the requested database.
9. The system of claim 1, wherein the machine learning classifier implements a random forest model to classify the plurality of databases.
10. A method for resource provision, comprising: training a machine learning classifier to classify a plurality of databases into a plurality of lifespan categories based on a feature set, the feature set comprising at least the presence of non-alphanumeric symbols included in the names of the plurality of databases, wherein the lifespan categories capture different database lifespans, and wherein the database lifespan represents a length of time between when a database was created and when it was subsequently deleted; detecting a request from a requester for creating a database, the request including at least a name for the requested database; utilizing a machine learning classifier to classify the database into one of the plurality of life categories based at least on the name of the requested database; as well as Resources for the requested database are provisioned from a hardware resource pool from a set of disjoint resource pools, wherein the hardware resource pool is specific to the lifespan class of the requested database.
11. The method of claim 10, wherein the classification is based on a comparison of a prediction score produced by the machine learning classifier with a predetermined threshold. The method of claim 10 , wherein the plurality of life span categories include a short life span category and a long life span category.
13. The method according to claim 10, further comprising: detecting misclassification of a database based on a current age of the database; as well as The machine learning classifier is automatically updated based on the misclassification.
14. The method of claim 13, further comprising moving the misclassified database to a different lifespan category corresponding to a current age limit of the misclassified database. The method according to claim 10 , wherein the requested database is a database provided by a cloud database service.
16. The method of claim 10, wherein the classification is based on at least one of historical actions of the requester and a size of the requested database provided by the database.
17. A system for provisioning computer resources, comprising: a classifier training system for training a machine learning classifier to classify a plurality of databases into a plurality of lifespan categories based on a feature set, the feature set comprising different numbers of characters and different character rates included in the names of the plurality of databases, wherein the lifespan categories capture different database age periods, and wherein the database age period represents a length of time between when a database was created and when it was subsequently deleted; means for classifying the requested database into one of the plurality of longevity categories using the machine learning classifier based on an identity of a requestor requesting creation of the requested database and characteristics of the database, the characteristics of the database including at least a name of the requested database specified by the requestor; as well as Means for supplying resources for the requested database from a hardware resource pool from a set of disjoint resource pools, wherein the hardware resource pool is specified for the lifespan class of the requested database.
18. The system of claim 17, wherein the machine learning classifier further generates a prediction score, and the requested database is classified into one of the plurality of life categories based on a comparison of the prediction score to a predetermined threshold.
19. The system of claim 18, wherein the machine learning classifier generates the prediction score further based on at least one of a creation time and a requested size of the database.
20. The system of claim 17, further comprising: means for detecting misclassification of a database; as well as Means for migrating database resources from a first pool of resources to a second pool of resources corresponding to a new classification based on the current age of the database classified incorrectly.