Analytic engine for optimally distributing work between threads for dependency-based scheduling for concurrent online analytics

US12554533B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12554533-B2
Application numberUS-202217708187-A
CountryUS
Kind codeB2
Filing dateMar 30, 2022
Priority dateMar 30, 2021
Publication dateFeb 17, 2026
Grant dateFeb 17, 2026

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system, method and non-transitory computer-readable storage medium for computing a full dependency graph before obtaining a result of an analytic; and constructing a scheduling graph to optimally distribute work between the available threads, based on the full dependency graph. This may include receiving a request for a result of an algorithm executed on a node; checking, by the processor, the algorithm for a secondary dependency algorithm and executing, by the processor, the algorithm on the node.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer-implemented method for an analytics engine comprising: computing, by a processor, a full dependency graph before obtaining a result of an analytic, the full dependency graph comprising a plurality of nodes and threads, where every node in the full dependency graph is an executable unit and at least some of the plurality of nodes depend on data from another of the plurality of nodes in order to compute a metric at the given node, and each of the threads of the full dependency graph is a separate processing unit the analytics engine iterates over as a graph edge; constructing, by the processor, a scheduling graph from the full dependency graph to optimally distribute work between available threads of the full dependency graph; receiving, by the processor, a request for a result of an algorithm executed on the given node; checking, by the processor, the algorithm for a secondary dependency algorithm; calculating, by the secondary dependency algorithm graph by recursively executing the secondary dependency algorithm on the given node; and parallel scheduling, by the processor, on the secondary dependency algorithm graph to pre-calculate dependency results; caching, by the processor, the pre-calculated dependency results; and executing, by the processor, the algorithm on the given node based on the scheduling graph. 2 . The computer-implemented method of claim 1 , wherein executing the algorithm on the given node comprises: calculating, by the processor, un-cached dependencies by the algorithm. 3 . A system comprising: a processor for an analytics engine; and a memory storing instructions that, when executed by the processor, configure the system to: compute, by the processor, a full dependency graph before obtaining a result of an analytic the full dependency graph comprising a plurality of nodes where each node in the full dependency graph is an executable unit and at least some of the plurality of nodes depend on data from another of the plurality of nodes in order to compute a metric at a given node; construct, by the processor, a scheduling graph from the full dependency graph to optimally distribute work between available threads of the full dependency graph, each of the threads of the full dependency graph being a separate processing unit the analytics engine iterates over; receive, by the processor, a request for a result of an algorithm executed on the given node; check, by the processor, the algorithm for secondary dependency algorithm; calculate, by the processor, a secondary dependency algorithm graph by recursively executing the dependency algorithm on the given node; and parallel schedule, by the processor on the secondary dependency algorithm graph to pre-calculate dependency results; cache, by the processor the precalculated dependency results; and execute, by the processor, the algorithm on the given node based on the scheduling graph. 4 . The system of claim 3 , wherein in executing the algorithm on the given node, the system is further configured to: calculate, by the processor, un-cached dependencies by the algorithm. 5 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to: compute, by a processor of an analytics engine, a full dependency graph before obtaining a result of an analytic, the full dependency graph comprising a plurality of nodes and threads, where each node in the full dependency graph is an executable unit and at least some of the plurality of nodes depend on data from another of the plurality of nodes in order to compute a metric at a given node, and each of the threads of the full dependency graph is a separate processing unit the analytics engine iterates over as a graph edge; and construct, by the processor, a scheduling graph from the full dependency graph to optimally distribute work between available threads of the full dependency graph; receive, by the processor, a request for a result of an algorithm executed on the given node; check, by the processor, the algorithm for a secondary dependency algorithm; calculate, by the processor, a secondary dependency algorithm graph by recursively executing the dependency algorithm on the given node; and parallel schedule, by the processor on the secondary dependency algorithm graph to pre-calculate dependency results; cache, by the processor, the pre-calculated dependency results; and executing, by the processor, the algorithm on the given node based on the scheduling graph. 6 . The non-transitory computer-readable storage medium of claim 5 , wherein the instructions for executing the algorithm on the given node, further cause the computer to: calculate, by the processor, un-cached dependencies by the algorithm.

Assignees

Inventors

Classifications

  • Dependency mechanisms, e.g. register scoreboarding · CPC title

  • using a plurality of independent parallel functional units · CPC title

  • Resource planning, allocation, distributing or scheduling for enterprises or organisations · CPC title

  • Dependency analysis; Data or control flow analysis · CPC title

  • Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12554533B2 cover?
A system, method and non-transitory computer-readable storage medium for computing a full dependency graph before obtaining a result of an analytic; and constructing a scheduling graph to optimally distribute work between the available threads, based on the full dependency graph. This may include receiving a request for a result of an algorithm executed on a node; checking, by the processor, th…
Who is the assignee on this patent?
Kinaxis Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/9024. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 17 2026 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).