IP Library Granted Patent US 9,535,837
Granted Patent B2
US 9,535,837 · App. 14/083,723 · Granted Jan 3, 2017

Decentralized online cache management for digital content conveyed over shared network connections based on cache fullness and cache eviction policies

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 9,535,837
App. No.
14/083,723
Granted
Jan 3, 2017
Kind
B2
Abstract

A first cache is provided to cache a first portion of a first block of digital content received over a network connection shared between a first user associated with the first cache and at least one second user. The first cache caches the first portion in response to the first user or the second user(s) requesting the first block. The first cache selects the first portion based on a fullness of the first cache, a number of blocks cached in the first cache, or a cache eviction rule associated with the first cache.

Claims (38)

1. A method comprising:

caching, at a first cache associated with a first user and in response to at least one of the first user and at least one second user requesting a first block, a first portion of the first block of digital content received over a network connection shared with said at least one second user, wherein the first cache selects the first portion based on at least one of a fullness of the first cache, a number of blocks cached in the first cache, and a cache eviction rule associated with the first cache, wherein said at least one second user is associated with at least one second cache;

receiving an invertible combination of a second portion of the first block and a first portion of a second block that is cached in the first cache, wherein the second portion of the first block is not cached in the first cache, and wherein the first portion of the second block is not cached in said at least one second cache; and

reconstructing, in response to the first user requesting the first block, the second portion of the first block by inverting the invertible combination using the first portion of the first block in the first cache.

2. The method of claim 1 , further comprising:

updating at least one of a timestamp and a frequency stamp associated with the first block in response to receiving the first block over the network connection after caching the first portion of the first block.

3. A method comprising:

caching, at a first cache associated with a first user and in response to at least one of the first user and at least one second user requesting a first block, a first portion of the first block of digital content received over a network connection shared with said at least one second user, wherein the first cache selects the first portion based on at least one of a fullness of the first cache, a number of blocks cached in the first cache, and a cache eviction rule associated with the first cache, wherein caching the first portion of the first block comprises caching substantially all of the first block in response to the fullness indicating that the first cache is not full, and wherein caching the first portion of the first block comprises, in response to the fullness indicating that the first cache is full and the number of blocks cached in the first cache being less than a threshold, evicting randomly selected portions of previously cached blocks and caching a randomly selected portion of the first block.

4. The method of claim 3 , wherein caching the first portion of the first block comprises, in response to the fullness indicating that the first cache is full and the number of blocks cached in the first cache being greater than or equal to the threshold, evicting at least one of a least-recently-sent block and a least-frequently-sent from the first cache and caching a randomly selected portion of the first block.

5. An apparatus comprising:

a first cache to cache a first portion of a first block of digital content received over a network connection shared between a first user associated with the first cache and at least one second user, where in the first cache caches the first portion in response to at least one of the first user and said at least one second user requesting the first block, wherein the first cache selects the first portion based on at least one of a fullness of the first cache, a number of blocks cached in the first cache, and a cache eviction rule associated with the first cache; and

at least one second cache associated with said at least one second user, the first cache is to receive an invertible combination of a second portion of the first block and a first portion of a second block that is cached in the first cache, wherein the second portion of the first block is not cached in the first cache, and wherein the first portion of the second block is not cached in said at least one second cache, and wherein the first cache is to reconstruct, in response to the first user requesting the first block, the second portion of the first block by inverting the invertible combination using the first portion of the first block in the first cache.

6. The apparatus of claim 5 , wherein the first cache is to update at least one of a timestamp and a frequency stamp associated with the first block in response to receiving the first block over the network connection after caching the first portion of the first block.

7. An apparatus comprising:

a first cache to cache a first portion of a first block of digital content received over a network connection shared between a first user associated with the first cache and at least one second user, where in the first cache caches the first portion in response to at least one of the first user and said at least one second user requesting the first block, wherein the first cache selects the first portion based on at least one of a fullness of the first cache, a number of blocks cached in the first cache, and a cache eviction rule associated with the first cache, wherein the first cache is to cache substantially all of the first block in response to the fullness indicating that the first cache is not full, and wherein the cache eviction rule indicates that the first cache is to evict randomly selected portions of previously cached blocks in response to the fullness indicating that the first cache is full and the number of blocks cached in the first cache being less than a threshold, and wherein the first cache is to cache a randomly selected portion of the first block in response to evicting the randomly selected portions of previously cached blocks.

8. The apparatus of claim 7 , wherein the cache eviction rule indicates that the first cache is to evict at least one of a least-recently-sent block and a least-frequently-sent block from the first cache in response to the fullness indicating that the first cache is full and the number of blocks cached in the first cache being greater than or equal to the threshold, and wherein the first cache is to cache a randomly selected portion of the first block in response to evicting said at least one of the least-recently-sent block and the least-frequently-sent block.

9. A non-transitory computer readable storage medium embodying a set of executable instructions, the set of executable instructions to manipulate at least one processor to:

cache, at a first cache associated with a first user and in response to at least one of the first user and at least one second user requesting a first block, a first portion of the first block of digital content received over a network connection shared with said at least one second user, wherein the first cache selects the first portion based on at least one of a fullness of the first cache, a number of blocks cached in the first cache, and a cache eviction rule associated with the first cache, and

receive an invertible combination of a second portion of the first block and a first portion of a second block that is cached in the first cache, wherein the second portion of the first block is not cached in the first cache, and wherein the first portion of the second block is not cached in at least one second cache associated with said at least one second user; and

reconstruct, in response to the first user requesting the first block, the second portion of the first block by inverting the invertible combination using the first portion of the first block in the first cache.

10. The non-transitory computer readable storage medium of claim 9 , further embodying a set of executable instructions to manipulate said at least one processor to:

update at least one of a timestamp and a frequency stamp associated with the first block in response to receiving the first block over the network connection after caching the first portion of the first block.

11. A non-transitory computer readable storage medium embodying a set of executable instructions, the set of executable instructions to manipulate at least one processor to:

cache, at a first cache associated with a first user and in response to at least one of the first user and at least one second user requesting a first block, a first portion of the first block of digital content received over a network connection shared with said at least one second user, wherein the first cache selects the first portion based on at least one of a fullness of the first cache, a number of blocks cached in the first cache, and a cache eviction rule associated with the first cache;

cache substantially all of the first block in response to the fullness indicating that the first cache is not full;

evict randomly selected portions of previously cached blocks and cache a randomly selected portion of the first block in response to the fullness indicating that the first cache is full and the number of blocks cached in the first cache being less than a threshold; and

evict at least one of a least-recently-sent block and a least-frequently-sent from the first cache and cache a randomly selected portion of the first block in response to the fullness indicating that the first cache is full and the number of blocks cached in the first cache being greater than or equal to the threshold.

12. A method comprising:

receiving, from a first cache associated with a first user, information identifying a first portion of a first block of digital content and a first portion of a second block of digital content selected for caching by the first cache after being received over a network connection shared with at least one second user;

receiving, from a second cache associated with the second user, information identifying a second portion of the first block and a second portion of the second block selected for caching by the second cache after being received over the network connection; and

transmitting an invertible combination of the second portion of the first block and the first portion of the second block over the network connection in response to at least one of a request from the first user for the first block and a request from the second user for the second block.

13. The method of claim 12 , wherein transmitting the invertible combination comprises transmitting an exclusive-OR combination of the second portion of the first block and the first portion of the second block.

14. An apparatus comprising:

a server to:

receive, from a first cache associated with a first user, information identifying a first portion of a first block of digital content and a first portion of a second block of digital content selected for caching by the first cache after being received over a network connection shared with at least one second user;

receive, from a second cache associated with the second user, information identifying a second portion of the first block and a second portion of the second block selected for caching by the second cache after being received over the network connection; and

transmit an invertible combination of the second portion of the first block and the first portion of the second block over the network connection in response to at least one of a request from the first user for the first block and a request from the second user for the second block.

15. The apparatus of claim 14 , wherein the server is to transmit an exclusive-OR combination of the second portion of the first block and the first portion of the second block.

Assignments (13)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 28, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033654/0480 →
SECURITY AGREEMENT Recorded Feb 7, 2014
From: ALCATEL-LUCENT USA INC.
To: CREDIT SUISSE AG
Reel/Frame 032176/0867 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2013
From: MADDAH-ALI, MOHAMMADALI; NIESEN, URS; PEDARSANI, RAMTIN
To: ALCATEL-LUCENT USA INC.
Reel/Frame 031674/0716 →