IP Library Granted Patent US 12,235,875
Granted Patent B2
US 12,235,875 · App. 18/456,675 · Granted Feb 25, 2025

Low latency ingestion into a data system

Inventors: Dhiraj Gupta (San Mateo, CA); Subramanian Muralidhar (Mercer Island, WA)
Assignee: Snowflake Inc.
G06F16/278G06F16/1815G06F16/24532G06F16/258
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,235,875
App. No.
18/456,675
Granted
Feb 25, 2025
Kind
B2
Abstract

Described herein are techniques for improving transfer of metadata from a metadata database to a database stored in a data system, such as a data warehouse. The metadata may be written into the metadata database with a version stamp, which is monotonic increasing register value, and a partition identifier, which can be generated using attribute values of the metadata. A plurality of readers can scan the metadata database based on version stamp and partition identifier values to export the metadata to a cloud storage location. From the cloud storage location, the exported data can be auto ingested into the database, which includes a journal and snapshot table.

Claims (92)

1. A method comprising:

receiving data into a metadata database;

generating a version stamp for the received data;

generating a partition identifier for the received data, the partition identifier being based on one or more attribute values of the received data;

writing, by one or more writer computing resources, the received data into the metadata database with the version stamp and partition identifier;

scanning, by a plurality of reader computing resources, the metadata database;

exporting the received data to a storage location based on the version stamp and partition identifier, the plurality of readers being assigned based on partition identifiers;

ingesting the exported data into a journal table in the database; and

providing the exported data in the journal table accessible for query processing before the exported data is merged with a snapshot table.

2. The method of claim 1 , wherein the partition identifier is generated using data identification and account identification values.

3. The method of claim 2 , wherein generating the partition identifier includes hashing the data identification and account identification values.

4. The method of claim 1 , further comprising:

changing a number of partitions, including:

setting a first number of partitions;

detecting a change in usage conditions;

based on the detected change in usage conditions, setting a second number partitions to go into effect at a specified time; and

assigning the plurality of reader computing resources based on the second number of partitions to scan the metadata database starting at the specified time.

5. The method of claim 4 , further comprising:

assigning the one or more writer computing resources to write new data to the second number partitions starting at the specified time plus a delay.

6. The method of claim 1 , further comprising:

changing a number of reader computing resources, the changing of the number of reader computing resources including:

setting a first number of reader computing resources;

detecting a change in usage conditions; and

based on the detected change in usage conditions, setting a second number of reader computing resources, wherein the second number of computing resources is set to go into effect based on a checkpoint relating to version stamp values.

7. The method of claim 1 , further comprising:

receiving a notification from the storage location indicating that the exported data is stored in the storage location; and

in response to the notification, ingesting the exported data from the storage location into a database.

8. The method of claim 7 , further comprising:

merging, by a background service, the exported data from the journal table into the snapshot table.

9. The method of claim 1 , wherein the version stamp is a monotonic increasing register value.

10. A machine-storage medium embodying instructions that, when executed by a machine, cause the machine to perform operations comprising:

receiving data into a metadata database;

generating a version stamp for the received data;

generating a partition identifier for the received data, the partition identifier being based on one or more attribute values of the received data;

writing, by one or more writer computing resources, the received data into the metadata database with the version stamp and partition identifier;

scanning, by a plurality of reader computing resources, the metadata database;

exporting the received data to a storage location based on the version stamp and partition identifier, the plurality of readers being assigned based on partition identifiers;

ingesting the exported data into a journal table in the database; and

providing the exported data in the journal table accessible for query processing before the exported data is merged with a snapshot table.

11. The machine-storage medium of claim 10 , wherein the partition identifier is generated using data identification and account identification values.

12. The machine-storage medium of claim 11 , wherein generating the partition identifier includes hashing the data identification and account identification values.

13. The machine-storage medium of claim 10 , further comprising:

changing a number of partitions, including:

setting a first number of partitions;

detecting a change in usage conditions;

based on the detected change in usage conditions, setting a second number partitions to go into effect at a specified time; and

assigning the plurality of reader computing resources based on the second number of partitions to scan the metadata database starting at the specified time.

14. The machine-storage medium of claim 13 , further comprising:

assigning the one or more writer computing resources to write new data to the second number partitions starting at the specified time plus a delay.

15. The machine-storage medium of claim 10 , further comprising:

changing a number of reader computing resources, the changing of the number of reader computing resources including:

setting a first number of reader computing resources;

detecting a change in usage conditions; and

based on the detected change in usage conditions, setting a second number of reader computing resources, wherein the second number of computing resources is set to go into effect based on a checkpoint relating to version stamp values.

16. The machine-storage medium of claim 10 , further comprising:

receiving a notification from the storage location indicating that the exported data is stored in the storage location; and

in response to the notification, ingesting the exported data from the storage location into a database.

17. The machine-storage medium of claim 16 , further comprising:

merging, by a background service, the exported data from the journal table into the snapshot table.

18. The machine-storage medium of claim 10 , wherein the version stamp is a monotonic increasing register value.

19. A system comprising:

at least one hardware processor; and

at least one memory storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising:

receiving data into a metadata database;

generating a version stamp for the received data;

generating a partition identifier for the received data, the partition identifier being based on one or more attribute values of the received data;

writing, by one or more writer computing resources, the received data into the metadata database with the version stamp and partition identifier;

scanning, by a plurality of reader computing resources, the metadata database;

exporting the received data to a storage location based on the version stamp and partition identifier, the plurality of readers being assigned based on partition identifiers;

ingesting the exported data into a journal table in the database; and

providing the exported data in the journal table accessible for query processing before the exported data is merged with a snapshot table.

20. The system of claim 19 , wherein the partition identifier is generated using data identification and account identification values.

21. The system of claim 20 , wherein generating the partition identifier includes hashing the data identification and account identification values.

22. The system of claim 19 , the operations further comprising:

changing a number of partitions, including:

setting a first number of partitions;

detecting a change in usage conditions;

based on the detected change in usage conditions, setting a second number partitions to go into effect at a specified time; and

assigning the plurality of reader computing resources based on the second number of partitions to scan the metadata database starting at the specified time.

23. The system of claim 22 , the operations further comprising:

assigning the one or more writer computing resources to write new data to the second number partitions starting at the specified time plus a delay.

24. The system of claim 19 , the operations further comprising:

changing a number of reader computing resources, the changing of the number of reader computing resources including:

setting a first number of reader computing resources;

detecting a change in usage conditions; and

based on the detected change in usage conditions, setting a second number of reader computing resources, wherein the second number of computing resources is set to go into effect based on a checkpoint relating to version stamp values.

25. The system of claim 19 , the operations further comprising:

receiving a notification from the storage location indicating that the exported data is stored in the storage location; and

in response to the notification, ingesting the exported data from the storage location into a database.

26. The system of claim 25 , the operations further comprising:

merging, by a background service, the exported data from the journal table into the snapshot table.

27. The system of claim 19 , wherein the version stamp is a monotonic increasing register value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2023
From: GUPTA, DHIRAJ; MURALIDHAR, SUBRAMANIAN
To: SNOWFLAKE INC.
Reel/Frame 064720/0805 →
Continuity (3)
Continuation 17809931 · Jun 30, 2022
Continuation 17648228 · Jan 18, 2022
Related Publication 20230401235A1 · Dec 14, 2023
References Cited (18)
US 11055280B2 · Huang et al. · 2021 [cited by applicant]
US 11487788B1 · Gupta et al. · 2022 [cited by applicant]
US 11775563B2 · Gupta et al. · 2023 [cited by applicant]
US 20120233418A1 · Barton · 2012 [cited by examiner]
US 20120233668A1 · Leafe · 2012 [cited by examiner]
US 20160267105A1 · Sun · 2016 [cited by examiner]
US 20190163754A1 · Huang · 2019 [cited by examiner]
US 20200272628A1 · Dageville · 2020 [cited by examiner]
US 20200272637A1 · Motivala · 2020 [cited by examiner]
US 20210385085A1 · Wang · 2021 [cited by examiner]
US 20220043807A1 · Dwivedi · 2022 [cited by examiner]
US 20230229672A1 · Gupta et al. · 2023 [cited by applicant]
“U.S. Appl. No. 17/648,228, Non Final Office Action mailed Mar. 29, 2022”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 17/648,228, Notice of Allowance mailed Jul. 15, 2022”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/648,228, Response filed Jun. 29, 2022 to Non Final Office Action mailed Mar. 29, 2022”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/809,931, Non Final Office Action mailed Feb. 10, 2023”, 18 pgs. [cited by applicant]
“U.S. Appl. No. 17/809,931, Notice of Allowance mailed May 31, 2023”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 17/809,931, Response filed May 10, 2023 to Non Final Office Action mailed Feb. 10, 2023”, 9 pgs. [cited by applicant]