US 11,714,796 B1
Data recalculation and liveliness in applications
Anupam Srivastava, Vancouver (CA); Adrian Kwok, Richmond (CA); Venkata Rao Pedapati, Burnaby (CA); and Helbert Fonseca Maich, Britannia Beach (CA)
Assigned to Amazon Technologies, Inc, Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Nov. 5, 2020, as Appl. No. 17/90,755.
Int. Cl. G06F 16/22 (2019.01); G06F 16/2455 (2019.01); G06F 16/901 (2019.01); G06F 16/25 (2019.01); G06F 40/18 (2020.01)
CPC G06F 16/2282 (2019.01) [G06F 16/24565 (2019.01); G06F 16/252 (2019.01); G06F 16/9024 (2019.01); G06F 40/18 (2020.01)] 22 Claims
OG exemplary drawing
 
1. A system for managing data associated with an application, the system comprising:
a data store including a workbook comprising a plurality of cells related to the application, wherein the workbook stores cell information for each of the plurality of cells, the plurality of cells comprising a first cell, a second cell, and a third cell, the first cell corresponding to a first cell identifier and comprising a first cell value, the second cell corresponding to a second cell identifier and comprising a second cell value, the third cell corresponding to a third cell identifier and comprising a third cell value; and
one or more processors configured to execute instructions stored in memory to:
populate, in the data store:
a forward dependency list for the first cell, the forward dependency list identifying a range of cell identifiers for a range of cells, the range of cells comprising the second cell based on the first cell value depending, at least in part, on the second cell value, and
a reverse dependency list for the first cell, the reverse dependency list identifying the third cell identifier based on the third cell value depending, at least in part, on the first cell value;
detect a change to a first cell formula for the first cell based on received input data;
based on the detected change to the first cell formula:
sever dependencies in the forward dependency list, and
repopulate the forward dependency list such that the repopulated forward dependency list identifies at least one additional cell value on which the first cell value depends at least in part;
detect an addition of a fourth cell to the range of cells;
based on the repopulated forward dependency list and the addition of the fourth cell to the range of cells, detect a change to the first cell value;
based on the detected change to the first cell value, mark the third cell for recalculation based on the reverse dependency list identifying the third cell identifier; and
for each marked cell:
perform recalculation on the marked cell,
perform recalculation recursively on one or more cells that depend, at least in part, on the marked cell, and
store recalculated cell values.
 
17. A system for managing data associated with an application, the system comprising:
a data store including a workbook comprising a plurality of cells related to the application, wherein the workbook stores cell information for each of the plurality of cells, the plurality of cells comprising a first cell and a second cell, the first cell corresponding to a first cell identifier and comprising a first cell value, the second cell corresponding to a second cell identifier and comprising a second cell value; and
one or more processors configured to execute instructions stored in memory to:
populate, in the data store:
a reverse dependency list for the first cell, the reverse dependency list identifying the second cell identifier based on the second cell value depending, at least in part, on the first cell value, and
a forward dependency list for the first cell, the forward dependency list identifying a range of cell identifiers for a range of cells based on the first cell value depending, at least in part, on one or more cell values of the range of cells;
detect an addition of a third cell to the range of cells;
based on the forward dependency list and the addition of the third cell to the range of cells, detect a change to the cell information for the first cell; and
based on the detected change to the cell information for the first cell:
mark the second cell for recalculation based on identification of the second cell identifier in the reverse dependency list and the detected change to the cell information for the first cell, and
mark one or more rows and one or more columns for recalculation, the one or more rows and the one or more columns comprising the marked second cell.