IP Library Patent Application 11770498
Patent Application
App. No. 11/770,498

Multiple Thread Pools for Processing Requests

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 None
App. No.
11/770,498
Abstract

In embodiments, servers within a distributed system include more than one thread pool from which threads may be allocated for processing requests received at the servers. The servers have a local thread pool from which threads for processing requests that require only local resources (resources stored locally on the server) are allocated. In embodiments, the server will include a remote thread pool from which threads are allocated for processing requests that require resources stored on any remote server. In other embodiments, the server will include a corresponding thread pool for each of a number of specified remote servers. When a request requires access to resources stored on a particular server, a thread from the corresponding thread pool associated with the particular server will be allocated for processing the request.

Claims (44)

1 . A computer implemented method of processing a request, wherein the processing requires resources stored on a distributed system, the method comprising:

receiving at a receiving server a request for processing, wherein the receiving server comprises a local thread pool and a remote thread pool;

determining by the receiving server where the resources required for processing the request are stored;

in response to a determination that the resources are stored remotely on a remote server, allocating a thread from the remote thread pool for processing the request;

in response to a determination that the resources are stored locally on the receiving server, allocating a thread from the local thread pool for processing the request; and

processing the request.

2 . The method of claim 1 , wherein the remote server is a first remote server and the remote thread pool is associated with the first remote server.

3 . The method of claim 2 , wherein the receiving server further comprises a second remote thread pool.

4 . The method of claim 3 , further comprising:

in response to a determination that the resources are stored remotely on a second remote server, allocating a thread from the second remote thread pool for processing the request.

5 . The method of claim 3 , wherein the second remote thread pool is associated with a second remote server.

6 . The method of claim 1 , wherein the remote server is a first remote server, and the method further comprises:

in response to a determination that the resources are stored remotely on a second remote server, allocating a thread from the remote thread pool for processing the request.

7 . The method of claim 2 , further comprising:

in response to a determination that the resources are stored remotely on a second remote server, allocating a thread from the local thread pool for processing the request.

8 . The method of claim 1 , wherein the local thread pool comprises more threads than the remote thread pool.

9 . The method of claim 1 , wherein the receiving server is a directory server.

10 . The method of claim 9 , wherein the resources comprise a directory and the request relates to accessing the directory.

11 . The method of claim 10 , wherein the request is in the form of a Light Directory Access Protocol (LDAP) request.

12 . A computer readable medium storing computer executable instructions for performing a method of processing a request, wherein the processing requires access to resources stored on a distributed system, the method comprising:

receiving at a receiving server a request for processing, wherein the receiving server comprises a local thread pool, a first server thread pool associated with a first remote server, and a second server thread pool associated with a second remote server;

determining where resources required for processing the request are stored;

in response to a determination that the resources are stored on the receiving server, allocating a thread from the local thread pool for processing the request; and

in response to a determination that the resources are stored on the first remote server, allocating a thread from the first server thread pool for processing the request;

in response to a determination that the resources are stored on the second remote server, allocating thread from the second server thread pool for processing the request.

13 . The computer readable medium of claim 12 , wherein the receiving server further comprises a remote thread pool, wherein the remote thread pool is not associated with any specific remote server.

14 . The computer readable medium of claim 13 , further comprising:

in response to a determination that the resources are stored remotely on a remote server that is not one of the first remote server or the second remote server, allocating a thread from the remote thread pool for processing the request.

15 . The computer readable medium of claim 12 , wherein the receiving server is a directory server.

16 . The computer readable medium of claim 15 , wherein the resources comprise a directory and the request relates to accessing the directory.

17 . The computer readable medium of claim 16 , wherein the request is in the form of a Light Directory Access Protocol (LDAP) request.

18 . A computer system for processing a request, the system comprising:

a memory storing:

a local thread pool;

a remote thread pool associated with a plurality of remote servers; and

computer executable instructions that when executed perform the steps of:

receiving a request for processing;

determining where the resources required for processing the request are stored;

in response to a determination that the resources are stored remotely on one of the plurality of remote servers, allocating a thread from the remote thread pool for processing the request;

in response to a determination that the resources are stored locally, allocating a thread from the local thread pool for processing the request; and

processing the request; and

a processor for processing the computer executable instructions.

19 . The system of claim 18 , wherein the resources comprise a directory and the request relates to accessing the directory.

20 . The system of claim 19 , wherein the request is in the form of a Light Directory Access Protocol (LDAP) request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2007
From: ABIB, ELBIO RENATO T.; FLEISCHMAN, ERIC S.; RIMER, MATTHEW S.
To: MICROSOFT CORPORATION
Reel/Frame 019558/0029 →