IP Library Granted Patent US 11,630,775
Granted Patent B2
US 11,630,775 · App. 16/281,885 · Granted Apr 18, 2023

Providing rolling updates of distributed systems with a shared cache

Inventor: Bill Ataras (Portland, OR)
Assignee: Roku, Inc.
G06F12/084G06F8/65G06F8/656G06F12/0873G06F16/9574G06F2212/1008G06F2212/1048G06F2212/163G06F2212/282G06F2212/313G06F2212/314G06F2212/62
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 11,630,775
App. No.
16/281,885
Granted
Apr 18, 2023
Kind
B2
Abstract

Disclosed herein are system, apparatus, article of manufacture, method, and/or computer program product embodiments for providing rolling updates of distributed systems with a shared cache. An embodiment operates by receiving a platform update request to update data item information associated with a first version of a data item cached in a shared cache memory. The embodiment may further operate by transmitting a cache update request to update the data item information of the first version of the data item cached in the shared cache memory, and isolating the first version of the data item cached in the shared cache memory based on a collection of version specific identifiers and a version agnostic identifier associated with the data item.

Claims (80)

1. A system, comprising:

a platform datastore configured to store data item information; and

at least one processor configured to execute a shared cache application, wherein the shared cache application is operatively coupled to shared cache memory and is configured to:

receive a data item key corresponding to a request from a user profile operating on a media player;

receive a version identifier corresponding to a first version of an application operating on the media player;

determine that at least two versions of a data item both correspond to the data item key of the request and are stored as part of the user profile as managed by a shared cache, the at least two versions of the data item corresponding to two different versions of at least one of: hardware or firmware of the media player accessed by the user profile, including both a first version of the data item including a first value corresponding to the first version of the application operating on the media player and a second version of the data item including a second value corresponding to a second version of the application;

generate a key component comprising the first version of the application operating on the media player appended to a user profile identifier corresponding to the user profile;

provide both the generated key component and the data item key to the shared cache;

receive the first value of the data item as stored in the shared cache responsive to providing both the data item key and the generated key component to the shared cache;

receive a cache update request for the first value of the data item, the cache update request including the key component and a new value for the data item; and

update the first value of the first version of the data item responsive to the cache update request, wherein the second value of the second version of the data item is unchanged by the updating.

2. The system of claim 1 , wherein

the first version of the data item is associated with a first data item key for identifying the first version of the data item cached in the shared cache memory, and

the second version of the data item is associated with a second data item key for identifying the second version of the data item cached in the shared cache memory.

3. The system of claim 1 , wherein

the first version of the data item includes a first attribute-value pair identifying a first datastore property and the first value,

the second version of the data item includes a second attribute-value pair identifying a second datastore property and the second value, and

the first datastore property and the first value is substantially equivalent to the second datastore property and the second value.

4. The system of claim 1 , further comprising:

a first version of a platform application configured to at least receive a request to access the data item information from a first version of a media device, wherein the request from the first version of the media device includes a version agnostic identifier; and

a second version of the platform application configured to at least receive a request to access the data item information from a second version of the media device, wherein the request from the second version of the media device includes the version agnostic identifier.

5. The system of claim 4 , wherein

the first version of the platform application is further configured to at least transmit a first, cache write request to the shared cache application to request caching of the first version of the data item in the shared cache memory, in response to the request to access the data item information from the first version of a media device, and

the second version of the platform application is further configured to at least transmit a second cache write request to the shared cache application to request caching of the second version of the data item in the shared cache memory, in response to a request to access the data item information from the second version of the media device.

6. The system of claim 5 , wherein

the first cache write request includes the first version of the data item and a first data item key generated based on combining the version agnostic identifier and a first version specific identifier associated with the first version of the data item, and

the second cache write request includes the second version of the data item and a second data item key generated based on combining the version agnostic identifier and a second version specific identifier associated with the second version of the data item.

7. The system of claim 6 , wherein the shared cache application is further configured to:

receive an active versions request from the first version of the platform application to retrieve a collection of version specific identifiers, wherein the collection of version specific identifiers includes the second version specific identifier and excludes the first version specific identifier.

8. A computer implemented method, comprising:

receiving a data item key corresponding to a request from a user profile operating on a media player;

receiving a version identifier corresponding to a first version of an application operating on the media player;

determining that at least two versions of a data item both correspond to the data item key of the request and are stored as part of the user profile as managed by a shared cache, the at least two versions of the data item corresponding to two different versions of at least one of: hardware or firmware of the media player accessed by the user profile, including both a first version of the data item including a first value corresponding to the first version of the application operating on the media player and a second version of the data item including a second value corresponding to a second version of the application;

generating a key component comprising the first version of the application operating on the media player appended to a user profile identifier corresponding to the user profile;

providing both the generated key component and the data item key to the shared cache;

receiving the first value of the data item as stored in the shared cache responsive to providing both the data item key and the generated key component to the shared cache;

receiving a cache update request for the first value of the data item, the cache update request including the key component and a new value for the data item; and

updating the first value of the first version of the data item responsive to the cache update request, wherein the second value of the second version of the data item is unchanged by the updating.

9. The computer implemented method of claim 8 , wherein

the first version of the data item is associated with a first data item key for identifying the first version of the data item cached in the shared cache memory, and

the second version of the data item is associated with a second data item key for identifying the second version of the data item cached in the shared cache memory.

10. The computer implemented method of claim 8 , wherein

the first version of the data item includes a first attribute-value pair identifying a first datastore property and the first value,

the second version of the data item includes a second attribute-value pair identifying a second datastore property and the second value, and

the first datastore property and the first value is substantially equivalent to the second datastore property and the second value.

11. The computer implemented method of claim 8 , further comprising:

receiving a first cache write request from a first version of a platform application to request caching of the first version of the data item in the shared cache memory, and

receiving a second cache write request from a second version of the platform application to request caching of the second version of the data item in the shared cache memory.

12. The computer implemented method of claim 11 , wherein

the first cache write request includes the first version of the data item and a first data item key generated based on combining a version agnostic identifier and a first version specific identifier associated with the first version of the data item, and

the second cache write request includes the second version of the data item and a second data item key generated based on combining the version agnostic identifier and a second version specific identifier associated with the second version of the data item.

13. The computer implemented method of claim 12 , further comprising:

receiving an active versions request from the first version of the platform application to retrieve a collection of version specific identifiers, wherein the collection of version specific identifiers includes the second version specific identifier and excludes the first version specific identifier and

transmitting an active versions response to the first version of the platform application in response to the active versions request, wherein the active versions response includes the collection of version specific identifiers.

14. The computer implemented method of claim 8 , wherein the first version of the platform is associated with a first device, and the second version of the platform is associated with a second device, different from the first device.

15. The computer implemented method of claim 8 , wherein the version identifier identifying the first version of the data item comprises a version specific identifier received from the media player.

16. The computer implemented method of claim 15 , wherein the version specific identifier differentiates the first version of the data item stored as part of the user profile from the second version of the data item stored as part of the user profile.

17. The computer implemented method of claim 8 , wherein the updating comprises:

transmitting a datastore update request including the new value for the data item to a datastore.

18. A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

receiving a data item key corresponding to a request from a user profile operating on a media player;

receiving a version identifier corresponding to a first version of an application operating on the media player;

determining that at least two versions of a data item both correspond to the data item key of the request and are stored as part of the user profile as managed by a shared cache, the at least two versions of the data item corresponding to two different versions of at least one of: hardware or firmware of the media player accessed by the user profile, including both a first version of the data item including a first value corresponding to the first version of the application operating on the media player and a second version of the data item including a second value corresponding to a second version of the application;

generating a key component comprising the first version of the application operating on the media player appended to a user profile identifier corresponding to the user profile;

providing both the generated key component and the data item key to the shared cache;

receiving the first value of the data item as stored in the shared cache responsive to providing both the data item key and the generated key component to the shared cache;

receiving a cache update request for the first value of the data item, the cache update request including the key component and a new value for the data item; and

updating the first value of the first version of the data item responsive to the cache update request, wherein the second value of the second version of the data item is unchanged by the updating.

19. The non-transitory computer-readable medium of claim 18 , wherein

the first version of the data item includes a first attribute-value pair identifying a first datastore property and the first value,

the second version of the data item includes a second attribute-value pair identifying a second datastore property and the second value, and

the first datastore property and the first value is substantially equivalent to the second datastore property and the second value.

20. The non-transitory computer-readable medium of claim 18 , the operations further comprising:

receiving a first cache write request from a first version of a platform application to request caching of the first version of the data item in the shared cache memory, and receiving a second cache write request from a second version of the platform application to request caching of the second version of the data item in the shared cache memory.

21. The non-transitory computer-readable medium of claim 20 , wherein

the first cache write request includes the first version of the data item and a first data item key generated based on combining a version agnostic identifier and a first version specific identifier associated with the first, version of the data item, and

the second cache write request includes the second version of the data item and a second data item key generated based on combining the version agnostic identifier and a second version specific identifier associated with the second version of the data item.

22. The non-transitory computer-readable medium of claim 21 , the operations further comprising:

receiving an active versions request from the first version of the platform application to retrieve a collection of version specific identifiers, wherein the collection of version specific identifiers includes the second version specific identifier and excludes the first version specific identifier; and

transmitting an active versions response to the first version of the platform application in response to the active versions request, wherein the active versions response includes the collection of version specific identifiers.

Assignments (4)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 051300/0931) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.; ROKU DX HOLDINGS, INC.
Reel/Frame 062826/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2022
From: ATARAS, BILL
To: ROKU, INC.
Reel/Frame 059750/0073 →
SECURITY INTEREST Recorded Dec 16, 2019
From: ROKU, INC.; ROKU DX HOLDINGS, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051300/0931 →
Continuity (2)
Continuation 14984292 · Dec 30, 2015
Related Publication 20190188135A1 · Jun 20, 2019
Cited By (2)
US 12,300,223 US 12,566,706