IP Library Granted Patent US 11,429,593
Granted Patent B2
US 11,429,593 · App. 16/740,831 · Granted Aug 30, 2022

Maintaining a shared state among networked computing devices using a shared data store

Inventors: Ronald Steinke (Tacoma, WA); David T. Leimbach (Lynnwood, WA); Mark Ranger (Seattle, WA); Douglas Kilpatrick (Seattle, WA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/2379G06F16/2365H04L67/06H04L67/1097
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,429,593
App. No.
16/740,831
Granted
Aug 30, 2022
Kind
B2
Abstract

Sharing a state between network computing devices is described. For instance, a first state update can be received from a second computing device via a network connection. Further, in a shared state file stored in a storage device coupled to the first computing device, a first portion of the shared state file is identified that is allocated to the second computing device. Further, based on the first state update, the first portion of the shared state file can be updated.

Claims (39)

1. A method, comprising:

receiving, by a first computing device comprising a processor, a first state update from a second computing device via a network connection;

identifying, by the first computing device, in a shared state file comprised of state data blocks stored in a storage device, a first portion of the state data blocks being allocated to a first state of the second computing device; and

based on the first state update, updating, by the first computing device, the first portion of the state data blocks, wherein, during the updating of the first portion of the state data blocks, the first portion of the state data blocks of the first portion of data blocks is subject to a file contention lock, wherein a sparseness of utilization of a first data block of the first portion of data blocks was selected to reduce contention in use of the first portion of data blocks for provision of the first state.

2. The method of claim 1 , wherein, further during the updating of the first portion of the state data blocks a second portion of the state data blocks based on a second state update from a third computing device is updated by the third computing device, wherein the updating the first portion of the state data blocks and the updating the second portion of the state data blocks occur substantially simultaneously, wherein the file contention lock comprises a first file contention lock, and wherein during the updating of the second portion, the second portion is subject to second contention lock.

3. The method of claim 2 , wherein a remaining portion of the state data blocks, not comprising the first portion of the state data blocks and the second portion of the state data blocks, is unlocked during the updating the first portion of the state data blocks and the updating the second portion of the state data blocks.

4. The method of claim 1 , wherein the sparseness of utilization of a first data block comprises a relative usage of the first data block for storage of the first state.

5. The method of claim 1 , wherein the updating the first portion of the state data blocks is further based on an offset value of the second computing device, and wherein the offset value identifies the first portion of the state data blocks by offsetting from a point of the shared state file.

6. The method of claim 1 , wherein the first computing device and the second computing device are component devices of a distributed file system, and wherein the receiving the first state update from the second computing device is based on an event notification system of the distributed file system.

7. The method of claim 1 , wherein the shared state file comprises a flat file or a key-value store.

8. The method of claim 1 , further comprising:

facilitating, by the first computing device, communicating the first state update to a fourth computing device to update a shared state among the first computing device, the second computing device, and the fourth computing device.

9. A first computing device, comprising:

a memory that stores computer executable components;

a drive storage device; and

a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise:

a state updating component to communicate, via a network, a first state update to a second computing device for an update of a shared state file stored of the second computing device; and

a state update receiving component to receive, via the network, a second state update for a third computing device from the second computing device, wherein the second computing device retrieved the second state update from the shared state file, wherein, during the updating of the shared state file:

a first portion of data blocks of the shared state file, allocated to the first computing device, is subject to a first file contention lock, and

a remaining portion of the data blocks of shared state file, not comprising the first portion, is unlocked during the updating the first portion of the shared state file, wherein a first data block of the first portion is bounded in a size of storage, and wherein a utilization of the size was selected to reduce contention in use of the first portion of the data blocks for provision of a first state of the first computing device.

10. The first computing device of claim 9 , wherein the state updating component is to communicate the first state update to the second computing device further for an identification, in the shared state file, of the first portion.

11. The first computing device of claim 10 , wherein the state updating component further updates a shared state among the first computing device, the second computing device, and the third computing device, based on the second state update.

12. The first computing device of claim 9 , wherein the shared state file is bounded in size.

13. The first computing device of claim 9 , wherein, during the updating of the first portion, a second portion of the data blocks of the shared state file based on a second state update from a third computing device is updated by the third computing device, wherein the updating the first portion and the updating the second portion occur substantially simultaneously, and wherein during the updating of the second portion, the second portion is subject to second contention lock.

14. The first computing device of claim 9 , wherein the shared state file comprises a flat file or a key-value store.

15. The first computing device of claim 9 , wherein the computer executable components further comprise:

a notification receiver component to receive a notification that the second state update is available; and

a state update requesting component to request, based on the notification, the communication of the second state update by the second computing device, wherein the second state update is received based on the request.

16. The first computing device of claim 15 , wherein the first computing device and the second computing device are component devices of a distributed file system, and wherein the notification is received based on an event notification system of the distributed file system.

17. A non-transitory machine-readable medium comprising executable instructions that, when executed by a processor of a first computing device, facilitate performance of operations, the operations comprising:

receiving a first state update from a second computing device via a network connection;

identifying, in a shared state file stored in a storage device coupled to the first computing device, a first portion of state data blocks of the shared state file allocated to a state of the second computing device; and

updating, based on the first state update, the first portion, wherein, during the updating of the first portion:

the first portion is subject to a first file contention lock, and

a remaining portion of the data blocks of the shared state file, not comprising the first portion, is unlocked during the updating the first portion, wherein a utilization of a first data block of the first portion was selected to reduce contention in provision of the first state.

18. The non-transitory machine-readable medium of claim 17 , wherein the operations facilitated further comprise updating a second portion of the data blocks of the shared state file based on a second state update received from a third computing device, and

wherein the second portion is subject to a second file contention lock, and wherein the updating the first portion and the updating the second portion occur substantially simultaneously.

19. The non-transitory machine-readable medium of claim 18 , wherein the remaining portion does not comprise the first portion of the shared state file and the second portion of the shared state file, and wherein the remaining portion is unlocked further during and the updating the second portion of the shared state file.

20. The non-transitory machine-readable medium of claim 17 , wherein the updating the first portion is based on an offset value of the second computing device, and wherein the offset value identifies the first portion by offsetting from a point of the shared state file.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2020
From: STEINKE, RONALD; LEIMBACH, DAVID T.; RANGER, MARK; KILPATRICK, DOUGLAS
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051494/0730 →