IP Library Granted Patent US 8,762,329
Granted Patent B2
US 8,762,329 · App. 13/475,893 · Granted Jun 24, 2014

Method and system for synchronizing a server and an on-demand database service

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,762,329
App. No.
13/475,893
Granted
Jun 24, 2014
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for synchronizing a server and an on-demand database service. These mechanisms and methods for synchronizing a server and an on-demand database service can enable embodiments to synchronize a larger amount of data. The ability of embodiments to provide such feature can enable more effective synchronization of a user-level sharing entity database with a multi-user on-demand database service.

Claims (43)

1. A method, comprising:

receiving a request to update data of a user of a multi-user on-demand database service, wherein the data of the user is stored by the on-demand database service on a multi-tenant on-demand database system;

identifying data stored by a first server separate from the on-demand database service, the data being relevant to the user;

utilizing a data structure stored on a non-transitory computer readable storage medium to determine, by a processor, a difference between the data stored on the first server and the data stored by the on-demand database service,

wherein the data structure includes:

a plurality of user identifiers, wherein each user identifier identifies one of a plurality of users of the on-demand database service, and

a plurality of data identifiers, wherein each data identifier correlates with at least one of the user identifiers and identifies data accessible to the user associated with the correlated user identifier; and

periodically and/or on-demand, synchronizing the first server and the on-demand database service, based on the determined difference, wherein the synchronizing includes updating the data stored by the on-demand database service with at least a portion of the data stored by the first server that is determined to be different from the data stored by the on-demand database service.

2. The method of claim 1 , wherein the first server communicates data to at least one second server.

3. The method of claim 2 , wherein the on-demand database service communicates data to a third server.

4. The method of claim 3 , wherein the at least one second server includes at least one slave server, and the third server includes a master server.

5. The method of claim 3 , wherein a plurality of the second servers are included.

6. The method of claim 5 , wherein each of the second servers is allocated to a different subset of the users.

7. The method of claim 3 , wherein the at least one second server and the third server each communicate with a database server.

8. The method of claim 7 , wherein the database server is coupled between the at least one second server and the third server.

9. The method of claim 7 , wherein the computer readable medium is a component of the database server.

10. The method of claim 3 , wherein the first server and the second server communicate utilizing a collaborative authoring protocol.

11. The method of claim 3 , wherein the third server and the on-demand database service communicate utilizing a web service.

12. The method of claim 1 , wherein the difference is determined by identifying a subset of the data that is accessible to the user, utilizing the data structure.

13. The method of claim 12 , wherein the difference is further determined by comparing a current state of the data subset with a previous state of the data subset.

14. The method of claim 1 , wherein the data structure includes a first table.

15. The method of claim 14 , wherein a second table includes the data identifiers each correlated with corresponding data.

16. The method of claim 15 , wherein the second table is used in conjunction with the first table for access the data using the user identifiers.

17. The method of claim 1 , wherein the first server includes a user-level sharing entity.

18. The method of claim 1 , wherein the first server is a mail server and the identified data stored by the mail server that is relevant to the user includes contact information.

19. A non-transitory machine-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to carry out the steps of:

receiving a request to update data of a user of a multi-user on-demand database service, wherein the data of the user is stored by the on-demand database service on a multi-tenant on-demand database system;

identifying data stored by a first server separate from the on-demand database service, the data being relevant to the user;

utilizing a data structure stored on a non-transitory computer readable storage medium to determine a difference between the data stored on the first server and the data stored by the on-demand database service,

wherein the data structure includes:

a plurality of user identifiers, wherein each user identifier identifies one of a plurality of users of the on-demand database service, and

a plurality of data identifiers, wherein each data identifier correlates with at least one of the user identifiers and identifies data accessible to the user associated with the correlated user identifier; and

periodically and/or on-demand, synchronizing the first server and the on-demand database service, based on the determined difference, wherein the synchronizing includes updating the data stored by the on-demand database service with at least a portion of the data stored by the first server that is determined to be different from the data stored by the on-demand database service.

20. An 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 update data of a user of a multi-user on-demand database service, wherein the data of the user is stored by the on-demand database service on a multi-tenant on-demand database system;

identifying data stored by a first server separate from the on-demand database service, the data being relevant to the user;

utilizing a data structure stored on a non-transitory computer readable storage medium to determine a difference between the data stored on the first server and the data stored by the on-demand database service,

wherein the data structure includes:

a plurality of user identifiers, wherein each user identifier identifies one of a plurality of users of the on-demand database service, and

a plurality of data identifiers, wherein each data identifier correlates with at least one of the user identifiers and identifies data accessible to the user associated with the correlated user identifier; and

periodically and/or on-demand, synchronizing the first server and the on-demand database service, based on the determined difference, wherein the synchronizing includes updating the data stored by the on-demand database service with at least a portion of the data stored by the first server that is determined to be different from the data stored by the on-demand database service.

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 May 12, 2014
From: SALMON, GREG; HOPKINS, CHRIS; VERMA, ANANT; COLLINS, JESSE; WEISSMAN, CRAIG
To: SALESFORCE.COM, INC.
Reel/Frame 032873/0072 →