IP Library Granted Patent US 11,575,746
Granted Patent B2
US 11,575,746 · App. 17/410,870 · Granted Feb 7, 2023

System and method for real-time cloud data synchronization using a database binary log

Inventor: Tinglan Kung (San Jose, CA)
Assignee: Zuora, Inc.
H04L67/1095G06F16/1865G06F16/2358G06F16/2365G06F16/24565H04L67/14
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 11,575,746
App. No.
17/410,870
Granted
Feb 7, 2023
Kind
B2
Abstract

A system synchronizes change-data in a multi-tenant system with one or more external service provider systems. The system comprises a system interface configured to receive transaction events; a write-optimized transactional database for recording the transaction events; a replicated read-optimized transactional database; a transaction log of change-data generated from the read-optimized transactional database; a first change-data processor configured to identify the change-data in the transaction log that is relevant to at least one external service provider system, and to generate an aggregate relevant change-data log; a second change-data processor configured to identify aggregate relevant change-data that is relevant to a particular external service provider system, and to generate a service provider relevant change-data log; a service provider connector configure to await a real-time trigger condition, and to, in response to the trigger condition, perform a synchronization session to synchronize the service provider relevant change-data with the particular external service provider system.

Claims (38)

1. A method of synchronizing change-data in a multi-tenant system with external service provider systems, the method comprising:

receiving transaction events in a write-optimized transactional database of a multi-tenant system;

replicating the transaction events in a read-optimized transactional database;

generating a transaction log of change-data from the read-optimized transactional database;

identifying the change-data in the transaction log that is relevant to at least one of a plurality of external service provider systems;

generating an aggregate relevant change-data log based on the change-data relevant to the at least one of the plurality of external service provider systems, the generating the aggregate relevant change-data log occurring asynchronously from the generating the transaction log;

identifying change-data in the aggregate relevant change-data log that is relevant to a particular external service provider system of the plurality of external service provider systems;

generating a service provider relevant change-data log based on the change-data relevant to the particular external service provider system, the generating the service provider relevant change-data log occurring asynchronously from the generating the aggregate relevant change-data log;

awaiting a trigger condition; and

in response to the trigger condition, performing a synchronization session to synchronize the change-data relevant to the particular external service provider system with the particular external service provider system.

2. The method of claim 1 , wherein the multi-tenant system is a subscription billing system, and wherein the particular external service provider system is one of a data warehouse system, a customer relationship management system, or a data analysis system.

3. The method of claim 1 , wherein the transaction log is a binary log.

4. The method of claim 3 , wherein the binary log is a row-based binary log.

5. The method of claim 1 , wherein the step of generating the aggregate relevant change-data log is performed by a master stage of a tungsten replicator.

6. The method of claim 5 , wherein the step of generating the service provider relevant change-data log is performed by a slave stage of the tungsten replicator.

7. The method of claim 1 , wherein the trigger condition includes a real-time trigger condition.

8. The method of claim 1 , wherein the trigger conditions includes a first trigger condition based on a number of data changes that occurred or a second trigger condition based on a clock-based time schedule.

9. The method of claim 1 , wherein the trigger condition is based on the particular external service provider system.

10. The method of claim 1 , wherein the particular external service provider system has an API-call limit, and wherein the trigger condition is configured to account for the API-call limit.

11. A system for synchronizing change-data in a multi-tenant system with external service provider systems, the system comprising:

memory;

at least one processor;

a system interface of a multi-tenant system, the system interface executable by the at least one processor and configured to receive transaction events;

a write-optimized transactional database for recording the transaction events;

a read-optimized transactional database that is replicated from the write-optimized transactional database;

a controller executable by the at least one processor and configured to generate a transaction log of change-data from the read-optimized transactional database;

a first change-data engine executable by the at least one processor and configured to identify the change-data in the transaction log that is relevant to at least one of a plurality of external service provider systems, and to generate an aggregate relevant change-data log based on the change-data relevant to the at least one of the plurality of external service provider systems, the first change-data engine configured to operate asynchronously from the controller;

a second change-data engine executable by the at least one processor and configured to identify change-data in the aggregate relevant change-data log that is relevant to a particular external service provider system of the plurality of external service provider systems, and to generate a service provider relevant change-data log based on the change-data relevant to the particular external service provider system, the second change-data engine configured to operate asynchronously from the first change-data engine;

a service provider connector executable by the at least one processor and configured to await for a trigger condition, and after the trigger condition to perform a synchronization session to synchronize the change-data relevant to the particular external service provider system with the particular external service provider system.

12. The system of claim 11 , wherein the multi-tenant system is a subscription billing system, and wherein the particular external service provider system is one of a data warehouse system, a customer relationship management system, or a data analysis system.

13. The system of claim 11 , wherein the transaction log is a binary log.

14. The system of claim 13 , wherein the binary log is a row-based binary log.

15. The system of claim 11 , wherein the first change-data engine includes a master stage of a tungsten replicator.

16. The system of claim 15 , wherein the second change-data engine includes a slave stage of the tungsten replicator.

17. The system of claim 11 , wherein the trigger condition includes a real-time trigger condition.

18. The system of claim 11 , wherein the trigger condition includes a first trigger condition based on a number of data changes that occurred or a second trigger condition based on a clock-based time schedule.

19. The system of claim 11 , wherein the trigger condition is based on the particular external service provider system.

20. The system of claim 11 , wherein the particular external service provider system has an API-call limit, and wherein the trigger condition is configured to account for the API-call limit.

Assignments (2)
SECURITY INTEREST Recorded Feb 14, 2025
From: ZUORA, INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 070236/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2021
From: KUNG, TINGLAN
To: ZUORA, INC.
Reel/Frame 057371/0988 →
Continuity (4)
Continuation 16399229 · Apr 30, 2019
Continuation 15132168 · Apr 18, 2016
Provisional Application 62149473 · Apr 17, 2015
Related Publication 20210385273A1 · Dec 9, 2021