IP Library Granted Patent US 9,165,021
Granted Patent B2
US 9,165,021 · App. 12/423,247 · Granted Oct 20, 2015

Managing database object placement on multiple storage devices

Inventors: Bishwaranjan Bhattacharjee (Yorktown Heights, NY); Mustafa Canim (Dallas, TX); George Andrei Mihaila (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
G06F17/30312
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 9,165,021
App. No.
12/423,247
Granted
Oct 20, 2015
Kind
B2
Abstract

A method, information processing system, and computer program storage product optimize the placement of database objects on a multiplicity of storage devices. A set of database objects are placed on a first storage device in a multiplicity of storage devices. Each storage device comprises differing characteristics. A query workload is run on the set of database objects that have been placed on the first storage device. Profiling information associated with the query workload that is running is collected. A subset of database objects is selected from the set of the database objects to be stored on a second storage device. The second storage device is a separate physical device from, and performs faster than, the first storage device. The subset of database objects is stored on the second storage device and all remaining database objects in the set of database objects on the first storage device.

Claims (50)

1. A method for optimizing placement of database objects on a plurality of storage devices, the method comprising:

placing a set of database objects on a first storage device in a plurality of storage devices, wherein each storage device in the plurality of storage device comprises differing characteristics;

running a query workload on the set of database objects that have been placed on the first storage device;

determining, based on collecting the profiling information, a number of pages read and written for each database object in the set of database objects, and a total time spent through sequential and random access for each database object in the set of database objects;

collecting profiling information associated with the query workload that is running;

selecting, based on the number pages read and written and the total time spent through sequential and random access for each database object, a subset of database objects from the set of the database objects to be stored on a second storage device in the plurality of storage devices, wherein the second storage device is a separate physical device from, and performs faster than, the first storage device; and

storing the subset of database objects on the second storage device and all remaining database objects in the set of database objects on the first storage device, where each database object in the set of database objects is a randomly accessed database object, and where each remaining database object is a sequentially accessed database object.

2. The method of claim 1 , wherein the first storage device is a hard disk drive and the second storage device is a solid state disk.

3. The method of claim 1 , wherein the profiling information includes information associated with physical input and output activity of the database objects.

4. The method of claim 3 , wherein the physical input and output activity includes a total number and total duration of all synchronous and asynchronous read and write operations for each database object in the set of database objects.

5. The method of claim 1 , wherein the selecting further comprises:

associating a value with each database object based on at least one aspect of the profiling information that has been collected;

sorting each database object in the set of database object based on the value associated therewith; and

selecting a first given number of database objects that have been sorted.

6. The method of claim 1 , wherein the subset of database objects is selected based on a capacity of the second storage device.

7. The method of claim 1 , where the subset of database objects is selected based on an incremental benefit of storing database objects on the second storage device being below a given user-defined threshold.

8. An information processing system for optimizing placement of database objects on a plurality of storage devices, the information processing system comprising:

a memory;

a processor communicatively coupled to the memory; and

a database object placement advisor communicatively coupled to the memory and the processor, wherein the database object placement advisor is configured to:

place a set of database objects on a first storage device in a plurality of storage devices, wherein each storage device in the plurality of storage device comprises differing characteristics;

run a query workload on the set of database objects that have been placed on the first storage device;

collect profiling information associated with the query workload that is running;

determine, based on collecting the profiling information, a number of pages read and written for each database object in the set of database objects, and a total time spent through sequential and random access for each data base object in the set of database objects;

select, based on the number pages read and written and the total time spent through sequential and random access for each data base object, a subset of database objects from the set of the database objects to be stored on a second storage device in the plurality of storage devices, wherein the second storage device is a separate physical device from, and performs faster than, the first storage device; and

store the subset of database objects on the second storage device and all remaining database objects in the set of database objects on the first storage device, where each database object in the set of database objects is a randomly accessed database object, and where each remaining database object is a sequentially accessed database object.

9. The information processing system of claim 8 , wherein the first storage device is a hard disk drive and the second storage device is a solid state disk.

10. The information processing system of claim 8 , wherein the profiling information includes information associated with physical input and output activity of the database objects.

11. The information processing system of claim 10 , wherein the physical input and output activity includes a total number and total duration of all synchronous and asynchronous read and write operations for each database object in the set of database objects.

12. The information processing system of claim 8 , wherein the database object placement advisor is further adapted to select by:

associating a value with each database object based on at least one aspect of the profiling information that has been collected;

sorting each database object in the set of database object based on the value associated therewith; and

selecting a first given number of database objects that have been sorted.

13. The information processing system of claim 8 , wherein the subset of database objects is selected based on a capacity of the second storage device.

14. The information processing system of claim 8 , where the subset of database objects is selected based on an incremental benefit of storing database objects on the second storage device being below a given user-defined threshold.

15. A non-transitory computer program storage product for optimizing placement of database objects on a plurality of storage devices, the computer program storage product comprising instructions for:

placing a set of database objects on a first storage device in a plurality of storage devices, wherein each storage device in the plurality of storage device comprises differing characteristics;

running a query workload on the set of database objects that have been placed on the first storage device;

collecting profiling information associated with the query workload that is running;

determining, based on collecting the profiling information, a number of pages read and written for each database object in the set of database objects, and a total time spent through sequential and random access for each database object in the set of database objects;

selecting, based on the number pages read and written and the total time spent through sequential and random access for each database object, a subset of database objects from the set of the database objects to be stored on a second storage device in the plurality of storage devices, wherein the second storage device is a separate physical device from, and performs faster than, the first storage device; and

storing the subset of database objects on the second storage device and all remaining database objects in the set of database objects on the first storage device, where each database object in the set of database objects is a randomly accessed database object, and where each remaining database object is a sequentially accessed database object.

16. The computer program storage product of claim 15 , wherein the first storage device is a hard disk drive and the second storage device is a solid state disk.

17. The computer program storage product of claim 15 , wherein the profiling information includes information associated with physical input and output activity of the database objects.

18. The computer program storage product of claim 15 , wherein the instructions for selecting further comprise instructions for:

associating a value with each database object based on at least one aspect of the profiling information that has been collected;

sorting each database object in the set of database object based on the value associated therewith; and

selecting a first given number of database objects that have been sorted.

19. The computer program storage product of claim 15 , wherein the subset of database objects is selected based on a capacity of the second storage device.

20. The computer program storage product of claim 15 , where the subset of database objects is selected based on an incremental benefit of storing database objects on the second storage device being below a given user-defined threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2009
From: BHATTACHARJEE, BISHWARANJAN; CANIM, MUSTAFA; MIHAILA, GEORGE ANDREI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022543/0607 →
Continuity (1)
Related Publication 20100262633A1 · Oct 14, 2010