IP Library Granted Patent US 8,156,240
Granted Patent B2
US 8,156,240 · App. 12/714,876 · Granted Apr 10, 2012

Mechanism for supporting user content feeds

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 8,156,240
App. No.
12/714,876
Granted
Apr 10, 2012
Kind
B2
Abstract

In one embodiment, for each one of one or more content producers, access a content-producing rate at which the content producer produces one or more items of content; and for each one of one or more content consumers, access a content-consuming rate at which the content consumer consumes one or more items of content. For each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, select between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer.

Claims (270)

1. A method comprising: by one or more computing devices,

for each one of one or more content producers, accessing a content-producing rate at which the content producer produces one or more items of content;

for each one of one or more content consumers, accessing a content-consuming rate at which the content consumer consumes one or more items of content; and

for each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, selecting between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer, wherein:

with the push strategy, each one of the items of content is delivered from the content producer to the content consumer when the item of content is produced by the content producer; and

with the pull strategy, each one of the items of content is delivered from the content producer to the content consumer when the item of content is consumed by the content consumer.

2. The method recited in claim 1 , wherein for each one of the consumer-producer pairs,

if a ratio between the content-consuming rate of the content consumer and the content-producing rate of the content producer is greater than a threshold, then select the push strategy; and

if the ratio between the content-consuming rate of the content consumer and the content-producing rate of the content producer is less than the threshold, then select the pull strategy.

3. The method recited in claim 1 , wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by minimizing a cost while maintaining a global coherency, wherein:

the cost is a total resource cost of delivering the items of content between the consumer-producer pairs, and

the global coherency guarantees that for each one of the content consumers, the items of content are delivered in an order according to timestamps of all the items of content produced by all the content producers that the content consumer follows, wherein the timestamp of each item of content indicates the time the item of content is produced.

4. The method recited in claim 3 , wherein for each one of the consumer-producer pairs,

let:

c denote the content consumer,

p denote the content producer,

P c denote all the content producers that c follows, including p

p j denote a content producer in P c ,

φ c denote the content-consuming rate of c,

φ p j denote the content-producing rate of p j ,

C push denote the cost to push an item of content to c, and

C pull denote the cost to pull a constant number of items of content from p,

then:

if

ϕ

c

/

p

j

P

c

ϕ

p

j

C

push

/

C

pull

,

 then select the push strategy, and

if

ϕ

c

/

p

j

P

c

ϕ

p

j

<

C

push

/

C

pull

,

then select the pull strategy.

5. The method recited in claim 1 , wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by minimizing a cost while maintaining a per-producer coherency, wherein:

the cost is a total resource cost of delivering the items of content between the consumer-producer pairs, and

the per-producer coherency guarantees that for each one of the content consumers, the items of content from each one of the content producers that the content consumer follows are delivered in a order according to timestamps of all the items of content produced by the content producer, wherein the timestamp of each item of content indicates the time the item of content is produced.

6. The method recited in claim 5 , wherein for each one of the consumer-producer pairs,

let:

c denote the content consumer,

p denote the content producer,

φ c denote the content-consuming rate of c,

φ p denote the content-producing rate of p,

C push denote the cost to push an item of content to c, and

C pull denote the cost to pull a constant number of items of content from p,

then:

if (φ c /φ p )≧ C push /C pull , then select the strategy, and

if (φ c /φ p )< C push /C pull , then select the pull strategy.

7. The method recited in claim 6 ,

wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by further satisfying a latency service level agreement; and

the method further comprising if the latency service level agreement is not satisfied, then:

selecting one or more of the consumer-producer pairs that have the pull strategy; and

shifting the selected consumer-producer pairs to the push strategy.

8. The method recited in claim 1 , further comprising:

for a first one of the content consumers, accessing a content-consuming pattern with respect to a time period; and

for a first one of the consumer-producer pairs, wherein the first consumer-producer pair comprises the first content consumer and one of the content producers, selecting between the push strategy and the pull strategy for delivering one or more items of content from the content producer to the first content consumer further based on the content-consuming pattern of the first content consumer and a time at which the items of content are delivered.

9. A system, comprising:

a memory comprising instructions executable by one or more processors; and

one or more processors coupled to the memory and operable to execute the instructions, the one or more processors being operable when executing the instructions to:

for each one of one or more content producers, access a content-producing rate at which the content producer produces one or more items of content;

for each one of one or more content consumers, access a content-consuming rate at which the content consumer consumes one or more items of content;

for each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, select between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer, wherein:

with the push strategy, each one of the items of content is delivered from the content producer to the content consumer when the item of content is produced by the content producer; and

with the pull strategy, each one of the items of content is delivered from the content producer to the content consumer when the item of content is consumed by the content consumer.

10. The system recited in claim 9 , wherein for each one of the consumer-producer pairs,

if a ratio between the content-consuming rate of the content consumer and the content-producing rate of the content producer is greater than a threshold, then select the push strategy; and

if the ratio between the content-consuming rate of the content consumer and the content-producing rate of the content producer is less than the threshold, then select the pull strategy.

11. The system recited in claim 9 , wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by minimizing a cost while maintaining a global coherency, wherein:

the cost is a total resource cost of delivering the items of content between the consumer-producer pairs, and

the global coherency guarantees that for each one of the content consumers, the items of content are delivered in an order according to timestamps of all the items of content produced by all the content producers that the content consumer follows, wherein the timestamp of each item of content indicates the time the item of content is produced.

12. The system recited in claim 11 , wherein for each one of the consumer-producer pairs,

let:

c denote the content consumer,

p denote the content producer,

P c denote all the content producers that c follows, including p

p j denote a content producer in P c ,

φ c denote the content-consuming rate of c,

φ p j denote the content-producing rate of p j ,

C push denote the cost to push an item of content to c, and

C pull denote the cost to pull a constant number of items of content from p,

then:

if

ϕ

c

/

p

j

P

c

ϕ

p

j

C

push

/

C

pull

,

 then select the push strategy, and

if

ϕ

c

/

p

j

P

c

ϕ

p

j

<

C

push

/

C

pull

,

then select the pull strategy.

13. The system recited in claim 9 , wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by minimizing a cost while maintaining a per-producer coherency, wherein:

the cost is a total resource cost of delivering the items of content between the consumer-producer pairs, and

the per-producer coherency guarantees that for each one of the content consumers, the items of content from each one of the content producers that the content consumer follows are delivered in a order according to timestamps of all the items of content produced by the content producer, wherein the timestamp of each item of content indicates the time the item of content is produced.

14. The system recited in claim 13 , wherein for each one of the consumer-producer pairs,

let:

c denote the content consumer,

p denote the content producer,

φ c denote the content-consuming rate of c,

φ p denote the content-producing rate of p,

C push denote the cost to push an item of content to c, and

C pull denote the cost to pull a constant number of items of content from p,

then:

if (φ c /φ p )≧ C push /C pull , then select the strategy, and

if (φ c /φ p )< C push /C pull , then select the pull strategy.

15. The system recited in claim 14 ,

wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by further satisfying a latency service level agreement; and

the one or more processors are further operable when executing the instructions to: if the latency service level agreement is not satisfied, then:

select one or more of the consumer-producer pairs that have the pull strategy; and

shift the selected consumer-producer pairs to the push strategy.

16. The system recited in claim 9 , wherein the one or more processors are further operable when executing the instructions to:

for a first one of the content consumers, access a content-consuming pattern with respect to a time period; and

for a first one of the consumer-producer pairs, wherein the first consumer-producer pair comprises the first content consumer and one of the content producers, select between the push strategy and the pull strategy for delivering one or more items of content from the content producer to the first content consumer further based on the content-consuming pattern of the first content consumer and a time at which the items of content are delivered.

17. One or more computer-readable tangible storage media embodying software operable when executed by one or more computer systems to:

for each one of one or more content producers, access a content-producing rate at which the content producer produces one or more items of content;

for each one of one or more content consumers, access a content-consuming rate at which the content consumer consumes one or more items of content; and

for each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, select between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer, wherein:

with the push strategy, each one of the items of content is delivered from the content producer to the content consumer when the item of content is produced by the content producer; and

with the pull strategy, each one of the items of content is delivered from the content producer to the content consumer when the item of content is consumed by the content consumer.

18. The media recited in claim 17 , wherein for each one of the consumer-producer pairs,

if a ratio between the content-consuming rate of the content consumer and the content-producing rate of the content producer is greater than a threshold, then select the push strategy; and

if the ratio between the content-consuming rate of the content consumer and the content-producing rate of the content producer is less than the threshold, then select the pull strategy.

19. The media recited in claim 17 , wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by minimizing a cost while maintaining a global coherency, wherein:

the cost is a total resource cost of delivering the items of content between the consumer-producer pairs, and

the global coherency guarantees that for each one of the content consumers, the items of content are delivered in an order according to timestamps of all the items of content produced by all the content producers that the content consumer follows, wherein the timestamp of each item of content indicates the time the item of content is produced.

20. The media recited in claim 19 , wherein for each one of the consumer-producer pairs,

let:

c denote the content consumer,

p denote the content producer,

P c denote all the content producers that c follows, including p

p j denote a content producer in P c ,

φ c denote the content-consuming rate of c,

φ p j denote the content-producing rate of p j ,

C push denote the cost to push an item of content to c, and

C pull denote the cost to pull a constant number of items of content from p,

then:

if

ϕ

c

/

p

j

P

c

ϕ

p

j

C

push

/

C

pull

,

 then select the push strategy, and

if

ϕ

c

/

p

j

P

c

ϕ

p

j

<

C

push

/

C

pull

,

then select the pull strategy.

21. The media recited in claim 17 , wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by minimizing a cost while maintaining a per-producer coherency, wherein:

the cost is a total resource cost of delivering the items of content between the consumer-producer pairs, and

the per-producer coherency guarantees that for each one of the content consumers, the items of content from each one of the content producers that the content consumer follows are delivered in a order according to timestamps of all the items of content produced by the content producer, wherein the timestamp of each item of content indicates the time the item of content is produced.

22. The media recited in claim 21 , wherein for each one of the consumer-producer pairs,

let:

c denote the content consumer,

p denote the content producer,

φ c denote the content-consuming rate of c,

φ p denote the content-producing rate of p,

C push denote the cost to push an item of content to c, and

C pull denote the cost to pull a constant number of items of content from p,

then:

if (φ c /φ p )≧ C push /C pull , then select the strategy, and

if (φ c /φ p )< C push /C pull , then select the pull strategy.

23. The media recited in claim 22 ,

wherein for each one of the consumer-producer pairs, the push strategy or the pull strategy is selected by further satisfying a latency service level agreement; and

the one or more processors are further operable when executing the instructions to: if the latency service level agreement is not satisfied, then:

select one or more of the consumer-producer pairs that have the pull strategy; and

shift the selected consumer-producer pairs to the push strategy.

24. The media recited in claim 17 , wherein the one or more processors are further operable when executing the instructions to:

for a first one of the content consumers, access a content-consuming pattern with respect to a time period; and

for a first one of the consumer-producer pairs, wherein the first consumer-producer pair comprises the first content consumer and one of the content producers, select between the push strategy and the pull strategy for delivering one or more items of content from the content producer to the first content consumer further based on the content-consuming pattern of the first content consumer and a time at which the items of content are delivered.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2010
From: SILBERSTEIN, ADAM ELI; COOPER, BRIAN FRANK; RAMAKRISHNAN, RAGHUNATH; TERRACE, JEFFREY
To: YAHOO! INC.
Reel/Frame 024020/0729 →