IP Library Granted Patent US 8,538,994
Granted Patent B2
US 8,538,994 · App. 13/286,055 · Granted Sep 17, 2013

Methods and procedures to provide complete test copy environment of hosted applications

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 8,538,994
App. No.
13/286,055
Granted
Sep 17, 2013
Kind
B2
Abstract

Systems and methods that create a duplicate database instance on which database testing may be performed. The techniques for creating a test database instance enable database testing to proceed without impacting other organization's access to their data in the database or corrupting an organization's data. The ability to allow one organization (“org”) to test their portion of a database without interrupting other organizations from using their portions of the database enables a database system to support more than one organization as tenants.

Claims (52)

1. A method of creating a test database instance from a database instance, the method comprising:

receiving a request to create a test database instance for a first database instance on a source system, the request received from a requestor at a first organization and the request identifying a portion of the first database instance that the requestor at the first organization is permitted to access;

queuing the request to a processing queue;

handling the request from the processing queue by copying the portion of the first database instance to a target system so as to form the test database instance on the target system, while processing at least one other request to access other portion(s) of the first database instance received from other requestor(s) at other organization(s); and

directing test-related requests from requestor(s) at the first organization to the test database instance instead of the first database instance.

2. The method of claim 1 , wherein processing the request from the queue includes:

copying, by one or more tasks executing on the target system, at least one of set-up data and instance data over a database link between the source system and the target system.

3. The method of claim 1 , wherein the target system is the same as the source system.

4. The method of claim 3 , further comprising:

rewriting an identifier of an organization associated with the portion of the first database instance so that the test database instance can reside in the same database as the first database instance.

5. The method of claim 1 , wherein a process on the target system identifies polls the processing queue and recognizes the request as a copy request.

6. The method of claim 1 , further comprising:

providing a user configurable time window during which processing occurs.

7. The method of claim 1 , further comprising:

receiving a second request from the requestor at the first organization to create a second test database instance for the first database instance;

processing the second request while continuing to allow access to the first test database instance by copying the portion of the first database instance that the requestor at the first organization is permitted to access to the target system so as to form a second test database instance on the target system; and thereafter

directing subsequent test-related requests from requestor(s) at the first organization to the second test database instance in place of the first test database instance.

8. The method of claim 7 , further comprising:

deleting the first test database instance.

9. The method of claim 1 , wherein the first database instance comprises multiple database tables, and processing the request by copying the portion of the first database instance to a target system so as to form the test database instance on the target system includes:

copying table-by-table asynchronously.

10. The method of claim 9 , wherein copying table-by-table asynchronously includes:

copying at least two database tables concurrently using at least two copy process threads.

11. The method of claim 10 , further comprising:

configuring a number of tables that are concurrently copied according to a user request.

12. The method of claim 11 , wherein processing the request by copying the portion of the first database instance to a target system so as to form the test database instance on the target system includes:

setting tokens representing copy milestones, and resuming interrupted copy processing at a point determined by accessing the tokens.

13. A machine-readable medium carrying one or more sequences of instructions for creating a test database instance from a database instance in a multi-tenant database system, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:

receiving a request to create a test database instance for a first database instance on a source system, the request received from a requestor at a first organization and the request identifying a portion of the first database instance that the requestor at the first organization is permitted to access;

queuing the request to a processing queue;

handling the request from the processing queue by copying the portion of the first database instance to a target system so as to form the test database instance on the target system, while processing at least one other request to access other portion(s) of the first database instance received from other requestor(s) at other organization(s); and

directing test-related requests from requestor(s) at the first organization to the test database instance instead of the first database instance.

14. The machine-readable medium as recited in claim 13 , wherein the instructions for carrying out the step of handling the request by copying the portion of the first database instance to a target system so as to form the test database instance on the target system include instructions for carrying out the step of:

copying, by one or more tasks executing on the target system, at least one of set-up data and instance data over a database link between the source system and the target system.

15. The machine-readable medium as recited in claim 13 , further comprising instructions for carrying out the step of:

rewriting an identifier of an organization associated with the portion of the first database instance so that the test database instance can reside in the same database as the first database instance.

16. The machine-readable medium as recited in claim 13 , wherein the instructions for carrying out the step of receiving a request to create a test database instance for a first database instance on a source system include instructions for carrying out the step of:

placing the request in a queue in the source system, wherein a process on the target system identifies the request as a pending copy request by polling the queue.

17. The machine-readable medium as recited in claim 13 , further comprising instructions for carrying out the step of:

providing a user configurable time window during which processing occurs.

18. The machine-readable medium as recited in claim 13 , further comprising instructions for carrying out the step of:

receiving a second request from the requestor at the first organization to create a second test database instance for the first database instance;

queuing the request to a processing queue;

handling the request from the processing queue by copying the portion of the first database instance to a target system so as to form the test database instance on the target system, while processing at least one other request to access other portion(s) of the first database instance received from other requestor(s) at other organization(s); and

directing test-related requests from requestor(s) at the first organization to the test database instance instead of the first database instance.

19. An apparatus for creating a test database instance from a database instance in a multi-tenant database, the apparatus comprising:

a processor; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:

receiving a request to create a test database instance for a first database instance on a source system, the request received from a requestor at a first organization and the request identifying a portion of the first database instance that the requestor at the first organization is permitted to access;

queuing the request to a processing queue;

handling the request from the processing queue by copying the portion of the first database instance to a target system so as to form the test database instance on the target system, while processing at least one other request to access other portion(s) of the first database instance received from other requestor(s) at other organization(s); and

directing test-related requests from requestor(s) at the first organization to the test database instance instead of the first database instance.

Assignments (2)
CHANGE OF NAME Recorded Oct 25, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2013
From: CHASMAN, DOUGLAS; SOBLE, DANIEL
To: SALESFORCE.COM, INC.
Reel/Frame 031010/0658 →