Providing quality of service guarantees to virtual hosts
Abstract
A method facilitates providing appropriate quality of service guarantees to a plurality of virtual hosts on a single physical host computer. A server application program and its child processes service communication requests made to the plurality of virtual hosts. Quality of service parameters associated with the virtual hosts are stored. Communication requests made to a specific one of the virtual hosts are detected. The quality of service parameters associated with the specific virtual host are obtained. Operating system resources are utilized to guarantee, to a child process of the server application program, a quality of service according to the obtained quality of service parameters associated with the virtual host. Communication between the virtual host and the client is allowed to proceed, the communication being managed by the child process.
Claims
exact text as granted — not AI-modified1. A computer-implemented method for providing a quality of service guarantee to a child process of an application program, wherein the application program and its child process service requests made to a plurality of network addresses, a network address indicating a virtual host, a virtual host comprising a virtualized server application program the method comprising:
storing a quality of service parameter associated with a network address;
intercepting a system call, made by the child process, that establishes a communication channel between a client and the network address, wherein intercepting the system call comprises:
saving a copy of a first pointer, which Points to object code of the system call; and
replacing the first pointer with a second pointer, which points to different object code, such that making the system call causes the different object code to execute; and
enabling communication between the network address and the client, the communication being managed by the child process;
wherein execution of the different object code comprises:
using the saved copy of the first pointer to transfer execution to the intercepted system call, thereby establishing a communication channel;
determining that the established communication channel is to one of the plurality of network addresses serviced by the application program and its child process;
obtaining a quality of service parameter associated with the network address; and
utilizing an operating system resource to request a guarantee, to the child process, of a quality of service according to the obtained quality of service parameter.
2. A computer-implemented method for providing a quality of service guarantee to a child process of an application program, wherein the application program and its child process service requests made to a plurality of network addresses, a network address indicating a virtual host, a virtual host comprising a virtualized server application program, the method comprising:
storing a quality of service parameter associated with a network address;
intercepting a system call which establishes a communication channel between a client and the network address;
allowing establishment of the communication channel;
storing an indicator of an association between an application program that made the intercepted system call, the established communication channel, and the network address;
intercepting a system call which creates a child process;
allowing creation of the child process;
storing an indicator of an association between an application program that made the intercepted system call and the created child process;
intercepting a system call which creates a copy of a file descriptor;
allowing creation of the copy of the file descriptor;
storing an indicator of an association between the file descriptor and the created copy of the file descriptor;
intercepting a system call which transports data through a communication channel;
determining, by examining the stored association indicators, that an application that made the intercepted system call is a child process of a parent application that established a communication channel to one the network address;
determining, by examining the stored association indicators, that the communication channel through which the intercepted system call transports data is the communication channel established by the parent application to the network address;
obtaining the quality of service parameter associated with the network address;
utilizing an operating system resource to request a guarantee, to the child process that called the intercepted system call, of a quality of service according to the obtained quality of service parameter associated with the network address; and
allowing data to be transported through the communication channel.
3. The method of claim 2 wherein storing the quality of service parameter associated with the network address comprises modifying an operating system to include a quality of service parameter table comprising the quality of service parameter associated with the network address.
4. The method of claim 3 wherein modifying the operating system comprises linking a module to an operating system kernel, the module comprising the quality of service parameter table.
5. The method of claim 2 further comprising:
saving a copy of a first pointer, which points to object code of the system call to intercept; and
wherein intercepting the system call comprises replacing the first pointer with a second pointer, which points to different object code, such that making the system call causes the different object code to execute.
6. The method of claim 5 , wherein the intercepted system call comprises a system call which establishes a communication channel between a client and a network address, and wherein execution of the different object code comprises:
allowing establishment of the communication channel by using the saved copy of the first pointer to transfer execution to the intercepted system call; and
storing an association between the application program and the established communication channel by storing, in an association table, an entry indicating an association between a process identification number of the application program that made the system call, a file descriptor describing the established communication channel, and the network address to which the channel was established.
7. The method of claim 5 , wherein the intercepted system call comprises a system call which creates a child process, and wherein execution of the different object code comprises:
allowing creation of the child process by using the saved copy of the first pointer to transfer execution to the intercepted system call; and
storing an association between the application program that called the system call and the created child process by storing, in an association table, an entry indicating an association between a process identification number of the application program that made the system call and a process identification number of the created child process.
8. The method of claim 5 further comprising inserting the different object code into the operating system.
9. The method of claim 7 wherein inserting the different object code into the operating system comprises linking a module to an operating system kernel, the module comprising the different object code.
10. A computer-readable medium storing a computer program product for providing a quality of service guarantee to a child process of an application program, wherein the application program and its child process service requests made to a plurality of network addresses, a network address indicating a virtual host, a virtual host comprising a virtualized server application program, the computer program product comprising:
program code for storing a quality of service parameter associated with a network address;
program code for intercepting a system call, made by the child process, that establishes a communication channel between a client and the network address, wherein the program code for intercepting the system call comprises:
program code for saving a copy of a first pointer, which points to object code of the system call; and
program code for replacing the first pointer with a second pointer, which points to different object code, such that making the system call causes the different object code to execute; and
program code for enabling communication between the network address and the client, the communication being managed by the child process;
wherein the different object code comprises:
program code for using the saved copy of the first pointer to transfer execution to the intercepted system call, thereby establishing a communication channel;
program code for determining that the established communication channel is to one of the plurality of network addresses serviced by the application program and its child process:
program code for obtaining a quality of service parameter associated with the network address; and
program code for utilizing an operating system resource to request a guarantee, to the child process, of a quality of service according to the obtained quality of service parameter.
11. A computer-readable medium storing a computer program product for providing a quality of service guarantee to a child process of an application program, wherein the application program and its child process service requests made to a plurality of network addresses, a network address indicating a virtual host, a virtual host comprising a virtualized server application program, the computer program product comprising:
program code for storing a quality of service parameter associated with a network address;
program code for intercepting a system call which establishes a communication channel between a client and the network address;
program code for allowing establishment of the communication channel;
program code for storing an indicator of an association between the application program that made the intercepted system call, the established communication channel, and the network address;
program code for intercepting a system call which creates a child process;
program code for allowing creation of the child process;
program code for storing an indicator of an association between an application program that made the intercepted system call and the created child process;
program code for intercepting a system call which creates a copy of a file descriptor;
program code for allowing creation of the copy of the file descriptor;
program code for storing an indicator of an association between the file descriptor and the created copy of the file descriptor;
program code for intercepting a system call which transports data through a communication channel;
program code for determining, by examining the stored association indicators, that an application that called the intercepted system call is a child process of a parent application that established a communication channel to the network address;
program code for determining, by examining the stored association indicators that the communication channel through which the intercepted system call transports data is the communication channel established by the parent application to the network address;
program code for obtaining the quality of service parameter associated with the network address;
utilizing an operating system resource to request a guarantee to the child process that called the intercepted system call, of a quality of service according to the obtained quality of service parameter associated with the network address; and
program code for allowing data to be transported through the communication channel.
12. The computer-readable medium of claim 11 wherein the program code for storing the quality of service parameter associated with the network address comprises program code for modifying an operating system to include a quality of service parameter table comprising the quality of service parameter associated with the network address.
13. The computer-readable medium of claim 12 wherein the program code for modifying the operating system comprises program code for linking a module to an operating system kernel, the module comprising the quality of service parameter table.
14. The computer-readable medium of claim 11 wherein the computer program product further comprises
program code for saving a copy of a first pointer, which points to object code of the system call to intercept; and
wherein the program code for intercepting the system call comprises program code for replacing the first pointer with a second pointer which points to different object code, such that making the system call causes the different object code to execute.
15. The computer-readable medium of claim 14 wherein the intercepted system call comprises a system call which establishes a communication channel between a client and a network address, and wherein the different object code comprises:
program code for allowing establishment of the communication channel by using the saved copy of the first pointer to transfer execution to the intercepted system call; and
program code for storing an association between the application program and the established communication channel by storing in an association table an entry indicating an association between a process identification number of the application program that made the system call, a file descriptor describing the established communication channel, and the network address to which the channel was established.
16. The computer-readable medium of claim 14 , wherein the intercepted system call comprises a system call which creates a child process, and wherein the different object code comprises:
program code for allowing creation of the child process by using the saved copy of the first pointer to transfer execution to the intercepted system call; and
program code for storing an association between the application program that called the system call and the created child process by storing, in an association table, an entry indicating an association between a process identification number of the application program that made the system call and a process identification number of the created child process.
17. The computer-readable medium of claim 14 wherein the computer program product further comprises program code for inserting the different object code into the operating system.
18. The computer-readable medium of claim 17 wherein the program code for inserting the different object code into the operating system comprises program code for linking a module to an operating system kernel, the module comprising the different object code.
19. A system for providing a quality of service guarantee to a child process of an application program, wherein the application program and its child process service requests made to multiple network addresses, a network address indicating a virtual host, the virtual host comprising a virtualized server application program, the system comprising:
a processor; a storing component that stores a quality of service parameter associated with a network address; a component that intercepts a system call, made by the child process, that establishes a communication channel between a client and the network address, wherein intercepting the system call comprises: a communication component that saves a copy of a first pointer that points to object code of the system call, replaces the first pointer with a second pointer that points to different object code such that making the system call causes the different object code to execute and enables communication between the network address and the client, the communication being managed by the child process;
wherein when the different object code executes, it uses the saved copy of the first pointer to transfer execution to the intercepted system call, thereby establishing a communication channel, determines that the established communication channel is to one of the multiple network addresses serviced by the application program and its child process, obtains a quality of service parameter associated with the network address, and utilizes an operating system resource to request a guarantee of a quality of service according to the obtained quality of service parameter.
20. The system of claim 19 wherein the storing component modifies an operating system to include the quality of service parameter table comprising the quality of service parameter associated with the network address when it stores the quality of service parameter associated with the network address.
21. The system of claim 19 wherein the different object code establishes the communication channel by using the saved copy of the first pointer to transfer execution to the object code of the system call and stores an association between the application program and the established communication channel by storing, in an association table, an entry indicating an association between a process identification number of the application program that made the system call, a file descriptor describing the established communication channel, and the network address to which the channel was established.
22. The system of claim 19 wherein the system call creates a child process and wherein when the different object code executes, it enables creation of the child process by using the saved copy of the first pointer to transfer execution to the object code of the system call and stores an association between the application program that called the system call and the created child process by storing, in an association table, an entry indicating an association between a process identification number of the application program that made the system call and a process identification number of the created child process.
23. The system of claim 19 further wherein the different object code is added to an operating system in which the communication component operates.
24. The system of claim 19 further wherein the different object code is a module that is linked to a kernel of an operating system in which the communication component operates.
25. The system of claim 19 wherein the different object code is a module that is linked to a kernel of an operating system in which the communication component operates and the module includes the quality of service parameter table.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.