US 12,086,154 B1
Columnar cache in hybrid transactional/analytical processing (HTAP) workloads
Mihir Dharamshi, Redmond, WA (US); Cristian Diaconu, Kirkland, WA (US); Chen Luo, San Mateo, CA (US); Andrew McCormick, San Francisco, CA (US); Corbin McElhanney, San Mateo, CA (US); Joshua Slocum, Austin, TX (US); and Wumengjian Zhu, Cupertino, CA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on Aug. 24, 2023, as Appl. No. 18/455,229.
Int. Cl. G06F 16/25 (2019.01); G06F 16/11 (2019.01); G06F 16/172 (2019.01); G06F 16/23 (2019.01)
CPC G06F 16/254 (2019.01) [G06F 16/116 (2019.01); G06F 16/172 (2019.01); G06F 16/2379 (2019.01)] 20 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:
receiving a query, the query including a query range for processing the query;
sending, by an execution node that received the query, a request to a key-value store for blob metadata and a set of recent writes for the query range, the key-value store storing the blob metadata in a different location than a local cache, the local cache being included in memory of the execution node;
receiving the blob metadata, the blob metadata including information related to a set of blob files;
determining, by the execution node using the blob metadata, whether a copy of each of the set of blob files is stored in the local cache included in memory of the execution node;
in response to at least one blob file being missing from the set of blob files, sending a request to a blob store to retrieve, from the blob store, the at least one blob file of the set of blob files;
transforming the retrieved at least one blob file to a second file in a column file format, the at least one blob file being in a first format that is different than the column file format, the transforming comprising at least converting a particular snapshot file from the at least one blob file to a particular set of rowsets and writing the set of rowsets into the second file in the column file format; and
storing the second file in the local cache.