GB2558303A - Resource allocation - Google Patents

Resource allocation Download PDF

Info

Publication number
GB2558303A
GB2558303A GB1622358.8A GB201622358A GB2558303A GB 2558303 A GB2558303 A GB 2558303A GB 201622358 A GB201622358 A GB 201622358A GB 2558303 A GB2558303 A GB 2558303A
Authority
GB
United Kingdom
Prior art keywords
amount
network node
allocated
finite resource
client network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB1622358.8A
Other versions
GB2558303B (en
GB201622358D0 (en
Inventor
Malcolm Gilbert George
Peter Norris Ryan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Metaswitch Networks Ltd
Original Assignee
Metaswitch Networks Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Metaswitch Networks Ltd filed Critical Metaswitch Networks Ltd
Priority to GB1703220.2A priority Critical patent/GB2558322B/en
Priority to GB1622358.8A priority patent/GB2558303B/en
Publication of GB201622358D0 publication Critical patent/GB201622358D0/en
Priority to US15/637,287 priority patent/US10154414B2/en
Publication of GB2558303A publication Critical patent/GB2558303A/en
Application granted granted Critical
Publication of GB2558303B publication Critical patent/GB2558303B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W16/00Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
    • H04W16/02Resource partitioning among network components, e.g. reuse partitioning
    • H04W16/04Traffic adaptive resource partitioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/52Allocation or scheduling criteria for wireless resources based on load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/535Allocation or scheduling criteria for wireless resources based on resource usage policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Abstract

A first client network node 104 sends a request for a first amount of a given type of finite resource to a server 106. The server allocates a first amount on the basis of a previously amount allocated to that network node. A second client network node sends a request for a second amount of the resource and is allocated an amount on the basis of a previously amount allocated to that network node. Clients periodically refresh their allocation by sending new requests. The server adjusts each allocated amount on the basis of a proportion of the finite resource previously allocated to each node to fairly share the resource in proportion to need. The client nodes may be session border controllers (SBCs) and the resource may be a number of calls the SBC is allowed to accept. In an alternative embodiment, instead of an allocation server, the clients operate a token ring approach passing details of each allocation around the nodes.

Description

(54) Title of the Invention: Resource allocation
Abstract Title: Allocation of finite resources to network nodes (57) A first client network node 104 sends a request for a first amount of a given type of finite resource to a server 106. The server allocates a first amount on the basis of a previously amount allocated to that network node. A second client network node sends a request for a second amount of the resource and is allocated an amount on the basis of a previously amount allocated to that network node. Clients periodically refresh their allocation by sending new requests. The server adjusts each allocated amount on the basis of a proportion of the finite resource previously allocated to each node to fairly share the resource in proportion to need. The client nodes may be session border controllers (SBCs) and the resource may be a number of calls the SBC is allowed to accept. In an alternative embodiment, instead of an allocation server, the clients operate a token ring approach passing details of each allocation around the nodes.
Figure GB2558303A_D0001
104C
FIG. 1
104D /2
SI o
Figure GB2558303A_D0002
Figure GB2558303A_D0003
104A
Figure GB2558303A_D0004
FIG. 1
2/2
Server
106
First network nodel04A
Second network nodel04B
Figure GB2558303A_D0005
FIG. 2
Resource Allocation
Technical Field
The present invention relates to resource allocation. In particular, but not exclusively, the present invention relates to allocation of finite resources to network nodes in a network.
Background
Known session border controllers (SBCs), such as Metaswitch™’s Perimeta™, have various user configurable limits in place regulating admission of new calls to a network or system. For example, “There may only be 10,000 calls up at one time on SBC A” or “A maximum of 500 calls per second can be accepted to destination X”. The process of policing these limits is called call admission control (CAC). With just one session border controller, determining whether to accept or reject a call based on such limits is relatively straightforward.
With multiple SBCs, determining whether to accept or reject a call based on such limits is difficult as globally configured CAC limits are policed across a plurality of network nodes (for example across a cluster of network nodes). For example, “There may only be 10,000 calls up at one time summed across all SBCs in cluster A” or “A maximum of 500 calls per second can be accepted to destination X, regardless of which SBCs in cluster A they came through”.
In a fixed deployment, the above scenario could be tackled by dividing the limit by the number of instances (for example if there are N SBCs, then each SBC could be apportioned 1/Nth of the available limit). This however falls short in a cloud environment, where there is an ever changing number of SBCs acting as a single entity (i.e. N both rapidly varies with time and at any given time is unknown to each SBC).
Summary
According to a first aspect of the present invention, there is provided a method of allocating finite resources to client network nodes in a network, the method comprising, at a finite resources allocation server:
receiving, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocating, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network;
receiving, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocating, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network.
According to a second aspect of the present invention, there is provided apparatus for use in allocating finite resources to client network nodes in a network, the apparatus being configured to, at a finite resources allocation server:
receive, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocate, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network;
receive, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocate, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network.
According to a third aspect of the present invention, there is provided a computer program comprising a set of instructions, which, when executed by a computerised device, cause the computerised device to perform a method of allocating finite resources to client network nodes in a network, the method comprising, at a finite resources allocation server:
receiving, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocating, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network;
receiving, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocating, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network.
According to a fourth aspect of the present invention, there is provided a system for use in allocating finite resources to network nodes in a network, the system being configured to operate a token-ring system between a plurality of network nodes in the network, the system being configured to, at a first network node in the plurality:
receive a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality, wherein the received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network;
first allocate, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token;
generate an updated token by inserting the first allocated amount into the received token; and transmit the updated token to a second network node in the plurality.
According to a fifth aspect of the present invention, there is provided a method of allocating finite resources to network nodes in a network, the method operating a token-ring system between a plurality of network nodes in the network, the method comprising, at a first network node in the plurality:
receiving a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality, wherein the received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network;
first allocating, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token;
generating an updated token by inserting the first allocated amount into the received token; and transmitting the updated token to a second network node in the plurality.
According to a sixth aspect of the present invention, there is provided a computer program comprising a set of instructions, which, when executed by a computerised device, cause the computerised device to perform a method of allocating finite resources to network nodes in a network, the method operating a token-ring system between a plurality of network nodes in the network, the method comprising, at a first network node in the plurality:
receiving a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality, wherein the received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network;
first allocating, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token;
generating an updated token by inserting the first allocated amount into the received token; and transmitting the updated token to a second network node in the plurality.
Other aspects may comprise non-transitory computer-readable storage mediums comprising computer-executable instructions which, when executed by a processor, cause a computing device to perform any of the method aspects.
Further features and advantages of the invention will become apparent from the following description of preferred embodiments of the invention, given by way of example only, which is made with reference to the accompanying drawings.
Brief Description of the Drawings
Figure 1 shows a system diagram according to embodiments; and
Figure 2 shows a message flow diagram according to embodiments.
Detailed Description
Figure 1 shows a system diagram of a system 100 according to embodiments. System 100 comprises a finite resources allocation server 106 and a plurality of network nodes 104 A, 104B, 104C, 104D.
Finite resources allocation server 106 is depicted in Figure 1 as being located in a network 102, but in other embodiments may be located on the border of network 102 or outside of network 102. One or more of finite resources allocation server 106 and network nodes 104A, 104B, 104C, 104D may be located in a different network or part of the network (not shown).
In embodiments, finite resources allocation server 106 comprises one or more processors 106A for performing various data processing operations according to embodiments. Finite resources allocation server 106 may comprise or more memories 106B which may be integral to or external to finite resources allocation server 106. Memory 106B may comprise memory within finite resources allocation server 106 which is available for storing state data for communication sessions processed by finite resources allocation server 106; some or all of the memory may be volatile so that some or all of the data stored therein is lost upon failure/re-boot of finite resources allocation server 106.
Network 102 may comprise one or more wireless, wired, packet-switched and/or a circuit-switched networks, for example an Internet Protocol (IP) network such as the internet, an IP Multimedia Subsystem (IMS) network, a 3GPP network, etc. Network nodes 104A, 104B, 104C, 104D are depicted in Figure 1 as being located at a border (or ‘edge’) of network 102.
In embodiments, one or more of network nodes 104A, 104B, 104C, 104D act as clients to finite resources allocation server 106. In embodiments, one or more of network nodes 104A, 104B, 104C, 104D act as clients to finite resources allocation server 106 in respect of the allocation of finite resources of a given type within network 102.
Network nodes 104A, 104B, 104C, 104D may comprise one or more of SBCs, media gateways, softswitches, proxy call session control functions (P-CSCFs from an IMS network), and servers. Finite resources allocation server 106 is able to communicate with other network elements in network 102 such as network nodes 104A, 104B, 104C, 104D via one or more wired or wireless network connections (not shown). Finite resources allocation server 106 may for example be logically located on the border between two networks (not shown).
Network 102 may comprise a number of user devices (or ‘endpoints’) (not shown) such as mobile (or ‘cellular’) telephones, SIP telephones, tablets, personal computers, etc. to which communication services may be provided by network nodes 104A, 104B, 104C, 104D.
Embodiments relate to a new network element or network elements (referred to herein as finite resources allocation server 106) to mediate the capacity of any limit across a cluster of other network elements (referred to herein as network nodes 104A, 104B, 104C, 104D) which act as clients to finite resources allocation server 106, along with a protocol used to communicate between finite resources allocation server 106 and client network nodes 104A, 104B, 104C, 104D.
In embodiments, finite resources allocation server 106 is dumb and soft-state only. In embodiments, finite resources allocation server 106 has no configuration and does not know anything about the finite resource(s) which are to be allocated to network nodes 104 A, 104B, 104C, 104D.
Finite resources allocation server 106 is configured to allocate (or ‘distribute’ or ‘share out’) amounts of finite resources between those client network nodes that contact it. Finite resources allocation server 106 learns in real-time, from client network nodes 104A, 104B, 104C, 104D, about the ‘type’ (or ‘types’) of finite resources to share out and the amount there is to share in each type. In embodiments, the ‘types’ are arbitrary strings, used as correlators and without any particular meaning to finite resources allocation server 106.
According to embodiments, each client network device requests a ‘grant’ on each limit it knows about from finite resources allocation server 106 and is returned how much that client network device is allowed to use. For example, in the following protocol exchange, a client network device 104A requests an allocation of 100 units (from a total limit of 1000 units) of an example limit type of ‘totalcalls’, and the response from finite resources allocation server 106 is that client network device 104A can only have 90 units. The notation here is that ‘NEED’ denotes a finite resource allocation request by a client network node to the finite resource allocation server and ‘GRANT’ denotes an allocation of the finite resource to the requesting client network node by the finite resource allocation server.
Client network node 104A -> Finite resource allocation server 106: “NEED type = total_calls, need = 100, capacity = 1000”
Finite resource allocation server 106 -> Client network node 104A: “GRANT type = total_calls, grant = 90”
In embodiments, upon receipt of the first NEED request of a given type, finite resources allocation server 106 creates a pool for that type with the given capacity, and returns a GRANT response to the client network node that made the request with a grant from that pool. Subsequent NEED requests with the same type use the existing pool with the response sent to just the client that sent the NEED request. In embodiments, the protocol employs a single request with single response, rather than multiple unsolicited responses sent to multiple/all clients.
On receipt of a GRANT response, each client network node uses the grant it received as its own individual limit. Clients network nodes refresh their allocation (for example periodically) by each sending a new NEED request to finite resources allocation server 106, and update their own individual limits according to the respective response grant from finite resources allocation server 106.
In some embodiments, in the event that finite resources allocation server 106 fails, a new server is started (or ‘instantiated’) and immediately continues processing requests from the client network nodes (the clients only need to know the new server location/address which can be provided as global configuration shared across the client network nodes). At the start of day, the new finite resources allocation server starts off believing that there is nothing to be shared out, and handles incoming requests no differently to the steady state.
Embodiments provide measures, including methods, apparatus, computer programs and computer program products, for use in allocating finite resources to client network nodes (for example one or more of network nodes 104A, 104B, 104C, 104D) in a network (such as network 102). In embodiments, allocation of finite resources is carried out by finite resources allocation server 106.
Embodiments of the present invention are now described in relation to Figure 2. Figure 2 shows a message flow diagram depicting message flow between finite resources allocation server 106, first client network node 104A and second client network node 104B.
In item 2a, first client network node 104A transmits a first finite resource allocation request requesting a first amount of a given type of finite resource for use by first client network node 104A in network 102 to finite resources allocation server 106.
Upon receipt of the first finite resource allocation request of item 2a requesting a first amount of a given type of finite resource for use by first client network node 104A in network 102, finite resources allocation server 106 first allocates, to first client network node 104A, a first allocated amount of the given type of finite resource that first client network node 104A is allowed to use in network 102 as per item 2b. The first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that first client network node 104A was previously allowed to use in network 102. An indication of the first allocated amount of the given type of finite resource that first client network node 104A is allowed to use in network 102 is provided to first client network node 104A in item 2c (for example in the form of a first finite resource allocation response message).
In item 2d, second client network node 104B transmits a second finite resource allocation request requesting a second amount of the given type of finite resource for use by second client network node 104B in network 102 to finite resources allocation server 106.
Upon receipt of the second finite resource allocation request of item 2d requesting a second amount of the given type of finite resource for use by second client network node 104B in network 102, finite resources allocation server 106 second allocates, to second client network node 104B, a second allocated amount of the given type of finite resource that second client network node 104B is allowed to use in network 102 as per item 2e.
An indication of the second allocated amount of the given type of finite resource that second client network node 104B is allowed to use in network 102 is provided to second client network node 104B in item 2f (for example in the form of a second finite resource allocation response message).
In embodiments, the first allocating allocates the first allocated amount at least on the basis of a previously requested first amount of the given type of finite resource that the first client network node previously requested to use in the network. In some such embodiments, the first allocating allocates the first allocated amount at least on the basis of the previously allocated first amount as a first previous proportion of the previously requested first amount.
In embodiments, the first allocating allocates the first allocated amount at least on the basis of the requested first amount.
In embodiments, the second allocating allocates the second allocated amount at least on the basis of a previously allocated second amount of the given type of finite resource that the second client network node was previously allowed to use in the network. In some such embodiments, the second allocating allocates the second allocated amount at least on the basis of a previously requested second amount of the given type of finite resource that the second client network node previously requested to use in the network.
In embodiments, the second allocating allocates the second allocated amount at least on the basis of the previously allocated second amount as a second previous proportion of the previously requested second amount. In embodiments, the second allocating allocates the second allocated amount at least on the basis of the requested second amount.
In embodiments, the first allocating allocates the first allocated amount at least on the basis of the first previous proportion and the second previous proportion. In embodiments, the first allocating allocates the first allocated amount at least on the basis of the first previous proportion compared to the second previous proportion. The first allocating may for example allocate the first allocated amount so as to first adjust the first allocated amount as a proportion of the first requested amount towards the second previous proportion. The second allocating may for example allocate the second allocated amount at least on the basis of the first previous proportion and the second previous proportion.
In embodiments, the second allocating allocates the second allocated amount at least on the basis of the first previous proportion compared to the second previous proportion. In embodiments, the second allocating allocates the second allocated amount so as to second adjust the second allocated amount as a proportion of the second requested amount towards the first allocated amount as a proportion of the first requested amount.
In embodiments, the first allocating to the first client network node comprises sending an amount allocation message to the first client network node and no other client network nodes in the network. In embodiments, the second allocating to the second client network node comprises sending an amount allocation message to the second client network node and no other client network nodes in the network. Allocation according to embodiments therefore involves a low level of protocol traffic in the network.
In embodiments, one or more of the first finite resource allocation request of item 2a and the second finite resource allocation request of item 2d comprise an indication of the given type of finite resource to which the respective finite resource allocation request relates. In embodiments, one or more of the first finite resource allocation request of item 2a and the second finite resource allocation request of item
2d comprise an indication of a maximum total capacity of the given type of finite resource which can be allocated in the network.
Embodiments relate to measures for fairly determining the number of units to allocate to client network nodes from a pool of a given finite resource. Such embodiments can be applied in scenarios where the sum of resources requested in finite resource allocation requests exceeds the available maximum capacity, and a first-comefirst-served approach to allocating the finite resources would mean that those client network nodes that makes their requests earlier get all or the majority of the available resource, and those client network nodes requesting later get none or very little.
In some usage scenarios, such an ‘unfair’ allocation of resources may be unacceptable. For example, consider a cluster of SBCs owned by service provider XX protecting the entry point to their IMS core by policing a total call limit. XX’s cluster consists of two SBCs: SBC A taking calls from peer service provider AA, and SBC B taking calls from peer service provider BB. From a steady state where there is plenty of capacity available for both AA and BB, if both suddenly experience a high call load (for example in a mass voting event for a television program when voting suddenly opens), a first-come-first-served approach would see all the available limit allocated to the first SBC to send its finite resource allocation request, leaving no grant available for the second SBC when it sends its finite resource allocation request, effectively blocking all calls from one service provider (where one may for example be selected essentially at random based on the order of messages received).
In the following example protocol flow, ‘NEED’ denotes a finite resource allocation request and ‘GRANT’ denotes an allocation of the finite resource as in the earlier example above.
The following example begins in a steady state where need is below capacity and fully granted to all client network nodes.
A client network node 104 A requests an allocation of 1 unit of a finite resource of type totalcalls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104A -> Finite resource allocation server 106: “NEED type = total calls, need = 1, capacity = 100”
Finite resource allocation server 106 allocates 1 unit of the finite resource of type totalcalls to client network node 104A:
Finite resource allocation server 106 -> Client network node 104A: “GRANT type = total_calls, grant 1”
A client network node 104B then requests an allocation of 1 unit of the finite resource of type total_calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104B -> Finite resource allocation server 106: “NEED type = total calls, need = 1, capacity = 100”
Finite resource allocation server 106 allocates 1 unit of the finite resource of type total calls to client network node 104B:
Finite resource allocation server 106 -> Client network node 104B: “GRANT type = total_calls, grant 1”
And so on.
A flood event (such as a mass voting event) begins and client network node 104A happens to refresh first and sends a finite resource allocation request to finite resource allocation server 106.
At this time, 99 units are available to client network node 104A, with 1 already allocated to client network node 104B.
Client network node 104A requests an allocation of 1000 units of the finite resource of type total_calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104A -> Finite resource allocation server 106: “NEED type = total_calls, need = 1000, capacity = 100”
Finite resource allocation server 106 allocates 99 units of the finite resource of type total calls to client network node 104A:
Finite resource allocation server 106 -> Client network node 104A: “GRANT type = total calls, grant 99”
Shortly after, client network node 104B now refreshes and requests an allocation of 1000 units of the finite resource of type total calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104B -> Finite resource allocation server 106: “NEED type = total_calls, need = 1000, capacity = 100”
However, 99 of the total of 100 units have been allocated to client network node 104A, so only 1 unit is available for allocation to client network node 104B:
Finite resource allocation server 106 -> Client network node 104B: “GRANT type = total_calls, grant 1”
The above example embodiment can be seen as an unfair situation because client network node 104A is allocated a much higher proportion of the finite resource than is allocated to client network node 104B.
Embodiments employ novel damped averaging techniques which ensure that resources are allocated in proportion to need. A characteristic of such embodiments is that each request / response moves towards a ‘fairer’ distribution by load-balancing based on the most recently received requests from the client network nodes.
The following example begins in a steady state where need is below capacity and fully granted to all client network nodes.
A client network node 104 A requests an allocation of 1 unit of a finite resource of type totalcalls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104A -> Finite resource allocation server 106: “NEED type = total calls, need = 1, capacity = 100”
Finite resource allocation server 106 allocates 1 unit of the finite resource of type total calls to client network node 104A:
Finite resource allocation server 106 -> Client network node 104A: “GRANT type = total_calls, grant 1”
A client network node 104B then requests an allocation of 1 unit of the finite resource of type total_calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104B -> Finite resource allocation server 106: “NEED type = total calls, need = 1, capacity = 100”
Finite resource allocation server 106 allocates 1 unit of the finite resource of type total calls to client network node 104B:
Finite resource allocation server 106 -> Client network node 104B: “GRANT type = total_calls, grant 1”
And so on.
A flood event (such as a mass voting event) begins and client network node 104A happens to refresh first and sends a finite resource allocation request to finite resource allocation server 106.
At this time, 99 units are available to client network node 104A, with 1 already allocated to client network node 104B.
Client network node 104A requests an allocation of 1000 units of the finite resource of type total_calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104A -> Finite resource allocation server 106: “NEED type = total_calls, need = 1000, capacity = 100”
Finite resource allocation server 106 allocates 99 units of the finite resource of type totalcalls to client network node 104A:
Finite resource allocation server 106 -> Client network node 104A: “GRANT type = total calls, grant 99”
According to these embodiments, finite resource allocation server 106 now stores data indicating that client network node 104A has been granted 10% (approximately, as 99/1000 ~ 10%) of what it requested.
Client network node 104B now refreshes and requests an allocation of 1000 unit of the finite resource of type total calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104B -> Finite resource allocation server 106: “NEED type = total_calls, need = 1000, capacity = 100”
However, only 1 unit is available, as 99 have already been allocated to A, so finite resource allocation server 106 is only able to allocate 1 unit of the finite resource of type total calls to client network node 104B:
Finite resource allocation server 106 -> Client network node 104B: “GRANT type = total_calls, grant 1”
According to these embodiments, finite resource allocation server 106 now stores data indicating that client network node 104B has been granted 0.1% (as 1/1000 = 0.1%) of what it requested.
A number of seconds pass until client network node 104A and client network node 104B refresh.
Finite resource allocation server 106 is aware that it allocated an unfair 10% / 0.1% split of the finite resource of type totalcalls to client network node 104A and client network node 104B respectively.
The flood event continues and finite resource allocation server 106 proceeds to adjust the allocations to network node 104A and client network node 104B to make the allocation fairer than currently according to embodiments.
Client network node 104A refreshes and requests an allocation of 1000 units of the finite resource of type total calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104A -> finite resource allocation server 106: “NEED type = total_calls, need = 1000, capacity = 100”
Finite resource allocation server 106 allocates a lower proportion to client network node 104A than what it was allocated previously:
Finite resource allocation server 106 -> Client network node 104A: “GRANT type = total_calls, grant 90”
According to these embodiments, finite resource allocation server 106 now stores data indicating that client network node 104A has been granted 9% (as 90/1000 = 9%) of what it requested.
Client network node 104B refreshes and requests an allocation of 1000 units of the finite resource of type total calls where the maximum capacity in the network for this type of finite resource is 100:
Client network node 104B -> Finite resource allocation server 106: “NEED type = total_calls, need = 1000, capacity = 100” units are available, as 90 have already been allocated to client network node 104A, so finite resource allocation server 106 allocates these 10 units to client network node 104B:
Finite resource allocation server 106 -> Client network node 104B: “GRANT type = total_calls, grant 10”
According to these embodiments, finite resource allocation server 106 now stores data indicating that client network node 104B has been granted 1% (as 10/1000 = 10%) of what it requested.
As can be seen, the proportion of finite resource allocated to client network node 104A to what it requested has changed from 10% to 9% and the proportion of finite resource allocated to client network node 104B to what it requested has changed from 0.1% to 1%.
Further iterations of the above can be performed to successively adjust these proportions until they approximately match each other.
In embodiments, in response to receipt of subsequent finite resource allocation requests for the given type of finite resource from first and second client network nodes 104 A, 104B, finite resource allocation server 106 performs successive iterations of the first allocating and the second allocating until an amount of the given type of finite resource allocated to first client network node 104 A as a proportion of an amount of the given type of finite resource requested by first client network node 104A equals an amount of the given type of finite resource allocated to second client network node 104B as a proportion of an amount of the given type of finite resource requested by second client network node 104B. In embodiments, subsequent finite resource allocation requests are received in response to finite resource allocation refresh operations being carried out at the respective client network nodes. The finite resource allocation refresh operations may be carried out periodically.
In the above example, approximately five iterations (each iteration including an allocation to each of client network node 104 A and client network 104B) are performed until 50 units of the finite resource are allocated to each of client network node 104A and client network 104B, i.e. a proportion of 5% allocated to what is requested for each. This 5% allocation can be referred to as a proportionate balance and in this example is achieved approximately 5xN seconds after the flood begins.
Note that in the above example, the adjustment between the proportions allocated to what is requested was approximately a 1% change in proportion for each client network device for each refresh iteration, i.e. 10% to 9% to 8% to 7% to 6% to
5% is five iterations for client network node 104A and 0.1% to 1% to 2% to 3% to 4% to 5% is five iterations for client network node 104B.
This percentage adjustment each N second window can be considered as a configurable ‘damping factor’ which can be tuned by a service provider or service operator responsible for finite resource allocation server 106. The configurable damping factor can be tuned appropriately to balance achieving fairness quickly, and sticking closely to the overall network capacity limit.
In embodiments, one or more of the first allocating and the second allocating is carried out at least in part on the basis of a configurable damping factor. In embodiments, a rate of one or more of the first adjusting and the second adjusting is carried out at least in part on the basis of the configurable damping factor. In embodiments, a relatively high damping factor leads to the rate of one or more of the first adjusting and the second adjusting being relatively faster whereas a relatively low damping factor leads to the rate of one or more of the first adjusting and the second adjusting being relatively slower. Selection of an appropriate damping factor will depend upon a range of factors including the type of finite resource, number of client network nodes, refresh rates of the client network nodes, etc. A relatively high damping factor may for example comprise a value between 5% and 10% per iteration, but could also be over 10%. A relatively low damping factor may for example comprise a value between 5% and 0.1% per iteration, but could also be under 0.1%.
According to some embodiments, when the grant allocation decreases, client network nodes are not required to immediately release any currently used capacity above the limit. For example, if a client network node is given a grant to accept 10 calls, it accepts 10 calls, then after refreshing is subsequently given a grant to accept 8 calls, it doesn’t have to release the excess 2 calls, and these can terminate normally sometime later; no new calls should however be accepted until the total falls to below 8). Some embodiments therefore operate soft-limits on resource allocation limits; for example, summed across a cluster of client network nodes, a total limit granted may temporarily exceed the configured limit while client network nodes wait for the resource used to fall below their allocation.
In embodiments, one or more of the first requested amount and the second requested amount comprise an amount of the given type of finite resource which is greater than a maximum total capacity of the given type of finite resource which can be allocated in the network.
In embodiments, state data retained by finite resource allocation server 106 only covers the last N seconds (not any further back), and is learned ‘on-the-fly’. Embodiments therefore avoid having any state data to replicate on failover.
In embodiments, finite resources allocation server 106 is responsible for allocating the given type of finite resource to a plurality of client network nodes in the network.
In embodiments, finite resources allocation server 106 is responsible for allocating a plurality of types of finite resource to client network nodes in the network. So for example, finite resources allocation server 106 may allocate a first finite resource of type totalscalls to client network nodes in the network as well as a second finite resource of type data_storage to client network nodes in the network. Some or all of the client network nodes to which the first finite resource is allocated by finite resources allocation server 106 may be in common with client network nodes to which the second finite resource is allocated by finite resources allocation server 106. The client network nodes to which the first finite resource is allocated by finite resources allocation server 106 may all be different client network nodes to which the second finite resource is allocated by finite resources allocation server 106.
In embodiments, finite resources allocation server 106 is responsible for allocating one or more finite resources in relation to CAC.
The given type of finite resource may for example be associated with one or more of a total number of calls in the network, a call rate, data storage, and processing resources.
In some embodiments, the first and second client network nodes 104A, 104B are comprised in a cluster of network nodes responsible for providing one or more communication functions in the network. In some embodiments, the first and second client network nodes 104A, 104B are comprised in a cluster of network nodes responsible for providing one or more telephony functions in the network. The cluster of nodes may be hosted in/across one or more data centres.
In other embodiments, the first and second client network nodes 104A, 104B may not comprise a cluster. In some embodiments first client network node 104A is operated by a different network operator or service provider to that responsible for operating client network node 104B.
The first and second client network nodes may for example comprise one or more of SBCs, media gateways, softswitches, proxy call session control functions (PCSCFs), and servers. The first and second client network nodes need not necessarily perform the same or similar functions in the network. The first and second client network nodes may for example comprise a mixture of different types of network node, each performing one or more different roles in the network.
In embodiments, finite resources allocation server 106 is co-located with one or more of the first client network node 104 A, the second client network node 104B and another node in the network. Such embodiments mean that a new physical network element is not required in order to implement embodiments. According to such embodiments, in a failure scenario (for example, a network partition), there will always be at least one finite resources allocation server available for each client network node (i.e. the local one).
In embodiments, one or more functions of finite resources allocation server 106 are co-located with one or more of the client network nodes.
In embodiments, the first allocating and the second allocating occur after startup of finite resources allocation server 106. In embodiments, the first allocating and the second allocating occur after re-starting of finite resources allocation server 106 following failure.
In embodiments, the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is assumed to be zero. In embodiments the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is assumed to be a default amount. In embodiments, the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is indicated in the received first finite resource allocation request. Such embodiments reduce the need for state data storage.
In deployments with very high numbers of clients (which is possible in a cloudbased micro-services scenario) and performance of the server may be an issue, the server function can be split over multiple servers with each server servicing a subset of the types according to embodiments. For example, all requests for a given type can go to the same server, but different types go to different servers. In embodiments, the mapping of type to server can be carried out via client-side global configuration (for example, specifically named servers for specific limits), allowing the workload to be spread around the cluster.
Embodiments described herein are able to handle any CAC limits. Embodiments can be employed in relation to any distributed allocation problem where resources are required to be apportioned across a cluster.
Embodiments are stateless. Finite resources allocation server 106 requires no configuration and can fail with no additional processing required by either the client network nodes or server to handle this. Embodiments do not require each network element to store state that is to be kept in sync with the state stored on other network elements.
Embodiments provide fair allocation of finite resources across multiple client network nodes. Embodiments ameliorate situations where one or more network elements take an unfair share of limited resources. Embodiments avoid situations where a network element requests reservation of all the available capacity, subsequent requests by other network elements fail (as there would be no capacity left for the central server to allocate), one network element is left handling all the load, and all the others are idle. Embodiments act to provide load-balancing across a number of network elements.
Instead of a central finite resources allocation server, an alternative implementation could use a token-ring approach to pass details of the allocations around the client network nodes with no need for a new server network element.
Embodiments provide measures, including methods, apparatus, computer programs and computer program products, for use in allocating finite resources to network nodes in a network.
In embodiments a system is configured to operate a token-ring system between a plurality of network nodes in the network.
The system is configured to, at a first network node in the plurality, receive a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality. The received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network.
The system is further configured to, at the first network node in the plurality, first allocate, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network. The first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token.
The system is further configured to, at the first network node in the plurality, generate an updated token by inserting the first allocated amount into the received token, and transmit the updated token to a second network node in the plurality.
In embodiments, the system is configured to, at the second network node in the plurality, receive the updated token transmitted from the first network node, and second allocate, to the second network node, a second allocated amount of the given type of finite resource that the second network node is allowed to use in the network. The second allocating allocates the second allocated amount at least on the basis of the first allocated amount indicated in the received updated token.
In embodiments, the system is configured to, at the second network node in the plurality, generate a further updated token by inserting the second allocated amount into the received updated token, and transmit the further updated token to a further network node in the plurality.
In embodiments, the received updated token comprises an indication of a second previously allocated amount of the given type of finite resource that the second network node was previously allowed to use in the network. In some embodiments, the second allocating allocates the second allocated amount at least on the basis of the second previously allocated amount indicated in the received updated token.
In some token-ring embodiments, each node waits for the token to complete a full loop around other nodes before adjusting its own allocations. In some token-ring embodiments, each node does not attempt to adjust its allocation immediately in response to changing needs, but instead waits until the token arrives before attempting to change.
Token-ring embodiments may employ one or more features from any of the finite resource allocation server embodiments described herein.
In embodiments, finite resources allocation server 106 comprises a processor or processing system, as depicted by element 106A in Figure 1. In embodiments, the processing system comprises one or more processors and/or memory 106B. Each device as described in relation to any of the embodiments described above may similarly comprise a processor and/or processing system. One or more of the aspects of the embodiments described herein with reference to the drawings comprise processes performed by finite resources allocation server 106. In embodiments, finite resources allocation server 106 comprises one or more processing systems or processors configured to carry out these processes. In this regard, embodiments may be implemented at least in part by computer software stored in (non-transitory) memory and executable by the processor, or by hardware, or by a combination of tangibly stored software and hardware (and tangibly stored firmware). Embodiments also extend to computer programs, particularly computer programs on or in a carrier, adapted for putting the above described embodiments into practice. The program may be in the form of non-transitory source code, object code, or in any other non-transitory form suitable for use in the implementation of processes according to embodiments. The carrier may be any entity or device capable of carrying the program, such as a RAM, a ROM, or an optical memory device; etc.
The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged.
Several embodiments have been described in relation to allocation of resources to two client network nodes. Embodiments can equally apply to different numbers of client network nodes.
Several embodiments have been described in relation to allocation of resources relating to a total number of calls. Embodiments can equally apply to call rate, data storage, processing resources and any other type of resource.
It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.

Claims (34)

Claims
1. A method of allocating finite resources to client network nodes in a network, the method comprising, at a finite resources allocation server:
receiving, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocating, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network;
receiving, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocating, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network.
2. A method according to claim 1, wherein the first allocating allocates the first allocated amount at least on the basis of a previously requested first amount of the given type of finite resource that the first client network node previously requested to use in the network.
3. A method according to claim 2, wherein the first allocating allocates the first allocated amount at least on the basis of the previously allocated first amount as a first previous proportion of the previously requested first amount.
4. A method according to any preceding claim, wherein the first allocating allocates the first allocated amount at least on the basis of the requested first amount.
5. A method according to any preceding claim, wherein the second allocating allocates the second allocated amount at least on the basis of a previously allocated second amount of the given type of finite resource that the second client network node was previously allowed to use in the network.
6. A method according to any preceding claim, wherein the second allocating allocates the second allocated amount at least on the basis of a previously requested second amount of the given type of finite resource that the second client network node previously requested to use in the network.
7. A method according to claim 6, wherein the second allocating allocates the second allocated amount at least on the basis of the previously allocated second amount as a second previous proportion of the previously requested second amount.
8. A method according to any preceding claim, wherein the second allocating allocates the second allocated amount at least on the basis of the requested second amount.
9. A method according to claims 3 and 7, wherein the first allocating allocates the first allocated amount at least on the basis of the first previous proportion and the second previous proportion.
10. A method according to claim 9, wherein the first allocating allocates the first allocated amount at least on the basis of the first previous proportion compared to the second previous proportion.
11. A method according to claim 9 or 10, wherein the first allocating allocates the first allocated amount so as to first adjust the first allocated amount as a proportion of the first requested amount towards the second previous proportion.
12. A method according to claims 3 and 7 and zero or more of claims 9 to 11, wherein the second allocating allocates the second allocated amount at least on the basis of the first previous proportion and the second previous proportion.
13. A method according to claim 12, wherein the second allocating allocates the second allocated amount at least on the basis of the first previous proportion compared to the second previous proportion.
14. A method according to claim 12 or 13, wherein the second allocating allocates the second allocated amount so as to second adjust the second allocated amount as a proportion of the second requested amount towards the first allocated amount as a proportion of the first requested amount.
15. A method according to any preceding claim, comprising, in response to receipt of subsequent finite resource allocation requests for the given type of finite resource from the first and second client network nodes, performing successive iterations of the first allocating and the second allocating until an amount of the given type of finite resource allocated to the first client network node as a proportion of an amount of the given type of finite resource requested by the first client network node equals an amount of the given type of finite resource allocated to the second client network node as a proportion of an amount of the given type of finite resource requested by the second client network node.
16. A method according to claim 15, wherein the subsequent finite resource allocation requests are received in response to finite resource allocation refresh operations being carried out at the respective client network nodes.
17. A method according to claim 16, wherein the finite resource allocation refresh operations are carried out periodically.
18. A method according to according to any preceding claim, wherein one or more of the first allocating and the second allocating is carried out at least in part on the basis of a configurable damping factor.
19. A method according to claim 18 and one or more of claims 11 and 14, wherein a rate of one or more of the first adjusting and the second adjusting is carried out at least in part on the basis of the configurable damping factor.
20. A method according to claim 19, wherein a relatively high damping factor leads to the rate of one or more of the first adjusting and the second adjusting being relatively faster whereas a relatively low damping factor leads to the rate of one or more of the first adjusting and the second adjusting being relatively slower.
21. A method according to any preceding claim, wherein the first allocating to the first client network node comprises sending an amount allocation message to the first client network node and no other client network nodes in the network.
22. A method according to any preceding claim, wherein the second allocating to the second client network node comprises sending an amount allocation message to the second client network node and no other client network nodes in the network.
23. A method according to any preceding claim, wherein one or more of the first finite resource allocation request and the second finite resource allocation request comprise an indication of the given type of finite resource to which the respective finite resource allocation request relates.
24. A method according to any preceding claim, wherein one or more of the first finite resource allocation request and the second finite resource allocation request comprise an indication of a maximum total capacity of the given type of finite resource which can be allocated in the network.
25. A method according to any preceding claim, wherein one or more of the first requested amount and the second requested amount comprise an amount of the given type of finite resource which is greater than a maximum total capacity of the given type of finite resource which can be allocated in the network.
26. A method according to any preceding claim, wherein the server is responsible for allocating the given type of finite resource to a plurality of client network nodes in the network.
27. A method according to any preceding claim, wherein the server is responsible for allocating a plurality of types of finite resource to client network nodes in the network.
28. A method according to any preceding claim, wherein the given type of finite resource is associated with one or more of:
a total number of calls in the network, a call rate, data storage, and processing resources.
29. A method according to any preceding claim, wherein the first and second client network nodes are comprised in a cluster of client network nodes responsible for providing one or more communication functions in the network.
30. A method according to any preceding claim, wherein the first and second client network nodes are comprised in a cluster of network nodes responsible for providing one or more telephony functions in the network.
31. A method according to any preceding claim, wherein the first and second client network nodes comprise one or more of:
session border controllers, media gateways, softswitches, proxy call session control functions (P-CSCFs), and servers.
32. A method according to any preceding claim, wherein the server is colocated with one or more of the first client network node, the second client network node and another node in the network.
33. Apparatus for use in allocating finite resources to client network nodes in a network, the apparatus being configured to, at a finite resources allocation server:
20 receive, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocate, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the
25 network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously requested first amount of the given type of finite resource that the first client network
30 node previously requested to use in the network, and wherein the first allocating allocates the first allocated amount at least on the basis of the previously allocated first amount as a first previous proportion of the previously requested first amount;
21 02 17 receive, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocate, to the second client network node, a second allocated amount 5 of the given type of finite resource that the second client network node is allowed to use in the network, wherein the second allocating allocates the second allocated amount at least on the basis of a previously requested second amount of the given type of finite resource that the second client network node previously requested to use in the network, wherein the second allocating allocates the second allocated amount at
10 least on the basis of the previously allocated second amount as a second previous proportion of the previously requested second amount, and wherein the first allocating allocates the first allocated amount at least on the basis of the first previous proportion and the second previous proportion.
15
34. A computer program comprising a set of instructions, which, when executed by a computerised device, cause the computerised device to perform a method of allocating finite resources to client network nodes in a network, the method comprising, at a finite resources allocation server:
receiving, from a first client network node, a first finite resource allocation
20 request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocating, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the
25 basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously requested first amount of the given type of finite resource that the first client network node previously requested to use in the network, and wherein the first allocating
30 allocates the first allocated amount at least on the basis of the previously allocated first amount as a first previous proportion of the previously requested first amount;
21 02 17 receiving, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocating, to the second client network node, a second allocated 5 amount of the given type of finite resource that the second client network node is allowed to use in the network, wherein the second allocating allocates the second allocated amount at least on the basis of a previously requested second amount of the given type of finite resource that the second client network node previously requested to use in the network, wherein the second allocating allocates the second allocated
10 amount at least on the basis of the previously allocated second amount as a second previous proportion of the previously requested second amount, and wherein the first allocating allocates the first allocated amount at least on the basis of the first previous proportion and the second previous proportion.
Intellectual
Property
Office
Application No: GB1622358.8 Examiner: Gareth Griffiths
33. A method according to any preceding claim, wherein the first allocating and the second allocating occur after start-up of the server.
34. A method according to any preceding claim, wherein the first allocating and the second allocating occur after re-starting of the server following failure.
35. A method according to claim 33 or 34, wherein the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is assumed to be zero.
36. A method according to claim 33 or 34, wherein the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is assumed to be a default amount.
37. A method according to any preceding claim, wherein the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is indicated in the received first finite resource allocation request.
38. Apparatus for use in allocating finite resources to client network nodes in a network, the apparatus being configured to, at a finite resources allocation server:
receive, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocate, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network;
receive, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocate, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network.
39. A computer program comprising a set of instructions, which, when executed by a computerised device, cause the computerised device to perform a method of allocating finite resources to client network nodes in a network, the method comprising, at a finite resources allocation server:
receiving, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocating, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network;
receiving, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for use by the second client network node in the network; and second allocating, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network.
40. A system for use in allocating finite resources to network nodes in a network, the system being configured to operate a token-ring system between a plurality of network nodes in the network, the system being configured to, at a first network node in the plurality:
receive a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality, wherein the received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network;
first allocate, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token;
generate an updated token by inserting the first allocated amount into the received token; and transmit the updated token to a second network node in the plurality.
41. A system according to claim 40, wherein the system is configured to, at the second network node in the plurality:
receive the updated token transmitted from the first network node;
second allocate, to the second network node, a second allocated amount of the given type of finite resource that the second network node is allowed to use in the network, wherein the second allocating allocates the second allocated amount at least on the basis of the first allocated amount indicated in the received updated token;
generate a further updated token by inserting the second allocated amount into the received updated token; and transmit the further updated token to a further network node in the plurality.
42. A system according to claim 40 or 41, wherein the received updated token comprises an indication of a second previously allocated amount of the given type of finite resource that the second network node was previously allowed to use in the network, and wherein the second allocating allocates the second allocated amount at least on the basis of the second previously allocated amount indicated in the received updated token.
43. A method of allocating finite resources to network nodes in a network, the method operating a token-ring system between a plurality of network nodes in the network, the method comprising, at a first network node in the plurality:
receiving a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality, wherein the received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network;
first allocating, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token;
generating an updated token by inserting the first allocated amount into the received token; and transmitting the updated token to a second network node in the plurality.
44. A computer program comprising a set of instructions, which, when executed by a computerised device, cause the computerised device to perform a method of allocating finite resources to network nodes in a network, the method operating a token-ring system between a plurality of network nodes in the network, the method comprising, at a first network node in the plurality:
receiving a token indicating amounts of a given type of finite resource previously allocated for use in the network by network nodes in the plurality, wherein the received token comprises an indication of a previously first allocated amount of the given type of finite resource that the first network node was previously allowed to use in the network;
first allocating, to the first network node, a first allocated amount of the given type of finite resource that the first network node is allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of the previously first allocated amount indicated in the received token;
generating an updated token by inserting the first allocated amount into the received token; and
5 transmitting the updated token to a second network node in the plurality.
Amendment to Claims have been filed as follows
Claims
21 02 17
1. A method of allocating finite resources to client network nodes in a network, the method comprising, at a finite resources allocation server:
5 receiving, from a first client network node, a first finite resource allocation request requesting a first amount of a given type of finite resource for use by the first client network node in the network;
first allocating, to the first client network node, a first allocated amount of the given type of finite resource that the first client network node is allowed to use in the
10 network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network, wherein the first allocating allocates the first allocated amount at least on the basis of a previously requested first amount of the given type of finite resource that the first client network
15 node previously requested to use in the network, and wherein the first allocating allocates the first allocated amount at least on the basis of the previously allocated first amount as a first previous proportion of the previously requested first amount;
receiving, from a second client network node, a second finite resource allocation request requesting a second amount of the given type of finite resource for
20 use by the second client network node in the network; and second allocating, to the second client network node, a second allocated amount of the given type of finite resource that the second client network node is allowed to use in the network, wherein the second allocating allocates the second allocated amount at least on the basis of a previously requested second amount of the
25 given type of finite resource that the second client network node previously requested to use in the network, wherein the second allocating allocates the second allocated amount at least on the basis of the previously allocated second amount as a second previous proportion of the previously requested second amount, and wherein the first allocating allocates the first allocated amount at least on the
30 basis of the first previous proportion and the second previous proportion.
21 02 17
2. A method according to claim 1, wherein the first allocating allocates the first allocated amount at least on the basis of the requested first amount.
3. A method according to claim 1 or 2, wherein the second allocating 5 allocates the second allocated amount at least on the basis of a previously allocated second amount of the given type of finite resource that the second client network node was previously allowed to use in the network.
4. A method according to any preceding claim, wherein the second
10 allocating allocates the second allocated amount at least on the basis of the requested second amount.
5. A method according to claim 1, wherein the first allocating allocates the first allocated amount at least on the basis of the first previous proportion
15 compared to the second previous proportion.
6. A method according to claim 1 or 5, wherein the first allocating allocates the first allocated amount so as to first adjust the first allocated amount as a proportion of the first requested amount towards the second previous proportion.
7. A method according to claim 1 and zero or more of claims 5 or 6, wherein the second allocating allocates the second allocated amount at least on the basis of the first previous proportion and the second previous proportion.
25 8. A method according to claim 7, wherein the second allocating allocates the second allocated amount at least on the basis of the first previous proportion compared to the second previous proportion.
9. A method according to claim 7 or 8, wherein the second allocating
30 allocates the second allocated amount so as to second adjust the second allocated amount as a proportion of the second requested amount towards the first allocated amount as a proportion of the first requested amount.
21 02 17
10. A method according to any preceding claim, comprising, in response to receipt of subsequent finite resource allocation requests for the given type of finite resource from the first and second client network nodes, performing successive
5 iterations of the first allocating and the second allocating until an amount of the given type of finite resource allocated to the first client network node as a proportion of an amount of the given type of finite resource requested by the first client network node equals an amount of the given type of finite resource allocated to the second client network node as a proportion of an amount of the given type of finite resource
10 requested by the second client network node.
11. A method according to claim 10, wherein the subsequent finite resource allocation requests are received in response to finite resource allocation refresh operations being carried out at the respective client network nodes.
12. A method according to claim 11, wherein the finite resource allocation refresh operations are carried out periodically.
13. A method according to according to any preceding claim, wherein one 20 or more of the first allocating and the second allocating is carried out at least in part on the basis of a configurable damping factor.
14. A method according to claim 13 and one or more of claims 6 and 9, wherein a rate of one or more of the first adjusting and the second adjusting is carried
25 out at least in part on the basis of the configurable damping factor.
15. A method according to claim 14, wherein a relatively high damping factor leads to the rate of one or more of the first adjusting and the second adjusting being relatively faster whereas a relatively low damping factor leads to the rate of one
30 or more of the first adjusting and the second adjusting being relatively slower.
21 02 17
16. A method according to any preceding claim, wherein the first allocating to the first client network node comprises sending an amount allocation message to the first client network node and no other client network nodes in the network.
17. A method according to any preceding claim, wherein the second allocating to the second client network node comprises sending an amount allocation message to the second client network node and no other client network nodes in the network.
18. A method according to any preceding claim, wherein one or more of the first finite resource allocation request and the second finite resource allocation request comprise an indication of the given type of finite resource to which the respective finite resource allocation request relates.
19. A method according to any preceding claim, wherein one or more of the first finite resource allocation request and the second finite resource allocation request comprise an indication of a maximum total capacity of the given type of finite resource which can be allocated in the network.
20. A method according to any preceding claim, wherein one or more of the first requested amount and the second requested amount comprise an amount of the given type of finite resource which is greater than a maximum total capacity of the given type of finite resource which can be allocated in the network.
21. A method according to any preceding claim, wherein the server is responsible for allocating the given type of finite resource to a plurality of client network nodes in the network.
30 22. A method according to any preceding claim, wherein the server is responsible for allocating a plurality of types of finite resource to client network nodes in the network.
21 02 17
23. A method according to any preceding claim, wherein the given type of finite resource is associated with one or more of:
a total number of calls in the network,
5 a call rate, data storage, and processing resources.
24. A method according to any preceding claim, wherein the first and
10 second client network nodes are comprised in a cluster of client network nodes responsible for providing one or more communication functions in the network.
25. A method according to any preceding claim, wherein the first and second client network nodes are comprised in a cluster of network nodes responsible
15 for providing one or more telephony functions in the network.
26. A method according to any preceding claim, wherein the first and second client network nodes comprise one or more of:
session border controllers,
20 media gateways, softswitches, proxy call session control functions (P-CSCFs), and servers.
25 27. A method according to any preceding claim, wherein the server is colocated with one or more of the first client network node, the second client network node and another node in the network.
28. A method according to any preceding claim, wherein the first
30 allocating and the second allocating occur after start-up of the server.
29. A method according to any preceding claim, wherein the first allocating and the second allocating occur after re-starting of the server following failure.
21 02 17
5 30. A method according to claim 28 or 29, wherein the previously allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is assumed to be zero.
31. A method according to claim 28 or 29, wherein the previously 10 allocated first amount of the given type of finite resource that the first client network node was previously allowed to use in the network is assumed to be a default amount.
32. A method according to any preceding claim, wherein the previously allocated first amount of the given type of finite resource that the first client network
15 node was previously allowed to use in the network is indicated in the received first finite resource allocation request.
GB1622358.8A 2016-12-29 2016-12-29 Resource allocation Active GB2558303B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB1703220.2A GB2558322B (en) 2016-12-29 2016-12-29 Resource Allocation
GB1622358.8A GB2558303B (en) 2016-12-29 2016-12-29 Resource allocation
US15/637,287 US10154414B2 (en) 2016-12-29 2017-06-29 Resource allocation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1622358.8A GB2558303B (en) 2016-12-29 2016-12-29 Resource allocation

Publications (3)

Publication Number Publication Date
GB201622358D0 GB201622358D0 (en) 2017-02-15
GB2558303A true GB2558303A (en) 2018-07-11
GB2558303B GB2558303B (en) 2019-01-09

Family

ID=58412322

Family Applications (2)

Application Number Title Priority Date Filing Date
GB1622358.8A Active GB2558303B (en) 2016-12-29 2016-12-29 Resource allocation
GB1703220.2A Active GB2558322B (en) 2016-12-29 2016-12-29 Resource Allocation

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB1703220.2A Active GB2558322B (en) 2016-12-29 2016-12-29 Resource Allocation

Country Status (2)

Country Link
US (1) US10154414B2 (en)
GB (2) GB2558303B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018234292A1 (en) 2017-06-20 2018-12-27 Telefonaktiebolaget Lm Ericsson (Publ) Resource allocation for group communication in a network
CN109298949B (en) * 2018-12-04 2021-08-20 国网辽宁省电力有限公司大连供电公司 Resource scheduling system of distributed file system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213503A1 (en) * 2004-03-23 2005-09-29 Microsoft Corporation Bandwidth allocation
WO2014044301A1 (en) * 2012-09-19 2014-03-27 Nokia Siemens Networks Oy Method and device for allocating resources

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3152183B2 (en) * 1997-10-08 2001-04-03 日本電気株式会社 Communication network operation information collection setting control system
US6625709B2 (en) * 2000-10-30 2003-09-23 Microsoft Corporation Fair share dynamic resource allocation scheme with a safety buffer
US7269657B1 (en) * 2002-05-10 2007-09-11 Rockwell Collins, Inc. Method and system for providing a mobile IP network with non-path dependent intra domain quality of service
US7907574B2 (en) * 2004-01-29 2011-03-15 Qualcomm Incorporated Channel scheduling
US20080253285A1 (en) * 2007-04-12 2008-10-16 Nokia Corporation Apparatus, method, and computer program product providing improved silence suppression detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213503A1 (en) * 2004-03-23 2005-09-29 Microsoft Corporation Bandwidth allocation
WO2014044301A1 (en) * 2012-09-19 2014-03-27 Nokia Siemens Networks Oy Method and device for allocating resources

Also Published As

Publication number Publication date
GB201703220D0 (en) 2017-04-12
GB2558303B (en) 2019-01-09
GB201622358D0 (en) 2017-02-15
GB2558322A (en) 2018-07-11
US10154414B2 (en) 2018-12-11
US20180192294A1 (en) 2018-07-05
GB2558322B (en) 2019-01-09

Similar Documents

Publication Publication Date Title
KR102514250B1 (en) Method, Apparatus and System for Selecting a Mobile Edge Computing Node
CN109274707B (en) Load scheduling method and device
US10404790B2 (en) HTTP scheduling system and method of content delivery network
CN110602254B (en) Method, device and system for realizing load balance
EP3547625B1 (en) Method and system for sending request for acquiring data resource
CN108173774B (en) Client upgrading method and system
EP2976887A1 (en) Bandwidth management for over-the-top adaptive streaming
CN108848530B (en) Method and device for acquiring network resources and scheduling server
WO2019052225A1 (en) Open platform control method and system, computer device, and storage medium
US7844708B2 (en) Method and apparatus for load sharing and data distribution in servers
US9729347B2 (en) System and method for selection of a conference bridge master server
US20140019607A1 (en) Method, Apparatus and Computer Program Product For Updating Load Balancer Configuration Data
JP2022505097A (en) Methods, systems, and computer readable media for unlocked communication processing at network nodes
Buyakar et al. Prototyping and load balancing the service based architecture of 5G core using NFV
US10154414B2 (en) Resource allocation
CN109639502B (en) Return source control method and content distribution network
CN113014422B (en) Method, device and equipment for scheduling content distribution network bandwidth
KR20180095988A (en) System and Method for Determining Fog Server Number and Placement in Local Area Network Environment
WO2019034091A1 (en) Distribution method for distributed data computing, device, server and storage medium
US20230027013A1 (en) Implementing a Queuing System In a Distributed Network
CN115733883B (en) Method and device for refreshing CDN cache
WO2016173133A1 (en) Load sharing implementation method, interface machine, service processor and system
US20230004415A1 (en) Merging Streams In Virtual Channel For Call Enhancement In Virtual Desktop Infrastructure
Potvin et al. Micro service cloud computing pattern for next generation networks
CN113141390B (en) Netconf channel management method and device