# US 10,455,264 B2 · Bulk data extraction system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,455,264 B2
- Document ID: US10455264B2
- Status: Granted
- Kind: B2
- Application number: 15/885,065
- Filed: 2018-01-31
- Published: 2019-08-01
- Granted: 2019-10-22
- Earliest claimed: 2018-01-31
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Yogesh Patel; Mahalaxmi Sanathkumar; Shaahin Mehdinezhad Rushan; Bhaves Patel; Shreedhar Sundaram; Rajkumar Pellakuru; William Edward Hackett
- Web page: https://patentgrep.com/patent/US10455264B2

## CPC

- H04N 21/26291: {for providing content or additional data updates, e.g. updating software modules, stored at the client (deployment, distribution, installation, update of software G06F8/65; error detection or correction during software upgrading G06F11/1433; arrangements for updating broadcast information or broadcast-related information H04H60/25)}
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/55: Push-based network services
- H04L 67/566: Grouping or aggregating service requests, e.g. for unified processing
- H04N 21/4882: {for displaying messages, e.g. warnings, reminders (arrangements for providing short real-time information to substation in data switching networks H04L12/1895)}
- H04N 21/654: Transmission by server directed to the client
- H04N 21/6543: for forcing some client operations, e.g. recording {(remote booting in general G06F9/4416)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are disclosed relating to bulk data extraction systems. In some embodiments, a streaming server system may receive a first request, from a data storage system, that is sent prior to initiation of a bulk data extraction for a first group of users. In response to the first request, the streaming server system may receive, from the data storage system, a first notification message that includes a particular event identifier for a most recent data event generated at the data storage system. The streaming server system may receive, from the data storage system, those messages associated with the bulk data extraction for the first group. Subsequent to completion of the bulk data extraction, the streaming server system may send, to the data storage system, a request to subscribe to notification messages for data events associated with the first group.

## Claims

### Claim 1

A method, comprising:
sending, by a streaming server system, a first request to a data storage system that is accessible to a plurality of groups of users, wherein the first request is sent prior to initiation of a bulk data extraction for a first group of the plurality of groups, wherein the bulk data extraction is a transfer of messages for past data events of the first group that meet one or more specified criteria;
in response to the first request, receiving, by the streaming server system from the data storage system, a first notification message that includes a particular event identifier for a most recent data event generated at the data storage system;
receiving, by the streaming server system from the data storage system, those messages associated with the bulk data extraction for the first group; and
subsequent to completion of the bulk data extraction, sending, by the streaming server system to the data storage system, a request to subscribe to notification messages for data events associated with the first group that meet at least one of the one or more specified criteria, wherein the request to subscribe specifies the particular event identifier as a starting point of data events for which to send the notification messages.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
subsequent to sending the request to subscribe, receiving, by the streaming server system, a plurality of notification messages for a plurality of data events that meet at least one of the one or more specified criteria, wherein the plurality of data events are associated with respective event identifiers that are subsequent to the particular event identifier.

### Claim 3 (depends on 2)

The method of claim 2, wherein one or more of the plurality of notification messages correspond to data events that occurred during the transfer of messages for past data events of the first group associated with the bulk data extraction.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
prior to sending the first request, sending, by the streaming server system to the data storage system, a request to subscribe to a first channel;
wherein sending the first request includes publishing an empty message to the first channel, and wherein the first notification message is received in response to the publishing the empty message.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
in response to receiving the first notification message that includes the particular event identifier, sending, by the streaming server system, a second request to unsubscribe from the first channel.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data storage system is a multi-tenant computer system configured to provide computing resources to a plurality of tenants, wherein the first group of users corresponds to a first tenant of the plurality of tenants.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
storing, by the streaming server system, data corresponding to the bulk data extraction for the first group in a message queue accessible to an external system.

### Claim 8 (depends on 7)

The method of claim 7, wherein the bulk data extraction is initiated in response to a selection by the first group to utilize services provided by the external system.

### Claim 9 (depends on 1)

The method of claim 1, further comprising sending, by the streaming server system, data corresponding to the bulk data extraction to an external system authorized by the first group of users.

### Claim 10

A non-transitory, computer-readable medium having computer instructions stored thereon that are capable of being executed by a streaming server system to cause operations comprising:
sending a first request to a data storage system that is accessible to a plurality of groups of users, wherein the first request is sent prior to initiation of a bulk data extraction for a first group of the plurality of groups, wherein the bulk data extraction is a transfer of messages for past data events of the first group that meet one or more specified criteria;
in response to the first request, receiving, from the data storage system, a first notification message that includes a particular event identifier for a most recent data event generated at the data storage system;
receiving, from the data storage system, those messages associated with the bulk data extraction for the first group; and
subsequent to completion of the bulk data extraction, sending, by the streaming server system to the data storage system, a request to subscribe to notification messages for data events associated with the first group that meet at least one of the one or more specified criteria, wherein the request to subscribe specifies the particular event identifier as a starting point of data events for which to send the notification messages.

### Claim 11 (depends on 10)

The non-transitory, computer-readable medium of claim 10, wherein the operations further comprise:
subsequent to sending the request to subscribe, receiving a plurality of notification messages for a plurality of data events that meet at least one of the one or more specified criteria, wherein the plurality of data events are associated with respective event identifiers that are subsequent to the particular event identifier.

### Claim 12 (depends on 10)

The non-transitory, computer-readable medium of claim 10, wherein the operations further comprise:
prior to sending the first request, sending, by the streaming server system to the data storage system, a request to subscribe to a first channel;
wherein sending the first request includes publishing an empty message to the first channel, and wherein the first notification message is received in response to the publishing the empty message.

### Claim 13 (depends on 12)

The non-transitory, computer-readable medium of claim 12, wherein the operations further comprise:
in response to receiving the first notification message that includes the particular event identifier, sending, by the streaming server system, a second request to unsubscribe from the first channel.

### Claim 14 (depends on 11)

The non-transitory, computer-readable medium of claim 11, wherein the operations further comprise:
verifying a sequence of the plurality of notification messages relative to those notification messages associated with the bulk data extraction, wherein the verifying is based on sequence numbers specific to the first group that are included in each of the plurality of notification messages.

### Claim 15

A method, comprising:
receiving, at a data storage system accessible to a plurality of groups of users, a first request from a streaming server system, wherein the first request is received prior to initiation of a bulk data extraction for a first group of the plurality of groups, wherein the bulk data extraction is a transfer of messages for past data events of the first group that meet one or more specified criteria;
in response to the first request, sending, by the data storage system to the streaming server system, a first notification message that includes a particular event identifier for a most recent data event generated at the data storage system;
sending, by the data storage system to the streaming server system, those messages associated with the bulk data extraction for the first group; and
receiving, by the data storage system from the streaming server system, a request to subscribe to notification message for data events associated with the first group that meet at least one of the one or more specified criteria, wherein the request to subscribe specifies the particular event identifier as a starting point of data events for which to send the notification messages.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
subsequent to receiving the request to subscribe, sending, by the data storage system to the streaming server system, a plurality of notification messages for a plurality of data events that meet at least one of the one or more specified criteria, wherein the plurality of data events occurred subsequent to a particular data event associated with the particular event identifier.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
prior to receiving the first request, receiving, by the data storage system from the streaming server system, a request to subscribe to a first channel;
wherein the first request includes an empty message published to the first channel; and wherein the sending the first notification message to the streaming server system is in response to the empty message.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
subsequent to sending the first notification message that includes the particular event identifier, receiving, by the data storage system from the streaming server system, a second request to unsubscribe from the first channel.

### Claim 19 (depends on 15)

The method of claim 15, wherein the data storage system is a multi-tenant computer system, wherein the first group of users corresponds to a first tenant of the multi-tenant computer system.

### Claim 20 (depends on 16)

The method of claim 16, further comprising:
extending, by the data storage system, a retention window for data events associated with the first group in response to a determination that the bulk data extraction exceeds a predefined retention window; and
wherein the sending the plurality of notification message further comprises sending, by the data storage system, notification messages corresponding to all data events within the extended retention window that meet at least one of the one or more specified criteria associated with the first group.
