IP Library Granted Patent US 12,067,001
Granted Patent B2
US 12,067,001 · App. 17/855,602 · Granted Aug 20, 2024

Deferred computation of entity states in a software platform

Inventor: Eric Dalgliesh (New South Wales, AU)
Assignees: ATLASSIAN PTY LTD.; ATLASSIAN US, INC.
G06F16/2379G06F16/252G06F16/953
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 12,067,001
App. No.
17/855,602
Granted
Aug 20, 2024
Kind
B2
Abstract

A software platform includes a frontend and a backend application instance. A user can operate the frontend to modify a data object stored in a database of the backend application instance. The data object may be associated with a higher-order object, referred to as an entity of the software platform. One or more data consumers (e.g., search engine indexing services) may require as input a full computed state of platform-level objects such as entities. The software platform defers computation of entities until necessary by inserting work items into a work item queue that reference entities in need of full state computation. Worker nodes wait specified deferral periods before computing full entity states and transmitting the full computed states to the one or more data consumers, thereby significantly reducing redundant computation of full entity states.

Claims (63)

1. A system for buffering asynchronous updates to a set of lower-level data objects that collectively define a document entity of a software platform before serving a structured data representation of a current full computed state of the document entity to a consumer of the current full computed state of the document entity, the system comprising:

a host server comprising:

a memory storing an executable asset; and

a processor operably coupled to the memory and configured to retrieve the executable asset from the memory to instantiate:

an instance of a backend application supporting the software platform and configured to communicably couple over a network to the consumer, the backend application configured to:

receive an update to a lower-level data object associated with the document entity;

in response to receiving the update, cause the update to the lower-level data object to be committed to a backend database of the software platform; and

after committing to the backend database:

 increment a version number associated with the document entity; and

 create a work item comprising an identifier identifying the document entity and the version number and add the work item to a work item queue; and

a worker node instance configured to await expiration of a time interval associated with the consumer, and thereafter:

retrieve the work item from the work item queue;

in accordance with determining that the version number is not the highest version number among all work items in the work item queue that comprise the identifier, discarding the work item and deferring computation of the full computed state of the document entity to a later time;

in accordance with determining that the version number is the highest version number among all work items in the work item queue that comprise the identifier, computing the current full computed state of the document entity as the structured data representation; and

in response to completing computation of the current full computed state of the document entity serving the structured data representation to the consumer.

2. The system of claim 1 , wherein:

the update to the data object associated with the document entity is received by the backend application in response to an input provided by a user to a frontend application associated with the software platform; and

the software platform is a documentation system and the consumer is a search engine service.

3. The system of claim 1 , wherein the software platform is a documentation system and the consumer is a frontend application instance executing at a client device.

4. The system of claim 1 , wherein the worker node is instantiated in response to an instruction by the backend application.

5. The system of claim 1 , wherein the worker node is instantiated by a server computer separate from the host server.

6. The system of claim 1 , wherein the worker node is configured to serve the current full computed state of the document entity to the consumer a second time to ensure delivery.

7. The system of claim 1 , wherein the document entity is a project tracked by an issue tracking system and the data object is a task associated with the project.

8. A method for deferring computation of a current full computed state of a document entity of a software platform, the document entity constructed from a set of lower-level data objects, the method comprising:

receiving, at a backend application instance of the software platform instantiated by cooperation of a processor and a memory, an update to a lower-level data object of the set of lower-level data objects associated with the document entity;

causing, by the backend application instance, the update to the data object to be committed to a backend database of the software platform;

retrieving, by the backend application instance, from a datastore, a version number associated with the document entity;

incrementing, by the backend application instance, the version number associated with the document entity;

retrieving or creating an identifier identifying the document entity;

creating a work item comprising a first attribute comprising the version number and a second attribute comprising the identifier;

inserting the work item into a work item queue;

retrieving the work item from the work item queue after expiration of a selected time interval by a worker node instance instantiated by the backend application instance; and

determining by the worker node instance whether the version number of the retrieved work item is the highest version number of all work items that comprise the same identifier in the work item queue and:

in accordance with a determination that the version number of the retrieved work item is the highest version number, retrieving each lower-level data object of the set of lower-level data objects from the backend database in order to compute the current full computed state of the document entity, thereafter transmitting the current full computed state to a consumer of the full computed state of the document entity; and

in accordance with a determination that the version number of the work item is not the highest version number, deferring computation of the full computed current state of the document entity by discarding the work item.

9. The method of claim 8 , wherein:

the lower-level data object is a first lower-level data object;

the update is a first update;

the version number is a first version number;

the work item is a first work item; and

the method comprises:

receiving a second update to a second lower-level data object of the set of lower-level data objects associated with the document entity;

causing the second update to the second lower-level data object to be committed to the backend database of the software platform;

incrementing the first version number associated with the document entity to a second version number;

retrieving, by the backend application instance, the identifier identifying the document entity; and

creating a second work item comprising a third attribute comprising the second version number and a fourth attribute comprising the identifier.

10. The method of claim 8 , wherein the software platform is a documentation platform and the current full computed state of the document entity comprises a document of the documentation platform.

11. The method of claim 10 , wherein the lower-level data object comprises a paragraph of the document.

12. The method of claim 8 , wherein the consumer is a search engine service associated with the software platform.

13. A system architecture for reducing computational load associated with computation of a current full computed state of a document entity of a software platform, the document entity constructed from a set of lower-level data objects, the system architecture comprising:

a memory storing an executable asset; and

a processor operably coupled to the memory and configured to retrieve the executable asset from the memory to instantiate an instance of a worker node configured to:

await expiration of a selected time interval;

after expiration of the selected time interval, access a work item queue comprising two or more work items;

popping a work item from the work item queue, the work item comprising an identifier identifying the document entity and a version number identifying a version of the document entity;

in accordance with determining that the version number is not the highest version number among all items in the work item queue that comprise the identifier, discarding the work item;

in accordance with a determination that the version number is the highest version number among all work items in the work item queue that comprise the identifier, computing the full state of the document entity; and

in response to completing computation of the full state of the document entity serving the current full computed state of the document entity to a data consumer communicably coupled to the software platform.

14. The system architecture of claim 13 , wherein the worker node instance is one of a set of worker node instances instantiated by the processor.

15. The system architecture of claim 13 , wherein the work item queue is instantiated by a backend application instance of the software platform.

16. The system architecture of claim 13 , wherein the processor is configured to instantiate a backend application instance of the software platform.

17. The system architecture of claim 13 , wherein the data consumer is a search engine service.

18. The system architecture of claim 13 , wherein the software platform is a documentation platform and the document entity is a document of the documentation platform.

Assignments (2)
CHANGE OF NAME Recorded Aug 5, 2022
From: ATLASSIAN, INC.
To: ATLASSIAN US, INC.
Reel/Frame 061085/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: DALGLIESH, ERIC
To: ATLASSIAN PTY LTD.; ATLASSIAN INC.
Reel/Frame 060377/0031 →