IP Library › Granted Patent US 12,737,383
Granted Patent B2
US 12,737,383 · App. 18/990,942 · Granted Sep 15, 2026

Pluggable replication framework

Inventors: Harminter Singh Atwal (Bothell, WA); Loc Duc Bui (Bellevue, WA); Hitesh Madan (Seattle, WA); Nithin Mahesh (Kirkland, WA); Siddarth Ramadoss (Kirkland, WA); Subramanian Sankara Subramanian (Mercer Island, WA); Batuhan Tasdoven (Bellevue, WA)
Assignee: Snowflake Inc.
G06F16/27
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,737,383
App. No.
18/990,942
Granted
Sep 15, 2026
Kind
B2
Abstract

A replication engine is provided that receives a set of interface implementations from features in a distributed data platform, where each interface implementation provides replication constraints. The replication engine constructs a dependency graph based on relationships between the features using the replication constraints and determines a synchronization order for replication operations using the dependency graph. The replication engine executes the replication operations according to the determined synchronization order by coordinating between multiple handlers including a snapshot handler for primary-side operations, an association handler for managing cross-cutting relationships, and a synchronization handler for secondary-side operations.

Claims (81)

1 . A machine-implemented method, comprising:

receiving an interface implementation from a feature in a distributed data platform, the feature implementing the interface implementation, the interface implementation providing a set of replication constraints for the feature, the set of replication constraints comprising a set of entity type definitions and a set of dependency declarations that specify relationships between entity types of the feature;

constructing, by a dependency graph generator, a dependency graph based on relationships of the feature using the set of replication constraints by processing metadata from the interface implementation to identify parent-child relationships, nested relationships, and associated entity relationships between the entity types;

determining a synchronization order for a set of replication operations using the dependency graph by performing a topological sorting of the dependency graph by assigning priorities to different edge types in the dependency graph and resolving cyclic dependencies by delaying processing of edges to subsequent processing passes using the assigned priorities; and

executing the set of replication operations according to the determined synchronization order by coordinating between a snapshot handler capturing snapshot data from a primary system and a synchronization handler applying changes to a secondary system to maintain consistency between the primary system and the secondary system during replication.

2 . The machine-implemented method of claim 1 , wherein the topological sorting of the dependency graph further comprises:

grouping entities of the dependency graph that exhibit a same replication behavior into a replicated entity type group;

building a list of incoming and outgoing dependencies for each replicated entity type group;

assigning assigned priorities to different edge types in the dependency graph using the list of incoming and outgoing dependencies; and

resolving cyclic dependencies by delaying processing of edges to subsequent processing passes using the assigned priorities.

3 . The machine-implemented method of claim 2 , wherein assigning assigned priorities comprises:

assigning a parent-child relationship a first priority;

assigning a container-nested relationship a second priority; and

assigning an associated entity relationship to a third priority.

4 . The machine-implemented method of claim 1 , wherein executing a replication operation of the set of replication operations comprises:

capturing snapshot data through a snapshot handler;

managing cross-cutting relationships through an association handler; and

controlling synchronization through a synchronization handler.

5 . The machine-implemented method of claim 4 , further comprising:

determining batch sizes for replication operations based on system resources; and

grouping similar entity types for batch processing.

6 . The machine-implemented method of claim 5 , wherein determining batch sizes comprises:

evaluating system resource availability; and

adjusting the batch sizes dynamically.

7 . The machine-implemented method of claim 1 , further comprising:

tracking replication metrics; and

validating replication completion using the replication metrics.

8 . The machine-implemented method of claim 1 , further comprising:

negotiating a set of parameters between the primary system and the secondary system before executing the set of replication operations, the negotiating comprising validating that parameters controlling replication behavior are configured on both the primary system and the secondary system; and

withholding replication of an entity responsive to determining that a parameter controlling replication behavior for the entity is disabled on the primary system or the secondary system.

9 . The machine-implemented method of claim 1 , wherein resolving the cyclic dependencies comprises performing a staged initialization process comprising:

initializing basic attributes of a first entity of a cyclic dependency, the basic attributes not having dependencies on other entities;

initializing basic attributes and referential attributes of a second entity of the cyclic dependency, the referential attributes of the second entity referencing the initialized basic attributes of the first entity; and

establishing referential attributes of the first entity that reference the initialized basic attributes of the second entity.

10 . A system comprising:

at least one processor; and

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

receiving an interface implementation from a feature in a distributed data platform, the feature implementing the interface implementation, the interface implementation providing a set of replication constraints for the feature, the set of replication constraints comprising a set of entity type definitions and a set of dependency declarations that specify relationships between entity types of the feature;

constructing a dependency graph based on relationships of the feature using the set of replication constraints by processing metadata from the interface implementation to identify parent-child relationships, nested relationships, and associated entity relationships between the entity types;

determining a synchronization order for a set of replication operations using the dependency graph by performing a topological sorting of the dependency graph by assigning priorities to different edge types in the dependency graph and resolving cyclic dependencies by delaying processing of edges to subsequent processing passes using the assigned priorities; and

executing the set of replication operations according to the determined synchronization order by coordinating between a snapshot handler capturing snapshot data from a primary system and a synchronization handler applying changes to a secondary system to maintain consistency between the primary system and the secondary system during replication.

11 . The system of claim 10 , wherein the topological sorting of the dependency graph further comprises:

grouping entities of the dependency graph that exhibit a same replication behavior into a replicated entity type group;

building a list of incoming and outgoing dependencies for each replicated entity type group;

assigning assigned priorities to different edge types in the dependency graph using the list of incoming and outgoing dependencies; and

resolving cyclic dependencies by delaying processing of edges to subsequent processing passes using the assigned priorities.

12 . The system of claim 11 , wherein assigning assigned priorities comprises:

assigning a parent-child relationship a first priority;

assigning a container-nested relationship a second priority; and

assigning an associated entity relationship to a third priority.

13 . The system of claim 10 , wherein executing a replication operation of the set of replication operations comprises:

capturing snapshot data through a snapshot handler;

managing cross-cutting relationships through an association handler; and

controlling synchronization through a synchronization handler.

14 . The system of claim 13 , wherein the operations further comprise:

adjusting batch sizes dynamically by performing operations comprising:

generating a grouping of similar entity types for batch processing;

evaluating system resource availability; and

determining the batch sizes for replication operations based on the system resource availability and the grouping.

15 . The system of claim 10 , wherein the operations further comprise:

tracking replication metrics; and

validating replication completion using the replication metrics.

16 . The system of claim 10 , wherein the operations further comprise:

negotiating a set of parameters between the primary system and the secondary system before executing the set of replication operations, the negotiating comprising validating that parameters controlling replication behavior are configured on both the primary system and the secondary system; and

withholding replication of an entity responsive to determining that a parameter controlling replication behavior for the entity is disabled on the primary system or the secondary system.

17 . The system of claim 10 , wherein resolving the cyclic dependencies comprises performing a staged initialization process comprising:

initializing basic attributes of a first entity of a cyclic dependency, the basic attributes not having dependencies on other entities;

initializing basic attributes and referential attributes of a second entity of the cyclic dependency, the referential attributes of the second entity referencing the initialized basic attributes of the first entity; and

establishing referential attributes of the first entity that reference the initialized basic attributes of the second entity.

18 . A machine-storage medium storing instructions that, when executed by one or more processors of a system, cause the system to perform operations comprising:

receiving an interface implementation from a feature in a distributed data platform, the feature implementing the interface implementation, the interface implementation providing a set of replication constraints for the feature, the set of replication constraints comprising a set of entity type definitions and a set of dependency declarations that specify relationships between entity types of the feature;

constructing a dependency graph based on relationships of the feature using the set of replication constraints by processing metadata from the interface implementation to identify parent-child relationships, nested relationships, and associated entity relationships between the entity types;

determining a synchronization order for a set of replication operations using the dependency graph by performing a topological sorting of the dependency graph by assigning priorities to different edge types in the dependency graph and resolving cyclic dependencies by delaying processing of edges to subsequent processing passes using the assigned priorities; and

executing the set of replication operations according to the determined synchronization order by coordinating between a snapshot handler capturing snapshot data from a primary system and a synchronization handler applying changes to a secondary system to maintain consistency between the primary system and the secondary system during replication.

19 . The machine-storage medium of claim 18 , wherein the operations further comprise:

negotiating a set of parameters between the primary system and the secondary system before executing the set of replication operations, the negotiating comprising validating that parameters controlling replication behavior are configured on both the primary system and the secondary system; and

withholding replication of an entity responsive to determining that a parameter controlling replication behavior for the entity is disabled on the primary system or the secondary system.

20 . The machine-storage medium of claim 18 , wherein resolving the cyclic dependencies comprises performing a staged initialization process comprising:

initializing basic attributes of a first entity of a cyclic dependency, the basic attributes not having dependencies on other entities;

initializing basic attributes and referential attributes of a second entity of the cyclic dependency, the referential attributes of the second entity referencing the initialized basic attributes of the first entity; and

establishing referential attributes of the first entity that reference the initialized basic attributes of the second entity.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTORSHIP BY INCLUDING INVENTOR TASDOVEN WHO WAS INADVERTENTLY LEFT OFF WHEN PREVIOUSLY RECORDED ON REEL 70535 FRAME 312. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 20, 2025
From: ATWAL, HARMINTER SINGH; BUI, LOC DUC; MADAN, HITESH; MAHESH, NITHIN; RAMADOSS, SIDDARTH; SANKARA SUBRAMANIAN, SUBRAMANIAN; TASDOVEN, BATUHAN
To: SNOWFLAKE INC.
Reel/Frame 073640/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2025
From: ATWAL, HARMINTER SINGH; BUI, LOC DUC; MADAN, HITESH; MAHESH, NITHIN; RAMADOSS, SIDDARTH; SANKARA SUBRAMANIAN, SUBRAMANIAN
To: SNOWFLAKE INC.
Reel/Frame 070535/0312 →
Continuity (1)
Related Publication 20260178610A1 · Jun 25, 2026
References Cited (11)
US 11481440B2 · Yurchenko · 2022 [cited by examiner]
US 20120079502A1 · Kwan · 2012 [cited by examiner]
US 20150269215A1 · Lehouillier · 2015 [cited by examiner]
US 20170277437A1 · Jones · 2017 [cited by examiner]
US 20170288940A1 · Lagos · 2017 [cited by examiner]
US 20180144038A1 · Newhouse · 2018 [cited by examiner]
US 20220066996A1 · Efimov · 2022 [cited by examiner]
US 20230087447A1 · Li · 2023 [cited by examiner]
US 20230185825A1 · Gernhardt · 2023 [cited by examiner]
US 20250036661A1 · Wu · 2025 [cited by examiner]
Wikipedia, “Solid”, [Online]. Retrieved from the Internet: <https://web.archive.org/web/20241016023137/https://en.wikipedia.org/wiki/SOLID>, (Wayback Machine snapshot Oct. 16, 2024), 2 pages. [cited by applicant]