IP Library Granted Patent US 12,321,318
Granted Patent B2
US 12,321,318 · App. 17/163,127 · Granted Jun 3, 2025

Framework for allowing complementary workloads/processes to bring in heavy load on a file collaboration platform

Inventors: Akshay Navneetlal Mutha (Sammamish, WA); Nishand Lalithambika Vasudevan (Redmond, WA); Abhishek Anil Kakhandiki (Bellevue, WA); Niloofar Hezarjaribi (Bellevue, WA); Reetu Kamath (Redmond, WA); Zi Gu (Redmond, WA); Chenying Yang (Redmond, WA); Shivraj Prakash Ghatkar (Kirkland, WA); Albert Shen (Kirkland, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F16/176G06F9/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,321,318
App. No.
17/163,127
Granted
Jun 3, 2025
Kind
B2
Abstract

A data processing system for processing requests for features at a file collaboration platform implements receiving, at the file collaboration platform, a request from a client device to invoke a requested service on one or more files, wherein the requested service is associated with a feature provided by the file collaboration platform; determining a current operating status of the file collaboration platform; obtaining a feature-specific policy associated with the feature associated with the request; determining whether the requested service is allowed by the file collaboration platform based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature; allocating capacity to the request at the file collaboration platform for performing the request responsive to determining that the requested service is allowed; and sending a first message to the client device indicating that the client device may invoke the requested service.

Claims (93)

1. A data processing system comprising:

a processor; and

a computer-readable medium storing executable instructions for causing the processor to perform operations comprising:

receiving, at a file collaboration platform, a request from a client device to invoke a requested complementary service on one or more files, wherein the requested complementary service is a service associated with a feature provided by the file collaboration platform that enhances a user experience, is complementary to the file collaboration platform, and is time insensitive;

in response to receiving the request, adding the request by a request handler module to a wait queue, wherein the wait queue holds requests received by the file collaboration platform that are waiting for the request handler module to determine whether the requests are allowed to be processed by the file collaboration platform;

determining a current operating status of the file collaboration platform;

obtaining a feature-specific policy associated with the feature of the requested complementary service of the file collaboration platform, wherein the feature-specific policy includes metrics of the current operating status of the file collaboration platform and the feature-specific policy is used to determine whether to allow or block a particular request for the requested complementary service from the client device to the file collaboration platform;

determining by the request handler module whether the requested complementary service is allowed by the file collaboration platform based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature;

moving the request from the wait queue to an active queue responsive to the request handler module determining that the requested complementary service is allowed based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature of the requested complementary service, wherein the active queue holds requests that have been approved for processing by the file collaboration platform;

updating an available capacity of the file collaboration platform in response to moving the request to the active queue;

allocating capacity to the request at the file collaboration platform for performing the request responsive to determining that the requested complementary service is allowed; and

sending a first message to the client device indicating that the client device may invoke the requested complementary service.

2. The data processing system of claim 1 , wherein the computer-readable medium further comprises instructions for causing the processor to perform operations comprising:

receiving, from the client device, a first response to the first message invoking the requested complementary service;

receiving, from the client device, the one or more files on which the requested complementary service is to be performed by the file collaboration platform; and

invoking the requested complementary service on the one or more files.

3. The data processing system of claim 2 , wherein the computer-readable medium further comprises instructions for causing the processor to perform operations comprising:

confirming, prior to invoking the requested complementary service, that the current operating status of the file collaboration platform permit the requested complementary service to be invoked; and

temporarily delaying invoking the requested complementary service until the current operating status of the file collaboration platform improves sufficiently to permit the requested complementary service to be invoked.

4. The data processing system of claim 2 , wherein the computer-readable medium further comprises instructions for causing the processor to perform operations comprising:

determining that the requested complementary service has been completed on the one or more files;

deallocating the capacity from the request; and

updating an available capacity of the file collaboration platform responsive to deallocating the capacity from the request.

5. The data processing system of claim 1 , wherein to determine the current operating status of the file collaboration platform, the computer-readable medium further comprises instructions for causing the processor to perform operations comprising:

determining metrics of the current operating status of the file collaboration platform for the feature-specific policy including a current CPU utilization of the file collaboration platform, a current memory utilization of the file collaboration platform, a health of one or more servers of the file collaboration platform, a position of the request within a queue, a time of day, a day of week, or a combination thereof.

6. The data processing system of claim 1 , wherein to determine the current operating status of the file collaboration platform, the computer-readable medium further comprises instructions for causing the processor to perform operations comprising:

receiving, at the file collaboration platform, a second request from the client device to invoke a second requested complementary service on one or more files;

responsive to the request handler module determining that the second requested complementary service is not allowed based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature of the requested complementary service, generating a second message to the client device indicating that the second request is not allowed but the client device may resubmit the second request after a first period of time specified in the second message has elapsed; and

sending the second message to the client device.

7. The data processing system of claim 1 , wherein the computer-readable medium further comprises instructions for causing the processor to perform operations comprising:

receiving at a slot manager a request message and associated files from the client device after sending the first message to the client device, the request message indicating that the client device may invoke the requested complementary service;

determining via the slot manager whether the request handler module allocated a slot for the request message when allocating available capacity in response to moving the request to the active queue; and

processing the request message from the client device responsive to a determination that the request handler module allocated the slot for the request message.

8. A method implemented in a data processing system for processing requests for features at a file collaboration platform, the method comprising:

receiving, at the file collaboration platform, a request from a client device to invoke a requested complementary service on one or more files, wherein the requested complementary service is associated with a feature provided by the file collaboration platform that enhances a user experience, is complementary to the file collaboration platform, and is time insensitive;

in response to receiving the request, adding the request by a request handler module to a wait queue, wherein the wait queue holds requests received by the file collaboration platform that are waiting for the request handler module to determine whether the requests are allowed to be processed by the file collaboration platform;

determining a current operating status of the file collaboration platform;

obtaining a feature-specific policy associated with the feature associated with the requested complementary service of the file collaboration platform, wherein the feature-specific policy includes metrics of the current operating status of the file collaboration platform and the feature-specific policy is used to determine whether to allow or block a particular request for the requested complementary service from the client device to the file collaboration platform;

determining by the request handler module whether the requested complementary service is allowed by the file collaboration platform based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature;

moving the request from the wait queue to an active queue responsive to the request handler module determining that the requested complementary service is allowed based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature of the requested complementary service, wherein the active queue holds requests that have been approved for processing by the file collaboration platform;

allocating capacity to the request at the file collaboration platform for performing the request responsive to determining that the requested complementary service is allowed; and

sending a first message to the client device indicating that the client device may invoke the requested complementary service.

9. The method of claim 8 , further comprising:

receiving, from the client device, a first response to the first message invoking the requested complementary service;

receiving, from the client device, the one or more files on which the requested complementary service is to be performed by the file collaboration platform; and

invoking the requested complementary service on the one or more files.

10. The method of claim 9 , further comprising:

confirming, prior to invoking the requested complementary service, that the current operating status of the file collaboration platform permit the requested complementary service to be invoked; and

temporarily delaying invoking the requested complementary service until the current operating status of the file collaboration platform improves sufficiently to permit the requested complementary service to be invoked.

11. The method of claim 9 , further comprising:

determining that the requested complementary service has been completed on the one or more files;

deallocating the capacity from the request; and

updating an available capacity of the file collaboration platform responsive to deallocating the capacity from the request.

12. The method of claim 8 , wherein determining the current operating status of the file collaboration platform further comprises:

determining a current CPU utilization of the file collaboration platform, a current memory utilization of the file collaboration platform, a health of one or more servers of the file collaboration platform, or a combination thereof.

13. The method of claim 8 , wherein determining the current operating status of the file collaboration platform further comprising:

receiving, at the file collaboration platform, a second request from the client device to invoke a second requested complementary service on one or more files;

responsive to the request handler module determining that the second requested complementary service is not allowed based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature of the requested complementary service, generating a second message to the client device indicating that the second request is not allowed but the client device may resubmit the request after a first period of time specified in the second message has elapsed; and

sending the second message to the client device.

14. The method of claim 8 , further comprising:

receiving at a slot manager a request message and associated files from the client device after sending the first message to the client device, the request message indicating that the client device may invoke the requested complementary service;

determining via the slot manager whether the request handler module allocated a slot for the request message when allocating available capacity in response to moving the request to the active queue; and

processing the request message from the client device responsive to a determination that the request handler module allocated the slot for the request message.

15. A machine-readable storage medium on which are stored instructions that, when executed, cause a processor of a programmable device to perform functions of:

receiving, at a file collaboration platform, a request from a client device to invoke a requested complementary service on one or more files, wherein the requested complementary service is associated with a feature provided by the file collaboration platform that enhances a user experience, is complementary to the file collaboration platform, and is time insensitive;

in response to receiving the request, adding the request by a request handler module to a wait queue, wherein the wait queue holds requests received by the file collaboration platform that are waiting for the request handler module to determine whether the requests are allowed to be processed by the file collaboration platform;

determining a current operating status of the file collaboration platform;

obtaining a feature-specific policy associated with the feature associated with the requested complementary service of the file collaboration platform, wherein the feature-specific policy includes metrics of the current operating status of the file collaboration platform and the feature-specific policy is used to determine whether to allow or block a particular request for a complementary service from the client device to the file collaboration platform;

determining by the request handler module whether the requested complementary service is allowed by the file collaboration platform based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature;

moving the request from the wait queue to an active queue responsive to the request handler module determining that the requested complementary service is allowed based on the current operating status of the file collaboration platform and the feature-specific policy associated with the feature of the requested complementary service, wherein the active queue holds requests that have been approved for processing by the file collaboration platform;

updating an available capacity of the file collaboration platform in response to moving the request to the active queue;

allocating capacity to the request at the file collaboration platform for performing the request responsive to determining that the requested complementary service is allowed; and

sending a first message to the client device indicating that the client device may invoke the requested complementary service.

16. The machine-readable storage medium of claim 15 , wherein the machine-readable storage medium further comprises instructions for causing the processor to perform operations comprising:

receiving, from the client device, a first response to the first message invoking the requested complementary service;

receiving, from the client device, the one or more files on which the requested complementary service is to be performed by the file collaboration platform; and

invoking the requested complementary service on the one or more files.

17. The machine-readable storage medium of claim 16 , wherein the machine-readable storage medium further comprises instructions for causing the processor to perform operations comprising:

confirming, prior to invoking the requested complementary service, that the current operating status of the file collaboration platform permit the requested complementary service to be invoked; and

temporarily delaying invoking the requested complementary service until the current operating status of the file collaboration platform improves sufficiently to permit the requested complementary service to be invoked.

18. The machine-readable storage medium of claim 16 , wherein the machine-readable storage medium further comprises instructions for causing the processor to perform operations comprising:

determining that the requested complementary service has been completed on the one or more files;

deallocating the capacity from the request; and

updating an available capacity of the file collaboration platform responsive to deallocating the capacity from the request.

19. The machine-readable storage medium of claim 15 , wherein the machine-readable storage medium further comprises instructions for causing the processor to perform operations comprising:

adding the request to a first queue in response to receiving the request, wherein the first queue holds requests received by the file collaboration platform; and

moving the request from the first queue to a second queue, wherein the second queue holds requests that have been approved for processing by the file collaboration platform.

20. The machine-readable storage medium of claim 15 , wherein to determine the current operating status of the file collaboration platform, the machine-readable storage medium further comprises instructions for causing the processor to perform operations comprising:

determining a current CPU utilization of the file collaboration platform, a current memory utilization of the file collaboration platform, a health of one or more servers of the file collaboration platform, or a combination thereof.

21. The machine-readable storage medium of claim 15 , wherein the machine-readable storage medium further comprises instructions for causing the processor to perform operations comprising:

receiving at a slot manager a request message and associated files from the client device after sending the first message to the client device, the request message indicating that the client device may invoke the requested complementary service;

determining via the slot manager whether the request handler module allocated a slot for the request message when allocating available capacity in response to moving the request to the active queue; and

processing the request message from the client device responsive to a determination that the request handler module allocated the slot for the request message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: MUTHA, AKSHAY NAVNEETLAL; SHEN, ALBERT; YANG, CHENYING; HEZARJARIBI, NILOOFAR; VASUDEVAN, NISHAND LALITHAMBIKA; KAMATH, REETU; GHATKAR, SHIVRAJ PRAKASH; GU, ZI; KAKHANDIKI, ABHISHEK ANIL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 055086/0018 →
Continuity (2)
Provisional Application 63123960 · Dec 10, 2020
Related Publication 20220188271A1 · Jun 16, 2022
References Cited (26)
US 7870294B2 · Braddy et al. · 2011 [cited by applicant]
US 7895353B2 · Jansson et al. · 2011 [cited by applicant]
US 8402470B2 · Chiang et al. · 2013 [cited by applicant]
US 8799322B2 · Demilo et al. · 2014 [cited by applicant]
US 9015248B2 · Barreto et al. · 2015 [cited by applicant]
US 9189645B2 · Borzycki · 2015 [cited by examiner]
US 9195971B2 · McConnell · 2015 [cited by examiner]
US 9628329B2 · Singh et al. · 2017 [cited by applicant]
US 20010047385A1 · Tuatini · 2001 [cited by examiner]
US 20060010125A1 · Beartusk · 2006 [cited by examiner]
US 20120297046A1 · Raja · 2012 [cited by examiner]
US 20140032691A1 · Barton · 2014 [cited by examiner]
US 20150081773A1 · Ansel · 2015 [cited by examiner]
US 20160085392A1 · Dargahi · 2016 [cited by examiner]
US 20160088023A1 · Handa · 2016 [cited by examiner]
US 20170147796A1 · Sardesai · 2017 [cited by examiner]
US 20190068752A1 · Brooks · 2019 [cited by examiner]
US 20200322426A1 · Nethercutt · 2020 [cited by examiner]
US 20200334194A1 · Tran · 2020 [cited by applicant]
US 20210014287A1 · Kimball · 2021 [cited by examiner]
CN 109857574A · 2019 [cited by applicant]
“Deficit Round Robin”, Retrieved from: https://web.archive.org/web/20200518185347/https:/en.wikipedia.org/wiki/Deficit_round_robin, May 18, 2020, 4 Pages. [cited by applicant]
“Weighted Fair Queueing”, Retrieved from: https://web.archive.org/web/20200102193850/https:/en.wikipedia.org/wiki/Weighted_fair_queueing, Jan. 2, 2020, 4 Pages. [cited by applicant]
Byrne, Joe, “Why Not just use Google Drive as a Document Management System?”, Retrieved from: https://www.cognidox.com/blog/why-not-just-use-google-drive-as-a-document-management-system, Retrieved Date: Nov. 10, 2020, 9… [cited by applicant]
Chillakanti, Pratap, “Secure Collaboration in Onboarding”, In Thesis of Middlesex University, Aug. 2013, 256 Pages. [cited by applicant]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US21/058510”, Mailed Date: Mar. 9, 2022, 11 Pages. [cited by applicant]