Server resource allocation method and apparatus, computer device, and storage medium
By predicting the number of channel switching requests and server response capacity, and dynamically allocating target servers, the problem of channel switching request overload is solved, and faster channel switching is achieved.
Patent Information
- Application Number
- CN202311130069.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-04
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2043-09-04
AI Technical Summary
In traditional technology, when the number of channel switching requests exceeds the maximum number of responses from the fast channel switching server, some channel switching requests cannot be responded to in a timely manner, increasing the channel switching time.
By predicting the target request quantity based on channel information and historical request counts, determining the satisfaction level and the maximum response count of candidate servers, and dynamically allocating target servers to respond to channel switching requests.
It reduces the latency response during channel switching and improves the channel switching rate.
Smart Images

Figure CN117278799B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of artificial intelligence, and in particular to a server resource allocation method and device, computer equipment, a storage medium and a computer program product. BACKGROUND
[0002] Fast Channel Change (FCC) is a technology for reducing the channel switching time of Internet Protocol Television (IPTV). After receiving a channel switching request, a fast channel change server sends a unicast program stream with an Intra-frame (I) frame as the starting frame to a set-top box. Since the decoding of the I frame does not depend on other frames, the set-top box can quickly decode and display the picture of the unicast program stream, thereby improving the channel switching time.
[0003] In the prior art, each channel is configured with a corresponding fast channel change server. When the number of channel switching requests corresponding to a channel is greater than the maximum response number of the fast channel change server corresponding to the channel, part of the channel switching requests cannot be responded in time, thereby increasing the channel switching time. SUMMARY
[0004] Therefore, it is necessary to provide a server resource allocation method, device, computer equipment, computer readable storage medium and computer program product capable of improving the channel switching rate to solve the above technical problems.
[0005] In a first aspect, the present application provides a server resource allocation method. The method comprises:
[0006] Based on the channel information of a to-be-allocated channel and the historical request number corresponding to each historical time period, a predicted request number corresponding to a target time period of the to-be-allocated channel is determined;
[0007] For each to-be-allocated channel, based on the unresponsive proportion corresponding to each historical time period and the predicted request number corresponding to the target time period, a satisfaction degree of the to-be-allocated channel is determined;
[0008] A candidate server identifier corresponding to the target time period and a maximum response number corresponding to the candidate server identifier are obtained. Based on the satisfaction degree of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier, an allocation response number corresponding to each to-be-allocated channel is determined.
[0009] For each of the to-be-allocated channels, a target server identifier corresponding to the to-be-allocated channel is determined from the candidate server identifiers based on a number of allocation responses corresponding to the to-be-allocated channel; the target server corresponding to the target server identifier is used to respond to a channel switching request corresponding to the to-be-allocated channel within the target time period.
[0010] In one embodiment, the determining of the predicted number of requests corresponding to the target time period of the to-be-allocated channel based on the channel information of the to-be-allocated channel and the historical number of requests corresponding to each historical time period comprises:
[0011] The channel information of the to-be-allocated channel and the historical number of requests corresponding to each historical time period are checked to obtain a checking result.
[0012] In a case where the checking result is normal, the channel information and the historical number of requests corresponding to each of the historical time periods are input into a target prediction model to obtain the predicted number of requests corresponding to the target time period of the to-be-allocated channel.
[0013] In one embodiment, the determining of the satisfaction degree of the to-be-allocated channel based on the predicted number of requests corresponding to the target time period and the un-responded proportion corresponding to each of the historical time periods comprises:
[0014] The un-responded proportions corresponding to the plurality of historical time periods are averaged to obtain a target un-responded proportion.
[0015] The target un-responded proportion is used to obtain a target responded proportion corresponding to the to-be-allocated channel.
[0016] The predicted number of requests corresponding to the target time period of the to-be-allocated channel is normalized to obtain a predicted request proportion corresponding to the target time period of the to-be-allocated channel.
[0017] The satisfaction degree of the to-be-allocated channel is determined based on the target responded proportion corresponding to the to-be-allocated channel and the predicted request proportion corresponding to the target time period.
[0018] In one embodiment, the determining of the number of allocation responses corresponding to each of the to-be-allocated channels based on the satisfaction degree of each of the to-be-allocated channels and the maximum number of responses corresponding to each of the candidate server identifiers comprises:
[0019] A distribution function is determined based on the satisfaction degree of each of the to-be-allocated channels and a distribution response parameter.
[0020] A first constraint condition is determined based on the distribution response parameter of each of the to-be-allocated channels and the predicted number of requests corresponding to the target time period of each of the to-be-allocated channels.
[0021] determine a second constraint condition based on the allocation response parameter of each of the to-be-allocated channels and the maximum response number corresponding to each of the candidate server identifiers;
[0022] determine the allocation response number corresponding to each of the to-be-allocated channels based on the allocation function, the first constraint condition and the second constraint condition.
[0023] In one embodiment, the first constraint condition is that the allocation response parameter corresponding to the to-be-allocated channel is less than or equal to the predicted request number corresponding to the to-be-allocated channel; and the second constraint condition is that the statistical value of the allocation response parameter corresponding to each of the to-be-allocated channels is less than or equal to the statistical value of the maximum response number corresponding to each of the candidate server identifiers.
[0024] In one embodiment, the determination of the allocation response number corresponding to each of the to-be-allocated channels based on the allocation function, the first constraint condition and the second constraint condition comprises:
[0025] determining the maximum value of the allocation function based on the first constraint condition and the second constraint condition;
[0026] when the allocation function is the maximum value, determining the parameter value of the allocation response parameter corresponding to the to-be-allocated channel as the allocation response number corresponding to the to-be-allocated channel.
[0027] In one embodiment, after determining the target server identifier corresponding to the to-be-allocated channel from the candidate server identifiers based on the allocation response number corresponding to the to-be-allocated channel for each of the to-be-allocated channels, the method further comprises:
[0028] generating allocation information corresponding to the target server identifier based on the target time period and the to-be-allocated channel corresponding to the target server identifier for the target server identifier;
[0029] sending the allocation information to the target server.
[0030] In a second aspect, the present application further provides a server resource allocation device. The device comprises:
[0031] a prediction module configured to determine a predicted request number corresponding to a target time period of a to-be-allocated channel based on channel information of the to-be-allocated channel and historical request numbers corresponding to each of historical time periods;
[0032] a determination module configured to determine a satisfaction degree of each of the to-be-allocated channels based on an unresponsive proportion corresponding to each of the historical time periods and the predicted request number corresponding to the target time period;
[0033] a solving module, configured to acquire candidate server identifiers corresponding to the target time period and maximum response numbers corresponding to the candidate server identifiers, and determine, based on the satisfaction degrees of the to-be-assigned channels and the maximum response numbers corresponding to the candidate server identifiers, the number of responses corresponding to each of the to-be-assigned channels;
[0034] an assigning module, configured to, for each of the to-be-assigned channels, determine, based on the number of responses corresponding to the to-be-assigned channel, a target server identifier corresponding to the to-be-assigned channel from the candidate server identifiers; and the target server corresponding to the target server identifier is configured to respond to a channel switching request corresponding to the to-be-assigned channel in the target time period.
[0035] In a third aspect, the present application also provides a computer device, comprising a memory and a processor, the memory stores a computer program, and the processor implements the steps of the method in any of the first aspect when executing the computer program.
[0036] In a fourth aspect, the present application also provides a computer readable storage medium, which stores a computer program, and the computer program implements the steps of the method in any of the first aspect when executed by a processor.
[0037] In a fifth aspect, the present application also provides a computer program product, comprising a computer program, and the computer program implements the steps of the method in any of the first aspect when executed by a processor.
[0038] The server resource allocation method, device, computer device, storage medium and computer program product determine a predicted request quantity corresponding to a target time period of a to-be-allocated channel based on channel information of the to-be-allocated channel and historical request quantities corresponding to each historical time period; for each to-be-allocated channel, a satisfaction degree of the to-be-allocated channel is determined based on an un-responded proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period; a candidate server identifier corresponding to the target time period and a maximum response number corresponding to the candidate server identifier are obtained, and an allocation response number corresponding to each to-be-allocated channel is determined based on the satisfaction degrees of the to-be-allocated channels and the maximum response numbers corresponding to each candidate server identifier; for each to-be-allocated channel, a target server identifier corresponding to the to-be-allocated channel is determined from the candidate server identifiers based on the allocation response number corresponding to the to-be-allocated channel; and a target server corresponding to the target server identifier is used to respond to a channel switching request corresponding to the to-be-allocated channel in the target time period. The request quantity corresponding to the target time period of the to-be-allocated channel is predicted based on the channel information of the to-be-allocated channel and the historical request quantities corresponding to each historical time period, to obtain a predicted request quantity, and then the predicted request quantity and the maximum response number corresponding to the candidate server identifier are used to determine an allocation response number of the to-be-allocated channel in the target time period, and then the target server identifier of the to-be-allocated channel in the target time period is determined according to the allocation response number, that is, the target server corresponding to the to-be-allocated channel is dynamically adjusted according to the predicted request quantity of the to-be-allocated channel in the target time period, and the target server processes the channel switching request corresponding to the to-be-allocated channel in the target time period, so as to reduce the channel switching request of delayed response, thereby shortening the channel switching time length and improving the channel switching rate. BRIEF DESCRIPTION OF DRAWINGS
[0039] Figure 1 An application environment diagram of a server resource allocation method in an embodiment;
[0040] Figure 2 A flowchart of a server resource allocation method in an embodiment;
[0041] Figure 3 A diagram for determining an allocation response number in an embodiment;
[0042] Figure 4 A diagram of a satisfaction degree determination flow in an embodiment;
[0043] Figure 5 A diagram of an allocation response number determination flow in an embodiment;
[0044] Figure 6 A diagram of a server resource allocation scheme in an embodiment;
[0045] Figure 7A structural block diagram of a server resource allocation apparatus in an embodiment;
[0046] Figure 8 An internal structural diagram of a computer device in an embodiment. DETAILED DESCRIPTION
[0047] For the purpose, technical solutions and advantages of the present application to be clearer, the present application is further described in detail below with reference to the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and not to limit the present application.
[0048] The server resource allocation method provided by the embodiment of the present application can be applied in an application environment as shown in Figure 1 The terminal 102 communicates with the server 104 through a network. The data storage system can store data to be processed by the server 104. The data storage system can be integrated on the server 104, or placed on a cloud or other network server. The terminal and the server can be used alone to execute the server resource allocation method provided in the embodiment of the present application. The terminal and the server can also be used cooperatively to execute the server resource allocation method provided in the embodiment of the present application. For example, the terminal 102 determines the predicted request quantity of the target time period corresponding to the to-be-allocated channel based on the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period; determines the satisfaction degree of the to-be-allocated channel based on the un-responded proportion corresponding to each historical time period and the predicted request quantity of the target time period for each to-be-allocated channel; obtains the candidate server identifier corresponding to the target time period and the maximum response number corresponding to the candidate server identifier, and determines the allocation response number corresponding to each to-be-allocated channel based on the satisfaction degree of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier; and determines the target server identifier corresponding to the to-be-allocated channel from the candidate server identifier based on the allocation response number corresponding to the to-be-allocated channel for each to-be-allocated channel. The target server corresponding to the target server identifier is used to respond to the channel switching request corresponding to the to-be-allocated channel in the target time period. The terminal 102 can be, but is not limited to, various personal computers, notebook computers, smart phones, tablet computers, Internet of Things devices and portable wearable devices, and the server 104 is implemented as a server cluster composed of multiple servers.
[0049] In an embodiment, as shown in Figure 2 A server resource allocation method is provided, and the embodiment takes the method applied to a computer device as an example to illustrate the method, which includes steps 202 to 208.
[0050] Step 202, determining the predicted request quantity of the target time period corresponding to the to-be-allocated channel based on the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period.
[0051] The to-be-assigned channel refers to a television channel in the network protocol television. The to-be-assigned channel can be all television channels in the network protocol television or part of the television channels in the network protocol television. The to-be-assigned channel can be set according to actual needs. For example, the to-be-assigned channel is a television channel with a daily average channel switching request quantity greater than a preset request quantity. The channel information refers to related information of the to-be-assigned channel, and includes but is not limited to a channel type and a channel area. The historical time period refers to a time period in the past, and the target time period refers to a time period in the future. The length of the historical time period is equal to the length of the future time period, and the time period of the historical time period is the same as the time period of the future time period. For example, the current date is January 10, the historical time period is 8:00-12:00 on January 7, 8:00-12:00 on January 8, and 8:00-12:00 on January 9, and the target time period is 8:00-12:00 on January 11. The historical request quantity refers to a statistical quantity of channel switching requests corresponding to the to-be-assigned channel in the historical time period. It can be understood that the statistical quantity of channel switching requests switching to the to-be-assigned channel received by the fast channel switching server in the historical time period. The predicted request quantity refers to a quantity of channel switching requests switching to the to-be-assigned channel that the fast channel switching server can receive in the target time period. It can be understood that the quantity of channel switching requests switching to the to-be-assigned channel in the target time period is predicted, and the quantity of channel switching requests switching to the to-be-assigned channel in the target time period is obtained.
[0052] Exemplarily, the computer device obtains the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period, and predicts the quantity of channel switching requests of the to-be-assigned channel in the target time period based on the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period, to obtain the predicted request quantity corresponding to the target time period of the to-be-assigned channel.
[0053] In step 204, for each to-be-assigned channel, the satisfaction degree of the to-be-assigned channel is determined based on the unresponsive proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period.
[0054] The unresponsive proportion refers to the ratio of the channel switching requests that are not responded in a historical time period to all channel switching requests, which can be understood as the ratio between the difference between the statistical number of channel switching requests in the historical time period and the maximum response number of the corresponding fast channel switching server and the statistical number. The satisfaction degree refers to a coefficient for balancing the allocation of server resources. The satisfaction degree is in one-to-one correspondence with the to-be-allocated channel. The satisfaction degree of the to-be-allocated channel is determined by the unresponsive proportion corresponding to each historical time period of the to-be-allocated channel and the predicted request number corresponding to the target time period. The satisfaction degree is inversely proportional to the unresponsive proportion and inversely proportional to the predicted request number.
[0055] For each to-be-allocated channel, the computer device obtains the unresponsive proportion corresponding to each historical time period of the to-be-allocated channel, and determines the satisfaction degree of the to-be-allocated channel based on the unresponsive proportion corresponding to each historical time period and the predicted request number corresponding to the target time period.
[0056] In one embodiment, the computer device obtains the unresponsive proportion corresponding to each historical time period of the to-be-allocated channel, including: for each historical time period, the computer device obtains the statistical number of channel switching requests corresponding to the historical time period of the to-be-allocated channel, and the fast channel switching server identifier corresponding to the historical time period of the to-be-allocated channel, counts the maximum response number corresponding to the fast channel switching server identifier corresponding to the historical time period, obtains the maximum response statistical number, subtracts the maximum response statistical number from the statistical number to obtain the number of responses that are overdue, and divides the number of responses that are overdue by the statistical number to obtain the unresponsive proportion corresponding to the historical time period of the to-be-allocated channel.
[0057] In step 206, the computer device obtains the candidate server identifier corresponding to the target time period and the maximum response number corresponding to the candidate server identifier, and determines the allocation response number corresponding to each to-be-allocated channel based on the satisfaction degree of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier.
[0058] The candidate server identifier refers to the identifier of the fast channel switching server that responds to the channel switching request in the target time period. The maximum response number refers to the maximum number of channel switching requests that the candidate server can respond to in the target time period. The allocation response number refers to the number of channel switching requests that the candidate server allocated to the to-be-allocated channel can process.
[0059] For example, the computer device obtains the candidate server identifier corresponding to the target time period and the maximum response number corresponding to the candidate server identifier, and determines the allocation response number corresponding to each to-be-allocated channel based on the satisfaction degree of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier.
[0060] In one embodiment, the computer device obtains candidate server identifiers corresponding to the target time period and maximum response numbers corresponding to the candidate server identifiers, determines an assignment function and a constraint condition based on the satisfaction degrees of the to-be-assigned channels and the maximum response numbers corresponding to the candidate server identifiers, and determines the assignment response numbers corresponding to the to-be-assigned channels based on the assignment function and the constraint condition.
[0061] In step 208, for each to-be-assigned channel, the computer device determines a target server identifier corresponding to the to-be-assigned channel from the candidate server identifiers based on the assignment response number corresponding to the to-be-assigned channel; a target server corresponding to the target server identifier is used to respond to a channel switching request corresponding to the to-be-assigned channel within the target time period.
[0062] In one embodiment, for each to-be-assigned channel, the computer device determines a target server identifier corresponding to the to-be-assigned channel from the candidate server identifiers based on the assignment response number corresponding to the to-be-assigned channel, and a target response number corresponding to the target server identifier; a target server corresponding to the target server identifier is used to respond to a channel switching request corresponding to the to-be-assigned channel within the target time period.
[0063] In one embodiment, for each to-be-assigned channel, the computer device determines a target server identifier corresponding to the to-be-assigned channel from the candidate server identifiers based on the assignment response number corresponding to the to-be-assigned channel, and a target response number corresponding to the target server identifier; a target server corresponding to the target server identifier is used to respond to a channel switching request corresponding to the to-be-assigned channel within the target time period.
[0064] In one embodiment, for each to-be-assigned channel, the computer device determines a target server identifier corresponding to the to-be-assigned channel from the candidate server identifiers based on the assignment response number corresponding to the to-be-assigned channel, and a target response number corresponding to the target server identifier; a target server corresponding to the target server identifier is used to respond to a channel switching request corresponding to the to-be-assigned channel within the target time period.
[0065] The server resource allocation method, by the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period, predicts the request quantity corresponding to the target time period of the to-be-allocated channel, obtains the predicted request quantity, then according to the predicted request quantity and the maximum response number corresponding to the candidate server identifier, determines the allocation response number allocated to the to-be-allocated channel in the target time period, and then according to the allocation response number, determines the target server identifier allocated to the to-be-allocated channel in the target time period, that is, according to the predicted request quantity of the to-be-allocated channel in the target time period, dynamically adjusts the target server corresponding to the to-be-allocated channel, and the target server processes the channel switching request corresponding to the to-be-allocated channel in the target time period, reduces the channel switching request of delayed response, thereby shortening the channel switching time length and improving the channel switching rate.
[0066] In one embodiment, based on the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period, the predicted request quantity corresponding to the target time period of the to-be-allocated channel is determined, comprising:
[0067] The channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period are checked to obtain a checking result; in the case that the checking result is normal, the channel information and the historical request quantity corresponding to each historical time period are input into a target prediction model to obtain the predicted request quantity corresponding to the target time period of the to-be-allocated channel.
[0068] The checking refers to checking the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period. The checking includes but is not limited to integrity checking and abnormality checking. The integrity checking refers to checking whether the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period are complete. The abnormality checking refers to checking whether the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period are abnormal. The checking result refers to a result obtained by checking the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period. The checking result includes normal and abnormal. The normal refers to that the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period meet the preset requirement. The abnormal refers to that there is information or data that does not meet the preset requirement in the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period. The target prediction model refers to a neural network model for predicting the channel switching request quantity of the to-be-assigned channel in a target time period according to the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period. The target prediction model is a trained neural network model. The target prediction model is a deep learning model, which can be one of an RNN (Recurrent Neural Network) model, a GRU (Gated Recurrent Unit) model, an LSTM (Long Short-Term Memory) model, and the like, which is not limited herein.
[0069] Exemplarily, the computer device checks the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period, and obtains a checking result. If the checking result is normal, the channel information and the historical request quantity corresponding to each historical time period are input into the target prediction model, and a predicted request quantity corresponding to a target time period of the to-be-assigned channel is obtained.
[0070] In one embodiment, the computer device checks the channel information of the to-be-assigned channel and a plurality of time period sets, and obtains a checking result. Each time period set includes historical request quantities of a plurality of historical time periods corresponding to a same time period. If the checking result is normal, the channel information and the plurality of time period sets are input into the target prediction model, and predicted request quantities corresponding to a plurality of future time periods of the to-be-assigned channel are obtained. One of the future time periods is determined as the target time period, and a predicted request quantity corresponding to the target time period is obtained. For example, as shown in FIG. 2, the computer device checks the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period, and obtains a checking result. If the checking result is normal, the channel information and the historical request quantity corresponding to each historical time period are input into the target prediction model, and predicted request quantities corresponding to a plurality of future time periods of the to-be-assigned channel are obtained. One of the future time periods is determined as the target time period, and a predicted request quantity corresponding to the target time period is obtained. Figure 3As shown, the input historical request quantity includes three historical time periods 8:00-12:00, and the historical request quantity corresponding to the historical time period 8:00-12:00, and then the three historical time periods 8:00-12:00 and the historical request quantity corresponding to the historical time period 8:00-12:00 are a time period set, the time period set corresponds to the time period 8:00-12:00, and the result input by the target prediction model includes the predicted request quantity corresponding to a plurality of future time periods, and each future time period can be used as a target time period.
[0071] In the embodiment, the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period are checked, the channel information of the to-be-assigned channel and the historical request quantity corresponding to each historical time period with a normal check result are input into the target prediction model, the input data of the target prediction model meets the preset requirement, the target prediction model is a trained neural network model, and therefore the accuracy of the predicted request quantity of the to-be-assigned channel corresponding to the target time period is improved.
[0072] In one embodiment, as shown in Figure 4 For each to-be-assigned channel, the satisfaction degree of the to-be-assigned channel is determined based on the unresponsive proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period, including:
[0073] In step 402, the unresponsive proportions corresponding to a plurality of historical time periods are averaged to obtain a target unresponsive proportion.
[0074] For example, the computer device averages the unresponsive proportions corresponding to a plurality of historical time periods to obtain a target unresponsive proportion.
[0075] In step 404, the target unresponsive proportion is used to obtain a target response proportion corresponding to the to-be-assigned channel.
[0076] For example, the computer device subtracts the target unresponsive proportion by one to obtain a target response proportion corresponding to the to-be-assigned channel.
[0077] In step 406, the predicted request quantity of the to-be-assigned channel corresponding to the target time period is normalized to obtain a predicted request proportion of the to-be-assigned channel corresponding to the target time period.
[0078] The normalization processing refers to a data processing method for limiting data in a certain fixed range, for example, normalization processing for limiting data between 0 and 1.
[0079] Exemplarily, the computer device counts the predicted request quantity corresponding to the target time period for each to-be-assigned channel, to obtain a predicted request statistical quantity, and for each to-be-assigned channel, divides the predicted request quantity of the to-be-assigned channel in the target time period by the predicted request statistical quantity, to obtain a predicted request proportion corresponding to the target time period of the to-be-assigned channel.
[0080] Step 408, determining the satisfaction degree of the to-be-assigned channel based on the target response proportion of the to-be-assigned channel and the predicted request proportion corresponding to the target time period.
[0081] Exemplarily, for each to-be-assigned channel, the computer device obtains other predicted request proportions of other to-be-assigned channels in the target time period by subtracting the predicted request proportion of the to-be-assigned channel in the target time period from one, and fuses the other predicted request proportions of the other to-be-assigned channels in the target time period with the target response proportion of the to-be-assigned channel in the target time period, to obtain the satisfaction degree of the to-be-assigned channel.
[0082] In one embodiment, the satisfaction degree of the to-be-assigned channel is:
[0083] S i i i )*(1-norm(a i )) Formula (1)
[0084] Wherein, i is the serial number of the to-be-assigned channel, S i is the satisfaction degree of the i-th to-be-assigned channel, P i is the target non-response proportion of the i-th to-be-assigned channel, a i is the predicted request statistical quantity of the i-th to-be-assigned channel in the target time period, and norm is a normalization processing function.
[0085] In this embodiment, the satisfaction degree of the to-be-assigned channel is determined according to the non-response proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period, to provide basic data for subsequent construction of the assignment function.
[0086] In one embodiment, as shown in Figure 5 , based on the satisfaction degree of each to-be-assigned channel and the maximum response number corresponding to each candidate server identifier, the assignment response number corresponding to each to-be-assigned channel is determined, including:
[0087] Step 502, determining the assignment function based on the satisfaction degree of each to-be-assigned channel and the assignment response parameter.
[0088] The allocation response parameter is a variable representing the number of allocation responses of the to-be-allocated channel, and the allocation response parameter corresponds to the to-be-allocated channel in a one-to-one manner. The allocation function is a function used to determine the number of allocation responses of each to-be-allocated channel, and the allocation function includes the allocation response parameter corresponding to each to-be-allocated channel.
[0089] For example, the computer device determines the allocation function based on the satisfaction degree and the allocation response parameter of each to-be-allocated channel.
[0090] In an embodiment, the allocation function is as follows:
[0091]
[0092] wherein i is the serial number of the to-be-allocated channel, n is the total number of to-be-allocated channels, S i is the satisfaction degree of the i th to-be-allocated channel, A i is the allocation response parameter of the i th to-be-allocated channel.
[0093] Step 504: determining a first constraint condition based on the allocation response parameter of each to-be-allocated channel and the predicted number of requests corresponding to each to-be-allocated channel in the target time period.
[0094] The first constraint condition is a condition for constraining the allocation response parameter of each to-be-allocated channel.
[0095] For example, the computer device determines the first constraint condition based on the allocation response parameter of each to-be-allocated channel and the predicted number of requests corresponding to each to-be-allocated channel in the target time period.
[0096] Step 506: determining a second constraint condition based on the allocation response parameter of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier.
[0097] The second constraint condition is a condition for constraining the statistical value of the allocation response parameter of the plurality of to-be-allocated channels.
[0098] For example, the computer device determines the second constraint condition based on the allocation response parameter of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier.
[0099] Step 508: determining the number of allocation responses corresponding to each to-be-allocated channel based on the allocation function, the first constraint condition, and the second constraint condition.
[0100] For example, the computer device determines the number of allocation responses corresponding to each to-be-allocated channel based on the allocation function, the first constraint condition, and the second constraint condition.
[0101] In the embodiment, the allocation response number corresponding to each to-be-allocated channel is determined based on the allocation function, the first constraint condition and the second constraint condition, so as to dynamically adjust the allocation response number corresponding to each to-be-allocated channel and provide basic data for subsequent determination of the target server corresponding to each to-be-allocated channel.
[0102] In one embodiment, the first constraint condition is that the allocation response parameter corresponding to the to-be-allocated channel is less than or equal to the predicted request quantity corresponding to the to-be-allocated channel; and the second constraint condition is that the statistical value of the allocation response parameter corresponding to each to-be-allocated channel is less than or equal to the statistical value of the maximum response quantity corresponding to each candidate server identifier.
[0103] For example, the first constraint condition is that the allocation response parameter corresponding to each to-be-allocated channel is less than or equal to the predicted request quantity corresponding to the to-be-allocated channel, and the second constraint condition is that the statistical value of the allocation response parameter corresponding to each to-be-allocated channel is less than or equal to the statistical value of the maximum response quantity corresponding to each candidate server identifier.
[0104] In one embodiment, the first constraint condition and the second constraint condition are as follows:
[0105] A i ≤a i Formula (3)
[0106]
[0107] wherein i is the serial number of the to-be-allocated channel, n is the total number of to-be-allocated channels, A i is the allocation response parameter of the i th to-be-allocated channel, a i is the predicted request statistical quantity of the i th to-be-allocated channel in the target time period, j is the serial number of the candidate server, m is the total number of candidate servers, and r j is the maximum response quantity of the j th candidate server.
[0108] In the embodiment, the first constraint condition is used to limit the allocation response number of the to-be-allocated channel to be less than the predicted request quantity, so as to avoid excessive server resources allocated to the to-be-allocated channel and waste of server resources, and the second constraint condition is used to limit the statistical value of the allocation response number of the plurality of to-be-allocated channels to be less than the statistical value of the maximum response quantity of the plurality of candidate servers, so as to avoid the server resources allocated to the to-be-allocated channel exceeding the actual available server resources.
[0109] In one embodiment, the allocation response number corresponding to each to-be-allocated channel is determined based on the allocation function, the first constraint condition and the second constraint condition, comprising:
[0110] determine the maximum value of the allocation function based on the first constraint condition and the second constraint condition; and determine the parameter value of the allocation response parameter corresponding to the to-be-allocated channel as the number of allocation responses corresponding to the to-be-allocated channel when the allocation function is the maximum value.
[0111] The maximum value of the allocation function refers to the maximum value of the allocation function obtained by calculation under the condition of satisfying the first constraint condition and the second constraint condition.
[0112] For example, the computer device determines the maximum value of the allocation function under the condition of satisfying the first constraint condition and the second constraint condition, and determines the parameter value of the allocation response parameter corresponding to the to-be-allocated channel as the number of allocation responses corresponding to the to-be-allocated channel when the allocation function is the maximum value.
[0113] In this embodiment, the number of allocation responses of the to-be-allocated channel in the target time period is determined under the condition of satisfying the first constraint condition and the second constraint condition, which avoids excessive allocation of server resources to the to-be-allocated channel and causes waste of server resources, and avoids the number of server resources allocated to the to-be-allocated channel exceeding the actual available server resources, and dynamically adjusts the number of allocation responses according to the predicted request number of the to-be-allocated channel.
[0114] In one embodiment, for each to-be-allocated channel, after determining the target server identifier corresponding to the to-be-allocated channel from the candidate server identifiers based on the number of allocation responses corresponding to the to-be-allocated channel, the method further includes:
[0115] generating allocation information corresponding to the target server identifier based on the target time period and the to-be-allocated channel corresponding to the target server identifier; and sending the allocation information to the target server.
[0116] The allocation information refers to information sent by the computer device to the fast channel switching server, which is used to instruct the fast channel switching server to respond to the channel switching request of the to-be-allocated channel. The allocation information includes but is not limited to the target time period and the to-be-allocated channel.
[0117] For example, for the target server identifier, the allocation information corresponding to the target server identifier is generated based on the target time period and the to-be-allocated channel corresponding to the target server identifier, and the allocation information is sent to the target server corresponding to the target server identifier.
[0118] In this embodiment, the computer device sends the allocation information to the fast channel switching server, and the fast channel switching server responds to the channel switching request of the to-be-allocated channel corresponding thereto in the target time period, reduces the channel switching request with delayed response, and thus shortens the channel switching time.
[0119] In an example embodiment, the computer device manages multiple fast channel switching servers, the fast channel switching server is used to receive the channel switching request sent by the set top box, and then send the unicast program stream with the I frame as the starting frame to the set top box. The set top box decodes the unicast program stream with the I frame as the starting frame, thereby realizing fast channel switching. Each channel has a corresponding fast channel switching server. When the number of channel switching requests of any one channel exceeds the maximum response number of the corresponding fast channel switching server, the corresponding fast channel switching server cannot respond to the channel switching request in time, thereby increasing the length of time of channel switching. In order to shorten the length of time of channel switching, the server resource allocation method is as follows:
[0120] The computer device obtains the channel information of the to-be-allocated channel and the historical request number corresponding to each historical time period, checks the channel information of the to-be-allocated channel and the historical request number corresponding to each historical time period, obtains a check result, and if the check result is normal, inputs the channel information and the historical request number corresponding to each historical time period into a target prediction model to obtain a predicted request number of the to-be-allocated channel corresponding to a target time period.
[0121] For each to-be-allocated channel, the computer device obtains the unresponsive proportion of each historical time period corresponding to the to-be-allocated channel, averages the unresponsive proportions corresponding to multiple historical time periods to obtain a target unresponsive proportion, determines the satisfaction degree of the to-be-allocated channel based on the target response proportion of the to-be-allocated channel and the predicted request proportion corresponding to the target time period using formula (1). Based on the satisfaction degree of each to-be-allocated channel and the allocation response parameter, the allocation function is determined using formula (2); based on the allocation response parameter of each to-be-allocated channel and the predicted request number of each to-be-allocated channel corresponding to the target time period, the first constraint condition is determined using formula (3); the target time period corresponding to the candidate server identifier and the maximum response number corresponding to the candidate server identifier are obtained, and based on the allocation response parameter of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier, the second constraint condition is determined using formula (4). For example, the to-be-allocated channels are A, B and C, and the scheme of determining the server resources corresponding to A, B and C is as shown in the following table. Figure 6
[0122] Under the condition of meeting the first constraint condition and the second constraint condition, the maximum value of the allocation function is determined, and when the allocation function is the maximum value, the parameter value of the allocation response parameter corresponding to the to-be-allocated channel is determined as the allocation response number corresponding to the to-be-allocated channel. Based on the allocation response number corresponding to the to-be-allocated channel, the target server identifier corresponding to the to-be-allocated channel is determined from the candidate server identifier.
[0123] The target server identifier is identified, and based on the target time period and the to-be-allocated channel corresponding to the target server identifier, allocation information corresponding to the target server identifier is generated, the allocation information is sent to a target server corresponding to the target server identifier, and the target server responds to a channel switching request corresponding to the to-be-allocated channel in the target time period.
[0124] The server resource allocation method, by using the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period, predicts the request quantity corresponding to the target time period of the to-be-allocated channel to obtain a predicted request quantity, and then determines the allocation response number of the to-be-allocated channel in the target time period according to the predicted request quantity and the maximum response number corresponding to the candidate server identifier, and then determines the target server identifier of the to-be-allocated channel in the target time period according to the allocation response number, that is, the target server corresponding to the to-be-allocated channel is dynamically adjusted according to the predicted request quantity of the to-be-allocated channel in the target time period, the target server processes the channel switching request corresponding to the to-be-allocated channel in the target time period, the delayed response channel switching request is reduced, and thus the channel switching time is shortened and the channel switching rate is improved.
[0125] It should be understood that, although each step in the flowchart involved in each embodiment as described above is displayed in sequence according to the arrow, these steps are not necessarily executed in sequence according to the arrow. Unless otherwise specified herein, the execution of these steps is not strictly limited in sequence, and these steps can be executed in other sequences. Moreover, at least part of the steps in the flowchart involved in each embodiment as described above can include multiple steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution sequence of these steps or stages is not necessarily sequential, but can be executed in rotation or alternation with at least part of other steps or steps or stages in other steps.
[0126] Based on the same inventive concept, the embodiments of the present application also provide a server resource allocation device for implementing the above-mentioned server resource allocation method. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme described in the above method, and therefore the specific limitations in one or more server resource allocation device embodiments provided below can refer to the limitations of the server resource allocation method described above, which will not be described here again.
[0127] In one embodiment, as shown in Figure 7 a server resource allocation device is provided, which includes a prediction module 702, a determination module 704, a solving module 706, and an allocation module 708, wherein:
[0128] The prediction module 702 is configured to determine a predicted request quantity corresponding to a target time period of a to-be-assigned channel based on channel information of the to-be-assigned channel and historical request quantities corresponding to historical time periods.
[0129] The determination module 704 is configured to determine, for each to-be-assigned channel, a satisfaction degree of the to-be-assigned channel based on the unresponsive proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period.
[0130] The solving module 706 is configured to obtain a candidate server identifier corresponding to the target time period and a maximum response number corresponding to the candidate server identifier, and determine an assignment response number corresponding to each to-be-assigned channel based on the satisfaction degree of each to-be-assigned channel and the maximum response number corresponding to each candidate server identifier.
[0131] The assignment module 708 is configured to determine, for each to-be-assigned channel, a target server identifier corresponding to the to-be-assigned channel from the candidate server identifiers based on the assignment response number corresponding to the to-be-assigned channel, and configure a target server corresponding to the target server identifier to respond to a channel switching request corresponding to the to-be-assigned channel in the target time period.
[0132] In an embodiment, the prediction module 702 is further configured to check the channel information of the to-be-assigned channel and the historical request quantities corresponding to the historical time periods to obtain a checking result, and input the channel information and the historical request quantities corresponding to the historical time periods to a target prediction model to obtain the predicted request quantity corresponding to the target time period of the to-be-assigned channel in a case where the checking result is normal.
[0133] In an embodiment, the determination module 704 is further configured to average the unresponsive proportions corresponding to the historical time periods to obtain a target unresponsive proportion, obtain a target response proportion corresponding to the to-be-assigned channel based on the target unresponsive proportion, perform normalization processing on the predicted request quantity corresponding to the target time period of the to-be-assigned channel to obtain a predicted request proportion corresponding to the target time period of the to-be-assigned channel, and determine the satisfaction degree of the to-be-assigned channel based on the target response proportion of the to-be-assigned channel and the predicted request proportion corresponding to the target time period.
[0134] In an embodiment, the solving module 706 is further configured to determine an assignment function based on the satisfaction degree of each to-be-assigned channel and an assignment response parameter, determine a first constraint condition based on the assignment response parameter of each to-be-assigned channel and the predicted request quantity corresponding to the target time period of each to-be-assigned channel, determine a second constraint condition based on the assignment response parameter of each to-be-assigned channel and the maximum response number corresponding to each candidate server identifier, and determine the assignment response number corresponding to each to-be-assigned channel based on the assignment function, the first constraint condition, and the second constraint condition.
[0135] In an embodiment, the solving module 706 is further configured to: the first constraint condition is that the allocation response parameter corresponding to the to-be-allocated channel is less than or equal to the predicted request quantity corresponding to the to-be-allocated channel; and the second constraint condition is that a statistical value of the allocation response parameter corresponding to each to-be-allocated channel is less than or equal to a statistical value of the maximum response number corresponding to each candidate server identifier.
[0136] In an embodiment, the solving module 706 is further configured to: determine the maximum value of the allocation function based on the first constraint condition and the second constraint condition; and when the allocation function is the maximum value, determine the parameter value of the allocation response parameter corresponding to the to-be-allocated channel as the allocation response number corresponding to the to-be-allocated channel.
[0137] In an embodiment, the allocation module 708 is further configured to: for the target server identifier, generate the allocation information corresponding to the target server identifier based on the target time period and the to-be-allocated channel corresponding to the target server identifier; and send the allocation information to the target server.
[0138] The above modules in the server resource allocation apparatus can be all or partially implemented by software, hardware, or a combination thereof. The above modules can be embedded in or independent of a processor in a computer device in a hardware form, or stored in a memory in the computer device in a software form, so as to be called and executed by a processor to perform the operations corresponding to the above modules.
[0139] In an embodiment, a computer device is provided, which can be a terminal, and an internal structure diagram of the computer device can be as shown in FIG. 8. Figure 8The computer device shown in the figure includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capability. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operating system and the computer program in the non-volatile storage medium to run. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals in a wired or wireless manner. The wireless manner can be realized through WIFI, mobile cellular network, NFC (near field communication) or other technologies. The computer program is executed by the processor to realize a server resource allocation method. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer overlaid on the display screen, or a key, trackball or touchpad arranged on the shell of the computer device, or an external keyboard, touchpad or mouse, etc.
[0140] Those skilled in the art can understand that, Figure 8 The structure shown in the figure is only a block diagram of part of the structure related to the scheme of the present application, and does not constitute a limitation on the computer device to which the scheme of the present application is applied. The specific computer device can include more or fewer components than those shown in the figure, or combine certain components, or have a different component arrangement.
[0141] In one embodiment, a computer device is provided, including a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the steps in the above method embodiments.
[0142] In one embodiment, a computer readable storage medium is provided, storing a computer program, and the computer program is executed by a processor to implement the steps in the above method embodiments.
[0143] In one embodiment, a computer program product is provided, including a computer program, and the computer program is executed by a processor to implement the steps in the above method embodiments.
[0144] It should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or authorized by all parties.
[0145] It can be understood by those skilled in the art that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing related hardware through a computer program. The computer program can be stored in a non-volatile computer readable storage medium, and when executed, can include the processes of the above-mentioned embodiments. Any reference to memory, database or other medium used in the embodiments provided by the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical storage, high-density embedded non-volatile memory, resistive memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration but not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The database involved in the embodiments provided by the present application can include at least one of a relational database and a non-relational database. The non-relational database can include a distributed database based on a block chain, etc., without being limited thereto. The processor involved in the embodiments provided by the present application can be a general-purpose processor, a central processing unit, a graphics processing unit, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., without being limited thereto.
[0146] The technical features of the above embodiments can be combined in any way. In order to make the description concise, not all possible combinations of the technical features in the above embodiments are described, but as long as the combinations of the technical features do not exist contradictory, they should be considered as the scope of the present disclosure.
[0147] The above-described embodiments are merely illustrative of several embodiments of the present application, and the description is relatively specific and detailed, but should not be understood as a limitation on the scope of the patent. It should be noted that for those skilled in the art, without departing from the concept of the present application, a number of modifications and improvements can be made, which are all within the scope of the present application. Therefore, the scope of protection of the present application should be subject to the appended claims.
Claims
1. A method of server resource allocation, characterized by, The method comprises: determining the predicted request quantity corresponding to the target time period of the to-be-allocated channel based on the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period; for each to-be-allocated channel, determining the satisfaction degree of the to-be-allocated channel based on the unresponsive proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period; obtaining the candidate server identifier corresponding to the target time period and the maximum response number corresponding to the candidate server identifier, and determining the allocation response number corresponding to each to-be-allocated channel based on the satisfaction degree of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier; for each to-be-allocated channel, determining the target server identifier corresponding to the to-be-allocated channel from the candidate server identifier based on the allocation response number corresponding to the to-be-allocated channel; the target server corresponding to the target server identifier is used to respond to the channel switching request corresponding to the to-be-allocated channel in the target time period.
2. The method of claim 1, wherein, The method comprises: checking the channel information of the to-be-allocated channel and the historical request quantity corresponding to each historical time period to obtain a check result; in the case that the check result is normal, inputting the channel information and the historical request quantity corresponding to each historical time period into a target prediction model to obtain the predicted request quantity corresponding to the target time period of the to-be-allocated channel.
3. The method of claim 1, wherein, The method comprises: averaging the unresponsive proportions corresponding to a plurality of historical time periods to obtain a target unresponsive proportion; based on the target unresponsive proportion, obtaining a target response proportion corresponding to the to-be-allocated channel; normalizing the predicted request quantity corresponding to the target time period of the to-be-allocated channel to obtain a predicted request proportion corresponding to the target time period of the to-be-allocated channel; based on the target response proportion of the to-be-allocated channel and the predicted request proportion corresponding to the target time period, determining the satisfaction degree of the to-be-allocated channel.
4. The method of claim 1, wherein, The method comprises: determining a distribution function based on the satisfaction degree of each to-be-allocated channel and the allocation response parameter; determining a first constraint condition based on the allocation response parameter of each to-be-allocated channel and the predicted request quantity corresponding to the target time period of each to-be-allocated channel; determining a second constraint condition based on the allocation response parameter of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier; determining the allocation response number corresponding to each to-be-allocated channel based on the distribution function, the first constraint condition and the second constraint condition.
5. The method of claim 4, wherein, The first constraint condition is that the allocation response parameter corresponding to the to-be-allocated channel is less than or equal to the predicted request quantity corresponding to the to-be-allocated channel; and the second constraint condition is that a statistical value of the allocation response parameter corresponding to each to-be-allocated channel is less than or equal to a statistical value of the maximum response number corresponding to each candidate server identifier.
6. The method of claim 4, wherein, The step of determining the allocation response number corresponding to each to-be-allocated channel based on the allocation function, the first constraint condition and the second constraint condition comprises: determining a maximum value of the allocation function based on the first constraint condition and the second constraint condition; when the allocation function is the maximum value, determining the parameter value of the allocation response parameter corresponding to the to-be-allocated channel as the allocation response number corresponding to the to-be-allocated channel.
7. The method of claim 1, wherein, After determining the target server identifier corresponding to the to-be-allocated channel from the candidate server identifiers based on the allocation response number corresponding to the to-be-allocated channel for each to-be-allocated channel, the method further comprises: generating allocation information corresponding to the target server identifier based on the target time period and the to-be-allocated channel corresponding to the target server identifier for the target server identifier; sending the allocation information to the target server.
8. A server resource allocation apparatus characterized by comprising: The apparatus comprises: a prediction module configured to determine a predicted request quantity corresponding to a target time period of a to-be-allocated channel based on channel information of the to-be-allocated channel and historical request quantities corresponding to each historical time period; a determination module configured to determine a satisfaction degree of each to-be-allocated channel based on an un-responded proportion corresponding to each historical time period and the predicted request quantity corresponding to the target time period; a solving module configured to obtain candidate server identifiers corresponding to the target time period and maximum response numbers corresponding to the candidate server identifiers, and determine allocation response numbers corresponding to each to-be-allocated channel based on the satisfaction degree of each to-be-allocated channel and the maximum response number corresponding to each candidate server identifier; an allocation module configured to determine a target server identifier corresponding to each to-be-allocated channel from the candidate server identifiers based on the allocation response number corresponding to the to-be-allocated channel for each to-be-allocated channel; the target server corresponding to the target server identifier is configured to respond to a channel switching request corresponding to the to-be-allocated channel in the target time period.
9. A communication device comprising a memory and a processor, the memory storing a computer program, characterized in that, The processor executes the computer program to implement the steps of the method in any one of claims 1 to 7.
10. A computer-readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the method in any one of claims 1 to 7.
Citation Information
Patent Citations
Load balancing method and device, computer readable storage medium and electronic equipment
CN112181664A
Server allocation control method
US20050193113A1