US 12,326,902 B2
Standing query to reactive database
Mark Eugene Russinovich, Bellevue, WA (US); and Dharma K. Shukla, Bellevue, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Sep. 9, 2021, as Appl. No. 17/447,230.
Prior Publication US 2023/0073887 A1, Mar. 9, 2023
Int. Cl. G06F 16/9032 (2019.01)
CPC G06F 16/9032 (2019.01) 10 Claims
OG exemplary drawing
 
1. A computing system comprising:
a processor configured to:
generate a binary large object (blob) representation of a reactive database from a relational representation of the reactive database;
store the reactive database in the blob representation, in non-volatile storage;
generate a graph representation of the reactive database from the blob representation, wherein the graph representation is a graph database in which a plurality of database entities are represented as a plurality of database nodes connected by a plurality of edges;
via a reactive database application program interface (API), receive a first standing query registration input including a first standing query, wherein:
the first standing query includes a first update condition and is associated with a first database entity of the plurality of database entities; and
the first update condition is a condition on one or more respective values of one or more of the database entities or on a structural property of the reactive database;
in response to receiving the first standing query registration input, partially evaluate the first standing query on one or more partial evaluation inputs that are stored in the reactive database and form a proper subset of a plurality of inputs of the first standing query, wherein:
the one or more partial evaluation inputs are received at the processor as one or more query responses; and
one or more remaining inputs of the first standing query are left unfilled when the first standing query is partially evaluated;
subsequently to partially evaluating the first standing query, store the first standing query in the non-volatile storage;
write data to the relational representation of the reactive database;
update the blob representation stored in the non-volatile storage based at least in part on the written data;
update the graph representation based at least in part on the updated blob representation;
determine that the first update condition is satisfied by the written data at the graph representation of the reactive database; and
in response to determining that the first update condition is satisfied, execute the partially evaluated first standing query on the remaining inputs of the first standing query to perform a first state change at the first database entity of the plurality of database entities, wherein the first state change is a change to one or more values stored in the reactive database and/or to an architecture of the reactive database.