IP Library Granted Patent US 9,720,951
Granted Patent B2
US 9,720,951 · App. 14/936,535 · Granted Aug 1, 2017

Reducing database downtime

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,720,951
App. No.
14/936,535
Granted
Aug 1, 2017
Kind
B2
Abstract

Embodiments enable reduction of database downtime in a live production environment of an on-demand database service during repair and/or maintenance tasks. A source database and a target database are provided. Data is copied from the source database to the target database to create a mirrored set of data. Access is limited to one or more designated tables in the target database. General traffic is redirected from the source database to the target database, wherein the redirection occurs for a duration of a maintenance period. Data modifications that occur in the target database during the maintenance period are captured and then replicated into the source database. Finally, general traffic is redirected from the target database to the source database.

Claims (48)

1. A method comprising:

copying data, using one or more processors associated with one or more servers, from a source database to a target database to create a mirrored set of data;

limiting access to a subset of one or more selected tables in the target database;

redirecting general traffic from the source database to the target database, wherein the redirection occurs for a period of time during which maintenance operations are performed on the source database, wherein redirecting general traffic comprises concurrently permitting the administrative traffic to access the source database while redirecting the general traffic from the source database to the target database by determining whether a request is related to general traffic or administrative traffic based on a device address corresponding to a request;

capturing, using the one or more processors associated with the one or more servers, data modifications occurring in the target database during the period of time to be applied to the source database after the period of time;

replicating, using the one or more processors associated with the one or more servers, the data modifications into the source database; and

redirecting general traffic from the target database to the source database after the period of time.

2. The method of claim 1 , wherein the general traffic comprises requests received via one of a web server, an application server, a function call to an application programming interface, and a local application.

3. The method of claim 1 , wherein limiting access to a table comprises permitting only read access.

4. The method of claim 1 , further comprising:

receiving a request via general traffic related to a table designated for limited access; and

transmitting information to display an indication that access to information is limited.

5. The method of claim 4 , wherein the indication that access to information is limited comprises modifying or removing a button or link to permit edits to information.

6. The method of claim 1 , wherein copying data from the source database to the target database comprises continually updating the target database in real-time until a cutover process is initiated.

7. The method of claim 1 , wherein copying data from the source database to the target database comprises one or more batch processes performed prior to redirecting general traffic from the source database to the target database.

8. The method of claim 1 , further comprising concurrently permitting the administrative traffic to access the source database while redirecting the general traffic from the source database to the target database.

9. The method of claim 8 , further comprising determining whether a request is related to general traffic or administrative traffic based on the IP address of the request.

10. The method of claim 1 , wherein replicating the data modifications into the source database comprises mapping data in accordance with differences between a data schema of the source database and a data schema of the target database.

11. A system for reducing database downtime for online applications, the system comprising:

a network interface;

one or more servers, including one or more processors coupled with the network interface, the one or more processors to copy data from a source database to a target database to create a mirrored set of data, to limit access to a subset of one or more selected tables in the target database, wherein the one or more tables are selected based, at least in part, on row ownership, to redirect general traffic from the source database to the target database, wherein the redirection occurs for a period of time during which maintenance operations are performed on the source database, wherein redirecting general traffic comprises concurrently permitting the administrative traffic to access the source database while redirecting the general traffic from the source database to the target database by determining whether a request is related to general traffic or administrative traffic based on a device address corresponding to a request, to capture data modifications occurring in the target database during the period of time to be applied to the source database after the period of time, to replicate the data modifications into the source database, and to redirect general traffic from the target database to the source database after the period of time.

12. The system of claim 11 , wherein the general traffic comprises requests received via one of a web server, an application server, a function call to an application programming interface, and a local application.

13. The system of claim 11 , wherein limiting access to a table comprises permitting only read access.

14. The system of claim 11 , wherein the one or more servers are further configured to receive a request via general traffic related to a table designated for limited access, and to transmit information to display an indication that access to information is limited.

15. The system of claim 14 , wherein the indication that access to information is limited comprises modifying or removing a button or link to permit edits to information.

16. The system of claim 11 , wherein copying data from the source database to the target database comprises continually updating the target database in real-time until a cutover process is initiated.

17. The system of claim 11 , wherein copying data from the source database to the target database comprises one or more batch processes performed prior to redirecting general traffic from the source database to the target database.

18. The system of claim 11 , further comprising concurrently permitting the administrative traffic to access the source database while redirecting the general traffic from the source database to the target database.

19. The system of claim 18 , further comprising determining whether a request is related to general traffic or administrative traffic based on the IP address of the request.

20. The method of claim 1 , wherein replicating the data modifications into the source database comprises mapping data in accordance with differences between a data schema of the source database and a data schema of the target database.

21. A non-transitory computer-readable medium having stored thereon instructions that, when executed, cause one or more processors to:

copy data, using one or more processors associated with one or more servers, from a source database to a target database to create a mirrored set of data;

limit access to a subset of one or more selected tables in the target database, wherein the one or more tables are selected based, at least in part, on row ownership;

redirect general traffic from the source database to the target database, wherein the redirection occurs for a period of time during which maintenance operations are performed on the source database, wherein redirecting general traffic comprises concurrently permitting the administrative traffic to access the source database while redirecting the general traffic from the source database to the target database by determining whether a request is related to general traffic or administrative traffic based on a device address corresponding to a request;

capture, using the one or more processors associated with the one or more servers, data modifications occurring in the target database during the period of time to be applied to the source database after the period of time;

replicate the data modifications into the source database; and

redirect general traffic from the target database to the source database after the period of time.

22. The non-transitory computer-readable medium of claim 21 , wherein the general traffic comprises requests received via one of a web server, an application server, a function call to an application programming interface, and a local application.

23. The non-transitory computer-readable medium of claim 21 , wherein limiting access to a table comprises permitting only read access.

24. The non-transitory computer-readable medium of claim 21 , further comprising instructions that, when executed, cause the one or more processors to:

receive a request via general traffic related to a table designated for limited access; and

transmit information to display an indication that access to information is limited.

25. The non-transitory computer-readable medium of claim 24 , wherein the indication that access to information is limited comprises modifying or removing a button or link to permit edits to information.

26. The non-transitory computer-readable medium of claim 21 , wherein copying data from the source database to the target database comprises continually updating the target database in real-time until a cutover process is initiated.

27. The non-transitory computer-readable medium of claim 21 , wherein copying data from the source database to the target database comprises one or more batch processes performed prior to redirecting general traffic from the source database to the target database.

28. The non-transitory computer-readable medium of claim 21 , further comprising instructions that, when executed, cause the one or more processors to concurrently permit the administrative traffic to access the source database while redirecting the general traffic from the source database to the target database.

29. The non-transitory computer-readable medium of claim 28 , further comprising instructions that, when executed, cause the one or more processors to determine whether a request is related to general traffic or administrative traffic based on the IP address of the request.

30. The non-transitory computer-readable medium of claim 21 , wherein replicating the data modifications into the source database comprises mapping data in accordance with differences between a data schema of the source database and a data schema of the target database.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069430/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2015
From: YANCEY, SCOTT W; JAIN, CHANDNI; NOORTHOEK, GERARD
To: SALESFORCE.COM, INC.
Reel/Frame 037011/0382 →