IP Library Granted Patent US 7,529,859
Granted Patent B2
US 7,529,859 · App. 11/959,195 · Granted May 5, 2009

System and article of manufacture for fencing of resources allocated to non-cooperative client computers

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,859
App. No.
11/959,195
Granted
May 5, 2009
Kind
B2
Abstract

Techniques are provided for processing an Input/Output (I/O) request. At least one data block is allocated for use in completing the I/O request. A current operations record is stored for the I/O request. It is determined whether the I/O request has been completed within a specified period of time. In response to determining that the I/O request has not been completed within the specified period of time, the allocated at least one data block is fenced.

Claims (59)

1. An article of manufacture for processing an Input/Output (I/O) request, wherein the article of manufacture comprises a computer readable storage medium storing instructions, and wherein the article of manufacture is operable to:

allocate at least one data block for use in completing the I/O request;

store a current operations record for the I/O request, wherein the current operations record includes a persistent name for a client computer that has been granted permission to complete the I/O request, addresses of the allocated at least one data block, and a timestamp;

determine whether the I/O request has been completed within a specified period of time;

in response to determining that the I/O request has been completed within the specified period of time, remove the current operations record;

in response to determining that the I/O request has not been completed within the specified period of time,

fence the allocated at least one data block by marking the at least one data block as allocated; and

keep the current operations record;

receive an identification message from a client computer, wherein the client computer sends the identification message to attempt to create a connection to a server computer; and

in response to receiving the identification message, determine whether the client computer is a rogue client by determining whether a current operations record exists for the client computer, wherein if a current operations record exists for the client computer that is attempting to create the connection with the server computer, then it is determined that the client computer did not complete an I/O request during a previous connection.

2. The article of manufacture of claim 1 , wherein the article of manufacture is further operable to:

notify a client computer that the client computer is to use the allocated at least one data block to complete the I/O request.

3. The article of manufacture of claim 1 , wherein the article of manufacture is further operable to:

in response to determining that the I/O request has not been completed within the specified period of time, determine that a client computer that has been granted permission to complete the I/O request is a rogue client.

4. The article of manufacture of claim 1 , wherein the article of manufacture is further operable to:

in response to determining that the client computer is a rogue client,

send a cancel I/O request message to the client computer requesting the client computer to cancel a previous client I/O request; and

determine whether a response was received for the cancel I/O request message.

5. The article of manufacture of claim 4 , wherein the article of manufacture is further operable to:

in response to determining that the response was received for the cancel I/O request message,

deallocate the allocated at least one data block; and

remove the current operations record for the cancelled I/O request;

wherein receiving the response indicates that the allocated at least one data block will not be overwritten by the rogue client.

6. The article of manufacture of claim 4 , wherein the article of manufacture is further operable to:

in response to determining that the response was not received for the cancel I/O request message, reject the identification message.

7. The article of manufacture of claim 1 , wherein the article of manufacture is further operable to:

in response to determining that the client computer is not a rogue client, accept the identification message.

8. The article of manufacture of claim 1 , wherein the I/O request comprises a copy operation.

9. The article of manufacture of claim 1 , wherein the I/O request comprises an idempotent operation.

10. A system for processing an Input/Output (I/O) request, comprising:

circuitry operable to:

allocate at least one data block for use in completing the I/O request;

store a current operations record for the I/O request, wherein the current operations record includes a persistent name for a client computer that has been granted permission to complete the I/O request, addresses of the allocated at least one data block, and a time stamp;

determine whether the I/O request has been completed within a specified period of time;

in response to determining that the I/O request has been completed within the specified period of time, remove the current operations record;

in response to determining that the I/O request has not been completed within the specified period of time,

fence the allocated at least one data block by marking the at least one data block as allocated; and

keep the current operations record;

receive an identification message from a client computer, wherein the client computer sends the identification message to attempt to create a connection to a server computer; and

in response to receiving the identification message, determine whether the client computer is a rogue client by determining whether a current operations record exists for the client computer, wherein if a current operations record exists for the client computer that is attempting to create the connection with the server computer, then it is determined that the client computer did not complete an I/O request during a previous connection.

11. The system of claim 10 , wherein the circuitry is further operable to:

notify a client computer that the client computer is to use the allocated at least one data block to complete the I/O request.

12. The system of claim 10 , wherein the circuitry is further operable to:

in response to determining that the I/O request has not been completed within the specified period of time, determine that a client computer that has been granted permission to complete the I/O request is a rogue client.

13. The system of claim 10 , wherein the circuitry is further operable to:

in response to determining that the client computer is a rogue client,

send a cancel I/O request message to the client computer requesting the client computer to cancel a previous client I/O request; and

determine whether a response was received for the cancel I/O request message.

14. The system of claim 13 , wherein the circuitry is further operable to:

in response to determining that the response was received for the cancel I/O request message,

deallocate the allocated at least one data block; and

remove the current operations record for the cancelled I/O request;

wherein receiving the response indicates that the allocated at least one data block will not be overwritten by the rogue client.

15. The system of claim 13 , wherein the circuitry is further operable to:

in response to determining that the response was not received for the cancel I/O request message, reject the identification message.

16. The system of claim 10 , wherein the circuitry is further operable to:

in response to determining that the client computer is not a rogue client, accept the identification message.

17. The system of claim 10 , wherein the I/O request comprises a copy operation.

18. The system of claim 10 , wherein the I/O request comprises an idempotent operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →