US6535878B1ExpiredUtility

Method and system for providing on-line interactivity over a server-client network

86
Assignee: ROXIO INCPriority: May 2, 1997Filed: Mar 19, 1998Granted: Mar 18, 2003
Est. expiryMay 2, 2017(expired)· nominal 20-yr term from priority
H04L 67/567H04L 67/56G06F 9/4843H04L 67/303Y10S707/99938
86
PatentIndex Score
125
Cited by
62
References
30
Claims

Abstract

Apparatus and a method for communicating media over a network including encoding the media into a server database at a server, downloading from the server database to a client database generally only those portions of the media which are necessary to satisfy user requests and in response to a user request for a given item of media, determining whether the media is present in the client database, and if not, automatically downloading those portions of the media which are necessary to supply the user with the given item of media from the server database. An image server is provided including at least one processor operative to supply portions of image data to clients in response to multiple requests therefrom, and thread management software operating the at least one processor by causing it to process the requests using at least one of a plurality of threads, the thread management software being characterized in that it initiates a new thread when an existing thread has exceeded a predetermined metric of busyness.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. A computer thread management system comprising: 
       at least one processor;  
       a thread pool containing a plurality of threads for processing client requests, the threads in said thread pool being characterized in that they enter a wait state upon completion of a client request, and are not destroyed; and  
       thread management software operating a plurality of threads including said thread pool, and operating said at least one processor by causing it to process requests using at least one thread, said thread management software being characterized in that it creates a new thread within said thread pool when an existing thread in said thread pool has exceeded a predetermined non-zero amount of busyness, irrespective of whether or not a client request is waiting in an incoming request queue for processing.  
     
     
       2. A computer thread management system according to  claim 1  and wherein said thread management software creates a new thread within said thread pool only when an existing thread in said thread pool has exceeded said predetermined non-zero amount of busyness. 
     
     
       3. A computer thread management system according to  claim 1  and wherein said thread management software is operative to open a socket connection for each new incoming request accepted by a thread for processing. 
     
     
       4. A computer thread management system according to  claim 1  and wherein each existing thread can be in an active state or in a wait state. 
     
     
       5. A computer thread management system according to  claim 1  and wherein said thread management software is operative to remove said existing thread from said thread pool when said existing thread has exceeded said predetermined non-zero amount of busyness, and wherein threads not contained within said thread pool are characterized in that they are destroyed upon completion of a client request. 
     
     
       6. A computer thread management system according to  claim 1  and wherein each thread has an associated priority. 
     
     
       7. A computer thread management system according to  claim 6  and wherein said thread management software lowers the priority of said existing thread when said existing thread has exceeded said predetermined non-zero amount of busyness. 
     
     
       8. A computer thread management system according to  claim 1  and wherein said predetermined non-zero amount of busyness is a predetermined time duration measured during activity of a thread. 
     
     
       9. A computer thread management system according to  claim 8  and wherein said predetermined time duration is determined by incrementing ticks for each thread which is in an active state following initiation of its activity and at fixed time intervals. 
     
     
       10. A computer thread management system according to  claim 8  and wherein said predetermined time duration is determined by incrementing ticks for each thread which is in an active state following initiation of its activity at fixed time intervals which are not measured from the onset of its activity. 
     
     
       11. A computer thread management system according to  claim 10  and wherein said fixed time intervals are 50 msecs, and said predetermined time duration is the time expended until three ticks have been incremented. 
     
     
       12. A computer thread management system according to  claim 1  and wherein said predetermined non-zero amount of busyness is a predetermined amount of disk access activity. 
     
     
       13. A computer thread management system according to  claim 1  and wherein said predetermined non-zero amount of busyness is a predetermined amount of memory allocation. 
     
     
       14. A computer thread management method comprising: 
       operating at least one processor and a thread pool containing a plurality of threads for processing client requests, the threads in said thread pool being characterized in that they enter a wait state upon completion of a client request, and are not destroyed, including:  
       utilizing thread management software operating a plurality of threads including said thread pool, and operating said at least one processor by causing it to process requests using at least one thread, said thread management software being characterized in that it creates a new thread within said thread pool when an existing thread in said thread pool has exceeded a predetermined non-zero amount of busyness, irrespective of whether or not a client request is waiting in an incoming request queue for processing.  
     
     
       15. A method according to  claim 14  and wherein said thread management software creates a new thread within said thread pool only when an existing thread in said thread pool has exceeded said predetermined non-zero amount of busyness. 
     
     
       16. A method according to  claim 14  and wherein said thread management software opens a socket connection for each new incoming request accepted by a thread for processing. 
     
     
       17. A method according to  claim 14  and wherein each existing thread can be in an active state or in a wait state. 
     
     
       18. A method according to  claim 14  and wherein said thread management software removes said existing thread from said thread pool when said existing thread has exceeded said predetermined non-zero amount of busyness, and wherein threads not contained within said thread pool are characterized in that they are destroyed upon completion of a client request. 
     
     
       19. A method according to  claim 14  and wherein each thread has an associated priority. 
     
     
       20. A method according to  claim 19  and wherein said thread management software lowers the priority of said existing thread when said existing thread has exceeded said predetermined non-zero amount of busyness. 
     
     
       21. A method according to  claim 14  and wherein said predetermined non-zero amount of busyness is a predetermined time duration measured during activity of a thread. 
     
     
       22. A method according to  claim 21  and wherein said predetermined time duration is determined by incrementing ticks for each thread which is in an active state following initiation of its activity and at fixed time intervals. 
     
     
       23. A method according to  claim 21  and wherein said predetermined time duration is determined by incrementing ticks for each thread which is in an active state following initiation of its activity at fixed time intervals which are not measured from the onset of its activity. 
     
     
       24. A method according to  claim 23  and wherein said fixed time intervals are 50 msecs, and said predetermined time duration is the time expended until three ticks have been incremented. 
     
     
       25. A method according to  claim 14  and wherein said predetermined non-zero amount of busyness is a predetermined amount of disk access activity. 
     
     
       26. A method according to  claim 14  and wherein said predetermined non-zero amount of busyness is a predetermined amount of memory allocation. 
     
     
       27. A computer thread management system for processing multiple requests by using at least one of a plurality of processing threads comprising: 
       thread monitoring software monitoring said plurality of processing threads; and  
       thread management software creating new threads, preserving some processing threads after processing requests by putting them into a wait state, lowering priorities of threads, and allowing some threads to be destroyed after processing requests, based upon output from said thread monitoring software.  
     
     
       28. A computer thread management system according to  claim 27  and wherein said output from said thread monitoring software is a measure of thread busyness. 
     
     
       29. A computer thread management method for processing multiple requests using at least one of a plurality of processing threads comprising: 
       monitoring said plurality of processing threads;  
       creating new threads based upon output from said monitoring;  
       preserving some processing threads after processing requests by putting them into a wait state, based upon output from said monitoring;  
       lowering priorities of threads based upon output from said monitoring; and  
       allowing some threads to be destroyed after processing requests based upon output from said monitoring.  
     
     
       30. A method according to  claim 29  and wherein said output from said monitoring step is a measure of thread busyness.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.