US 12,135,697 B2
Schema evolution for key columnar data into row-organized sequences
Benoit Dageville, San Mateo, CA (US); Adrian Hamza, Sammamish, WA (US); Lishi Jiang, Bellevue, WA (US); William Waddington, Stateline, NV (US); Khaled Yagoub, Fremont, CA (US); and Wumengjian Zhu, Cupertino, CA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on May 31, 2023, as Appl. No. 18/326,929.
Application 18/326,929 is a continuation of application No. 17/656,558, filed on Mar. 25, 2022, granted, now 11,709,808.
Prior Publication US 2024/0028567 A1, Jan. 25, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/21 (2019.01); G06F 16/22 (2019.01)
CPC G06F 16/213 (2019.01) [G06F 16/221 (2019.01)] 27 Claims
OG exemplary drawing
 
1. A system comprising:
at least one hardware processor; and
a memory storing instructions that cause the at least one hardware processor to perform operations comprising:
generating, by a compute service manager, a schema hash value for a new schema version associated with a new schema version value, the schema hash value based on determining a sum of hash values of a set of attributes of value columns, the set of attributes comprises a column identifier, and a logical type of a column;
storing a mapping of the schema hash value to the new schema version value for a table in a metadata database;
storing a new schema entry based on the schema hash value, the new schema version value, and a new column for the table in the metadata database, the metadata database storing multiple entries for different schema versions, each entry including a particular schema hash value for mapping to a corresponding schema version from the different schema versions;
receiving a first statement to perform a read operation of a particular table, the read operation including a predicate to evaluate on the particular table;
sending a second statement to an execution node for executing the read operation of the particular table;
receiving information corresponding to a result of the read operation, the information including a particular schema version and a set of values;
determining that the particular schema version does not match a current schema version and is not in a cache;
performing a lookup of the particular schema version from the metadata database; and
deserializing a key value pair associated with information corresponding to the result of the read operation.