| CPC G06F 16/2379 (2019.01) [G06F 16/213 (2019.01); G06F 16/221 (2019.01); G06F 16/24565 (2019.01); G06F 16/273 (2019.01)] | 29 Claims |

|
1. A computer-implemented method, comprising:
receiving, at a gateway node of a plurality of database nodes, a statement corresponding to a schema of a database stored by the plurality of database nodes, wherein:
a parent transaction comprises the statement,
the statement comprises a schema change operation to modify the schema, and
a first version of a plurality of versions of a descriptor comprises the schema;
writing, by a first child transaction of the parent transaction, a second version of the plurality of versions of the descriptor, wherein the second version comprises an updated schema with an added schema element in a delete-only state, the updated schema being updated from the schema;
waiting, based on the first child transaction and by a second child transaction of the parent transaction, for the second version of the descriptor to propagate to each of the plurality of database nodes;
writing, based on the second child transaction and by a third child transaction of the parent transaction, a third version of the plurality of versions of the descriptor, wherein the third version comprises the updated schema with the added schema element in a write-only state different from the delete-only state;
generating, by the parent transaction and based on the first, second, and third child transactions, a version of a synthetic descriptor available to only the parent transaction and comprising the updated schema with the added schema element available to one or more data manipulation language (DML) operations of the parent transaction, wherein the version of the synthetic descriptor is physically compatible with a current version of the plurality of versions of the descriptor, and wherein up to two versions of the plurality of versions of the descriptor are leased by the plurality of database nodes at any time;
writing the version of the synthetic descriptor as an updated version of the plurality of versions of the descriptor, wherein the updated version comprises the updated schema with the added schema element in a publicly available state, wherein the current version of the descriptor precedes the updated version of the descriptor; and
committing the parent transaction.
|