This application is related to the United States Patent Application entitled “Optimizing Allocator for Database Objects,” by J. Mark Morris, Ser. No. 11/006,016, filed on even date.
This application is related to U.S. Pat. No. 6,654,862, entitled “High Performance Disk Mirroring” by J. Mark Morris. This application is related to U.S. Pat. No. 6,081,812, entitled “Identifying At-Risk Components In Systems With Redundant Components” by Gary Lee Boggs, et al.
Database data storage subsystems may store various database objects on one or more data storage units. The data storage units may have varying capabilities relating to reliability, speed, and other characteristics. Likewise, database objects may have different needs with respect to the capabilities of the data storage units.
In general, in one aspect, the invention features a method of protecting one or more database objects. The method includes designating one or more database objects for protection and characterizing one or more data storage units by a set of dimensions. The method further includes, for one or more database objects designated for protection: selecting one or more data storage units to store protection information for the database object based on one or more dimensions and storing protection information in the one or more selected data storage units.
Implementations may include one or more of the following. Characterizing one or more data storage units by a set of dimensions may include characterizing one or more data storage units by a reliability dimension. Characterizing one or more data storage units by the reliability dimension may include characterizing one or more data storage units based on one or more of the following:
Characterizing one or more data storage units by a set of dimensions may include characterizing one or more data storage units by a performance dimension. Characterizing one or more data storage units by a performance dimension may include characterizing one or more data storage units based on one or more of the following:
Characterizing one or more data storage units by the performance dimension may include characterizing one or more data storage units by an Input/Output mix by one or more of a read/write mix or a request size mix.
Characterizing one or more data storage units by a set of dimensions may include characterizing one or more data storage units by a capacity dimension or a longevity dimension. Two or more data storage units may be characterized by a common fault dimension.
The method may include characterizing one or more database objects designated for protection based on a set of dimensions. Characterizing one or more database objects by a set of dimensions may include characterizing one or more database objects based on one or more dimensions, such as a reliability dimension, a performance dimension, a size dimension, and a longevity dimension.
The method may include determining a cost to store the recovery information to one or more data storage units.
Storing protection information in the one or more date storage units may include mirroring the database object on the one or more data storage units.
In general, in another aspect, the invention features a computer program, stored on a tangible storage medium, for use in protecting one or more database objects. The computer program includes executable instructions that cause a computer to designate one or more database objects for protection and characterize one or more data storage units by a set of dimensions. The computer program includes further executable instructions that cause the computer to, for one or more database objects designated for protection: select one or more data storage units to store protection information for the database object based on one or more dimensions and store protection information in the one or more selected data storage units.
In general, in another aspect, the invention features an information handling system that includes one or more controllers and one or more data storage facilities including one or more data storage units. Each of the one or more controllers providing access to one or more data storage facilities. The information handling system further includes a process for execution on one or more of the controllers for allocating one or more database objects to one or more data storage units, the process including designating one or more database objects for protection and characterizing one or more data storage units by a set of dimensions. The process further includes, for one or more database objects designated for protection: selecting one or more data storage units to store protection information for the database object based on one or more dimensions and storing protection information in the one or more selected data storage units.
The techniques for protecting database object to data storage units disclosed herein have particular application, but are not limited, to information handling systems, including, for example, but not limited to database systems.
The information handling system 100, shown in
Each of the DSFs 105, 110, and 115 are located at a geographic location. In one example implementation, each of the DSFs 105, 110, and 115 are located at different geographic locations. In other implementations, one or more of the DSFs 105, 110, and 115 are located at the same geographic location.
An example DSF, shown generally at 105, is shown in
In general each of the DSUs 2151,1 . . . N,M include one or more data paths to facilitate communications between the DSUs 2151,1 . . . N,M and other portions of the information handling system 100. In certain implementations one or more of the DSUs 2151,1 . . . N,M within one of the blades 2101 . . . N are in communication with each other. In other implementations one or more of the DSUs 2151,1 . . . N,M within the chassis 205 are in communication with each other. The chassis 205 is in communication with one or more of the controllers 120 and 125 or one or more of the other DSFs 110 and 115 through data interconnections 2201 . . . L. The chassis 205 receives power from power grids 2251 . . . K. The chassis 205 may further include one or more cabinets of DSUs 2151,1 . . . N,M.
The data for storage in the DSUs 2151,1 . . . N,M includes one or more database objects. In general, a database object is a unit of a database such as, a database, a table, a partitions of a table, a row, a column, an index, a log, a journal, a spool, or another unit of the database.
An example data protection system for storing protection information on one or more data storage units is shown in
The system may protect objects of different granularities. One example system protects tables, while another example system protects columns. Another example system protects some database objects on a table-by-table basis, while it protects other database objects on a row-by-row basis. For example, one example system protects one or more rows from one or more tables to DSUs 2151,1 . . . N,M. Other example database objects include sub-tables, partitions of tables, classes of tables, collections of tables, indexes, logs, depots, journals, and other database objects.
An example system for selecting one or more DSUs 2151,1 . . . N,M to store the protection information for the database object (block 320) is shown in
The example system for characterizing each DSU 215 (block 405) characterizes the DSU 215 based on a reliability dimension (block 505, which is shown in greater detail in
In general, the characterization of the reliability dimension of a DSU 215 reflects the likelihood that the DSU 215 will remain available for access and that the DSU 215 will retain a stored database object. In certain implementations, these two facets of the reliability dimension may be considered separately. In still other implementations, the reliability dimension may be split into even more sub-dimensions. An example system for characterizing the reliability dimension of the DSU 215 (block 505) is shown in
a mean time between failures (MTBF) (block 605,
the number of data interconnects 2201 . . . L (block 610);
path failure protection (block 615);
volatility (block 620);
the cabinet (block 625);
the chassis 205 (block 630,
the one or more power grids 2251 . . . K connected to the chassis (block 635);
the data storage facility 105 (block 640); and
whether the DSU 215 supports atomic writes (block 645).
In certain implementations, the system may omit one or more of block 605-640. In certain implementations, the DSU 215 is classified as path failure protected (block 615) if the DSU 215 is still accessible in the event of a single failed storage path to the device. In certain implementations, the DSU 215 is classified as non-volatile if the DSU 215 will maintain stored data though a power loss. Otherwise, the DSU is classified as volatile.
In certain implementations, the reliability properties of the DSU 215 based on block 605-630 is considered in isolation from other DSFs 2151,1 . . . N,M. For example, the system may consider the number of power grids 2051 . . . K connected to the chassis 205 housing DSF 215. In other implementations, the system considers the relation of the DSF 215 to the other DSFs 2151,1 . . . N,M,. For example, if the system is seeking to assign the database object and a mirror of the database object, it may seek the greatest diversity in power grids 2051 . . . K between the DSF 215 for the primary storage of the database object and the DSF 215 for the mirror of the database object. This consideration of multiple DSFs 2151,1 . . . N,M may be performed in regard to the common fault dimension (block 525).
An example system for characterizing the DSU 215 based on the performance dimension (block 510) is shown in
a seek time (block 705);
a data transfer rate (block 710);
a rotational speed (block 715);
one or more response time statistics (block 720);
one or more expected response times as the DSU 215 is filled (block 725);
a data interconnect speed (block 730); and
an Input/Output (I/O) mix (e.g., read/write or request size) (block 735).
In certain implementations, one or more of block 705-735 are omitted.
In some implementations of classifying the DSU 215 based on the performance dimension, the system may classify the database object into one or more discrete classifications. For example, the system may classify the database object by a “temperature,” based on the performance attributes of the database object. Example temperatures may include hot-pacing, hot, warm, and cool. In other implementations, a greater number of discrete classifications are used to classify the DSU 215 based on its performance dimensions. In still other implementations, the performance dimension of the DSU 215 may be characterized by a continuous measure.
An example system of characterizing the DSU 215 based on the capacity dimension (block 515) is shown in
An example system of characterizing the DSU 215 based on the longevity dimension (block 520) is shown in
In some implementations, one or more of the DSUs 2151,1 . . . N,M are grouped into two or more drive protection sets and the database object and the protection information (e.g., a mirror of the database object) are stored in DSUs 2151,1 . . . N,M that are members the same drive protection set. In one example system for characterizing the common fault dimension of the DSU 215 (block 525), which is shown in
In other example systems for characterizing the common fault dimension of the DSU 215, the system considers the diversity in resources (e.g., power grids 2251 . . . K or data interconnections 2201 . . . L) between the DSU 215 and one or more other DSUs 2151,1 . . . N,M. Some example systems attempt to maximize the diversity in resources between a DSU 215 that contains the database object and another DSU 215 that contains the protection information for the database object.
Like the characterization of the DSUs 2151,1 . . . N,M (block 410,
As discussed with respect to the reliability dimension of the DSU 215, the reliability dimension of the database object generally includes both the continued availability and the continued existence and integrity of the database object. In certain implementation, the reliability dimension is split into sub-dimensions for characterization. An example system for characterizing the reliability dimension of the database object (block 1105) is shown in
An example system for characterizing the performance dimension of the database object (block 1110) is shown in
An example system for characterizing the size dimension of the data base object (block 1115) is shown in
In certain implementations, the system considers a cost dimension to place the protection information on the DSU 215 (block 415). An example system to characterize the cost dimension is shown in
Returning to
The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.
| Number | Name | Date | Kind |
|---|---|---|---|
| 6081812 | Boggs et al. | Jun 2000 | A |
| 6654862 | Morris | Nov 2003 | B2 |
| 7181370 | Furem et al. | Feb 2007 | B2 |
| 7225308 | Melament et al. | May 2007 | B2 |