IP Library Granted Patent US 12706985
Granted Patent B2
US 12706985 · App. 18/986,477 · Granted Aug 11, 2026

Distributing pacing results for low latency content serving

Inventors: Bailan Li (San Carlos, CA); Samira Tasharofi (Atherton, CA); Yi Zhang (Sunnyvale, CA); Tao Cai (Sunnyvale, CA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/61H04L67/141
View Patent ↗
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 12706985
App. No.
18/986,477
Granted
Aug 11, 2026
Kind
B2
Abstract

Methods, systems, and apparatuses include establishing, by a distributor of a content serving system, a streaming connection with a pacing host of the content serving system. The pacing results are received by the distributor from the pacing host through the streaming connection. The pacing results are stored by the distributor in a local cache memory. The pacing results are streamed by the distributor from the local cache memory to serving hosts.

Claims (68)

1 . A method comprising:

establishing, by a distributor of a plurality of distributors of a content serving system, a first streaming connection with a pacing host of the content serving system;

receiving, by the distributor, the pacing results from the pacing host through the first streaming connection;

storing, by the distributor, the pacing results in a local cache memory; and

streaming, by the distributor, the pacing results from the local cache memory to a plurality of serving hosts by:

streaming, by a first layer distributor of the distributor, the pacing results to a plurality of second layer distributors of the distributor; and

streaming, by a second layer distributor of the plurality of second layer distributors, the pacing results to the plurality of serving hosts, wherein the plurality of serving hosts determine content to deliver to a plurality of user devices of the content serving system using the pacing results.

2 . The method of claim 1 , wherein establishing the first streaming connection with the pacing host comprises:

establishing a streaming connection with each of a plurality of shards of the pacing host.

3 . The method of claim 2 , wherein receiving the pacing results from the pacing host comprises:

receiving pacing results subsets from the plurality of shards; and

aggregating the pacing results subsets into the pacing results.

4 . The method of claim 3 , wherein streaming, by the distributor, the pacing results from the local cache memory comprises:

pushing the pacing results to the plurality of serving hosts in response to aggregating the pacing results subsets into the pacing results.

5 . The method of claim 1 , wherein streaming, by the distributor, the pacing results to the plurality of serving hosts comprises:

announcing, by the distributor, a streaming availability to the plurality of serving hosts, wherein streaming the pacing results is in response to establishing second streaming connections with the plurality of serving hosts.

6 . The method of claim 1 , wherein streaming, by the distributor, the pacing results to the plurality of serving hosts further comprises:

amplifying the pacing results using the number of the plurality of serving hosts; and

streaming the pacing results to each of the plurality of serving hosts.

7 . The method of claim 1 , further comprising:

establishing the distributor as a host for the pacing results stored in the local cache memory; and

receiving, by the distributor, a poll from a serving host of the plurality of serving hosts, wherein streaming, by the distributor, the pacing results from the local cache memory to the serving host is in response to receiving the poll from the serving host.

8 . The method of claim 1 , wherein receiving, by the distributor, the pacing results from the pacing host comprises:

sending a poll to the pacing host for the pacing results, wherein receiving, by the distributor, the pacing results from the pacing host is in response to sending the poll.

9 . A system comprising:

at least one memory device; and

a processor, operatively coupled with the at least one memory device, to:

establish, by a distributor of a plurality of distributors of a content serving system, a first streaming connection with a pacing host of the content serving system;

receive, by the distributor, the pacing results through the first streaming connection;

establish, by a plurality of serving host, second streaming connections with the distributor to receive pacing results from the distributor;

stream, by the distributor, the pacing results to the plurality of serving hosts through the second streaming connections by:

streaming, by a first layer distributor of the distributor, the pacing results to a plurality of second layer distributors of the distributor; and

streaming, by a second layer distributor of the plurality of second layer distributors, the pacing results to the plurality of serving hosts,

receive, by the plurality of serving hosts, the pacing results through the second streaming connections;

determine, by a serving host of the plurality of serving hosts, content to deliver to a plurality of user devices of the content serving system using the pacing results; and

cause, by the serving host, the determined content to be delivered to a user device of the plurality of user devices.

10 . The system of claim 9 , wherein establishing the first streaming connection with the pacing host comprises establishing a streaming connection with each of a plurality of shards of the pacing host and wherein receiving the pacing results from the pacing host comprises:

receiving pacing results subsets from the plurality of shards; and

aggregating the pacing results subsets into the pacing results.

11 . The system of claim 9 , wherein streaming, by the distributor, the pacing results to the plurality of serving hosts comprises:

announcing, by the distributor, a streaming availability to the plurality of serving hosts, wherein streaming the pacing results is in response to establishing the second streaming connections with the plurality of serving hosts.

12 . The system of claim 11 , wherein streaming, by the distributor, the pacing results to the plurality of serving hosts further comprises:

amplifying the pacing results using the number of the plurality of serving hosts; and

streaming the pacing results to each of the plurality of serving hosts.

13 . The system of claim 9 , wherein the processor is further to:

receive, by a serving host of the plurality of serving hosts, serving results from a user device of the plurality of user devices, wherein the serving results comprise results of the delivery of the content; and

send the serving results to the pacing host.

14 . The system of claim 13 , wherein the processor is further to:

aggregate the serving results with serving results from a second serving host of the plurality of serving hosts to generate aggregated serving results, wherein sending the serving results to the pacing host comprises sending the aggregated serving results to the pacing host.

15 . The system of claim 14 , wherein the processor is further to:

receive, by the pacing host, the serving results from the serving host;

generate updated pacing results using the serving results; and

stream the updated pacing results to the distributor in response to generating the updated pacing results.

16 . The system of claim 9 , wherein the processor is further to:

establish the distributor as a host for the pacing results; and

send, by the serving host, a poll to the distributor, wherein receiving, by the serving host, the pacing results through the second streaming connections is in response to sending the poll.

17 . A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to:

establish, by a first layer distributor of a plurality of first layer distributors of a content serving system, a first streaming connection with a pacing host of the content serving system;

receive, by the first layer distributor, the pacing results through the first streaming connection;

establish, by a second layer distributor of a plurality of second layer distributors, a second streaming connection with the first layer distributor to receive pacing results from the first layer distributor;

stream, by the first layer distributor, the pacing results to the second layer distributor;

establish, by a plurality of serving hosts, third streaming connections with the second layer distributor to receive pacing results from the second layer distributor;

receive, by the plurality of serving hosts, the pacing results through the third streaming connections;

determine, by a serving host of the plurality of serving hosts, content to deliver to a plurality of user devices of the content serving system using the pacing results; and

cause, by the serving host of the plurality of serving hosts, the determined content to be delivered to a user device of the plurality of user devices.

18 . The non-transitory computer-readable storage medium of claim 17 , wherein establishing the first streaming connection with the pacing host comprises establishing a streaming connection with each of a plurality of shards of the pacing host and wherein receiving the pacing results from the pacing host comprises:

receiving pacing results subsets from the plurality of shards; and

aggregating the pacing results subsets into the pacing results.