IP Library Granted Patent US 11,620,173
Granted Patent B2
US 11,620,173 · App. 17/213,707 · Granted Apr 4, 2023

Optimizing application performance with machine learning

Inventors: Jenna Zeigen (Brooklyn, NY); Natalie Qabazard (Santa Rosa, CA); Anuj Nair (Berkeley, CA); Aaron Maurer (Washington, DC); Yiling Chen (Oakland, CA)
Assignee: Slack Technologies, LLC
G06F11/004G06F11/008G06F11/3476G06F11/3495G06N20/00
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,620,173
App. No.
17/213,707
Granted
Apr 4, 2023
Kind
B2
Abstract

Media, methods, and systems are disclosed for optimizing performance of a running application in connection with a group-based communication system. Log data is collected regarding prior metrics for applications that have encountered performance events. Application state information is monitored and a machine-learning model mapping application metrics to performance outcomes predicts whether the running application will encounter a performance event. The machine-learning model mapping application metrics to performance outcomes is trained based on the collected logs. Based on whether a degradation outcome will be impactful, an application performance parameter may be degraded.

Claims (44)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method for optimizing performance of a running application in connection with a group-based communication system, the method comprising:

collecting log data relating to prior performance of the running application in connection with the group-based communication system;

monitoring application state information regarding an application state of the running application;

based on the application state information and a machine-learning model, predicting a future performance event that will impact the running application,

wherein the machine-learning model maps one or more application metrics to one or more performance outcomes and is trained based on collected information associated with the log data; and

responsive to determining a first data object associated with an impactful outcome of the future performance event and a second data object associated with a non-impactful outcome of the future performance event, discarding the second data object associated with the non-impactful outcome of the future performance event while maintaining the first data object associated with the impactful outcome of the future performance event.

2. The non-transitory computer-readable media of claim 1 , wherein the one or more application metrics comprise:

a rate of incoming real-time messages received by the running application; and

a size of an application data store associated with the application state for rendering application details associated with the group-based communication system.

3. The non-transitory computer-readable media of claim 1 , wherein at least a part of the machine-learning model is periodically updated by the group-based communication system and transmitted to the running application to facilitate the running application in discarding the second data object associated with the non-impactful outcome of the future performance event.

4. The non-transitory computer-readable media of claim 3 , the method further comprising:

prefetching one or more group-based communication system objects from the group-based communication system based on the machine-learning model in anticipation of future access of the one or more group-based communication system objects by a user of the running application.

5. The non-transitory computer-readable media of claim 1 , wherein the machine-learning model is periodically updated and utilized by the group-based communication system to parameterize data provided to the running application in response to the running application requesting one or more group-based communication system objects.

6. The non-transitory computer-readable media of claim 5 , wherein the data provided to the running application is parameterized based on prior usage rates of data previously requested by one or more users of the group-based communication system.

7. The non-transitory computer-readable media of claim 1 , wherein the machine-learning model is periodically updated and utilized by the group-based communication system to facilitate prioritizing data to be pushed to the running application in anticipation of future access of a group-based communication system object by a user of the running application.

8. A method for optimizing performance of a running application in connection with a group-based communication system, the method comprising:

collecting log data relating to prior performance of the running application in connection with the group-based communication system;

monitoring application state information regarding an application state of the running application;

based on the application state information and a machine-learning model, predicting a future performance event that will impact the running application,

wherein the machine-learning model maps one or more application metrics to one or more performance outcomes and is trained based on collected information associated with the log data; and

responsive to determining a first data object associated with an impactful outcome of the future performance event and a second data object associated with a non-impactful outcome of the future performance event, discarding the second data object associated with the non-impactful outcome of the future performance event while maintaining the first data object associated with the impactful outcome of the future performance event.

9. The method of claim 8 , wherein the one or more application metrics comprise:

a rate of incoming real-time messages received by the running application; and

a size of an application data store associated with the application state for rendering application details associated with the group-based communication system.

10. The method of claim 8 , wherein at least a part of the machine-learning model is periodically updated by the group-based communication system and transmitted to the running application to facilitate the running application in discarding the second data object associated with the non-impactful outcome of the future performance event.

11. The method of claim 8 , further comprising:

prefetching one or more group-based communication system objects from the group-based communication system based on the machine-learning model in anticipation of future access of the one or more group-based communication system objects by a user of the running application.

12. The method of claim 8 , wherein the machine-learning model is periodically updated and utilized by the group-based communication system to parameterize data provided to the running application in response to the running application requesting one or more group-based communication system objects.

13. The method of claim 12 , wherein the data provided to the running application is parameterized based on prior usage rates of data previously requested by one or more users of the group-based communication system.

14. The method of claim 13 , wherein the machine-learning model is periodically updated and utilized by the group-based communication system to facilitate prioritizing data to be pushed to the running application in anticipation of future access of a group-based communication system object by a user of the running application.

15. A system comprising at least one processor and at least one non-transitory memory storing computer executable instructions that when executed by the at least one processor cause the system to carry out actions comprising:

collecting log data relating to prior performance of a running application in connection with a group-based communication system;

monitoring application state information regarding an application state of the running application;

based on the application state information and a machine-learning model, predicting a future performance event that will impact the running application,

wherein the machine-learning model maps one or more application metrics to one or more performance outcomes and is trained based on collected information associated with the log data; and

responsive to determining a first data object associated with an impactful outcome of the future performance event and a second data object associated with a non-impactful outcome of the future performance event, discarding the second data object associated with the non-impactful outcome of the future performance event while maintaining the first data object associated with the impactful outcome of the future performance event.

16. The system of claim 15 , wherein the one or more application metrics comprise:

a rate of incoming real-time messages received by the running application; and

a size of an application data store associated with the application state for rendering application details associated with the group-based communication system.

17. The system of claim 15 , wherein at least a part of the machine-learning model is periodically updated by the group-based communication system and transmitted to the running application to facilitate the running application in discarding the second data object associated with the non-impactful outcome of the future performance event.

18. The system of claim 15 , the actions further comprising:

prefetching one or more group-based communication system objects from the group-based communication system based on the machine-learning model in anticipation of future access of the one or more group-based communication system objects by a user of the running application.

19. The system of claim 15 , wherein the machine-learning model is periodically updated and utilized by the group-based communication system to parameterize data provided to the running application in response to the running application requesting one or more group-based communication system objects.

20. The system of claim 19 , wherein the data provided to the running application is parameterized based on prior usage rates of data previously requested by one or more users of the group-based communication system.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2021
From: ZEIGEN, JENNA; QABAZARD, NATALIE; NAIR, ANUJ; MAURER, AARON; CHEN, YILING
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 055913/0671 →
Continuity (1)
Related Publication 20220308981A1 · Sep 29, 2022