IP Library Patent Application 12172783
Patent Application
App. No. 12/172,783

Management of network-based services and servers within a server cluster

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/172,783
Abstract

Techniques are described to manage network-based services and servers within a server cluster. In an implementation, a plurality of sub-groups is formed of servers included in a server cluster. Network-based services are assigned to each of the sub-groups such that at least two of the sub-groups have matching deployments of the network-based services.

Claims (47)

1 . A method comprising:

forming a plurality of sub-groups of servers included in a server cluster; and

assigning network-based services to each of the sub-groups such that at least two of the sub-groups have matching deployments of the network-based services.

2 . A method as described in claim 1 , wherein:

at least two of the sub-groups have matching deployments, one to another, according to replication values for respective said network-based services; and

the replication values are used to determine a respective number of the servers in the server cluster that are to include a respective said network-based service.

3 . A method as described in claim 1 , wherein the network-based services are assigned by:

determining a number of deployments of network-based services in the service cluster for each of the network-based services using respective replication values, wherein the replication values are used to determine a respective number of the servers in the server cluster that are to include a respective said network-based service;

creating a randomized array that references each of the determined deployments of the network-based services;

generating an ordered list of the servers based on respective load, one to another; and

iteratively assigning the network-based services to the server using the randomized array and the ordered list.

4 . A method as described in claim 3 , wherein the network-based services are iteratively assigned by generating the ordered list of the servers before each said assignment of the network-based services.

5 . A method as described in claim 1 , wherein the network-based services are assigned such that the servers are not assigned a plurality of deployments of a particular said network-based service.

6 . A method as described in claim 1 , further comprising when an adjustment is to be made to network-based services provided by the server cluster, reassigning one or more of the network-based services in each of the sub-groups according to a respective replication value.

7 . A method as described in claim 1 , further comprising when an adjustment is to be made to a number of servers in the server cluster, reassigning one or more of the network-based services in each of the sub-groups according to a respective replication value.

8 . A method as described in claim 1 , further comprising:

monitoring use of the network-based services; and

adjusting at least one replication value based on the monitoring.

9 . A method as described in claim 1 , wherein at least one said network-based service is configured to stream content over a network to one or more clients.

10 . A method as described in claim 1 , wherein one or more said network-based services are selected from the group consisting of:

a television program service;

a streamed audio service;

a streamed radio service;

a streamed video service;

a video-on-demand (VOD) service;

a pay-per-view (PPV) service;

a network digital video recorder (NDVR) service;

an enhanced television programming service;

an enhanced streamed video service; and

an enhanced streamed audio service;

11 . A method comprising:

determining a number of adjustments to be made to deployments of a plurality of network-based services in a server cluster;

randomizing the adjustments; and

iteratively making the randomized adjustments to servers in the server cluster based on respective loads of the servers.

12 . A method as described in claim 11 , wherein:

the number of adjustments are made in response to a change to a replication value of at least one of the network-based services; and

the replication value is used to determine a number of the servers in the server cluster that are to include the at least one network-based service.

13 . A method as described in claim 11 , wherein the adjustments are made iteratively such that the respective loads of the servers are computed before each said adjustment is made.

14 . A method as described in claim 13 , wherein when two or more said servers having matching said loads, the adjustments are iteratively made to the two or more said servers randomly.

15 . A method as described in claim 11 , wherein when the number of adjustments is made to add one or more deployments of network-based services to the server cluster, the adjustments are made to the servers in order of respective said loads, from low to high.

16 . A method as described in claim 11 , wherein when the number of adjustments is made to remove one or more deployments of network-based services from the server cluster, the adjustments are made to the servers in order of respective said loads, from high to low.

17 . One or more computer-readable media comprising computer executable instructions that are executable to direct a computer to:

determine a number of adjustments to be made to deployments of network-based services by a server cluster based on replication values of the respective network-based services when a number of servers included in the server cluster is changed; and

perform the adjustments to one or more of the servers according to respective loads.

18 . One or more computer-readable media as described in claim 17 , wherein the number of adjustments is performed iteratively such that the respective loads are computed before each said adjustment is performed.

19 . One or more computer-readable media as described in claim 17 , wherein the replication values are used to determine a number of said servers that are to include a respective said network-based service.

20 . One or more computer-readable media as described in claim 17 , wherein the adjustments include iteratively removing network-based services from one or more of the servers in the server cluster and iteratively adding network-based services to one or more of the servers in the server cluster.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2009
From: SMITH, GEOFFREY R.; O'GORMAN, LIAM; DEOLALIKAR, MANDAR; ANGELINI, DOMINIC
To: MICROSOFT CORPORATION
Reel/Frame 022370/0799 →