DATA STORAGE SPACE CONFIGURATION OF A HARD DISK DRIVE AND METHOD OF CONFIGURING DATA STORAGE SPACE OF A HARD DRIVE TO LIMIT SEEK DISTANCES DURING DATABASE METADATA UPDATES
20170193013 ยท 2017-07-06
Assignee
Inventors
Cpc classification
G06F16/11
PHYSICS
G11B2020/1242
PHYSICS
International classification
Abstract
A data storage space configuration of a hard disk drive comprises a plurality of zones in which each one of the plurality of zones stores customer data. The data storage space configuration further comprises a plurality of database metadata storage spaces allocated in the plurality of zones, wherein the number of database metadata storage spaces is less than or equal to the number of zones. The database metadata may comprise temporary metadata. The database metadata may comprise write-ahead log (WAL) metadata. The database metadata may comprise staged-write (DEPOT) metadata for the purpose of interrupted write recovery.
Claims
1. A data storage space configuration of a hard disk drive, the data storage space configuration comprising: a plurality of zones in which each one of the plurality of zones stores customer data; and a plurality of database metadata storage spaces allocated in the plurality of zones, wherein the number of database metadata storage spaces is less than or equal to the number of zones.
2. A data storage space configuration of a hard disk drive according to claim 1, wherein the database metadata comprises temporary metadata.
3. A data storage space configuration of a hard disk drive according to claim 1, wherein the database metadata comprises write-ahead log (WAL) metadata.
4. A data storage space configuration of a hard disk drive according to claim 1, wherein the database metadata comprises staged-write (DEPOT) metadata for the purpose of interrupted write recovery.
5. A method of configuring data storage space of a hard disk drive, the method comprising: electronically by a processor, defining a plurality of zones on the hard disk drive; electronically by a processor, storing customer data in each one of the plurality of zones; and electronically by a processor, allocating a plurality of database metadata storage spaces in the plurality of zones, wherein the number of metadata storage spaces is less than or equal to the number of zones.
6. A method according to claim 5, wherein the database metadata comprises temporary metadata.
7. A method according to claim 5, wherein the database metadata comprises write-ahead log (WAL) metadata.
8. A method according to claim 5, wherein the database metadata comprises staged-write (DEPOT) metadata for the purpose of interrupted write recovery.
9. A method according to claim 5, wherein the method is performed by a computer having a memory executing one or more programs of instructions which are tangibly embodied in a program storage medium readable by the computer.
10. A method of collocating customer data and database metadata on a hard disk drive, the method comprising: dividing data storage space of the hard disk drive into a plurality of zones; allocating a portion of the data storage space within each zone of the plurality of zone for storing customer data; and allocating a portion of the data storage space within a plurality of the plurality of zones for storing database metadata.
11. A method according to claim 10, wherein the number of the plurality of the plurality of zones for storing database metadata is less than the number of the plurality of zones.
12. A method according to claim 10, wherein the number of the plurality of the plurality of zones for storing database metadata is equal to the number of the plurality of zones.
13. A method according to claim 10, wherein the database metadata comprises temporary metadata.
14. A method according to claim 10, wherein the database metadata comprises write-ahead log (WAL) metadata.
15. A method according to claim 10, wherein the database metadata comprises staged-write (DEPOT) metadata for the purpose of interrupted write recovery.
16. A method according to claim 10, wherein the method is performed by a computer having a memory executing one or more programs of instructions which are tangibly embodied in a program storage medium readable by the computer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures, in which
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] It is to be understood that the following disclosure provides many different embodiments or examples for implementing different features of various embodiments. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting.
[0017]
[0018]
[0019] As shown in
[0020] In one implementation, the database metadata comprises temporary metadata, such as transactional metadata for example. Transactional metadata is associated with corresponding customer data for only a limited period of time. Once a transaction is sufficiently committed, the associated metadata for that transaction is deleted, and the HDD data storage space previously used for this metadata is re-purposed for new transactions. Accordingly, the association between transactional metadata and corresponding customer data has a limited lifetime.
[0021] In another implementation, the database metadata comprises write-ahead log (WAL) metadata (i.e., WAL-protected metadata updates). In yet another implementation, the database metadata comprises staged-write (DEPOT) metadata.
[0022]
[0023] As shown in step 310 of
[0024] The above-described flowchart 300 of
[0025]
[0026] It should be apparent that database metadata (e.g., WAL-protected metadata) is periodically set aside in separate zones throughout the addressable range of the entire HDD 200. HDD 200 could be thought of as being logically divided into many equal-size strata or zones. The number of zones is a user-configurable number. Within a zone, a percentage of the data storage capacity in that zone is allocated to storing database metadata, and the rest of the data storage space is allocated conventionally for storing customer data. The percentage of data storage capacity reserved for database metadata may be equal for some or all zones. Also, the percentage of data storage space in a zone may be contiguous within that zone, and may be user-configurable.
[0027] Updates to customer data cylinders within a zone results in use of database metadata cylinders within that same zone. In so doing, the seek distance associated with a write to database metadata and customer data is bounded to the distance associated with that particular zone. The greater the number of zones, the smaller each zone becomes, and therefore the shorter the seek distance between the database metadata and the customer data cylinders. For top recovery operations that require a re-read of database metadata, a reasonable cap/limit in the number zones (e.g., 1000 zones) can be enforced to avoid making database metadata reads too random and to avoid potential performance impact.
[0028] The above approach ensures that regardless of how mature a database system is (brand new, or nearly full), the seek distance incurred when performing database metadata updates (e.g., WAL-protected metadata updates) is somewhat fixed, and consistent over the life of the database system.
[0029] The above HDD solution collocates database metadata and customer data to limit seek distances during database metadata updates. This is accomplished by enabling the customer data in a zone to access corresponding database metadata stored in the same or nearby zone.
[0030] The above-described configuration of data storage space for HDD 200 is user-definable and customizable to fit a particular environment. User-defined configurations are externalized to provide a flexible and customizable data storage space solution for a HDD. This is opposite to using a single configuration which is a one size fits all type of approach.
[0031] The above-described HDD solution can support a number of different scenarios. For example, HDD 200 can support a scenario in which WAL-protected metadata is used. In another example, HDD 200 can support a scenario in which DEPOT metadata is used.
[0032] Although the above description describes a TVS architecture supporting HDD 200, it is conceivable that the same concept can be applied to support a wide variety of other types of architectures.
[0033] The illustrative diagrams and flowcharts depict process steps or diagrams that may represent modules, segments, or portions of code that include one or more executable instructions for implementing specific logical functions or steps in the process. Although the particular examples illustrate specific process steps or procedures, many alternative implementations are possible and may be made by simple design choice. Some process steps may be executed in different order from the specific description herein based on, for example, considerations of function, purpose, conformance to standard, legacy structure, user interface design, and the like.
[0034] Aspects of the disclosed embodiments may be implemented in software, hardware, firmware, or a combination thereof. The various elements, either individually or in combination, may be implemented as a computer program product tangibly embodied in a machine-readable storage device for execution by a processing unit. Various steps of embodiments may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions by operating on input and generating output. The computer-readable medium may be, for example, a memory, a transportable medium such as a compact disk, a floppy disk, or a diskette, such that a computer program embodying aspects of the disclosed embodiments can be loaded onto a computer.
[0035] The computer program is not limited to any particular embodiment, and may, for example, be implemented in an operating system, application program, foreground or background process, or any combination thereof, executing on a single processor or multiple processors. Additionally, various steps of embodiments may provide one or more data structures generated, produced, received, or otherwise implemented on a computer-readable medium, such as a memory.
[0036] Still further, although depicted in a particular manner, a greater or lesser number of modules and connections can be utilized with the present disclosure in order to accomplish embodiments, to provide additional known features to present embodiments, and/or to make disclosed embodiments more efficient. Also, the information sent between various modules can be sent between the modules via at least one of a data network, an Internet Protocol network, a wireless source, and a wired source and via a plurality of protocols. Many other embodiments are also within the scope of the following claims.