IP Library Granted Patent US 7,788,460
Granted Patent B2
US 7,788,460 · App. 10/823,895 · Granted Aug 31, 2010

Defragmenting objects in a storage medium

Assignee: Intel Corporation
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,788,460
App. No.
10/823,895
Granted
Aug 31, 2010
Kind
B2
Abstract

Provided are a method, system and program for defragmenting objects in a storage medium. An I/O request to an object in storage is received and the object is defragmented in storage so that blocks in storage including the object are contiguous in response to receiving the I/O request. The I/O request is executed with respect to the object in storage.

Claims (53)

1. A method, comprising:

receiving an I/O request to write an update to an object in storage;

determining whether an amount of fragmentation of the object in the storage exceeds a fragmentation threshold indicating an acceptable number of bytes stored in non-contiguous locations in response to receiving the I/O request;

determining at least one logical partition including the object;

determining whether the object is read-only;

if the object is not read-only and if the object is within one logical partition, defragmenting the object in the storage so that blocks in the storage including the object are contiguous in response to receiving the I/O request to write the update to the object, wherein the request to write the update to the object causes the defragmentation operation; and

executing the I/O request to write the update to the object in the storage without defragmenting the object in response to determining at least one of that the object is included in more than one logical partition, that the object is read-only, and that the amount of fragmentation does not exceed the fragmentation threshold.

2. The method of claim 1 , wherein the I/O request is executed with respect to the object after defragmenting the object.

3. The method of claim 1 , further comprising:

determining whether a user settable flag indicates to perform defragmentation in response to receiving the I/O request, wherein the object is defragmented if the flag indicates to perform defragmentation.

4. The method of claim 3 , further comprising:

executing the I/O request without performing defragmentation if the flag does not indicate to perform defragmentation.

5. The method of claim 1 , wherein the operations of receiving the I/O request, initiating the operation to defragment the object, and executing the I/O request of defragmenting the object in the storage are performed by a storage controller managing I/O requests to the storage.

6. The method of claim 1 , wherein the operation of defragmenting the object in the storage is performed by a device driver for the storage providing an interface to the storage.

7. A system in communication with storage, comprising: circuitry enabled to:

receive an I/O request to write an update to an object in the storage;

determining whether an amount of fragmentation of the object in the storage exceeds a fragmentation threshold indicating an acceptable number of bytes stored in non-contiguous locations in response to receiving the I/O request;

determining at least one logical partition including the object;

determining whether the object is read-only;

if the object is not read-only and if the object is within one logical partition, defragment the object in the storage so that blocks in the storage including the object are contiguous in response to receiving the I/O request to write the update to the object, wherein the request to write the update to the object causes the defragmentation operation; and

execute the I/O request to write the update to the object in the storage without defragmenting the object in response to determining at least one of that the object is included in more than one logical partition, that the object is read-only, and that the amount of fragmentation does not exceed the fragmentation threshold.

8. The system of claim 7 , wherein the I/O request is executed with respect to the object after defragmenting the object.

9. The system of claim 7 , wherein the circuitry is further enabled to: determine whether a user settable flag indicates to perform defragmentation in response to receiving the I/O request, wherein the object is defragmented if the flag indicates to perform defragmentation.

10. The system of claim 9 , wherein the circuitry is further enabled to: execute the I/O request without performing defragmentation if the flag does not indicate to perform defragmentation.

11. The system of claim 7 , wherein the circuitry is implemented in a storage controller managing I/O requests to the storage, wherein the operations of receiving the I/O request, initiating the operation to defragment the object, and executing the I/O request of defragmenting the object in the storage are performed by the storage controller.

12. The system of claim 7 , wherein the circuitry is implemented in a device driver interfacing between an operating system and the storage, and wherein the operation of defragmenting the object in the storage is performed by the device driver.

13. A system, comprising:

storage;

a storage controller coupled to the storage, wherein the storage controller is enabled to:

receive an I/O request to write an update to an object in the storage;

determining whether an amount of fragmentation of the object in the storage exceeds a fragmentation threshold indicating an acceptable number of bytes stored in non-contiguous locations in response to receiving the I/O request;

determining at least one logical partition including the object;

determining whether the object is read-only;

if the object is not read-only and if the object is within one logical partition, defragment the object in the storage so that blocks in the storage including the object are contiguous in response to receiving the I/O request to write the update to the object, wherein the request to write the update to the object causes the defragmentation operation; and

execute the I/O request to write the update to the object in the storage without defragmenting the object in response to determining at least one of that the object is included in more than one logical partition, that the object is read-only, and that the amount of fragmentation does not exceed the fragmentation threshold.

14. The system of claim 13 , wherein the storage controller and the storage are included in a same housing.

15. The system of claim 13 , further comprising:

a processor; and

a memory enabled to store the I/O request before the I/O request is received by the storage controller.

16. An article of manufacture comprising at least one of a computer readable storage medium having code executed by a processor and a hardware device having logic to communicate with a storage and perform operations, the operations comprising:

receive an I/O request to write an update to an object in the storage;

determining whether an amount of fragmentation of the object in the storage exceeds a fragmentation threshold indicating an acceptable number of bytes stored in non-contiguous locations in response to receiving the I/O request;

determining at least one logical partition including the object;

determining whether the object is read-only;

if the object is not read-only and if the object is within one logical partition, defragment the object in the storage so that blocks in the storage including the object are contiguous in response to receiving the I/O request to write the update to the object, wherein the request to write the update to the object causes the defragmentation operation; and

execute the I/O request to write the update to the object in the storage without defragmenting the object in response to determining at least one of that the object is included in more than one logical partition, that the object is read-only, and that the amount of fragmentation does not exceed the fragmentation threshold.

17. The article of manufacture of claim 16 , wherein the I/O request is executed with respect to the object after defragmenting the object.

18. The article of manufacture of claim 16 further enabled to:

determine whether a user settable flag indicates to perform defragmentation in response to receiving the I/O request, wherein the object is defragmented if the flag indicates to perform defragmentation.

19. The article of manufacture of claim 18 further enabled to:

execute the I/O request without performing defragmentation if the flag does not indicate to perform defragmentation.

20. The article of manufacture of claim 16 wherein the operation of defragmenting the object in the storage is performed by a storage controller managing I/O requests to the storage.

21. The article of manufacture of claim 16 , wherein the operations of receiving the I/O request, initiating the operation to defragment the object, and executing the I/O request of defragmenting the object in the storage are performed by a device driver for the storage providing an interface to the storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2004
From: ROTHMAN, MICHAEL A.; ZIMMER, VINCENT J.
To: INTEL CORPORATION
Reel/Frame 015221/0203 →
Continuity (1)
Related Publication 20050228963A1 · Oct 13, 2005