IP Library Granted Patent US 8,301,838
Granted Patent B2
US 8,301,838 · App. 12/612,517 · Granted Oct 30, 2012

Method and apparatus for providing an application-level cache with a locked region and a floating region

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,301,838
App. No.
12/612,517
Granted
Oct 30, 2012
Kind
B2
Abstract

An approach is provided for providing an application-level cache. A caching application configures at least one memory of a mobile terminal into an application-level cache with a locked region and a floating region. The caching application then causes, at least in part, actions that result in caching, into each of the locked region and the floating region, of data items that are anticipated to be requested via an application of the mobile terminal.

Claims (68)

1. A method comprising:

configuring at least one memory of a mobile terminal into an application-level cache with a locked region and a floating region; and

causing, at least in part, actions that result in caching into each of the locked region and the floating region of data items that are anticipated to be requested via an application of the mobile terminal,

wherein the floating region is attached to the locked region when the data items cached in the floating region are sequentially or directly ordered from the data items cached in the locked region, and the floating region is detached from the locked region when the data items cached in the floating region are no longer sequentially or directly ordered from the data items cached in the locked region so that there is a gap between the locked region and the floating region.

2. A method of claim 1 , wherein the cached data items are one or more parts of a set of ordered data items that are received from a server.

3. A method of claim 2 , further comprising:

marking a position in the set of ordered data items,

wherein the position corresponds to a particular one of the data items cached in the floating region; and

retrieving data items relative to the marked position in the set of ordered data items for caching in the floating region.

4. A method of claim 3 , further comprising:

causing, at least in part, actions that result in reception of one or more unique keys from the server,

wherein each of the one or more unique keys corresponds to a respective address of one of the data items at the server; and

mapping each of the one or more unique keys to a respective item index in either the locked region or the floating region.

5. A method of claim 4 , further comprising:

causing, at least in part, actions that result in reception of a request for a data item, the request including a corresponding unique key;

obtaining an item index mapped to the unique key included in the request;

retrieving a cached data item corresponding to the item index; and

causing, at least in part, actions that result in transmission of the retrieved data item in reply to the request.

6. A method of claim 2 , further comprising:

partitioning the cache into one or more cache groups, wherein each of the one or more cache groups contains a fixed number of slots; and

causing, at least in part, actions that result in caching, into each of the slots, of one group of the set of ordered data items that is anticipated to be requested via the application.

7. A method of claim 6 , wherein the at least one memory includes a fast memory and a persistent storage, and the method further comprising:

when each of the fast memory and the persistent storage are full, replacing one of the cached groups of the set of ordered data items with a new group; and

moving slot identifiers corresponding to remaining ones of the cached groups without physically moving the cached groups within either the fast memory or the persistent storage.

8. An apparatus comprising:

at least one processor; and

at least one memory including computer program code,

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following,

configure at least one memory of a mobile terminal into an application-level cache with a locked region and a floating region; and

cause, at least in part, actions that result in caching, into each of the locked region and the floating region, of data items that are anticipated to be requested via an application of the mobile terminal,

wherein the floating region is attached to the locked region when the data items cached in the floating region are sequentially or directly ordered from the data items cached in the locked region, and the floating region is detached from the locked region when the data items cached in the floating region are no longer sequentially or directly ordered from the data items cached in the locked region so that there is a gap between the locked region and the floating region.

9. An apparatus of claim 8 , wherein the cached data items are one or more parts of a set of ordered data items that are received from a server.

10. An apparatus of claim 9 , wherein the apparatus is further caused to:

mark a position in the set of ordered data items, wherein the position corresponds to a particular one of the data items cached in the floating region; and

retrieve data items relative to the marked position in the set of ordered data items for caching in the floating region.

11. An apparatus of claim 10 , wherein the apparatus is further caused to:

cause, at least in part, actions that result in reception of one or more unique keys from the server, wherein each of the one or more unique keys corresponds to a respective address of one of the data items at the server; and

map each of the one or more unique keys to a respective item index in either the locked region or the floating region.

12. An apparatus of claim 11 , wherein the apparatus is further caused to:

cause, at least in part, actions that result in reception of a request for a data item, the request including a corresponding unique key;

obtain an item index mapped to the unique key included in the request;

retrieve a cached data item corresponding to the item index; and

cause, at least in part, actions that result in transmission of the retrieved data item in reply to the request.

13. An apparatus of claim 9 , wherein the apparatus is further caused to:

partition the cache into one or more cache groups, wherein each of the one or more cache groups contains a fixed number of slots; and

cause, at least in part, actions that result in caching, into each of the slots, of one group of the set of ordered data items that is anticipated to be requested via the application.

14. An apparatus of claim 13 , wherein the apparatus is further caused to:

when each of the fast memory and the persistent storage are full, replace one of the cached groups of the set of ordered data items with a new group; and

move slot identifiers corresponding to remaining ones of the cached groups without physically moving the cached groups within either the fast memory or the persistent storage.

15. A non-transitory computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the following steps:

configuring at least one memory of a mobile terminal into an application-level cache with a locked region and a floating region; and

causing, at least in part, actions that result in caching, into each of the locked region and the floating region, of data items that are anticipated to be requested via an application of the mobile terminal,

wherein the floating region is attached to the locked region when the data items cached in the floating region are sequentially or directly ordered from the data items cached in the locked region, and the floating region is detached from the locked region when the data items cached in the floating region are no longer sequentially or directly ordered from the data items cached in the locked region so that there is a gap between the locked region and the floating region.

16. A non-transitory computer-readable storage medium of claim 15 , wherein the cached data items are one or more parts of a set of ordered data items that are received from a server.

17. A non-transitory computer-readable storage medium of claim 16 , wherein the apparatus is caused to further perform:

marking a position in the set of ordered data items, wherein the position corresponds to a particular one of the data items cached in the floating region; and

retrieving data items relative to the marked position in the set of ordered data items for caching in the floating region.

18. A non-transitory computer-readable storage medium of claim 17 , wherein the apparatus is caused to further perform:

causing, at least in part, actions that result in reception of one or more unique keys from the server, wherein each of the one or more unique keys corresponds to a respective address of one of the data items at the server; and

mapping each of the one or more unique keys to a respective item index in either the locked region or the floating region.

19. A non-transitory computer-readable storage medium of claim 18 , wherein the apparatus is caused to further perform:

causing, at least in part, actions that result in reception of a request for a data item, the request including a corresponding unique key;

obtaining an item index mapped to the unique key included in the request;

retrieving a cached data item corresponding to the item index; and

causing, at least in part, actions that result in transmission of the retrieved data item in reply to the request.

20. A non-transitory computer-readable storage medium of claim 16 , wherein the apparatus is caused to further perform:

partitioning the cache into one or more cache groups, wherein each of the one or more cache groups contains a fixed number of slots; and

causing, at least in part, actions that result in caching, into each of the slots, of one group of the set of ordered data items that is anticipated to be requested via the application.

Assignments (12)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035512/0137 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2010
From: GRIGORIEV, NIKOLAI; LEGAULT, SYLVAIN
To: NOKIA CORPORATION
Reel/Frame 023899/0193 →