Server side near real time accumulation based on relational graph
AssigneeMonday.Com Ltd.
InventorsOmer Doron, Liran Brimer, Dor Yehuda, Yuly Roberman, Eviathar Moussaffi
Life of this patent
Estimating the term…
Abstract
There is provided a system for dynamically updating data in dataset, comprising: at least one processor executing a code for: receiving, an indication of a trigger for a change of a first cell of a first dataset, accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell, evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell, and updating each second cell by differentially applying the update to a previous value of the second cell.
Claims18
A system for dynamically updating data in dataset, comprising:
- at least one processor executing a code for:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein a second cell is further dependent on at least one third cell, wherein updating the second cell is done by differentially applying the update in response to the triggered change of the first cell and differentially applying at least one update in response to triggered change of the at least one third cell.
A system for dynamically updating data in dataset, comprising:
- at least one processor executing a code for:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein the relational graph documents bidirectional dependencies, including a first unidirectional dependency of at least one second cell dependent on the first cell, and a second unidirectional dependency of at least one third cell on which the first cell depends.
A system for dynamically updating data in dataset, comprising:
- at least one processor executing a code for:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein the first cell is mapped to at least one mirror cell of at least one second dataset, wherein the at least one mirror cell is mapped to at least one formula cell that defines a formula based on selected cells mapped to the at least one mirror cell.
A system for dynamically updating data in dataset, comprising:
- at least one processor executing a code for:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein a monitoring dataset monitors a state of the first cell for identifying whether the first cell has completed calculations, and updates the at least one second cell according to the monitoring.
A system for dynamically updating data in dataset, comprising:
- at least one processor executing a code for:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein the relational graph is implemented as a respective key-value dataset, wherein the key denotes an identifier of a specific column of a plurality of cells, and the value denotes the specific cell within the specific column.
A system for dynamically updating data in dataset, comprising:
- at least one processor executing a code for:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein accessing the relational graph comprises:
- applying a first query to the relational graph to obtain a set of columns linked to the first cell;
- applying a second query to the relational graph to obtain a set of rows linked to the first cell;
- and
- computing the at least one second cell as an intersection of the set of columns and the set of rows.
A method of dynamically updating data in dataset, comprising:
- receiving, an indication of a trigger for a change of a first cell of a first dataset;
- accessing a relational graph to identify at least one second cell of at least one second dataset dependent on the triggered change to the first cell;
- evaluating a set of rules to determine an update to perform for each second cell in response to the triggered change of the first cell;
- and
- updating each second cell by differentially applying the update to a previous value of the second cell;
- wherein a second cell is further dependent on at least one third cell, wherein updating the second cell is done by differentially applying the update in response to the triggered change of the first cell and differentially applying at least one update in response to triggered change of the at least one third cell.
A non-transitory medium storing program instructions for dynamically updating data in dataset, which, when executed by at least one hardware processor of a server, cause the at least one processor to:
- receive, from a first client terminal, an indication of a change of a first cell of a first dataset;
- access a relational graph to identify at least one second cell of at least one second dataset dependent on the first cell;
- evaluate a set of rules to determine an update to perform for each second cell in response to the change of the first cell;
- update a speed layer with the change to the first cell and with the update to the at least one second cell, wherein the speed layer documents accumulated changes to cells of the first dataset and of the at least one second dataset occurring during a current time interval;
- and
- in response to the current time interval elapsing, update a batching layer with the accumulated changes documented by the speed layer, the batching layer documenting historical changes to cells of the first dataset and of the at least one second dataset.
Dependencies are inferred from the claim text.