IP Library Granted Patent US 7,529,867
Granted Patent B2
US 7,529,867 · App. 11/739,460 · Granted May 5, 2009

Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks

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 7,529,867
App. No.
11/739,460
Granted
May 5, 2009
Kind
B2
Abstract

A system and method for processing input/output (I/O) requests in a virtualized computer system. I/O requests are received from a virtual machine. A set of virtual I/O channels that may be interfaced with a host I/O stack and/or a virtual machine I/O stack adaptively queues requested data using a variety of I/O queue management modules. In one embodiment, the virtual I/O channels include an entropy detection module and a queue storage. The entropy detection module determines an entropy value of specified I/O request data and encodes the specified I/O request data with the entropy value within the queue storage.

Claims (31)

1. A computer network comprising:

a network;

a first host system coupled to said network, said first host system comprising a host machine and a virtual machine installed on said host machine;

a second host system coupled to said network, said second host system comprising a host machine and a virtual machine installed on said host machine; and

a virtual input/output channel (VIOC) system associated with at least one of said first and second host systems, said VIOC system comprising virtual I/O channels (VIOCs) and a VIOC agent, said VIOCs including multiple, variable size I/O data queues from which I/O requests generated by said virtual machines may be serviced, and wherein said VIOC agent is configured to adaptively manage I/O data queues within said VIOCs.

2. The computer network of claim 1 , wherein said I/O data queues comprise double linked lists.

3. The computer network of claim 1 , wherein said VIOC agent is configured to adaptively adjust the size of the said I/O data queues.

4. The computer network of claim 1 , wherein said VIOCs include a queue driver configured to encode data stored in said I/O data queues.

5. The computer network of claim 1 , wherein said VIOC system includes:

a first VIOC system associated with said first host system, said first VIOC system comprising VIOCs and a VIOC agent; and

a second VIOC system associated with said second host system, said second VIOC system comprising VIOCs and a VIOC agent.

6. The computer network of claim 5 , further comprising a VIOC manager coupled to said network to control operation of said VIOCs included within said first and second VIOC systems.

7. The computer network of claim 1 , wherein said VIOC system includes a host VIOC system associated with at least one of said host machines of first or second host systems.

8. The computer network of claim 1 , wherein said VIOC system includes a virtual machine VIOC system associated with at least one of said virtual machines of said first or second host systems.

9. A method for processing input/output (I/O) requests in a computer network, said method comprising:

providing a first host system coupled to said network, said first host system comprising a host machine and a virtual machine installed on said host machine;

providing a second host system coupled to said network, said second host system comprising a host machine and a virtual machine installed on said host machine; and

processing I/O requests using a virtual input/output channel (VIOC) system associated with at least one of said first and second host systems, said VIOC system comprising virtual I/O channels (VIOCs) and a VIOC agent, said VIOCs including multiple, variable size I/O data queues from which I/O requests generated by said virtual machines may be serviced, and wherein said VIOC agent is configured to adaptively manage I/O data queues within said VIOCs.

10. The method of claim 9 , wherein said I/O data queues comprise double linked lists.

11. The method of claim 9 , wherein said VIOC agent is configured to adaptively adjust the size of the said I/O data queues.

12. The method of claim 9 , wherein said VIOCs include a queue driver configured to encode data stored in said I/O data queues.

13. The method of claim 9 , wherein said VIOC system includes:

a first VIOC system associated with said first host system, said first VIOC system comprising VIOCs and a VIOC agent; and

a second VIOC system associated with said second host system, said second VIOC system comprising VIOCs and a VIOC agent.

14. The method of claim 13 , further comprising providing a VIOC manager coupled to said network to control operation of said VIOCs included within said first and second VIOC systems.

15. The method of claim 9 , wherein said VIOC system includes a host VIOC system associated with at least one of said host machines of first or second host systems.

16. The method of claim 9 , wherein said VIOC system includes a virtual machine VIOC system associated with at least one of said virtual machines of said first or second host systems.

17. The method of claim 9 , wherein said VIOC agent is configured to adaptively manage said I/O data queues in accordance with I/O data patterns.

18. The method of claim 9 , wherein said VIOC agent determines prioritization for queuing data within said I/O queues adaptively or based on manual data entry.

19. The method of claim 9 , wherein said VIOC agent determines a type and mode of virtual hard disk utilized for an I/O request and determines whether to commit writes to disk in accordance with the determined type and mode of virtual hard disk.

20. The method of claim 9 , wherein said VIOC agent determines whether to commit writes to disk responsive to a system reboot based on state states of said virtual machine.

Assignments (11)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL 066489/FRAME 0356 Recorded Apr 17, 2025
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: SOLARWINDS WORLDWIDE, LLC; CONFIO CORPORATION; AJAX ILLINOIS CORP.
Reel/Frame 070884/0776 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Apr 17, 2025
From: SOLARWINDS WORLDWIDE, LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 070884/0832 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Apr 17, 2025
From: SOLARWINDS WORLDWIDE, LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 070884/0846 →
ASSIGNMENT OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL Recorded Feb 5, 2024
From: CREDIT SUISSE AG, NEW YORK BRANCH
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 066489/0356 →
ASSIGNMENT OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL Recorded Dec 27, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: CREDIT SUISSE AG, NEW YORK BRANCH
Reel/Frame 062228/0972 →
RELEASE OF SECURITY INTEREST Recorded Nov 1, 2018
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: AJAX ILLINOIS CORP.; SOLARWINDS WORLDWIDE, LLC
Reel/Frame 047383/0693 →
SECURITY INTEREST Recorded Mar 20, 2018
From: AJAX ILLINOIS CORP.; SOLARWINDS WORLDWIDE, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 045284/0502 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 5, 2016
From: SOLARWINDS WORLDWIDE, LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 037701/0639 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2015
From: HYPER9, INC.
To: SOLARWINDS WORLDWIDE, LLC
Reel/Frame 036938/0257 →
CHANGE OF NAME Recorded Oct 21, 2015
From: INOVAWAVE, INC.
To: HYPER9, INC.
Reel/Frame 036920/0244 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2007
From: MCCRORY, DAVE DENNIS; KELLAR, JOHN EDWARD
To: INOVAWAVE, INC.
Reel/Frame 019602/0783 →