IP Library › Granted Patent US 11,429,311
Granted Patent B1
US 11,429,311 · App. 17/214,292 · Granted Aug 30, 2022

Method and system for managing requests in a distributed system

Inventor: Thomas Francis Shackell (Leeds, GB)
Assignee: Anaplan, Inc.
G06F3/0655G06F3/0604G06F3/067G06F9/5016
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,311
App. No.
17/214,292
Granted
Aug 30, 2022
Kind
B1
Abstract

A node includes storage that stores a portion of high accessibility data that is divided into revisions and managed based on an activity state model. The node also includes a repository manager that keys read requests of the data access requests for the high accessibility data to a revision of the revisions of the portion of the high accessibility data based on an activity state associated with the portion of the high accessibility data when the read requests are obtained to obtain keyed read requests; keys write requests for the high accessibility data to future revisions of the revisions of the high accessibility data when the write requests are obtained to obtain keyed write requests; adds the keyed read requests to a read queue; adds the keyed write requests to a delayed action queue; and processes the read queue and the delayed action queue to service the requests.

Claims (79)

1. A node of a data management system that manages distributed storage of high accessibility data across nodes of the data management system, comprising:

storage adapted to store a portion of the high accessibility data that is divided into revisions, wherein the portion of the high accessibility data is managed based on an activity state model comprising a writing state, a resolving state, a metadata update state, and a reading state; and

a repository manager programmed to:

obtain data access requests for the high accessibility data;

key read requests of the data access requests to a revision of the revisions of the portion of the high accessibility data based on an activity state associated with the portion of the high accessibility data when the read requests are obtained to obtain keyed read requests;

key write requests of the data access requests to future revisions of the revisions of the high accessibility data when the write requests are obtained to obtain keyed write requests;

add the keyed read requests to a read queue;

add the keyed write requests to a delayed action queue; and

process the read queue and the delayed action queue to service the data access requests.

2. The node of claim 1 , wherein processing the read queue comprises:

identifying the activity state of the activity state model;

when the activity state is in the metadata update state, suspending processing of the read queue; and

when the activity state is not in the metadata update state:

identifying the revision associated with a keyed read request of the keyed read requests that is at a head of the read queue;

providing a first sub-portion of the portion of the high accessibility data when the revision is a current revision,

providing a second sub-portion of the portion of the high accessibility data when the revision is a previous revision.

3. The node of claim 1 , wherein processing the write queue comprises:

identifying the activity state of the activity state model;

when the activity state is in the writing state:

updating a current revision and previous revision of the portion of the high accessibility data; and

processing a keyed write request of the keyed write requests at a head of the delayed action queue while continuing to process the keyed read requests,

when the activity state is not in the writing state, suspending processing of the keyed write requests.

4. The node of claim 3 , wherein updating the current revision comprises:

deleting the previous revision to obtain an empty previous revision; and

copying the current revision to the empty previous revision after deleting it.

5. The node of claim 4 , wherein the current revision specifies data and is associated with a revision number.

6. The node of claim 5 , wherein the revision number is a global reference for the high accessibility data that enables revision consistent data from any of the nodes to be identified.

7. The node of claim 5 , wherein the previous revision specifies second data and a previous revision number that is sequentially linked to the revision number.

8. A method for managing distributed storage of high accessibility data across nodes of a data management system, comprising:

obtaining data access requests for the high accessibility data that is divided into revisions, wherein the portion of the high accessibility data is managed based on an activity state model comprising a writing state, a resolving state, a metadata update state, and a reading state;

keying read requests of the data access requests to a revision of the revisions of the portion of the high accessibility data based on an activity state associated with the portion of the high accessibility data when the read requests are obtained to obtain keyed read requests;

keying write requests of the data access requests to future revisions of the revisions of the high accessibility data when the write requests are obtained to obtain keyed write requests;

adding the keyed read requests to a read queue;

adding the keyed write requests to a delayed action queue; and

processing the read queue and the delayed action queue to service the data access requests.

9. The method of claim 8 , wherein processing the read queue comprises:

identifying the activity state of the activity state model;

when the activity state is in the metadata update state, suspending processing of the read queue; and

when the activity state is not in the metadata update state:

identifying the revision associated with a keyed read request of the keyed read requests that is at a head of the read queue;

providing a first sub-portion of the portion of the high accessibility data when the revision is a current revision,

providing a second sub-portion of the portion of the high accessibility data when the revision is a previous revision.

10. The method of claim 8 , wherein processing the write queue comprises:

identifying the activity state of the activity state model;

when the activity state is in the writing state:

updating a current revision and previous revision of the portion of the high accessibility data; and

processing a keyed write request of the keyed write requests at a head of the delayed action queue while continuing to process the keyed read requests,

when the activity state is not in the writing state, suspending processing of the keyed write requests.

11. The method of claim 10 , wherein updating the current revision comprises:

deleting the previous revision to obtain an empty previous revision; and

copying the current revision to the empty previous revision after deleting it.

12. The method of claim 11 , wherein the current revision specifies data and is associated with a revision number.

13. The method of claim 12 , wherein the revision number is a global reference for the high accessibility data that enables revision consistent data from any of the nodes to be identified.

14. The method of claim 12 , wherein the previous revision specifies second data and a previous revision number that is sequentially linked to the revision number.

15. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing distributed storage of high accessibility data across nodes of a data management system, the method comprising:

obtaining data access requests for the high accessibility data that is divided into revisions, wherein the portion of the high accessibility data is managed based on an activity state model comprising a writing state, a resolving state, a metadata update state, and a reading state;

keying read requests of the data access requests to a revision of the revisions of the portion of the high accessibility data based on an activity state associated with the portion of the high accessibility data when the read requests are obtained to obtain keyed read requests;

keying write requests of the data access requests to future revisions of the revisions of the high accessibility data when the write requests are obtained to obtain keyed write requests;

adding the keyed read requests to a read queue;

adding the keyed write requests to a delayed action queue; and

processing the read queue and the delayed action queue to service the data access requests.

16. The non-transitory computer readable medium of claim 15 , wherein processing the read queue comprises:

identifying the activity state of the activity state model;

when the activity state is in the metadata update state, suspending processing of the read queue; and

when the activity state is not in the metadata update state:

identifying the revision associated with a keyed read request of the keyed read requests that is at a head of the read queue;

providing a first sub-portion of the portion of the high accessibility data when the revision is a current revision,

providing a second sub-portion of the portion of the high accessibility data when the revision is a previous revision.

17. The non-transitory computer readable medium of claim 15 , wherein processing the write queue comprises:

identifying the activity state of the activity state model;

when the activity state is in the writing state:

updating a current revision and previous revision of the portion of the high accessibility data; and

processing a keyed write request of the keyed write requests at a head of the delayed action queue while continuing to process the keyed read requests,

when the activity state is not in the writing state, suspending processing of the keyed write requests.

18. The non-transitory computer readable medium of claim 17 , wherein updating the current revision comprises:

deleting the previous revision to obtain an empty previous revision; and

copying the current revision to the empty previous revision after deleting it.

19. The non-transitory computer readable medium of claim 18 , wherein the current revision specifies data and is associated with a revision number.

20. The non-transitory computer readable medium of claim 19 , wherein the revision number is a global reference for the high accessibility data that enables revision consistent data from any of the nodes to be identified.

Assignments (2)
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 22, 2022
From: ANAPLAN, INC.
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 060408/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2021
From: SHACKELL, THOMAS FRANCIS
To: ANAPLAN, INC.
Reel/Frame 056205/0287 →