IP Library Granted Patent US 11,494,410
Granted Patent B2
US 11,494,410 · App. 16/786,357 · Granted Nov 8, 2022

Sharing data in a data storage system

Inventors: Aditya S. Kuruganti (San Francisco, CA); Kedar Doshi (Palo Alto, CA); Chaitanya Bhatt (Union City, CA); William Moxley (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F16/273G06F16/27H04L67/1095
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,494,410
App. No.
16/786,357
Granted
Nov 8, 2022
Kind
B2
Abstract

In various embodiments, a data storage system maintains a data store for a plurality of groups of users, where the data store includes a first section that is accessible by a first group of users, but not a second group of users, via the data storage system. In response to receiving, from a first user of the first group of users, a request to share data with the second group of users, the data storage system sends a request to a second user of the second group of users. Subsequent to receiving an acceptance from the second user, the data is stored in a second object in a second section of the data store that is accessible by the second group of users, but not the first group of users, via the data storage system.

Claims (49)

1. A method, comprising:

maintaining, by a data storage system of a database service, a data store for a plurality of groups of users that includes a first group of users and a second group of users that both access the database service remotely, wherein the data store includes a first section that is accessible by the first, but not the second, group of users, and wherein the data store includes a second section that is accessible by the second, but not the first, group of users;

storing, by the data storage system, a first object in the first section of the data store;

in response to receiving, from a first user of the first group of users, a request to share data with the second group of users, the data storage system sending the request to a second user of the second group of users, wherein the request specifies one or more first data fields of the first object to be shared;

subsequent to receiving an acceptance of the request from the second user, storing, by the data storage system, data from the one or more first data fields of the first object in a second object in the second section of the data store; and

in response to detecting a change to at least one of the one or more first data fields of the first object, updating, by the data storage system, one or more second data fields of the second object.

2. The method of claim 1 , further comprising:

synchronizing, by the data storage system, a change made to the second object by updating the first object.

3. The method of claim 1 , further comprising:

creating, by the data storage system, the second object in response to the receiving the acceptance of the request.

4. The method of claim 1 , wherein the storing the data from the one or more first data fields of the first object in the second object includes:

comparing a particular one of the one or more first data fields of the first object to the one or more second data fields of the second object; and

based on the comparing, mapping the particular data field to a corresponding data field of the second object.

5. The method of claim 4 , wherein the comparing includes comparing a field name of the particular data field to field names of the one or more second data fields of the second object.

6. The method of claim 4 , wherein the comparing includes comparing data stored in the particular data field to data stored in the one or more second data fields of the second object.

7. The method of claim 1 , wherein the second object is a copy of the first object.

8. The method of claim 1 , wherein the first object includes one or more pointers to the second object.

9. The method of claim 1 , wherein the data storage system is a multi-tenant database system, wherein the first group of users is a first tenant of the multi-tenant database system, and wherein the second group of users is a second tenant of the multi-tenant database system.

10. The method of claim 1 , wherein the data store is a database, the first section of the data store is a first portion of a table stored in the database, and the second section of the data store is a second portion of the table stored in the database; and wherein the acceptance of the request is automated based on a rule specified by the second group of users.

11. A non-transitory, computer-readable medium having instructions stored thereon that are executable by a data storage system of a database service to cause operations comprising:

maintaining a data store for a plurality of groups of users that includes a first group of users and a second group of users that both access the database service remotely, wherein the data store includes a first section that is accessible by the first, but not the second, group of users, and wherein the data store includes a second section that is accessible by the second, but not the first, group of users;

storing a first object in the first section of the data store;

in response to receiving, from a first user of the first group of users, a request to share data with the second group of users, sending the request to a second user of the second group of users, wherein the request specifies one or more first data fields of the first object to be shared;

subsequent to receiving an acceptance of the request from the second user, storing data from the one or more first data fields of the first object in a second object in the second section of the data store; and

in response to detecting a change to at least one of the one or more first data fields of the first object, updating one or more second data fields of the second object.

12. The non-transitory, computer-readable medium of claim 11 , wherein the operations further comprise:

synchronizing a change made to the second object by updating the first object.

13. The non-transitory, computer-readable medium of claim 11 , wherein the operations further comprise:

creating the second object in response to receiving the acceptance of the request.

14. The non-transitory, computer-readable medium of claim 11 , wherein the storing the data from the one or more first data fields of the first object in the second object includes:

comparing a particular one of the one or more first data fields of the first object to the one or more second data fields of the second object; and

based on the comparing, mapping the particular data field to a corresponding data field of the second object.

15. The non-transitory, computer-readable medium of claim 14 , wherein the comparing includes comparing data stored in the particular data field to data stored in the one or more second data fields of the second object.

16. The non-transitory, computer-readable medium of claim 11 , wherein the storing the data from the one or more first data fields of the first object in the second object includes:

copying data stored in the one or more first data fields of the first object; and

storing the copied data in the one or more second data fields of the second object.

17. A data storage system of a database service, comprising:

at least one processor; and

a non-transitory, computer-readable medium having instructions stored thereon that are executable by the at least one processor to cause the data storage system to:

maintain a data store for a plurality of groups of users that includes a first group of users and a second group of users that both access the database service remotely, wherein the data store includes a first section that is accessible by the first, but not the second, group of users, and wherein the data store includes a second section that is accessible by the second, but not the first, group of users;

store a first object in the first section of the data store;

in response to a request, from a first user of the first group of users, to share data with the second group of users, send the request to a second user of the second group of users, wherein the request specifies one or more first data fields of the first object to be shared;

subsequent to receiving an acceptance of the request from the second user, store data from the one or more first data fields of the first object in a second object in the second section of the data store; and

in response to detecting a change to at least one of the one or more first data fields of the first object, update one or more second data fields of the second object.

18. The data storage system of claim 17 , wherein the instructions are further executable to cause the data storage system to:

create the second object in response to receiving the acceptance of the request.

19. The data storage system of claim 17 , wherein the instructions are further executable to cause the data storage system to:

synchronize a change made to the second object by updating the first object.

20. The data storage system of claim 17 , wherein the data storage system includes a multi-tenant database system, wherein the first group of users corresponds to a first tenant of the multi-tenant database system, and wherein the second group of users corresponds to a second tenant of the multi-tenant database system.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTOR'S EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 051772 FRAME: 0016. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Feb 12, 2020
From: KURUGANTI, ADITYA S.; DOSHI, KEDAR; BHATT, CHAITANYA; MOXLEY, WILLIAM
To: SALESFORCE.COM, INC.
Reel/Frame 051910/0775 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2020
From: KURUGANTI, ADITYA S.; DOSHI, KEDAR; BHATT, CHAITANYA; MOXLEY, WILLIAM
To: SALESFORCE.COM, INC.
Reel/Frame 051772/0016 →
Continuity (4)
Continuation 15069236 · Mar 14, 2016
Continuation 12693374 · Jan 25, 2010
Provisional Application 61146968 · Jan 23, 2009
Related Publication 20200250202A1 · Aug 6, 2020
Cited By (2)
US 12,499,161 US 12,657,548