IP Library Granted Patent US 10,229,058
Granted Patent B2
US 10,229,058 · App. 14/984,292 · Granted Mar 12, 2019

Providing rolling updates of distributed systems with a shared cache

Inventor: Bill Ataras (Portland, OR)
Assignee: Roku, Inc.
G06F12/084G06F8/65G06F8/656G06F12/0873G06F17/30902G06F2212/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 10,229,058
App. No.
14/984,292
Granted
Mar 12, 2019
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 (69)

1. A system comprising:

at least one processor; and

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

receive, by a datastore access component, a platform update request to update data item information associated with a first version of a data item cached in a shared cache memory,

transmit, by the datastore access component, 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

isolate, by a cache isolator component, the first version of the data item cached in the shared cache memory based on at least a collection of version specific identifiers and a version agnostic identifier associated with the data item.

2. The system of claim 1 , wherein the at least one processor is further configured to:

transmit a first platform registration request to a versions collection component to register a first version specific identifier associated with the datastore access component, wherein the versions collection component is configured to store one or more version specific identifiers associated with one or more versions of the datastore access component in the collection of version specific identifiers.

3. The system of claim 2 , wherein

each version specific identifier in the collection of version specific identifiers is associated with a version of a datastore access component registered to access the shared cache memory,

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,

the shared cache memory is configured to cache at least a second version of the data item, 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.

4. The system of claim 3 , wherein to isolate the first version of the data item, the processor is further configured to:

transmit an active versions request to the versions collection component to retrieve at least a portion of the collection of version specific identifiers, the portion of the collection of version specific identifiers excluding the first version specific identifier, and

transmit a cache removal request to a cache operations component to remove the second version of the data item identified by the second data item key from the shared cache memory.

5. The system of claim 4 , wherein the second data item key is generated based on the version agnostic identifier shared between the first version and the second version of the data item and the collection of version specific identifiers.

6. The system of claim 1 , wherein the at least one processor is further configured to:

receive, by a first version of the datastore access component, a platform read request to retrieve data item information stored in a platform datastore, wherein the data item information of the platform datastore is associated with the version agnostic identifier,

determine whether the first version of the data item configured to store the data item information of the platform datastore is cached in the shared cache memory, and

transmit, by the first version of the datastore access component, a datastore read request to the platform datastore to retrieve the data item information of the platform datastore and associated with the version agnostic identifier, when the first version of the data item is not cached in the shared cache memory.

7. The system of claim 6 , wherein the at least one processor is further configured to:

generate, by a key gen component, a first data item key for identifying the first version of the data item based on the version agnostic identifier and a first version specific identifier associated with the first version of the datastore access component,

transmit, by the datastore access component, a cache write request to a cache operations component to cache the first version of the data item in the shared cache memory, the cache write request including the first data item key and the first version of the data item, and

transmit, by the datastore access component, a platform read response, in response to the platform read request, the platform read response including the first version of the data item.

8. A computer implemented method, comprising:

receiving, by a datastore access component, a platform update request to update data item information associated with a first version of a data item cached in a shared cache memory,

transmitting, by the datastore access component, 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, by a cache isolator component, the first version of the data item cached in the shared cache memory based on at least a collection of version specific identifiers and a version agnostic identifier associated with the data item.

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

transmitting a first platform registration request to a versions collection component to register a first version specific identifier associated with the datastore access component, wherein the versions collection component is configured to store one or more version specific identifiers associated with one or more versions of the datastore access component in the collection of version specific identifiers.

10. The computer implemented method of claim 9 , wherein

each version specific identifier in the collection of version specific identifiers is associated with a version of a datastore access component registered to access the shared cache memory,

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,

the shared cache memory comprises a second version of the data item, 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.

11. The computer implemented method of claim 10 , wherein

the first version of the data item includes a first set of attribute-value pairs and the second version of the data item includes a second set of attribute-value pairs, and

the first set of attribute-value pairs share at least one attribute-value pair in common with the second set of attribute-value pairs.

12. The computer implemented method of claim 11 , wherein isolating, by the cache isolator component, the first version of the data item, further comprises:

transmitting an active versions request to the versions collection component to retrieve at least a portion of the collection of version specific identifiers, the portion of the collection of version specific identifiers excluding the first version specific identifier, and

transmitting a cache removal request to a cache operations component to remove the second version of the data item identified by the second data item key from the shared cache memory.

13. The computer implemented method of claim 12 , wherein,

the portion of the collection of version specific identifiers includes a second version specific identifier associated with the second version of the data item, and

the second data item key is generated based on the second version specific identifier and the version agnostic identifier shared between the first version and the second version of the data item and the collection of version specific identifiers.

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

generating the second data item key by at least prepending the second version specific identifier to the version agnostic identifier.

15. A tangible non-transitory computer-readable device 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, by a datastore access component, a platform update request to update data item information associated with a first version of a data item cached in a shared cache memory;

transmitting, by the datastore access component, 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, by a cache isolator component, the first version of the data item cached in the shared cache memory based on at least a collection of version specific identifiers and a version agnostic identifier associated with the data item.

16. The computer-readable device of claim 15 , the operations further comprising:

transmitting a first platform registration request to a versions collection component to register a first version specific identifier associated with the datastore access component, wherein the versions collection component is configured to store one or more version specific identifiers associated with one or more versions of the datastore access component in the collection of version specific identifiers.

17. The computer-readable device of claim 16 , wherein

each version specific identifier in the collection of version specific identifiers is associated with a version of a datastore access component registered to access the shared cache memory,

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,

the shared cache memory comprises at least a second version of the data item, 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.

18. The computer-readable device of claim 16 , wherein the operation of isolating, by the cache isolator component, the first version of the data item, further comprises:

transmitting an active versions request to the versions collection component to retrieve at least a portion of the collection of version specific identifiers, the portion of the collection of version specific identifiers excluding the first version specific identifier, and

transmitting a cache removal request to a cache operations component to remove a second version of the data item identified by the second data item key from the shared cache memory.

19. The computer-readable device of claim 15 , the operations further comprising:

receiving, by a first version of the datastore access component, a platform read request to retrieve data item information stored in a platform datastore, wherein the data item information of the platform datastore is associated with the version agnostic identifier;

determining whether the first version of the data item configured to store the data item information of the platform datastore is cached in the shared cache memory; and

transmitting, by the first version of the datastore access component, a datastore read request to the platform datastore to retrieve the data item information of the platform datastore and associated with the version agnostic identifier, when the first version of the data item is not cached in the shared cache memory.

20. The computer-readable device of claim 19 , the operations further comprising:

generating, by a key gen component, a first data item key for identifying the first version of the data item based on the version agnostic identifier and a first version specific identifier associated with the first version of the datastore access component,

transmitting, by the datastore access component, a cache write request to a cache operations component to cache the first version of the data item in the shared cache memory, the cache write request including the first data item key and the first version of the data item, and

transmitting, by the datastore access component, a platform read response, in response to the platform read request, the platform read response including the first version of the data item.

Assignments (8)
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 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 048385/0375) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.
Reel/Frame 062826/0001 →
SECURITY INTEREST Recorded Dec 16, 2019
From: ROKU, INC.; ROKU DX HOLDINGS, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051300/0931 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2019
From: SILICON VALLEY BANK, AS BANK
To: ROKU, INC.
Reel/Frame 048420/0841 →
PATENT SECURITY AGREEMENT Recorded Feb 20, 2019
From: ROKU, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 048385/0375 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 12, 2017
From: ROKU, INC.
To: SILICON VALLEY BANK
Reel/Frame 042768/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2015
From: ATARAS, BILL
To: ROKU, INC.
Reel/Frame 037386/0652 →
Continuity (1)
Related Publication 20170192884A1 · Jul 6, 2017
Cited By (1)
US 12,566,706