IP Library Granted Patent US 12,056,106
Granted Patent B2
US 12,056,106 · App. 17/582,552 · Granted Aug 6, 2024

Data storage architecture for an enterprise communication system

Inventors: Leah Jones (San Francisco, CA); Keith Adams (San Francisco, CA); Samantha Stoller (San Francisco, CA); Maude Lemaire (San Francisco, CA); Eric Vierhaus (San Francisco, CA); Ilan Frank (Los Altos, CA)
Assignee: Salesforce, Inc.
G06F16/2228G06F16/252G06F16/27H04L51/04H04L67/1097H04L67/306
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 12,056,106
App. No.
17/582,552
Granted
Aug 6, 2024
Kind
B2
Abstract

Various embodiments are directed to group-based data storage systems configured for maintaining data exchanged between client devices within channel-specific shards each corresponding with one or more group-identifiers to provide group-based access to those channel-specific shards and for applying group-specific policies for data stored within those channel-specific shards. Membership of particular users within particular groups and within particular channels may be monitored such that access to particular channel shards may be controlled based on group-memberships of the users, and access to data stored within particular channel shards may be controlled based on channel-memberships of the users.

Claims (34)

1. A method for managing a group-based storage system accessible via a plurality of client devices, the method comprising:

storing historical message data in a plurality of data shards, wherein the historical message data comprises a plurality of group-based communication system messages, individual messages of the plurality of group-based communication system messages being posted in a group-based communication system channel;

controlling access to individual data shards of the plurality of data shards by at least one client device by receiving an access request from a client device to access data stored,

wherein the client device is associated with a user identifier; and

providing the at least one client device with access to the plurality of group-based communication system messages associated with the group-based communication system channel stored in the plurality of data shards based on a membership of the user identifier associated with the at least one client device.

2. The method of claim 1 , wherein the plurality of data shards comprises at least one channel-specific data shard comprising data associated with a particular channel.

3. The method of claim 2 , wherein the at least one channel-specific data shard has a plurality of corresponding group identifiers each associated with one of a plurality of groups.

4. The method of claim 1 , wherein the plurality of data shards comprises at least one non-channel specific data shard.

5. The method of claim 1 , wherein the plurality of data shards comprises at least one direct message specific data shard.

6. The method of claim 1 , wherein the plurality of data shards comprises at least one multi-user direct message specific data shard.

7. The method of claim 1 , wherein the membership is a channel membership or a group membership.

8. An apparatus configured to manage a group-based storage system accessible via a plurality of client devices, the apparatus comprising at least a processor, and a memory associated with the processor having computer coded instructions therein, with the computer coded instructions configured to, when executed by the processor, cause the apparatus to:

store historical message data in a plurality of data shards, wherein the historical message data comprises a plurality of group-based communication system messages, individual messages of the plurality of group-based communication system messages being posted in a group-based communication system channel;

control access to individual data shards of the plurality of data shards by at least one client device by receiving an access request from a client device to access data stored,

wherein the client device is associated with a user identifier,

wherein the at least one client device is associated with a user identifier; and

provide the at least one client device with access to the plurality of group-based communication system messages associated with the group-based communication system channel stored in the plurality of data shards based on a membership of the user identifier associated with the at least one client device.

9. The apparatus of claim 8 , wherein the plurality of data shards comprises at least one channel-specific data shard comprising data associated with a particular channel.

10. The apparatus of claim 9 , wherein the at least one channel-specific data shard has a plurality of corresponding group identifiers each associated with one of a plurality of groups.

11. The apparatus of claim 8 , wherein the plurality of data shards comprises at least one non-channel specific data shard.

12. The apparatus of claim 8 , wherein the plurality of data shards comprises at least one direct message specific data shard.

13. The apparatus of claim 8 , wherein the plurality of data shards comprises at least one multi-user direct message specific data shard.

14. The apparatus of claim 8 , wherein the membership is a channel membership or a group membership.

15. A non-transitory computer-readable storage medium including instructions to manage a group-based storage system accessible via a plurality of client devices that when executed by a computer, cause the computer to:

store historical message data in a plurality of data shards, wherein the historical message data comprises a plurality of group-based communication system messages, individual messages of the plurality of group-based communication system messages being posted in a group-based communication system channel;

control access to individual data shards of the plurality of data shards by at least one client device by receiving an access request from a client device to access data stored,

wherein the client device is associated with a user identifier,

wherein the at least one client device is associated with a user identifier; and

provide the at least one client device with access to the plurality of group-based communication system messages associated with the group-based communication system channel stored in the plurality of data shards based on a membership of the user identifier associated with the at least one client device.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of data shards comprises at least one channel-specific data shard comprising data associated with a particular channel.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of data shards comprises at least one non-channel specific data shard.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of data shards comprises at least one direct message specific data shard.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of data shards comprises at least one multi-user direct message specific data shard.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the membership is a channel membership or a group membership.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2022
From: JONES, LEAH; ADAMS, KEITH; STOLLER, SAMANTHA; LEMAIRE, MAUDE; VIERHAUS, ERIC; FRANK, ILAN
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 058744/0692 →
MERGER Recorded Jan 24, 2022
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 058744/0781 →
Continuity (3)
Continuation 16419709 · May 22, 2019
Continuation 16206652 · Nov 30, 2018
Related Publication 20220147644A1 · May 12, 2022