Machine learning for identifying idle sessions

By using machine learning models to identify and classify idle sessions in cloud-based services, the problem of inefficient resource release in the prior art is solved, and the utilization rate and user experience of virtual machines are improved.

CN119895399APending Publication Date: 2025-04-25MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380066824.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-10-07
Filing Date
2023-08-29
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

The prior art is difficult to accurately identify idle sessions in cloud-based services, resulting in inefficient resource release, which may lead to service slowdown, request drops or interruptions.

Method used

Using machine learning models as session classification models, idle sessions are identified by learning multiple parameters related to active sessions, and expelling these sessions in cloud-based services to free up resources.

Benefits of technology

Improves the availability of virtual machines to handle more sessions, improves user experience, and uses system resources more efficiently, reducing the risk of terminating actual active sessions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119895399A_ABST
    Figure CN119895399A_ABST
Patent Text Reader

Abstract

Systems and methods for identifying and evicting idle sessions include training a machine learning model as a session classification model to learn rules for classifying active sessions between a client and a cloud-based service. A session classification model is trained to receive as input a plurality of parameters related to a document associated with an active session, and a rule is applied to the plurality of parameters to determine a classification of the active session, and an output indicative of the classification of the active session is provided. The active sessions are then classified using the session classification model in the cloud-based service. Active sessions classified as idle sessions may then be evicted from the cloud-based service.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Cloud-based services provide computing services over the Internet or a private network. Services may include supporting web applications or other online or cloud computing services. Cloud-based services may include multiple servers for processing user requests for services, such as accessing online storage, viewing / editing online documents, consuming content, collaboration, communication, etc. The server is usually implemented by a virtual machine hosted on one or more physical computing devices. A virtual machine is similar to a physical computing device and is a software implementation of a physical computing device, and each virtual machine can run a program. During operation, multiple virtual machines are usually active at the same time to process requests for services from multiple different users. Multiple active virtual machines are usually referred to as worker pools, where the virtual machines themselves are referred to as workers, worker processes, or worker machines. Virtual machines can be supplied and deactivated as needed to adapt to changes in the volume of business to cloud-based services. Depending on the implementation, cloud-based services can be configured to maintain a predetermined number of virtual machines available in a worker pool to handle incoming requests without having to supply new virtual machines for each new request.

[0002] To access services provided by a cloud-based service, an application on a client device typically opens a connection to a server of the cloud-based service and establishes a so-called session. A session represents an ongoing exchange of data, messages, etc. between an application and a server. To establish a session, one or more virtual machines are assigned to the session to process requests for services. Depending on the implementation, the virtual machine(s) assigned to the session may be acquired and / or provisioned from a pool of workers and added to a pool of workers. In any case, the virtual machine(s) assigned to the session typically remain assigned to the session as long as the session is active, i.e., as long as requests for services are being received.

[0003] One difficulty in managing virtual machines for cloud-based services is maintaining a sufficient number of virtual machines available to process requests. Cloud-based services typically have a limited number of virtual machines that can be supplied at any given time. Therefore, as the number of active virtual machines (i.e., virtual machines assigned to sessions) approaches and / or reaches a limit, users may experience service slowdowns, dropped / rejected requests, or even interruptions. Virtual machines assigned to sessions can be considered active, but the sessions to which they are assigned may not be actively receiving requests. These sessions may be referred to as idle sessions. Virtual machine management systems typically implement some process for identifying idle sessions, so they can be terminated to free up virtual machines to process other requests. In previously known systems, idle sessions are typically identified based on a predefined idle timeout period. For example, a session that has not received a request within a predefined time period may be identified as an idle session, which may then be terminated.

[0004] However, it may be difficult to determine the appropriate amount of time to use as an idle time period for a session, particularly for web applications and web services that can access, view, and edit online documents. In this case, if the idle time period is set to a smaller amount of time, more sessions can be identified as idle sessions, which can release more resources more quickly to handle other sessions. However, a smaller timeout period also increases the risk of terminating sessions that are actually still active. For example, some sessions may involve viewing or previewing documents during certain time periods. If the idle time period expires while the user is previewing or viewing the document, the session may time out, even if the user is still actively using the service. On the contrary, if the idle time period is set to a larger amount of time, the risk of terminating active processes is reduced, but this also means that fewer sessions can be identified as idle sessions, and therefore resources may be released at a lower rate. A longer timeout period also allows actually idle sessions to continue to occupy resources that could have been better utilized elsewhere.

[0005] Therefore, there is a need for improved methods of identifying idle sessions for cloud-based services. Summary of the invention

[0006] In another general aspect, the present disclosure provides a method for deploying virtual machines in a server farm based on the capacity requirements of the server farm. In some embodiments, the method includes: training a machine learning model as a session classification model to learn rules for classifying active sessions between a client and a cloud-based service, each of the active sessions being related to a document maintained by the cloud-based service, the session classification model being trained to receive as input a plurality of parameters related to the documents associated with the active sessions, and applying the rules to the plurality of parameters to determine the classification of the active sessions, and providing an output indicating the classification of the active sessions; and classifying the active sessions in the cloud-based service using the session classification model by providing the plurality of parameters related to the documents associated with each of the active sessions to the session classification model, and applying the rules to the plurality of parameters using the session classification model to determine the classification of each of the active sessions; and evicting the active sessions that have been classified as idle sessions from the cloud-based service.

[0007] In another general aspect, the present disclosure provides a data processing system having a processor and a memory in communication with the processor, wherein the memory stores executable instructions that, when executed by the processor, cause the data processing system to perform multiple functions. The functions may include: using a machine learning model trained as a session classification model to assign a classification to active sessions between a client and a cloud-based service, each of the active sessions being related to a document maintained by the cloud-based service, the session classification model receiving as input a plurality of parameters related to the document associated with each of the active sessions, and the session classification model being trained to apply rules for classifying each of the active sessions based on the plurality of parameters to determine a classification for the active session, the session classification model providing an output indicating the classification for the active session; and evicting active sessions that have been classified as idle sessions from the cloud-based service.

[0008] In another general aspect, the present application describes a non-transitory computer-readable medium having instructions stored thereon that, when executed, cause a programmable device to perform the following functions: assign a classification to active sessions between a client and a cloud-based service using a machine learning model trained as a session classification model, each of the active sessions being associated with a document maintained by the cloud-based service, the session classification model receiving as input a plurality of parameters associated with the document associated with each of the active sessions, and the session classification model being trained to apply rules for classifying each of the active sessions based on the plurality of parameters to determine a classification for the active sessions, the session classification model providing an output indicating the classification for the active sessions; and evicting active sessions that have been classified as idle sessions from the cloud-based service.

[0009] This summary is provided to introduce a selection of concepts further described below in the detailed description in a simplified form. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages mentioned in any part of this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The accompanying drawings depict one or more embodiments according to the present teachings by way of example only and not limitation. In the accompanying drawings, the same reference numerals represent the same or similar elements. In addition, it should be understood that the accompanying drawings are not necessarily drawn to scale.

[0011] Figure 1 An example system is depicted upon which aspects of the disclosure may be implemented.

[0012] Figure 2 A method for implementing a cloud computing system such as Figure 1 An example of a computing device of a virtual machine node of a cloud computing system).

[0013] Figure 3 An example implementation of a cloud-based service including a session manager according to the present disclosure is shown.

[0014] Figure 4 An example implementation of a session manager including a model training component is shown.

[0015] Figure 5 shows that using Figure 3 and 4 Flow chart of an example method for classifying and evicting sessions using a session classification model shown.

[0016] Figure 6 is a block diagram illustrating an example software architecture, portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the features described.

[0017] Figure 7 is a block diagram illustrating components of an example machine configured to read instructions from a machine-readable medium and perform any of the features described herein. DETAILED DESCRIPTION

[0018] As described above, identifying idle sessions so that they can be terminated to free up resources for cloud-based services is a known problem in the art. Previously known virtual machine management systems typically identify idle sessions based on a predefined idle timeout period. Determining the optimal amount of time to be used as an idle timeout period may be problematic. If the idle timeout period is set to a smaller amount of time, more sessions can be identified as idle sessions, which can free up more resources to process other sessions faster, but at the same time increases the risk of terminating sessions that are actually still active. In this case, when an active session that has been prematurely terminated (i.e., the virtual machine has been taken away) attempts to start again, it may be necessary to reallocate a virtual machine from another session to process session requests, and if the other session is actually still active, a virtual machine from yet another session may then have to be reallocated from another session to process requests, and so on, which results in a cycle of virtual machines frequently switching from one session to another, which may adversely affect the performance of the system. If the idle timeout period is set to a larger amount of time, the risk of terminating active processes is reduced, which in turn results in fewer sessions being identified as idle sessions, so that resources can be released at a lower rate. Longer timeouts also allow actually idle sessions to continue to occupy resources for longer periods of time that could be better utilized elsewhere. This problem is exacerbated in some cloud-based services, such as web applications and web services that enable users to access, view, and edit documents online. For these services, users may not be actively requesting the service, but may still be actively using the service, such as when viewing a document.

[0019] In order to solve these technical problems and more technical problems, in an example, the present specification provides a technical solution in the form of a session management system, which has a machine learning model that is trained to learn rules for identifying idle sessions, which can be terminated or evicted if necessary to release resources for cloud-based services, especially web applications, web services, cloud computing environments, etc. that enable users to view and edit documents online. The machine learning model is trained to learn rules that can be applied to multiple different parameters related to active sessions to identify idle sessions. The parameters used depend at least in part on the services performed by the cloud-based service. For example, for a cloud-based service in the form of a web application for generating, viewing, and editing documents, the parameters used to identify the idle process can be parameters of the document processed during the session. In an embodiment, the values ​​of these parameters can be determined by accessing the metadata of the file or document opened during the session. For example, the document can be stored in a shared online storage device. The parameters can be stored as metadata in the document itself or in a separate data structure (e.g., a table or database) provided in the online storage device. In other embodiments, the virtual machine can store parameter values ​​related to the document in the active session in a shared storage device.

[0020] The machine learning model receives parameter values ​​related to documents in active sessions and processes these parameters to identify idle sessions. As used herein, an "idle session" refers to an active session (i.e., a session that is currently assigned one or more virtual machines) that does not currently have any user participation in the session. For example, an idle session may be due to a user walking away from a computing device or starting a different task on a computing device while keeping an online document open in a browser window. In an embodiment, the machine learning model is also configured to identify less important sessions and distinguish less important sessions from idle sessions. As used herein, a "less important session" refers to an active session that appears to be an idle session but actually does have user participation. For example, when a user opens an online document and only views the document for a period of time without editing the document or performing a task in another application for the purpose of editing an online document, a less important session may result. In an embodiment, the management system is also trained to identify important sessions. As used herein, an "important session" refers to a session during which a document is actively and / or frequently edited.

[0021] Listening to or terminating a session, which will end the (multiple) processes associated with the session and release the virtual machine (sometimes referred to as (multiple) unified workers or (multiple) workers) assigned to the session to return to the worker pool and be assigned to other sessions. Evicting a session identified as an idle session will likely have limited or no impact on the user experience, because the user may not even be aware that the session has been terminated, or whether the session was originally active. Evicting a session identified as a less important session will have a limited impact on the user experience, because terminating a session typically results in an automatic refresh of an application (e.g., a browser). Since less important sessions only involve passive user activities, such as viewing a document, refreshing the application will be a minor inconvenience. However, since the current edits may not have been synchronized, refreshing or reloading the application may result in loss of data and the disappointment that accompanies it, so evict important sessions will be disruptive to the user. The purpose of the session management system described herein is to avoid evict important sessions. Compared to idle or less important session requests, the systems and methods described herein prioritize virtual machines for active session requests, so a greater number of active users can be served and the business can be managed more efficiently.

[0022] The technical solution described herein solves the technical problems associated with previously known session management systems for cloud-based services because idle processes can be more accurately identified based on a number of different parameters, so that more sessions can be identified as idle sessions in the minimum amount of idle time, while also minimizing the risk of evicting or terminating active or important sessions. This in turn increases the availability of virtual machines for handling more sessions. Thus, the user experience is improved and the system's resources are used more efficiently.

[0023] Figure 1 An example computing environment 100 is shown on which aspects of the present disclosure may be implemented. The computing environment 100 includes a cloud-based service 102, a client 104, and a network 106. The cloud-based service 102 includes one or more servers 108 configured to provide one or more services or applications to the client 104. In an embodiment, the service includes an online document storage, viewing, and editing service. To this end, the cloud-based service 102 includes a data store 122 for storing documents, and one or more web applications 120 that can be used to access, create, view, and edit documents in the data store 122.

[0024] The client 104 enables a user to request access to services and web applications 120 provided by the cloud-based service 102. To this end, the client 104 includes a client application for connecting to the cloud-based service and enabling documents in the data store 122 to be accessed, viewed and / or edited. The client 104 may include any suitable type of computing device that enables a user to interact with various applications. Examples of suitable computing devices include, but are not limited to, personal computers, desktop computers, laptop computers, mobile phones, smart phones, tablet computers, tablet phones, smart watches, wearable computers, gaming devices / computers, televisions, etc. The client 104 and the cloud-based service 102 communicate via a network 106. The network 106 may include one or more wired / wireless communication links and / or communication networks, such as a PAN (personal area network), a LAN (local area network), a WAN (wide area network), or a combination of networks, such as the Internet.

[0025] The servers 108 may be organized in farms, clusters, racks, containers, data centers, geographically dispersed facilities, etc., and may communicate with each other via various types of networks. Two servers 108 are shown as Figure 1 104, but in implementation, any suitable number of servers may be utilized. Each server 108 includes one or more virtual machine (VM) nodes 110 that provide computing resources for handling sessions with clients 104 and processing requests related to the sessions. Server 108 may include any suitable number of VM nodes 110.

[0026] The cloud-based service 102 includes a cloud computing manager 112 for managing resources (e.g., VM nodes 110) of the cloud-based service 102. Thus, the cloud computing manager 112 can be used to deploy, configure, and / or manage the servers 108 and / or VM nodes 110 of the system 100. The cloud computing manager 112 can be implemented in one or more computing devices that can be part of the server or separate from the server. In an embodiment, the cloud computing manager 112 can be configured to implement a load balancer 114 for receiving requests from clients and directing the requests to the appropriate server 108 or node 110. The load balancer 114 can utilize parameters such as load, number of connections, and overall performance to determine which server 108 and / or node 110 to receive the client request.

[0027] The cloud computing system 112 may also include an autoscaler 116 for automatically adjusting the number of available computing resources (e.g., VM nodes 110) in the cloud computing system 112 based on the load or demand on the system. The autoscaler 116 may be configured to monitor one or more metrics indicating the load on the cloud computing system 112, such as processor usage, memory usage, number of connections, etc., and then scale resources accordingly. When the load or traffic on the system is high, the autoscaler 116 may provide additional VM nodes 110 so that more requests can be processed in a shorter amount of time. When the load on the system decreases, the autoscaler 116 may be configured to shut down VM nodes 110 that are not fully utilized.

[0028] The cloud also includes a session manager 118 according to the present disclosure. The session manager 118 is configured to manage sessions established between the client 104 and the cloud-based service 102. The session manager 118 can be configured to establish sessions, terminate sessions, and assign VM nodes 110 to sessions. As discussed below, the session manager 118 includes a session classification model (explained in more detail below) that is trained to classify active sessions into idle sessions, less important sessions, and / or important sessions based on a plurality of parameters related to the documents on which the active sessions are based.

[0029] Each server 108 may include one or more physical computing devices for hosting VM nodes 110 of the server 108 . Figure 2 An example of such a computing device is shown. Figure 2 The computing device 200 of the embodiment of the present invention can be any of a variety of different types of computing devices. For example, the computing device 200 can be a desktop computer, a server computer, a laptop computer, etc. The computing device 200 includes physical resources, such as a central processing unit (CPU) 204 and a memory 206. The computing device 200 may include other components not shown, such as a network interface device, disk storage, input / output devices, etc. The CPU 204 can be a CPU of any type or brand. The memory 206 can include volatile and / or non-volatile media (e.g., ROM, RAM, disk storage media, optical storage media, flash memory devices, and / or other suitable storage media) and / or other types of computer-readable storage media configured to store data received from the CPU 204 and instructions for the CPU 204. Although the computing device 200 is shown as having only one CPU 204 and one memory 206, the computing device may include any suitable number of processors and / or memories.

[0030] The computing device 200 is a host device and is therefore configured to host one or more virtual machine nodes 208. To this end, the computing device 200 includes a virtual machine monitor 210 configured to generate, monitor, terminate and / or otherwise manage the VM nodes 208. The virtual machine monitor 210 is software, firmware and / or hardware that uses the physical resources 204, 206 of the computing device 200 to emulate the virtual resources of the VM nodes 208. More specifically, the virtual machine monitor 210 allocates processor time, memory and disk storage space to each VM node 208. The virtual machine monitor 210 also provides isolation between the VM nodes 208, so that each VM node 208 can include its own operating system and run its own programs.

[0031] VM nodes 208 are similar to physical computing devices and are software implementations of physical computing devices. Each VM node 208 can run programs. Each VM node 208 may include virtual resources, such as a virtual processor (VCPU) 212 and virtual memory 214, and may be configured to implement a client operating system. VCPU 212 is implemented as software with associated state information that provides a representation of a physical processor with a specific architecture. Different VM nodes 208 may be configured to emulate different types of processors. For example, one VM node may have a virtual processor that has the characteristics of an Intel x86 processor, while another VM node may have the characteristics of a PowerPC processor. The client operating system may be any operating system, such as from An operating system of Unix, Linux, etc. The client operating system may include a user / kernel operating mode and may have a kernel that may include a scheduler, a memory manager, etc. Each client operating system may have an associated file system implemented in a virtual memory and may schedule threads for executing applications on virtual processors. Applications may include applications for processing client requests and / or implementing the functionality of a server.

[0032] The hypervisor 210 enables multiple VM nodes 208 to be implemented on the computing device 200 by allocating a portion of the physical resources 204, 206 of the computing device 200, such as processing time, memory, and disk storage space, to each VM node 208. The hypervisor 210 may be configured to implement any suitable number of VM nodes 208 on the computing device 200. Figure 2 The hypervisor 210 of the embodiment is shown as having instantiated five VM nodes 208, although the computing device is generally capable of supporting more VM nodes. The hypervisor can be configured to instantiate any suitable number of VM nodes 208 on the computing device 200, depending on various factors, such as hardware configuration, software configuration, applications, etc.

[0033] Figure 3 An example implementation of a session manager for a cloud-based service 300 is shown. The cloud-based service 300 includes a grouping 302 of VM nodes 304. The grouping 302 of VM nodes 304 may implement one or more servers, server farms, server clusters, data centers, cloud services, and / or any other grouping of VMs for handling sessions with clients and processing requests in association with services provided by the cloud-based service 300. The cloud-based service 300 includes a plurality of physical computing devices 306 for hosting the grouping 302 of VM nodes 304. Figure 3 In the embodiment of FIG. 3 , five computing devices 306 are shown, each having four VM nodes 304. In embodiments, more or fewer computing devices may be used, and each computing device may be configured to host any suitable number of VMs.

[0034] exist Figure 3 In an embodiment of the present invention, cloud-based service 300 provides a document storage service that enables clients to access documents 312 in data storage 314. Document 312 can be any type of document, such as a text document, a spreadsheet document, a presentation document, etc. Web application 310 enables clients to view and / or edit documents from the data storage and create documents to be stored in the data storage. Thus, web application 310 can be a word processing application, a spreadsheet application, a presentation application, a conference application, a notepad application, etc.

[0035] The grouping 302 of VM nodes 304 may be used as a pool of workers. Initially, a predetermined number of VM nodes 304 may be provided for the worker pool so that the VM nodes 304 are available to process sessions from clients. When the cloud-based service 300 receives a request to establish a session, for example, by requesting access to a document 312 in a data store 314, the session manager 308 assigns one or more VM nodes 304 to the session to process session-related requests, such as opening a document, editing a document, formatting a document, saving a document, etc. The session manager 308 monitors a number of parameters related to VM nodes and sessions, such as which VM nodes are active (i.e., assigned to a session), which VM nodes are inactive (i.e., not assigned to a session), the VM nodes assigned to each session, the current number of VM nodes in the pool, the maximum number of VM nodes in the pool, etc.

[0036] The session manager 308 includes a log component 316 for monitoring and logging a number of parameters related to the document associated with each active session. The parameters monitored and logged by the log component 316 include at least time-since-last-call (e.g., the time since the document function was last called), time-since-last-edit (e.g., the time since the document was last edited), time-since-last-merge (e.g., the time since the document was last merged), file type, file size, number of active authors, total number of authors, undo count (e.g., the number of times a document change has been undone), time-to-open-file (e.g., the amount of time required to open a file), time-file-last-edit (e.g., the time since the document was last edited), time-file-created (e.g., the time since the file was created, a timestamp), file-fully-rendered (e.g., a file fully loaded on a display screen, the value can be true or false), and Worker-Dictionary Contains ID. The ID refers to a unique identifier assigned to each worker (e.g., a virtual machine) when it is created, and a worker dictionary refers to a data structure used to track the IDs of workers that have been created. In an embodiment, user interaction with a client device can be used as an indication of an idle session. For example, user input such as mouse scrolling, keyboard input, etc. can be used as an indicator of an active / idle session. In some embodiments, eye movement and / or gaze direction tracking can be used to indicate an active / idle session by determining whether the user is looking at the screen or away from the screen.

[0037] In an embodiment, the values ​​of these parameters may be determined by accessing metadata for files or documents opened during a session. For example, the log component 316 may access metadata 320 for a document 312 stored in a data store 314. The metadata 320 may be stored in the document 312 itself or in a separate data structure, such as a table or database, provided in the data store 314. In other embodiments, the VM node 304 may store the metadata 320 for a document in the data store 314.

[0038] The session manager 308 includes a session classification model 318 that has been trained to learn rules for identifying active sessions as idle sessions, less important sessions, and / or important sessions. For each active session, the session classification model receives multiple parameters 322 related to the documents being processed during the session, and applies the learned rules to the multiple parameters to identify the session / classify the session. The session classification model can process the parameters in a variety of ways to identify idle sessions and less important sessions. For example, the session classification model 318 can be trained to learn rules and / or thresholds to apply to different parameters to identify idle sessions. For example, an idle session can be indicated by the following items exceeding predefined values ​​or pre-learned values: time-since-last-call value, time-since-last-edit value, time-since-last-merge value, time-file last edited value value, and / or time-file-created value value. The file-fully-rendered parameter and the time-to-open-file parameter can indicate an idle session when a file or document is not fully rendered and / or when a file or document takes a long time to open, where the long time it takes for the file or document to open indicates that there is a problem with the file. Some parameters can be used to identify less important sessions and / or distinguish less important sessions from idle sessions. For example, less important sessions can be identified as having parameter values ​​indicating an idle session and other parameter values ​​indicating less important sessions. For example, file type can be used to identify less important sessions rather than important sessions because certain file types that are commonly viewed (e.g., pdf) indicate less important sessions. File size can indicate a less important session because very small files can indicate less interaction with the file, while very large files can indicate that the file has been completed. In either case (e.g., very small files and very large files), the file size can indicate that the document is less important. The number of active authors / users can indicate whether a session is less important, because when more active authors / users are associated with a session, the session is likely to be a review session (e.g., less important), while few active authors / users can indicate an editing session (e.g., an important session). The undo count can indicate a less important session, because a low number of undos indicates less interaction with the file. Combinations of different parameters can also be used to identify idle sessions and / or less important sessions. For example, when the file size is large (e.g., greater than 100MB) and the number of users involved is high (e.g., 10 or more), then the session is more likely to be a review session rather than an editing session and can be classified as less important.In contrast, when the file size is small and a small number of users are involved, the session is more likely to be an editing session and can be classified as an important session.

[0039] In an embodiment, the session classification model 318 comprises a machine learning (ML) model trained to classify sessions based on multiple parameters. Figure 4 An implementation of a session manager 400 including a model training system for training a session classification model is shown. The session manager 400 includes a session classification model 402, a log component 404, and an eviction component 406. The model training component 408 is configured to train the session classification model 402 using training data 410 stored in a training data store 412 to provide initial and ongoing training for the session classification model 402. The training data 410 may be based on parameter information from sessions that have been identified and / or created as examples of idle sessions and less important sessions. The session classification model 402 may implement any suitable machine learning algorithm (MLA) for classifying sessions, such as a decision tree, a random decision forest, a neural network, deep learning (e.g., a convolutional neural network), a support vector machine, regression (e.g., support vector regression, Bayesian linear regression, or Gaussian process regression). In an embodiment, the session classification model 402 may be updated to handle new parameters related to active sessions. All that is required is that the training data 410 is updated to include training data with new parameter information. The session classification model 402 may then be retrained with the updated training data.

[0040] return Figure 3Once the session classification model 318 has classified the session as an idle session and / or a less important session, the session manager includes an eviction component 324 for eviction of the idle session and / or the less important session to free up resources of the cloud-based service 300. In an embodiment, the eviction component 324 may execute an eviction process 326 to evict the idle session and / or the less important session, for example, by killing the process / request associated with the virtual machine assigned to the session. In some embodiments, the eviction process 326 may cause only the idle session to be evicted. In other embodiments, the eviction process 326 may cause both the idle session and the less important session to be evicted. The sessions may be evicted in priority order. For example, the idle session may be evicted first, and then the less important session. In an embodiment, the eviction process 326 runs continuously to evict the idle session and / or the less important session when it is identified. In other embodiments, the eviction process may be performed according to one or more thresholds. For example, when the overall utilization of the cloud-based service 300 exceeds a threshold value (e.g., 80%), the eviction process 326 may be executed. In an embodiment, the eviction process 326 may set different thresholds for evicting idle processes and less important processes, respectively. For example, the eviction process may evict idle sessions when the utilization exceeds a first threshold value, and evict less important sessions when the utilization exceeds a second threshold value. In yet another embodiment, the eviction process 326 may evict idle sessions regardless of utilization, and evict less important sessions when utilization exceeds a threshold value.

[0041] Figure 5 , a flow chart of an example method 500 for identifying and evicting idle sessions of a cloud-based service is shown in FIG. The method begins by training a machine learning model as a session classification model to learn rules for classifying active sessions between a client and a cloud-based service (block 502). As described above, each active session is associated with a document maintained by the cloud-based service. The session classification model is trained using training data to learn rules for identifying idle sessions and / or less important sessions from the active sessions. The session classification model receives as input a plurality of parameters associated with the documents associated with the active sessions, applies rules to the plurality of parameters to determine a classification for the active sessions, and provides an output indicating the classification for the active sessions. Once trained, the session classification model is utilized in the cloud-based service to classify the active sessions by providing the session classification model with a plurality of parameters associated with the documents associated with each active session and using the session classification model to assign a classification to each active session (block 504). The active sessions identified as idle sessions and / or less important sessions may then be evicted to free up virtual machines assigned to the evicted sessions to process other sessions (block 506).

[0042] Figure 6 6 is a block diagram 600 illustrating an example software architecture 602, portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the features described above. Figure 6 is a non-limiting example of a software architecture, and it should be understood that many other architectures may be implemented to facilitate the functionality described herein. Software architecture 602 may be implemented in a system such as Figure 7 The system is executed on the hardware of a machine 700, which includes a processor 710, a memory 730, and an input / output (I / O) component 750, among others. A representative hardware layer 604 is illustrated and may represent, for example, Figure 7 The machine 700 of the embodiment of the present invention. The representative hardware layer 604 includes a processing unit 606 and associated executable instructions 608. The executable instructions 608 represent executable instructions of the software architecture 602, including implementations of the methods, modules, etc. described herein. The hardware layer 604 also includes a memory / storage device 610, which also includes executable instructions 608 and accompanying data. The hardware layer 604 may also include other hardware modules 612. The instructions 608 maintained by the processing unit 606 may be part of the instructions 608 maintained by the memory / storage device 610.

[0043] Example software architecture 602 can be conceptualized as layers, each providing various functions. For example, software architecture 602 may include layers and components such as operating system (OS) 614, library 616, framework 618, application 620, and presentation layer 644. In operation, application 620 and / or other components within a layer may invoke API calls 624 to other layers and receive corresponding results 626. The layers shown are representative in nature, and other software architectures may include additional or different layers. For example, some mobile or dedicated operating systems may not provide framework / middleware 618.

[0044] OS 614 can manage hardware resources and provide public services. OS 614 can include, for example, kernel 628, service 630 and driver 632. Kernel 628 can act as an abstraction layer between hardware layer 604 and other software layers. For example, kernel 628 can be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Service 630 can provide other public services for other software layers. Driver 632 can be responsible for controlling the underlying hardware layer 604 or engaging with the underlying hardware layer 604. For example, depending on the hardware and / or software configuration, driver 632 can include display driver, camera driver, memory / storage driver, peripheral device driver (e.g., via Universal Serial Bus (USB)), network and / or wireless communication driver, audio driver, etc.

[0045] The library 616 may provide a common infrastructure that may be used by the application 620 and / or other components and / or layers. The library 616 generally provides functions used by other software modules to perform tasks, rather than interacting directly with the OS 614. The library 616 may include a system library 634 (e.g., a C standard library) that may provide functions such as memory allocation, string manipulation, file operations, etc. In addition, the library 616 may include an API library 636, such as a media library (e.g., supporting the presentation and manipulation of image, sound, and / or video data formats), a graphics library (e.g., an OpenGL library for rendering 2D and 3D graphics on a display), a database library (e.g., SQLite or other relational database functions), and a web library (e.g., WebKit that may provide web browsing functions). The library 616 may also include a variety of other libraries 638 to provide many functions for the application 620 and other software modules.

[0046] Framework 618 (sometimes also referred to as middleware) provides a higher level common infrastructure that can be used by applications 620 and / or other software modules. For example, framework 618 can provide various graphical user interface (GUI) functions, advanced resource management, or advanced location services. Framework 618 can provide a wide range of other APIs for applications 620 and / or other software modules.

[0047] Applications 620 include built-in applications 640 and / or third-party applications 642. Examples of built-in applications 640 may include, but are not limited to, contact applications, browser applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 642 may include any application developed by an entity other than the supplier of a particular platform. Applications 620 may use the functionality available via OS 614, library 616, framework 618, and presentation layer 644 to create a user interface to interact with a user.

[0048] Some software architectures use virtual machines, such as virtual machine 648. Virtual machine 648 provides an execution environment in which applications / modules can run as they would on a hardware machine (e.g., Figure 7 The virtual machine 648 may be hosted by a host OS (e.g., OS 614) or a hypervisor and may have a hypervisor 646 that manages the operation of the virtual machine 648 and interoperation with the host operating system. A software architecture that may be different from the software architecture 602 external to the virtual machine is executed within the virtual machine 648, such as an OS 650, a library 652, a framework 654, an application 656, and / or a presentation layer 658.

[0049] Figure 7700 is a block diagram showing components of an example machine 700 configured to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any of the features described herein. The example machine 700 is in the form of a computer system, in which instructions 716 (e.g., in the form of software components) for causing the machine 700 to perform any of the features described herein can be executed. In this way, the instructions 716 can be used to implement the modules or components described herein. The instructions 716 cause the unprogrammed and / or unconfigured machine 700 to operate as a specific machine configured to perform the described features. The machine 700 can be configured to operate as a standalone device, or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 700 can operate in the capacity of a server machine or a client machine in a server-client network environment, or as a node in a peer-to-peer or distributed network environment. The machine 700 can be embodied as, for example, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a game and / or entertainment system, a smart phone, a mobile device, a wearable device (e.g., a smart watch), and an Internet of Things (IoT) device. Further, while only a single machine 700 is illustrated, the term "machine" includes any collection of machines that individually or jointly execute instructions 716.

[0050] The machine 700 may include a processor 710, a memory 730, and I / O components 750, which may be communicatively coupled via, for example, a bus 702. The bus 702 may include multiple buses that couple various elements of the machine 700 via various bus technologies and protocols. In an example, the processor 710 (including, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, or a suitable combination thereof) may include one or more processors 712a to 712n that can execute instructions 716 and process data. In some examples, one or more processors 710 may execute instructions provided or identified by one or more other processors 710. The term "processor" includes a multi-core processor, which includes cores that can execute instructions simultaneously. Although Figure 7 Multiple processors are shown, but machine 700 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors each with a single core, multiple processors each with multiple cores, or any combination thereof. In some examples, machine 700 may include multiple processors distributed among multiple machines.

[0051] The memory / storage 730 may include a main memory 732, a static memory 734 or other memory, and a storage unit 736, both of which may be accessed by the processor 710, such as via the bus 702. The storage unit 736 and the memories 732, 734 store instructions 716 that embody any one or more of the functions described herein. The memory / storage 730 may also store temporary, intermediate, and / or long-term data for the processor 710. The instructions 716 may also reside, in whole or in part, within the memories 732, 734, within the storage unit 736, within at least one of the processors 710 (e.g., within a command buffer or cache memory), within at least one of the I / O components 750, or any suitable combination thereof during execution thereof. Thus, the memories 732, 734, the storage unit 736, the memory in the processor 710, and the memory in the I / O components 750 are examples of machine-readable media.

[0052] As used herein, a "machine-readable medium" refers to a device capable of temporarily or permanently storing instructions and data that cause the machine 700 to operate in a particular manner, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical storage media, magnetic storage media and devices, cache memory, network-accessible or cloud storage, other types of storage, and / or any suitable combination thereof. The term "machine-readable medium" applies to a single medium or a combination of multiple media used to store instructions (e.g., instructions 716) executed by the machine 700, such that the instructions, when executed by one or more processors 710 of the machine 700, cause the machine 700 to perform one or more features described herein. Thus, a "machine-readable medium" may refer to a single storage device, as well as a "cloud-based" storage system or storage network that includes multiple storage devices or devices. The term "machine-readable medium" does not include the signal itself.

[0053] I / O components 750 may include various hardware components suitable for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 750 included in a particular machine will depend on the type and / or function of the machine. For example, a mobile device such as a mobile phone may include a touch input device, while a headless server or IoT device may not include such a touch input device. Figure 7The specific examples of I / O components shown are by no means limiting, and other types of components may be included in the machine 700. The grouping of I / O components 750 is only used to simplify this discussion, and the grouping is by no means limiting. In various examples, the I / O components 750 may include a user output component 752 and a user input component 754. The user output component 752 may include, for example, a visual component (e.g., a liquid crystal display (LCD) or a projector) for displaying information, an acoustic component (e.g., a speaker), a tactile component (e.g., a vibration motor or a force feedback device), and / or other signal generators. The user input component 754 may include, for example, an alphanumeric input component (e.g., a keyboard or a touch screen), a pointing component (e.g., a mouse device, a touch pad, or another pointing instrument), and / or a tactile input component (e.g., a physical button or touch screen that provides the location and / or force of a touch or touch gesture), which is configured to receive various user inputs, such as user commands and / or selections.

[0054] In some examples, I / O component 750 may include biometric component 756, motion component 758, environment component 760, and / or position component 762, as well as various other physical sensor components. Biometric component 756 may include, for example, components for detecting body expressions (e.g., facial expressions, vocal expressions, hand or body gestures, or eye tracking), measuring biosignals (e.g., heart rate or brain waves), and identifying people (e.g., via voice, retina, fingerprint, and / or face-based recognition). Motion component 758 may include, for example, acceleration sensors (e.g., accelerometers) and rotation sensors (e.g., gyroscopes). Environment component 760 may include, for example, lighting sensors, temperature sensors, humidity sensors, pressure sensors (e.g., barometers), acoustic sensors (e.g., microphones for detecting ambient noise), proximity sensors (e.g., infrared sensing of nearby objects), and / or other components that may provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 762 may include, for example, a position sensor (e.g., a global positioning system (GPS) receiver), an altitude sensor (e.g., a barometric pressure sensor from which altitude can be derived), and / or an orientation sensor (e.g., a magnetometer).

[0055] The I / O components 750 may include a communication component 764 that implements various techniques operable to couple the machine 700 to a network 770 and / or a device 780 via respective communication couplings 772 and 782. The communication component 764 may include one or more network interface components or other suitable devices to interface with the network 770. The communication component 764 may include, for example, components suitable for providing wired communication, wireless communication, cellular communication, near field communication (NFC), Bluetooth communication, Wi-Fi, and / or communication via other modalities. The device 780 may include other machines or various peripheral devices (e.g., via USB coupling).

[0056] In some examples, the communication component 764 can detect an identifier or include a component suitable for detecting an identifier. For example, the communication component 764 can include a radio frequency identification (RFID) tag reader, an NFC detector, an optical sensor (e.g., a one-dimensional or multi-dimensional barcode or other optical code), and / or an acoustic detector (e.g., a microphone for identifying an audio signal of a tag). In some examples, location information can be determined based on information from the communication component 764, such as, but not limited to, a geographic location via an Internet Protocol (IP) address, a location via Wi-Fi, cellular, NFC, Bluetooth, or other wireless station identification, and / or signal triangulation.

[0057] In the following, further features, characteristics and advantages of the present invention will be described by means of the items:

[0058] Item 1. A method for identifying and evicting idle sessions of a cloud-based service, the method comprising:

[0059] training a machine learning model as a session classification model to learn rules for classifying active sessions between a client and a cloud-based service, each of the active sessions being associated with a document maintained by the cloud-based service, the session classification model being trained to receive as input a plurality of parameters associated with the documents associated with the active sessions, and to apply the rules to the plurality of parameters to determine a classification for the active sessions, and to provide an output indicative of the classification of the active sessions;

[0060] utilizing a session classification model in the cloud-based service to classify the active sessions in the cloud-based service by providing the session classification model with a plurality of parameters related to documents associated with each of the active sessions and applying rules to the plurality of parameters using the session classification model to determine a classification for each of the active sessions; and

[0061] Active sessions that have been classified as idle sessions are evicted from the cloud-based service.

[0062] Item 2. The method of Item 1, wherein the session classification model is trained to determine whether the active session should be assigned an idle session classification or a less important session classification.

[0063] Item 3. The method according to any one of Items 1-2, further comprising:

[0064] Active sessions that have been classified as less important sessions are evicted.

[0065] Item 4. The method of any one of Items 1-3, wherein the plurality of parameters include at least one parameter indicating the last time the document was modified and at least one parameter indicating the number of users involved in processing the document.

[0066] Item 5. The method of any one of Items 1-4, wherein the at least one parameter indicating the last time the document was modified comprises at least one of the following: a time-since-last-call, a time-since-last-edit, a time-since-last-merge, a time-file-last-edit, and a time-file-created parameter, and

[0067] The at least one parameter indicating the number of users involved in processing the document comprises at least one of the following: the number of active authors and the total number of authors.

[0068] Item 6. The method of any one of Items 1-5, wherein the plurality of parameters further comprises at least one of a file type and a file size.

[0069] Item 7. The method of any of Items 1-6, wherein the plurality of parameters includes a number of undo actions performed in the document.

[0070] Item 8. A data processing system comprising:

[0071] Processor; and

[0072] a memory in communication with the processor, the memory including executable instructions that, when executed by the processor, cause the data processing system to perform the following functions:

[0073] assigning a classification to active sessions between a client and a cloud-based service using a machine learning model trained as a session classification model, each of the active sessions being associated with a document maintained by the cloud-based service, the session classification model receiving as input a plurality of parameters associated with the document associated with each of the active sessions and being trained to determine a classification for the active sessions by applying a rule for classifying each of the active sessions based on the plurality of parameters, the session classification model providing an output indicative of the classification for the active sessions; and

[0074] Active sessions that have been classified as idle sessions are evicted from the cloud-based service.

[0075] Item 9. The data processing system of Item 8, wherein the session classification model is trained to determine whether the active session should be assigned an idle session classification or a less important session classification.

[0076] Item 10. The data processing system of any one of Items 8-9, further comprising:

[0077] Active sessions that have been classified as less important sessions are evicted.

[0078] Item 11. The data processing system of any one of Items 8-10, wherein the plurality of parameters include at least one parameter indicating the last time the document was modified and at least one parameter indicating the number of users involved in processing the document.

[0079] Item 12. The data processing system of any one of Items 8-11, wherein the at least one parameter indicating the last time the document was modified comprises at least one of the following: a time-since-last-call, a time-since-last-edit, a time-since-last-merge, a time-file-last-edit, and a time-file-created parameter, and

[0080] The at least one parameter indicating the number of users involved in processing the document comprises at least one of the following: the number of active authors and the total number of authors.

[0081] Item 13. The data processing system of any one of Items 8-12, wherein the plurality of parameters further comprises at least one of a file type and a file size.

[0082] Item 14. The data processing system of any of items 8-13, wherein the plurality of parameters includes a number of undo actions performed in the document.

[0083] Item 15. The data processing system of any one of Items 8-14, wherein the function further comprises:

[0084] A session classification model is trained to learn rules for classifying active sessions between a client and a cloud-based service, the session classification model being trained to receive as input a plurality of parameters regarding documents associated with the active sessions and to apply the rules to the plurality of parameters to determine a classification for the active sessions.

[0085] Item 16 A non-transitory computer-readable medium having stored thereon instructions that, when executed, cause a programmable device to perform the following functions:

[0086] assigning a classification to active sessions between a client and a cloud-based service using a machine learning model trained as a session classification model, each of the active sessions being associated with a document maintained by the cloud-based service, the session classification model receiving as input a plurality of parameters associated with the document associated with each of the active sessions and being trained to determine a classification of the active session by applying rules for classifying each of the active sessions based on the plurality of parameters, the session classification model providing an output indicative of the classification of the active session; and

[0087] Active sessions that have been classified as idle sessions are evicted from the cloud-based service.

[0088] Item 17. The non-transitory computer-readable medium of Item 16, wherein the session classification model is trained to determine whether an active session should be assigned an idle session classification or a less important session classification.

[0089] Item 18. The non-transitory computer-readable medium of any one of Items 16 to 17, wherein the functions further comprise:

[0090] Active sessions that have been classified as less important sessions are evicted.

[0091] Item 19. The non-transitory computer-readable medium of any one of Items 16 to 18, wherein the plurality of parameters include at least one parameter indicating a last time the document was modified and at least one parameter indicating a number of users involved in processing the document.

[0092] Item 20. The non-transitory computer-readable medium of any one of Items 16 to 19, wherein the at least one parameter indicating the last time the document was modified comprises at least one of the following: a time-since-last-call, a time-since-last-edit, a time-since-last-merge, a time-file-last-edit, and a time-file-created parameter, and

[0093] The at least one parameter indicating the number of users involved in processing the document comprises at least one of the following: the number of active authors and the total number of authors.

[0094] In the following detailed description, numerous specific details are set forth by way of example in order to provide a thorough understanding of the relevant teachings. After reading this specification, it will be apparent to those of ordinary skill that various aspects may be practiced without such details. In other cases, in order to avoid unnecessarily obscuring various aspects of the present teachings, well-known methods, processes, components and / or circuits have been described at a relatively high level without detail.

[0095] Although various embodiments have been described, the description is intended to be exemplary rather than restrictive, and it should be understood that more embodiments and implementations within the scope of the embodiments are possible. Although many possible combinations of features are shown in the drawings and discussed in this detailed description, many other combinations of the disclosed features are possible. Unless specifically limited, any feature of any embodiment may be used in combination with any other feature or element in any other embodiment or replace any other feature or element in any other embodiment. Therefore, it should be understood that any feature shown and / or discussed in this disclosure can be implemented together in any suitable combination. Therefore, the embodiments are not limited except according to the attached claims and their equivalents. Moreover, various modifications and changes can be made within the scope of the attached claims.

[0096] Although the foregoing has described what is considered to be the best mode and / or other examples, it should be understood that various modifications may be made therein, and the subject matter disclosed herein may be implemented in various forms and examples, and the teachings may be applied to many applications, only some of which are described herein. The following claims are intended to claim any and all applications, modifications, and variations that fall within the true scope of the present teachings.

[0097] Unless otherwise indicated, all measurements, values, ratings, positions, quantities, sizes and other specifications set forth in this specification (including in the claims that follow) are approximate and not exact. They are intended to have a reasonable range consistent with the functions to which they relate and with customary practice in the art to which they belong.

[0098] The scope of protection is limited only by the following claims. When interpreted in light of this specification and subsequent prosecution history, the scope is intended and should be interpreted to be consistent with the ordinary meaning of the language used in the claims and to encompass all structural and functional equivalents. Nevertheless, none of the claims is intended to include subject matter that does not satisfy the requirements of Sections 101, 102, or 103 of the Patent Act, nor should they be interpreted in such a manner. Therefore, protection is not claimed for any unexpected envelopment of such subject matter.

[0099] Except as stated immediately above, nothing that has been stated or shown is intended or should be construed as causing exclusive use to the public of any component, step, feature, object, benefit, advantage, or equivalent, whether or not recited in the claims.

[0100] It should be understood that the terms and expressions used herein have ordinary meanings consistent with the corresponding inquiries and research fields corresponding to these terms and expressions, unless a specific meaning is otherwise set forth herein. Relational terms such as first and second, etc. can be used only to distinguish one entity or action from another entity or action, without requiring or implying any actual such relationship or order between these entities or actions. The terms "include", "comprises" or any other variation thereof are intended to cover non-exclusive inclusions, so that the process, method, article or device including the list of elements includes not only those elements, but may also include other elements that are not explicitly listed or inherent to such processes, methods, articles or devices. In the absence of further constraints, an element carried out by "one" or "an" does not exclude the presence of additional identical elements in the process, method, article or device including the element.

[0101] The abstract of the present disclosure is provided to allow the reader to quickly determine the nature of the technical disclosure. It should be understood that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing detailed description, it can be seen that various features are grouped together in various examples for the purpose of simplifying the present disclosure. The method of the present disclosure should not be interpreted as reflecting the following intention: the claims require more features than the features explicitly recited in each claim. On the contrary, as reflected in the following claims, the subject matter of the invention lies in less than all the features of a single disclosed example. Therefore, the following claims are hereby incorporated into the detailed description, with each claim independently serving as a separately claimed subject matter.

Claims

1. A method for identifying and evicting idle sessions for a cloud-based service, the method comprising: training a machine learning model as a session classification model for learning rules for classifying active sessions between a client and the cloud-based service, each of the active sessions being associated with a document maintained by the cloud-based service, the session classification model being trained to receive as input a plurality of parameters associated with the documents associated with the active sessions, and to apply the rules to the plurality of parameters to determine a classification for the active sessions, and to provide an output indicative of the classification for the active sessions; as well as utilizing the session classification model in the cloud-based service to classify the active sessions in the cloud-based service by providing the session classification model with a plurality of parameters related to documents associated with each of the active sessions and applying the rule to the plurality of parameters using the session classification model to determine a classification for each of the active sessions; as well as Active sessions that have been classified as idle sessions are evicted from the cloud-based service.

2. The method according to claim 1, wherein: The session classification model is trained to determine whether the active session should be assigned an idle session classification or a less important session classification.

3. The method according to claim 1, further comprising: Active sessions that have been classified as less important sessions are evicted.

4. The method according to claim 1, wherein: The plurality of parameters include at least one parameter indicating a last time the document was modified and at least one parameter indicating a number of users involved in processing the document.

5. The method according to claim 4, wherein: The at least one parameter indicating the last time the document was modified comprises at least one of the following: a time-since-last-call, a time-since-last-edit, a time-since-last-merge, a time-file-last-edit, and a time-file-created parameter, and The at least one parameter indicating the number of users involved in processing the document comprises at least one of the following: the number of active authors and the total number of authors.

6. The method according to claim 5, wherein: The plurality of parameters further include at least one of the following: file type and file size.

7. The method according to claim 6, wherein: The plurality of parameters includes a number of undo actions performed in the document.

8. A data processing system comprising: processor; as well as A memory in communication with the processor, the memory including executable instructions that, when executed by the processor, cause the data processing system to perform the following functions: assigning a classification to active sessions between a client and a cloud-based service using a machine learning model trained as a session classification model, each of the active sessions being associated with a document maintained by the cloud-based service, the session classification model receiving as input a plurality of parameters associated with the document associated with each of the active sessions and being trained to apply rules for classifying each of the active sessions based on the plurality of parameters to determine a classification for the active session, the session classification model providing an output indicative of the classification for the active session; as well as Active sessions that have been classified as idle sessions are evicted from the cloud-based service.

9. The data processing system according to claim 8, wherein: The session classification model is trained to determine whether the active session should be assigned an idle session classification or a less important session classification.

10. The data processing system according to claim 8, further comprising: Active sessions that have been classified as less important sessions are evicted.

11. The data processing system according to claim 8, wherein: The plurality of parameters include at least one parameter indicating a last time the document was modified and at least one parameter indicating a number of users involved in processing the document.

12. The data processing system according to claim 11, wherein: The at least one parameter indicating the last time the document was modified comprises at least one of the following: a time-since-last-call, a time-since-last-edit, a time-since-last-merge, a time-file-last-edit, and a time-file-created parameter, and The at least one parameter indicating the number of users involved in processing the document comprises at least one of the following: the number of active authors and the total number of authors.

13. The data processing system according to claim 12, wherein: The plurality of parameters further include at least one of the following: file type and file size.

14. The data processing system according to claim 13, wherein: The plurality of parameters includes a number of undo actions performed in the document.

15. The data processing system according to claim 8, wherein: The functionality also includes: The session classification model is trained to learn rules for classifying the active session between the client and the cloud-based service, the session classification model being trained to receive as input a plurality of parameters related to documents associated with the active session and to apply the rules to the plurality of parameters to determine a classification for the active session.