IP Library Granted Patent US 9,824,130
Granted Patent B1
US 9,824,130 · App. 14/106,506 · Granted Nov 21, 2017

Optimizing synchronization of enterprise content management systems

Inventors: Dmitry Y. Korshunov (Pleasanton, CA); Dmitry Volchegursky (Pleasanton, CA); Shu-Shang Sam Wei (Danville, CA); Linda J. Wong (Dublin, CA); Dmitry Limonov (Dublin, CA); Boris Shpilyuck (Dublin, CA)
Assignee: Open Text Corporation
G06F17/30575
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 9,824,130
App. No.
14/106,506
Filed
Dec 13, 2013
Granted
Nov 21, 2017
Kind
B1
Art Unit
2157
USPC
707/610
Abstract

Optimizing synchronization of enterprise content management systems is described. A system identifies multiple synchronization intervals corresponding to multiple synchronization tasks. The system estimates multiple execution times corresponding to the multiple synchronization tasks. The system calculates multiple remaining times corresponding to the multiple synchronization tasks, wherein the multiple remaining times are based on the multiple synchronization intervals corresponding to the multiple synchronization tasks minus the multiple execution times corresponding to the multiple synchronization tasks. The system orders the multiple synchronization tasks for execution based on corresponding multiple remaining times, from a lowest remaining time to a highest remaining time. The system executes a set of the multiple synchronization tasks based on a corresponding set of the multiple remaining times, wherein at least one of the corresponding set of the multiple remaining times equals the lowest remaining time.

Claims (49)

1. A system for optimizing synchronization of enterprise content management systems, the system comprising:

a processor; and

a processor-based application executed by the processor which cause the processor to:

identify a plurality of synchronization intervals corresponding to a plurality of synchronization tasks for synchronizing content changes between a first database associated with a content management system and a second database;

identify a plurality of estimated execution times corresponding to the plurality of synchronization tasks;

calculate a plurality of remaining times corresponding to the plurality of synchronization tasks, wherein the plurality of remaining times is based on the plurality of synchronization intervals corresponding to the plurality of synchronization tasks minus the plurality of estimated execution times corresponding to the plurality of synchronization tasks;

order the plurality of synchronization tasks for execution based on the corresponding plurality of remaining times, from a lowest remaining time to a highest remaining time;

execute a set of the plurality of synchronization tasks based on a corresponding set of the plurality of remaining times to change one or more objects in the second database based on a change to one or more objects in the first database, wherein at least one of the corresponding set of the plurality of remaining times comprises the lowest remaining time.

2. The system of claim 1 , wherein the plurality of synchronization intervals is based on a corresponding plurality of service level agreements.

3. The system of claim 1 , wherein estimating the plurality of estimated execution times is based on at least one of a time of day and a plurality of synchronization task types.

4. The system of claim 1 , wherein ordering the plurality of synchronization tasks for execution based on the corresponding plurality of remaining times further comprises ordering a first synchronization task corresponding to a first remaining time before a second synchronization task corresponding to a second remaining time that equals the first remaining time based on the first synchronization task corresponding to a first synchronization interval and the second synchronization task corresponding to a second synchronization interval, wherein the first synchronization interval is less than the second synchronization interval.

5. The system of claim 1 , wherein executing the set of the plurality of synchronization tasks comprises:

decrementing each of the plurality of remaining times periodically based on a passage of time;

determining whether a synchronization task of the plurality of synchronization tasks corresponds to an execution time that is less than an execution time threshold;

ordering the synchronization task before other synchronization tasks of the plurality of synchronization tasks in response to a determination that the synchronization task corresponds to the execution time that is less than the execution time threshold; and

executing the set of the plurality of synchronization tasks based on the corresponding set of the plurality of remaining times and the execution time that is less than the execution time threshold.

6. The system of claim 1 , wherein the set of the plurality of synchronization tasks comprises a number of synchronization tasks that equals a number of available system synchronization agents.

7. The system of claim 1 , wherein each of the corresponding set of the plurality of remaining times is less than a remaining time threshold.

8. A computer-implemented method for optimizing synchronization of enterprise content management systems, the method comprising:

identifying a plurality of synchronization intervals corresponding to a plurality of synchronization tasks for synchronizing content changes between a first database associated with a content management system and a second database;

estimating a plurality of execution times corresponding to the plurality of synchronization tasks;

calculating a plurality of remaining times corresponding to the plurality of synchronization tasks, wherein the plurality of remaining times is based on the plurality of synchronization intervals corresponding to the plurality of synchronization tasks minus the estimated plurality of execution times corresponding to the plurality of synchronization tasks;

ordering the plurality of synchronization tasks for execution based on the corresponding plurality of remaining times, from a lowest remaining time to a highest remaining time;

executing a set of the plurality of synchronization tasks to change one or more objects in the second database based on a change to one or more objects in the first database, said executing based on a corresponding set of the plurality of remaining times, wherein at least one of the corresponding set of the plurality of remaining times comprises the lowest remaining time.

9. The computer-implemented method of claim 8 , wherein the plurality of synchronization intervals is based on a corresponding plurality of service level agreements.

10. The computer-implemented method of claim 8 , wherein estimating the plurality of execution times is based on at least one of a time of day and a plurality of synchronization task types.

11. The computer-implemented method of claim 8 , wherein ordering the plurality of synchronization tasks based on the corresponding plurality of remaining times further comprises executing a first synchronization task corresponding to a first remaining time before a second synchronization task corresponding to a second remaining time that equals the first remaining time based on the first synchronization task corresponding to a first synchronization interval and the second synchronization task corresponding to a second synchronization interval, wherein the first synchronization interval is less than the second synchronization interval.

12. The computer-implemented method of claim 8 , wherein executing the set of the plurality of synchronization tasks comprises:

decrementing each of the plurality of remaining times periodically based on a passage of time;

determining whether a synchronization task of the plurality of synchronization tasks corresponds to an execution time that is less than an execution time threshold;

ordering the synchronization task before other synchronization tasks of the plurality of synchronization tasks in response to a determination that the synchronization task corresponds to the execution time that is less than the execution time threshold; and

executing the set of the plurality of synchronization tasks based on the corresponding set of the plurality of remaining times and the execution time that is less than the execution time threshold.

13. The computer-implemented method of claim 8 , wherein the set of the plurality of synchronization tasks comprises a number of synchronization tasks that equals a number of available system synchronization agents.

14. The computer-implemented method of claim 8 , wherein each of the corresponding set of the plurality of remaining times is less than a remaining time threshold.

15. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

identify a plurality of synchronization intervals corresponding to a plurality of synchronization tasks for synchronizing content changes between a first database associated with a content management system and a second database;

estimate a plurality of execution times corresponding to the plurality of synchronization tasks;

calculate a plurality of remaining times corresponding to the plurality of synchronization tasks, wherein the plurality of remaining times is based on the plurality of synchronization intervals corresponding to the plurality of synchronization tasks minus the estimated plurality of execution times corresponding to the plurality of synchronization tasks;

order the plurality of synchronization tasks for execution based on the corresponding plurality of remaining times, from a lowest remaining time to a highest remaining time;

execute a set of the plurality of synchronization tasks based on a corresponding set of the plurality of remaining times to change one or more objects in the second database based on a change to one or more objects in the first database, wherein at least one of the corresponding set of the plurality of remaining times comprises the lowest remaining time.

16. The computer program product of claim 15 , wherein the plurality of synchronization intervals is based on a corresponding plurality of service level agreements.

17. The computer program product of claim 15 , wherein estimating the plurality of execution times is based on at least one of a time of day and a plurality of synchronization task types.

18. The computer program product of claim 15 , wherein ordering the plurality of synchronization tasks for execution based on the corresponding plurality of remaining times further comprises ordering a first synchronization task corresponding to a first remaining time before a second synchronization task corresponding to a second remaining time that equals the first remaining time based on the first synchronization task corresponding to a first synchronization interval and the second synchronization task corresponding to a second synchronization interval, wherein the first synchronization interval is less than the second synchronization interval.

19. The computer program product of claim 15 , wherein executing the set of the plurality of synchronization tasks comprises:

decrementing each of the plurality of remaining times periodically based on a passage of time;

determining whether a synchronization task of the plurality of synchronization tasks corresponds to an execution time that is less than an execution time threshold;

ordering the synchronization task before other synchronization tasks of the plurality of synchronization tasks in response to a determination that the synchronization task corresponds to the execution time that is less than the execution time threshold; and

executing the set of the plurality of synchronization tasks based on the corresponding set of the plurality of remaining times and the execution time that is less than the execution time threshold.

20. The computer program product of claim 15 , wherein the set of the plurality of synchronization tasks comprises a number of synchronization tasks that equals a number of available system synchronization agents, and wherein each of the corresponding set of the plurality of remaining times is less than a remaining time threshold.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041140/0254 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2014
From: KORSHUNOV, DMITRY Y.; VOLCHEGURSKY, DMITRY; WEI, SHU-SHANG SAM; WONG, LINDA J.; LIMONOV, DMITRY; SHPILYUCK, BORIS
To: EMC CORPORATION
Reel/Frame 032237/0443 →