WO2015121938A1 - データ管理装置及び方法 - Google Patents

データ管理装置及び方法 Download PDF

Info

Publication number
WO2015121938A1
WO2015121938A1 PCT/JP2014/053276 JP2014053276W WO2015121938A1 WO 2015121938 A1 WO2015121938 A1 WO 2015121938A1 JP 2014053276 W JP2014053276 W JP 2014053276W WO 2015121938 A1 WO2015121938 A1 WO 2015121938A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
file
key
value
management unit
Prior art date
Application number
PCT/JP2014/053276
Other languages
English (en)
French (fr)
Inventor
志泰 高畠
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/053276 priority Critical patent/WO2015121938A1/ja
Priority to JP2015562598A priority patent/JP6140311B2/ja
Priority to US14/909,615 priority patent/US9785547B2/en
Publication of WO2015121938A1 publication Critical patent/WO2015121938A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Definitions

  • the present invention relates to a data management apparatus and method, and is particularly suitable for application to a data management apparatus that stores and manages data in an SSD (Solid State Drive) by a KVS (Key-Value Store) method.
  • SSD Solid State Drive
  • KVS Key-Value Store
  • the SSD is a storage device using a semiconductor memory such as a flash memory as a storage medium, and has an advantage that it has excellent access performance and power saving performance and is resistant to vibration and impact compared to a hard disk device.
  • a storage area is divided into unit areas called blocks of a predetermined size (for example, 2 [MB]) and managed.
  • writing of data to the SSD is performed in units called pages having a size smaller than the block (for example, 4 [kB]), but erasure of written data can be performed only in units of blocks.
  • KVS is a method of adding a unique character string or numeric value called a key to data to be saved (value: value) and saving the data as a set with the key, and specifying the corresponding key.
  • value data to be stored
  • Key data in which Key is added to Value
  • Key-value Key-Value
  • Patent Document 1 discloses a method for storing data in an SSD using a log structure appending method as a data management method using SSD for KVS. According to this data management method, there is an advantage that a decrease in performance due to random access which is a characteristic of SSD can be reduced.
  • Patent Document 1 it is necessary to continue writing data to the SSD, and the write process goes around the storage area of the SSD, and the data needs to be written to a block in which data is already stored. In this case, there is a problem that the above-described garbage collection occurs, and the write performance is reduced accordingly.
  • key-value data is temporarily held in a memory in the server device, and the key-value data held in the memory is stored at a predetermined timing in a hard disk device or SSD.
  • a hard disk device or SSD There is a configuration in which data is written in a storage device.
  • the key-value data not yet written in the storage device among the key-value data held in the memory may be lost. It is necessary to prevent lost data by writing data to a storage device in synchronization with writing to the memory.
  • the present invention has been made in consideration of the above points, and an object of the present invention is to propose a data management apparatus and method for reducing the occurrence of garbage collection and preventing the deterioration of the performance of writing data to an SSD.
  • the SSD A data management unit for managing the key / value data stored in the file, and a file for appropriately creating a file of a predetermined size in the storage area of the SSD in response to a request from the data management unit, and managing the created file A management unit, wherein the file has a file size that is an integral multiple of a block that is a data erasure unit in the SSD, and the data management unit additionally writes the key / value data to be stored to the file.
  • Request to the file manager to write to the file, and update the key in the file.
  • the data before updating the value data and the deleted key / value data are invalidated to manage the number of valid key / value data in each file, and the valid key / value data exists. For the missing file, the file management unit is requested to delete the file.
  • the data management device in a data management method for storing key value data consisting of a value to be stored and a key unique to the value in an SSD (Solid State Drive), includes A data management unit that manages the key / value data stored in the SSD, and appropriately creates a file of a predetermined size in the storage area of the SSD in response to a request from the data management unit, and manages the created file A file management unit, and the file has a file size that is an integral multiple of a block that is a data erasure unit in the SSD, and the data management unit stores the key / value data to be stored in the file.
  • a data management unit that manages the key / value data stored in the SSD, and appropriately creates a file of a predetermined size in the storage area of the SSD in response to a request from the data management unit, and manages the created file
  • the file has a file size that is an integral multiple of a block that is a data erasure unit in the SSD, and the data management unit stores the key / value data
  • Requests the file manager to write additionally and updates the file in the file A first step of invalidating data before update of the value data and the deleted key / value data, and managing the number of valid key / value data in each file, and the data management unit; However, a second step of requesting the file management unit to delete the file for which the valid key / value data no longer exists is provided.
  • garbage collection is performed in the SSD when deleting a file that no longer has valid key / value data. Does not occur.
  • the garbage resulting from the write of the key / value data going around the storage area of the SSD since the files for which valid key / value data no longer exist are sequentially deleted, the garbage resulting from the write of the key / value data going around the storage area of the SSD. The occurrence of collection can be reduced.
  • the present invention it is possible to realize a data management apparatus and method that can suppress the occurrence of garbage collection in the SSD as much as possible, thus reducing the occurrence of garbage collection and preventing the performance of writing data to the SSD.
  • FIG. 1 denotes a data management device according to this embodiment as a whole.
  • the data management device 1 is a computer device composed of a personal computer, a workstation, a main frame, or the like, and has a CPU (Central Processing Unit) 3, a memory 4, an SSD 5, A communication control unit 6, an input device 7, and a display device 8 are provided.
  • CPU Central Processing Unit
  • the CPU 3 is a processor that controls the operation of the entire data management device 1.
  • the memory 4 is a semiconductor memory used as a main storage device, and is used not only as a work memory for the CPU 3 but also as a cache memory for temporarily storing key-value data to be read from and written to the SSD 5.
  • the SSD 5 is a secondary storage device composed of a non-volatile semiconductor memory such as a flash memory, and is used for storing various programs and various data for a long period of time.
  • the communication control unit 6 is composed of, for example, a NIC (Network Interface Card), and performs protocol control during communication with an external device.
  • the input device 7 includes, for example, a keyboard and a mouse, and is used when the user performs various operation inputs to the data management device 1.
  • the display device 8 includes a liquid crystal display and is used for displaying various screens and various information.
  • FIG. 2 shows a logical configuration of the data management apparatus 1 related to the KVS function installed in the data management apparatus 1.
  • the data management apparatus 1 includes a KVS 10 and a file system 11 as functions.
  • the KVS 10 is a function embodied by the CPU 3 executing a KVS program (not shown) stored in the memory 4.
  • the KVS 10 includes a data management unit 12 having a function of managing the key-value data DA stored in the SSD 5.
  • the data management unit 12 requests the file system 11 to write the requested key-value data DA to the SSD 5 in response to a write request from the user input via the input device 7, and the key in the SSD 5. -Manage the storage location of Value data. Further, the data management unit 12 specifies a storage location of the Value corresponding to the designated Key on the SSD 5 in response to a read request for the Value designated by the user, and reads out the Value from the SSD 5 as a file system. 11 is requested.
  • the file system 11 is a function realized by the CPU 3 executing a file system program (not shown) stored in the memory 4 and includes a file management unit 14.
  • the file management unit 14 appropriately creates a file of a predetermined size in the storage area 15 of the SSD 5 in response to a request from the data management unit 12 of the KVS 10 and manages the created file. Then, in response to a request from the data management unit 12, the file management unit 14 writes the requested key-value data DA into the file FL and stores it in the SSD 5.
  • the SSD 5 includes a storage area 15 provided by a semiconductor memory such as a flash memory, and a controller 16 that controls reading and writing of data from and to the storage area 15.
  • the storage area 15 is managed by the controller 16 while being divided into a plurality of blocks BL of a predetermined size, and each block BL is further divided into a plurality of pages PG and managed. As described above, data is written to the SSD 5 in units of page PG, and data is erased from the SSD 5 in units of blocks BL.
  • the data management apparatus 1 creates a file FL having a file size that is an integral multiple of the block BL of the SSD 5 on the storage area 15 of the SSD 5, and additionally writes the key-value data DA to be saved to the file FL.
  • one of the features is that the number of valid key-value data DA in each file FL is managed, and the file FL in which the valid key-value data DA no longer exists is sequentially deleted.
  • the data management unit 12 of the KVS 10 requests the file system 11 to create a file FL for writing the key-value data DA at the initial stage.
  • the file management unit 14 of the file system 11 is requested to additionally write to the file FL.
  • the data management unit 12 If the new key-value data DA cannot be added to the file FL, the data management unit 12 requests the file management unit 14 to create a new file FL for writing the key-value data DA. On the other hand, after this, the file management unit 14 is requested to write the key-value data DA requested by the user to the new file FL. Thereafter, the data management unit 12 repeats the same processing.
  • the data management unit 12 regards the data before the update of the updated key-value data DA and the deleted key-value data DA as invalidated data as non-invalidated key-value data DA.
  • (valid key-value data DA) the location in which file FL is stored is managed using the data management table 13 created on the memory 4 (FIG. 1).
  • the data management unit 12 also manages the number of valid keys stored in each file FL (the number of valid key-value data DA) and the free capacity of each file FL using the data management table 13. To do. In this case, when the data management unit 12 requests the file management unit 14 to create a new file FL, the free space of the file FL that has been used for writing the key-value data DA until then is expressed as “ Managed as “0”.
  • the data management unit 12 is a file FL having a free space of “0” (that is, a file that is no longer used as a writing destination of new key-value data DA), and stores all the stored key-value data DA. Requesting the file management unit 14 of the file system to delete the file FL that is invalidated due to update or deletion (that is, the file FL in which the number of valid key-value data is “0”) To do.
  • the file management unit 14 of the file system 11 deletes the file FL from the SSD5. In this case, garbage collection does not occur in SSD5. Further, in the present data management device 1, since the file FL in which valid key-value data no longer exists is deleted sequentially as described above, the writing of the key-value data DA goes around the storage area 15 of the SSD 5. The occurrence of garbage collection can be reduced. Therefore, according to the data management device 1, occurrence of garbage collection in the SSD 5 can be suppressed as much as possible.
  • FIG. 3 shows the configuration of the data management table 13 described above and the data format of the key-value data DA stored in the SSD 5.
  • the data management table 13 includes a key-value management table 20 and a file management table 21.
  • the key-value management table 20 is a table used for managing the relationship between the key and the value, and includes a key column 20A, a file name column 20B, and an offset column 20C as shown in FIG.
  • the Key column 20A stores the Key assigned to each Key-Value data DA written to the SSD 5, and the file name column 20B stores the file FL in which the Value associated with the corresponding Key is written. The file name of is stored.
  • the offset column 20C stores an offset amount (for example, in kilobytes) from the head of the corresponding file FL of the Value associated with the corresponding Key.
  • the key-value data DA to which the key “Key1” is assigned is stored at the position “128” from the beginning of the file FL “File1”, and the key “Key2” is assigned. It is shown that the key-value data DA is stored at a position “16” from the top of the file FL “File2”.
  • the file management table 21 is used to manage the number of keys stored in each file FL stored in the SSD 5 (more precisely, the number of key-value data DA) and the free capacity of each file FL.
  • the table includes a file name column 21A, a key number column 21B, and a free capacity column 21C.
  • the file name column 21A stores the file name of each file FL created on the SSD 5, and the Key number column 21B stores the number of valid keys stored in the corresponding file FL (more precisely, The number of valid key-value data DA) is stored.
  • the free space column 21C stores the current free space (for example, in megabytes) of the corresponding file FL.
  • the number of valid keys (the number of valid key-value data DA) is “1”, the free space is “0”, and the file “File2” For FL, the number of valid keys is “2” and the free space is “32”.
  • the key-value data DA is padded as necessary with padding data PD so as not to cross the page PG and eventually the block BL in the storage area 15 (FIG. 2) of the SSD 5. Is added and stored in the file FL. Therefore, the data size of the padding data PD is selected so that the data size of the key-value data DA to which the padding data PD is added is the nearest integer multiple of the page PG size (page size) in the SSD 5 as a whole. .
  • padding data PD having a data amount of 0.2 times the page size is added to the key-value data DA, and the data of the key-value data DA
  • the size is 2.3 times the page size
  • padding data PD having a data amount 0.7 times the page size is added to the key-value data DA.
  • FIG. 3 shows that the file FL “File1” corresponding to the top entry (row) of the file management table 21 is updated with key-value data DA including “Key1” Key and “Value1” Value data.
  • Key-Value data DA consisting of the previous data, data before updating Key-Value data DA consisting of Key data “Key2” and Value data “Value2”, Key data “Key1” and Value data “Value1” It is an example in the case of indicating that the updated data is stored.
  • the file FL “File2” corresponding to the second entry of the file management table 21 includes key-value data DA including a key “Key3” and Value data “Value3”, and “Key2”.
  • the key-value data DA consisting of the key “Value” and the value data "Value2” was stored, but the key-value data DA "Value2" was subsequently deleted ("Deleted") It is shown.
  • FIG. 4 shows a processing procedure of data write processing executed by the data management unit 12 of the KVS 10 when the key-value data DA is written to the file FL on the SSD 5.
  • the data management unit 12 gives an instruction to the file management unit 14 of the file system 11 to write the requested key-value data DA into the corresponding file FL on the SSD 5 according to the processing procedure shown in FIG.
  • the data management unit 12 starts this data write process, and first refers to the file management table 21 (FIG. 3). Whether the file FL currently used for writing the key-value data DA (hereinafter referred to as a data write destination file as appropriate) FL has enough free space to write the key-value data DA to be saved Is determined (SP1).
  • step SP3 the data management part 12 will progress to step SP3, if an affirmation result is obtained by this judgment.
  • the data management unit 12 obtains a negative result in the determination at step SP1
  • the data management unit 12 changes the free space of the current data write destination file FL in the file management table 21 to “0” and a new data write destination.
  • the file management unit 14 of the file system 11 is requested to create the file FL (SP2).
  • the file management unit 14 creates a file FL on the SSD 5 having a predetermined size that is an integral multiple of the block size of the SSD 5.
  • the file management unit 14 then handles the file FL created at this time as a new data write destination file FL until the next data write destination file FL is created.
  • the data management unit 12 transmits the key-value data DA to be saved and the data write request to the file management unit 14 of the file system 11 (SP3).
  • the file management unit 14 adds the padding data PD to the key-value data DA given from the data management unit 12 so that the total data amount becomes the nearest integer multiple of the page size of the SSD 5, and then By giving the key-value data DA and its write request to the controller 16 of the SSD 16, the key-value data DA is written in the data write destination file FL.
  • the data management unit 12 updates the key number column 21B and the free space column 21C of the entry corresponding to the data write destination file FL in the file management table 21 (SP4). Specifically, the data management unit 12 increases the number of keys stored in the key number column 21B of the entry by “1”, and sets the free capacity stored in the free capacity column 21C to the data write destination at that time. The value is updated by subtracting the key-value data DA written in the file FL.
  • the data management unit 12 determines whether or not the key-value data DA written in the data write destination file FL in step SP3 is newly added in the KVS 10 (SP5). If the data management unit 12 obtains a positive result in this determination, it proceeds to step SP9.
  • obtaining a negative result in the determination at step SP5 means that the writing of the key-value data DA is an update of the already-written key-value data DA.
  • the data management unit 12 refers to the corresponding entry in the key-value management table 20 in order to invalidate the pre-update key-value data DA in the key-value data DA, and the file management table 21.
  • the number of keys stored in the Key number column 21B of the entry corresponding to the file FL (hereinafter referred to as the pre-update data storage file) FL in which the key-value data DA before update in FIG. Decrease.
  • the data management unit 12 refers to the file management table 21, and as a result of the processing in step SP6, the number of valid keys in the pre-update data storage file FL (the number of valid key-value data DA) is obtained. It is determined whether it is “0” and the free space of the file FL is “0” (SP7). If the data management unit 12 obtains a negative result in this determination, it proceeds to step SP9.
  • the data management unit 12 when the data management unit 12 obtains a positive result in the determination at step SP7, it requests the file system 11 to delete the pre-update data storage file FL (SP8).
  • the file management unit 14 of the file system 11 that has received this request transmits all the existing TRMI commands to the controller 16 (FIG. 2) of the SSD 5 so that all of the data storage files FL before the update are included. Give instructions to invalidate the page. Further, the SSD 16 controller 16 that has received this TRMI command deletes the key-value data stored in the corresponding page in the SSD 5. As a result, the above-mentioned pre-update data storage file FL is deleted from the SSD 5.
  • the data management unit 12 updates the contents of the key-value management table 20 (SP9). Specifically, when the key-value data DA to be stored is newly stored in the SSD 5, the data management unit 12 registers the key-value data DA in the key-value management table 20. In addition, when the writing of the key-value data DA is an update of the key-value data DA already stored in the SSD 5, the data management unit 12, among the entries of the key-value management table 20, The file name stored in the file name column 20B (FIG. 3) of the entry corresponding to the key-value data DA and the offset amount stored in the offset column 20C (FIG. 3) are updated as necessary. Then, the data management unit 12 thereafter ends this data writing process.
  • SP9 key-value management table 20
  • the data management apparatus 1 creates a file FL having a file size that is an integral multiple of a block in the storage area 15 of the SSD 5, and While the key-value data DA to be saved is written additionally to the FL, the number of valid keys (number of valid key-value data DA) in each file FL is managed, and the number of valid keys is “0”. Since the file FL that has become deleted is sequentially deleted, the occurrence of garbage collection in the SSD 5 can be suppressed as much as possible. In this way, according to the data management apparatus 1, it is possible to reduce the occurrence of garbage collection and to prevent the performance of writing data to the SSD 5 from decreasing.
  • the key-value data DA is additionally written to the data write destination file FL as described above, and garbage collection occurs.
  • the key-value data DA alone is not deleted from the pre-update data storage file FL.
  • the data management device 1 according to the first embodiment there is a possibility that a file FL containing a lot of invalidated key-value data DA exists in the SSD 5, and there is a possibility that the usage efficiency of the SSD 5 is lowered. There is a problem that there is.
  • the pre-update data storage in which the data before the key-value data DA is updated is written.
  • a predetermined threshold for example, 50 [%] of the file size
  • FIG. 5 shows a key-value management table 31 of this embodiment that is used in such a data management apparatus 30 in place of the key-value management table 20 of the first embodiment described above with reference to FIG. .
  • the key-value management table 31 includes a key column 31A, a file name column 31B, an offset column 31C, and a data size column 31D.
  • the Key column 31A, the file name column 31B, and the offset column 31C store the same information as the Key column 20A, the file name column 20B, and the offset column 20C of the key-value management table 20 of the first embodiment, respectively.
  • the data size column 31D stores the data size including the padding data PD (FIG. 3) of the corresponding key-value data DA.
  • FIG. 6 shows a file management table 32 of the present embodiment applied in place of the file management table 21 of the first embodiment described above with reference to FIG.
  • the file management table 32 includes a file name column 32A, a key number column 32B, a free capacity column 32C, and a total effective data amount column 32D.
  • the total valid data amount column 32D stores the total data amount of valid key-value data (including padding data PD) DA in the corresponding file FL (hereinafter referred to as the total valid data amount).
  • FIG. 7 shows the data writing process of the present embodiment executed by the data management unit 34 (FIG. 2) of the KVS 33 (FIG. 2) of the present embodiment when writing the key-value data DA into the file FL on the SSD 5. Show the procedure.
  • the data writing process of the present embodiment is performed in the same manner as the data writing process of the first embodiment except that the process in step SP13 is different and the processes of steps SP16 to SP19 are added. .
  • the data management unit 34 starts this data write process, and steps SP10 to SP12 are changed to steps SP1 to SP3 in FIG. Process in the same way.
  • the data management unit 34 updates the file name column 32A, the key number column 32B, the free capacity column 32C, and the total valid data amount column 32D of the entry corresponding to the data write destination file FL in the file management table 32 ( SP13).
  • the data management unit 34 determines whether the key-value data DA is newly added in the KVS 33 (SP14). This determination is made by determining whether or not the key of the key-value data DA to be stored is not yet registered in the key-value management table 31. If the data management unit 34 obtains a positive result in this determination, it proceeds to step SP22.
  • the data management unit 34 invalidates the data before updating the key-value data DA.
  • a file in which data before update of the key-value data DA is stored with reference to the file name column 31B of the entry in which the same key as the key of the -value data DA is stored in the key column 31A (data before update The storage file) FL is specified, and the number of keys stored in the key number column 32B of the entry corresponding to the pre-update data storage file FL in the file management table 32 is decreased by “1”.
  • the data size before updating the key-value data DA is specified, and the validity of the same entry in the file management table 32 is determined.
  • the data amount column 32D is reduced by the data size before update.
  • the data management unit 34 reads the total effective data amount of the valid key-value data DA in the pre-update data storage file FL from the file management table 32, the read total effective data amount, and a preset threshold value Are compared (SP16). Then, the data management unit 34 determines whether or not the total effective data amount is smaller than the threshold based on the comparison result (SP17).
  • step SP22 If the data management unit 34 obtains a negative result in this determination, it proceeds to step SP22. On the other hand, when the data management unit 34 obtains a positive result in the determination at step SP17, the file system 11 copies the valid key-value data DA in the pre-update data storage file FL to the data write destination file FL. An instruction is given to the file management unit 14 (SP18). Thus, according to this instruction, the file management unit 14 copies all the valid key-value data DA from the pre-update data storage file FL to the data write destination file FL.
  • the data management unit 34 updates the key-value management table 31 and the file management table 32 respectively according to the contents of the data copy performed in step SP18 (SP19). As a result, the number of valid keys (number of key-value data) stored in the key number field 42B of the entry corresponding to the pre-update data storage file FL in the file management table 32 is updated to “0”. .
  • the data management unit 34 refers to the file management table 21, and as a result of the processing at step SP19, the number of keys (number of key-value data) of the pre-update data storage file FL becomes “0” and the update is performed. It is determined whether or not the free space of the previous data storage file FL is “0” (SP20). The data management unit 34 always obtains a positive result in this determination.
  • the data management unit 34 thereafter processes step SP21 and step SP22 in the same manner as step SP8 and step SP9 of the data writing process of FIG. However, in step SP22, the data management unit 34 updates the data size column 31 of the key-value management table 31 in addition to the processing of step SP9. Then, the data management unit 34 thereafter ends this data writing process.
  • the file FL whose total effective data amount is less than the threshold value due to updating of the stored key-value data DA or the like can be deleted each time.
  • the data management device 30 in addition to the effect obtained by the data management device 1 of the first embodiment, it is possible to obtain the effect that the utilization efficiency of the SSD 5 can be improved.
  • the padding data PD is removed from each of the key-value data DA. 11 to the file management unit 14 (FIG. 2).
  • the file management unit 14 to which such an instruction is given deletes the padding data PD added to each valid key-value data DA written in the original file FL, and the key-value data DA
  • the padding data PD is added so that the total data size is the nearest integer multiple of the page PG (FIG. 2), and these valid key-value data DA are written together in the data write destination file FL.
  • extra padding data PD is added when valid key-value data DA written in the pre-update data storage file FL is copied to the data write destination file FL. Since it can be deleted, in addition to the effect obtained by the data management device 1 of the first embodiment, it is possible to obtain the effect that the utilization efficiency of the SSD 5 can be further improved.
  • a logical address handled by a file system is converted into an internal physical address by an SSD controller. Since the contents of this conversion process cannot be recognized from the file system, even if a file size is specified at the time of file creation and a continuous area is secured on the file system, pages in the SSD block may not be secured as a continuous area. . In general, if sequential writing is performed, continuous SSD pages are allocated. However, if data is already written at random, it is not certain whether a continuous area is allocated.
  • the SSD 5 files the continuous pages PG (FIG. 2) in the block BL (FIG. 2) with respect to the data management devices 1, 30, 40) according to the first to third embodiments.
  • An interface (command) is provided that is allocated to FL and that causes the head of the file FL to be the head of the page PG in the continuous block BL.
  • the data management unit 52 (FIG. 2) of the KVS 51 (FIG. 2) performs step SP2 of the data write process described above with reference to FIG. 4 and the data write process described with reference to FIG.
  • this command (hereinafter referred to as a continuous area allocation designation command) is transmitted to the file system 63 (FIG. 2).
  • the file management unit 54 (FIG. 2) of the file system 53 (FIG. 2) that has received this continuous area allocation designation command transmits a request corresponding to the continuous area allocation designation command to the controller 16 of the SSD 5.
  • the file management unit 54 of the file system 53 creates a file FL of a continuous area on the file system 53, and a continuous storage area is secured by the controller 16 as a storage area for the file FL in the SSD 5. Is done.
  • the data management apparatus 50 of the present embodiment described above since the file FL is formed on the continuous storage area of the SSD 5, the data write processing step SP8 described above with reference to FIG. 4 and the data described above with reference to FIG.
  • data deletion is performed in units of blocks.
  • the deletion processing of the file FL can be accelerated. The effect that it is possible can also be acquired.
  • the valid key-value data DA in the pre-update data storage file FL in step SP18 of the data write process described above with reference to FIG. Is copied from the pre-update data storage file FL to the data write destination file FL.
  • the key-value data DA to be copied may exist on the memory 4 (FIG. 1). In such a case, the key-value data DA to be copied is updated. Copying from the memory 4 to the data writing destination file FL can improve the copying speed rather than copying from the previous data storage file FL to the data writing destination file FL.
  • the valid key-value data DA stored in the pre-update data storage file FL is written in step SP18 of the data writing process described above with reference to FIG.
  • the key-value data DA exists in the memory 4
  • the key-value data DA is copied from the memory 4 to the data write destination file FL.
  • the data management unit 62 (FIG. 2) of the KVS 61 (FIG. 2) uses the valid key in the pre-update data storage file FL. It is determined whether or not the value data DA exists on the memory 4.
  • the data management unit 62 reads the key-value data DA from the memory 4 for the key-value data DA existing on the memory 4 among the valid key-value data DA, and reads the read key-value data DA.
  • DA is transmitted to the file management unit 14 of the file system 11 together with a data write request for writing to the data write destination file FL.
  • the file management unit 14 writes the key-value data DA given together with the data write request from the data management unit 62 to the data write destination file FL.
  • the data management unit 62 for the key-value data DA that does not exist in the memory 4 among the valid key-value data DA, before update in which data before update of the key-value data DA is stored.
  • An instruction is given to the file management unit 14 to copy from the data storage file FL to the data write destination file FL.
  • the file management unit 14 copies the key-value data DA written in the pre-update data storage file FL to the data write destination file FL.
  • the data management device 60 of the present embodiment from the pre-update data storage file FL in which the pre-update data of the key-value data DA is stored in step SP18 of the data write process described above with reference to FIG.
  • the processing load for reading the copy-target key-value data DA from the pre-update data storage file FL can be reduced.
  • the data management device 60 of the present embodiment in addition to the effect obtained by the data management device 30 of the second embodiment, there can be obtained an effect that the copy speed can be improved. it can.

Abstract

【課題】 ガベージコレクションの発生を低減し、SSDへのデータ書込み性能の低下を防止するデータ管理装置及び方法を提案する。 【解決手段】 SSDに保存したキー・バリューデータを管理するデータ管理部と、データ管理部からの要求に応じてSSDの記憶領域上に所定サイズのファイルを適宜作成し、作成したファイルを管理するファイル管理部とをデータ管理装置に設け、ファイル管理部がSSDにおけるブロックの整数倍のサイズでファイルを作成し、データ管理部が、保存対象のキー・バリューデータをファイルに追記的に書き込むようファイル管理部に要求すると共に、各ファイルにおける有効なキー・バリューデータの数を管理し、有効なキー・バリューデータが存在しなくなったファイルについては、当該ファイルを削除するようファイル管理部に要求するようにした。

Description

データ管理装置及び方法
 本発明は、データ管理装置及び方法に関し、特にKVS(Key-Value Store)方式によりデータをSSD(Solid State Drive)に格納して管理するデータ管理装置に適用して好適なものである。
 近年、記憶装置としてSSDが広く用いられるようになってきた。SSDは、フラッシュメモリ等の半導体メモリを記憶媒体として利用した記憶装置であり、ハードディスク装置と比べてアクセス性能及び省電力性に優れ、かつ振動及び衝撃に強いという利点がある。
 SSDでは、記憶領域が所定サイズ(例えば2〔MB〕)のブロックと呼ばれる単位領域に分けて管理される。この場合、SSDへのデータの書き込みは、ブロックよりもサイズが小さい(例えば4〔kB〕)ページと呼ばれる単位で行われるが、書き込まれたデータの消去はブロック単位でしか行うことができない。
 このためSSDでは、あるブロックに書き込まれたデータの更新又は消去を、そのブロックのデータを一旦他のブロックに移動させ、移動元のブロックに格納されているデータをすべて消去する、いわゆるガベージコレクションと呼ばれる処理により行っている。
 一方、近年、データの保存・管理方式の1つとして、KVSと呼ばれる方式が注目されている。KVSは、保存対象のデータ(値:value)に対してキー(Key)と呼ばれる固有の文字列や数値を付加し、データをそのキーとセットで保存する方式であり、対応するキーを指定することで所望するデータを記憶装置から読み出すことができる。なお、以下においては、保存対象のデータをValue(バリュー)、キーをKey、ValueにKeyが付加されたデータをKey-Value(キー・バリュー)データと呼ぶものとする。
 下記特許文献1には、SSD向けのKVSによるデータ管理方式として、ログ構造の追記式でデータをSSDに格納する方式が開示されている。このデータ管理方式によれば、SSDの特性であるランダムアクセスによる性能の低下を軽減できるという利点がある。
米国特許公開第2012/0265924号明細書
 ところが、かかる特許文献1に開示されたデータ管理方式によると、SSDに対するデータの書き込みを続け、書込み処理がSSDの記憶領域を周回し、既にデータが格納されているブロックにデータを書き込む必要が生じた場合に上述のガベージコレクションが発生し、その分書込み性能が低下するという問題があった。
 一方、KVS機能が搭載されたサーバ装置の中には、Key-Valueデータを一時的にサーバ装置内のメモリ上に保持し、メモリに保持したKey-Valueデータを所定のタイミングでハードディスク装置やSSD等の記憶装置に書き込む構成のものがある。
 このようなサーバ装置では、装置がダウンした場合に、メモリに保持しているKey-Valueデータのうちの未だ記憶装置に書き込んでいないKey-Valueデータをロストするおそれがあるため、当該Key-Valueデータをメモリへの書き込みと同期して記憶装置に書き込むなどしてデータのロストを防止する必要がある。
 従って、かかるサーバ装置における記憶装置としてSSDを適用するに際しては、上述のようなガベージコレクションに起因するSSDのデータ書込み特性の低下の発生をできる限り低減し得る工夫が必要となる。
 本発明は以上の点を考慮してなされたもので、ガベージコレクションの発生を低減し、SSDへのデータ書込み性能の低下を防止するデータ管理装置及び方法を提案しようとするものである。
 かかる課題を解決するため本発明においては、保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理装置において、前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部とを設け、前記ファイルは、前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、前記データ管理部が、保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理し、有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求するようにした。
 また本発明においては、保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理方法において、前記データ管理装置は、前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部とを有し、前記ファイルは、前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、前記データ管理部が、保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理する第1のステップと、前記データ管理部が、有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求する第2のステップとを設けるようにした。
 かかるデータ管理装置及びデータ管理方法によれば、ファイルがSSDのブロックの整数倍のファイルサイズを有するため、有効なキー・バリューデータが存在しなくなったファイルを削除する際に、SSDにおいてガベージコレクションが発生しない。また本データ管理装置及びデータ管理方法によれば、有効なキー・バリューデータが存在しなくなったファイルが逐次削除されるためキー・バリューデータの書き込みがSSDの記憶領域を周回することに起因するガベージコレクションの発生を低減させることができる。
 本発明によれば、SSDにおけるガベージコレクションの発生を極力抑えることができ、かくしてガベージコレクションの発生を低減し、SSDへのデータ書込み性能の低下を防止するデータ管理装置及び方法を実現できる。
第1~第5の実施の形態によるデータ管理装置のハードウェア構成を示すブロック図である。 第1~第5の実施の形態によるデータ管理装置のKVS機能に関する論理構成を示すブロック図である。 Key-Value管理テーブル及びファイル管理テーブルの構成と、SSDに格納されるKey-Valueデータのデータフォーマットとを示す概念図である。 第1の実施の形態によるデータ書込み処理の処理手順を示すフローチャートである。 第2の実施の形態によるKey-Value管理テーブルの構成を示す概念図である。 第2の実施の形態によるファイル管理テーブルの構成を示す概念図である。 第2~第5の実施の形態によるデータ書込み処理の処理手順を示すフローチャートである。
 以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1-1)本実施の形態によるデータ管理装置の構成
 図1において、1は全体として本実施の形態によるデータ管理装置を示す。このデータ管理装置1は、パーソナルコンピュータや、ワークステーション又はメインフレームなどから構成されるコンピュータ装置であり、内部バス2を介して相互に接続されたCPU(Central Processing Unit)3、メモリ4、SSD5、通信制御部6、入力装置7及び表示装置8を備えて構成される。
 CPU3は、データ管理装置1全体の動作制御を司るプロセッサである。またメモリ4は、主記憶装置として用いられる半導体メモリであり、CPU3のワークメモリとして利用されるほか、SSD5に読書きするKey-Valueデータを一時的に記憶するキャッシュメモリとしても用いられる。
 SSD5は、フラッシュメモリ等の不揮発性の半導体メモリからなる二次記憶装置であり、各種プログラム及び各種データを長期的に保存するために利用される。通信制御部6は、例えばNIC(Network Interface Card)から構成され、外部機器との通信時におけるプロトコル制御を行う。
 入力装置7は、例えばキーボード及びマウスなどから構成され、ユーザがデータ管理装置1に対する各種の操作入力を行う際に利用される。また表示装置8は、液晶ディスプレイなどから構成され、各種画面や各種情報を表示するために利用される。
 図2は、本データ管理装置1に搭載されたKVS機能に関するデータ管理装置1の論理構成を示す。この図2から明らかなように、データ管理装置1は、機能としてKVS10及びファイルシステム11を備えて構成される。
 KVS10は、CPU3がメモリ4に格納された図示しないKVSプログラムを実行することにより具現化される機能である。KVS10は、SSD5に保存したKey-ValueデータDAを管理する機能を有するデータ管理部12を備える。データ管理部12は、入力装置7を介して入力されたユーザからの書込み要求に応じて、要求されたKey-ValueデータDAのSSD5への書き込みをファイルシステム11に要求すると共に、SSD5における当該Key-Valueデータの保存場所を管理する。またデータ管理部12は、ユーザからのKeyを指定したValueの読出し要求に応じて、指定されたKeyに対応するValueのSSD5上の保存場所を特定し、当該ValueのSSD5からの読み出しをファイルシステム11に要求する。
 ファイルシステム11は、CPU3がメモリ4に格納された図示しないファイルシステムプログラムを実行することにより具現化される機能であり、ファイル管理部14を備える。ファイル管理部14は、KVS10のデータ管理部12からの要求に応じてSSD5の記憶領域15上に所定サイズのファイルを適宜作成し、作成したファイルを管理する。そしてファイル管理部14は、データ管理部12からの要求に応じて、要求されたKey-ValueデータDAをファイルFLに書き込むようにしてSSD5に保存する。
 SSD5は、フラッシュメモリ等の半導体メモリが提供する記憶領域15と、記憶領域15に対するデータの読み書きを制御するコントローラ16とから構成される。記憶領域15は、コントローラ16により、所定サイズの複数のブロックBLに分けて管理されると共に、各ブロックBLはさらに複数のページPGに分割されて管理される。上述のようにSSD5に対するデータの書き込みはページPG単位で行われ、SSD5からのデータの消去はブロックBL単位で行われる。
(1-2)本実施の形態のデータ管理方式
 次に、本実施の形態のデータ管理装置1におけるデータ管理方式について説明する。本データ管理装置1は、SSD5の記憶領域15上に当該SSD5のブロックBLの整数倍のファイルサイズを有するファイルFLを作成し、保存対象のKey-ValueデータDAを追記的にこのファイルFLに書き込むと共に、各ファイルFLにおける有効なKey-ValueデータDAの数を管理し、当該有効なKey-ValueデータDAが存在しなくなったファイルFLについては逐次削除する点を特徴の1つとしている。
 実際上、本データ管理装置1の場合、KVS10のデータ管理部12は、初期時、ファイルシステム11に対してKey-ValueデータDAを書き込むためのファイルFLの作成を要求する一方、この後、ユーザからの書込み要求があったKey-ValueデータDAについては、そのファイルFLに追記的に書き込むようファイルシステム11のファイル管理部14に要求する。
 またデータ管理部12は、かかるファイルFLに新たなKey-ValueデータDAを追記できなくなった場合には、Key-ValueデータDAを書き込むための新たなファイルFLの作成をファイル管理部14に要求する一方、この後、ユーザからの書込み要求があったKey-ValueデータDAについては、その新たなファイルFLに追記的に書き込むようファイル管理部14に要求する。そしてデータ管理部12は、これ以降、同様の処理を繰り返す。
 この際、データ管理部12は、更新されたKey-ValueデータDAの更新前のデータや削除されたKey-ValueデータDAについては無効化されたデータとして、無効化されていないKey-ValueデータDA(有効なKey-ValueデータDA)については、どのファイルFLのどの位置に格納されているかをメモリ4(図1)上に作成したデータ管理テーブル13を用いて管理する。
 またデータ管理部12は、各ファイルFLに格納されている有効なKeyの数(有効なKey-ValueデータDAの数)及び各ファイルFLの空き容量についても、かかるデータ管理テーブル13を用いて管理する。この場合において、データ管理部12は、新たなファイルFLの作成をファイル管理部14に要求した場合、それまでKey-ValueデータDAの書き込みに利用していたファイルFLについては、その空き容量を「0」として管理する。
 そしてデータ管理部12は、空き容量が「0」のファイル(つまり新たなKey-ValueデータDAの書込み先としては使用されなくなったファイル)FLであって、格納されたすべてのKey-ValueデータDAが更新又は削除等により無効化されたファイルFL(つまり有効なKey-Valueデータの数が「0」となったファイルFL)については、そのファイルFLの削除をファイルシステムのファイル管理部14に要求する。
 この場合において、本データ管理装置1では、上述のようにかかるファイルFLのサイズはSSD5のブロックBLの整数倍に選定されているため、ファイルシステム11のファイル管理部14がSSD5からファイルFLを削除する際もSSD5においてガベージコレクションは発生しない。また本データ管理装置1では、上述のように有効なKey-Valueデータが存在しなくなったファイルFLを逐次削除するため、Key-ValueデータDAの書き込みがSSD5の記憶領域15を周回することに起因するガベージコレクションの発生を低減させることができる。従って、本データ管理装置1によれば、SSD5におけるガベージコレクションの発生を極力抑えることができる。
 図3は、上述したデータ管理テーブル13の構成と、SSD5に格納されたKey-ValueデータDAのデータフォーマットとを示す。この図3の上段に示すように、データ管理テーブル13は、Key-Value管理テーブル20及びファイル管理テーブル21から構成される。
 Key-Value管理テーブル20は、Key及びValueの関係を管理するために利用されるテーブルであり、図3に示すように、Key欄20A、ファイル名欄20B及びオフセット欄20Cから構成される。
 そしてKey欄20Aには、SSD5に書き込まれた各Key-ValueデータDAにそれぞれ付与されたKeyがそれぞれ格納され、ファイル名欄20Bには、対応するKeyが関連付けられたValueが書き込まれたファイルFLのファイル名が格納される。またオフセット欄20Cには、対応するKeyが関連付けられたValueの対応するファイルFLの先頭からのオフセット量(例えばキロバイト単位)が格納される。
 従って、図3の場合、「Key1」というKeyが付与されたKey-ValueデータDAは「File1」というファイルFLの先頭から「128」の位置に格納されており、「Key2」というKeyが付与されたKey-ValueデータDAは「File2」というファイルFLの先頭から「16」の位置に格納されていることが示されている。
 またファイル管理テーブル21は、SSD5に格納された各ファイルFLに格納されているKeyの数(正確にはKey-ValueデータDAの数)と、各ファイルFLの空き容量とを管理するために利用されるテーブルであり、ファイル名欄21A、Key数欄21B及び空き容量欄21Cから構成される。
 そしてファイル名欄21Aには、SSD5上に作成された各ファイルFLのファイル名がそれぞれ格納され、Key数欄21Bには、対応するファイルFLに格納されている有効なKeyの数(正確には有効なKey-ValueデータDAの数)が格納される。また空き容量欄21Cには、対応するファイルFLの現在の空き容量(例えばメガバイト単位)が格納される。
 従って、図3の場合、「File1」というファイルFLについては、有効なKey数(有効なKey-ValueデータDAの数)が「1」、空き容量が「0」であり、「File2」というファイルFLについては、有効なKey数が「2」、空き容量が「32」であることが示されている。
 一方、図3の下段に示すように、Key-ValueデータDAは、SSD5の記憶領域15(図2)においてページPG、ひいてはブロックBLを跨がないようにするため、必要に応じてパディングデータPDが付加されてファイルFLに格納される。従って、パディングデータPDのデータサイズは、当該パディングデータPDを付加したKey-ValueデータDAのデータサイズが全体としてSSD5におけるページPGのサイズ(ページサイズ)の直近の整数倍となるように選定される。
 例えばKey-ValueデータDAのデータサイズがページサイズの0.8倍の場合、そのKey-ValueデータDAにはページサイズの0.2倍のデータ量を有するパディングデータPDが付加され、Key-ValueデータDAのデータサイズがページサイズの2.3倍の場合、そのKey-ValueデータDAにはページサイズの0.7倍のデータ量を有するパディングデータPDが付加される。
 なお図3は、ファイル管理テーブル21の最上段のエントリ(行)と対応する「File1」というファイルFLには、「Key1」というKey及び「Value1」というValueデータからなるKey-ValueデータDAの更新前のデータと、「Key2」というKey及び「Value2」というValueデータからなるKey-ValueデータDAの更新前のデータと、「Key1」というKey及び「Value1」というValueデータからなるKey-ValueデータDAの更新後のデータとが格納されていることを示している場合の一例である。
 また図3では、ファイル管理テーブル21の2段目のエントリと対応する「File2」というファイルFLには、「Key3」というKey及び「Value3」というValueデータからなるKey-ValueデータDAと、「Key2」というKey及び「Value2」というValueデータからなるKey-ValueデータDAの更新後のデータとが格納されていたが、「Value2」というKey-ValueデータDAがその後削除(「Deleted」)されたことが示されている。
 図4は、Key-ValueデータDAをSSD5上のファイルFLに書き込む際にKVS10のデータ管理部12により実行されるデータ書込み処理の処理手順を示す。データ管理部12は、この図4に示す処理手順に従って、要求されたKey-ValueデータDAをSSD5上の対応するファイルFLに書き込むようファイルシステム11のファイル管理部14に指示を与える。
 実際上、データ管理部12は、ユーザからデータ書込み要求及び保存対象のKey-ValueデータDAが与えられると、このデータ書込み処理を開始し、まず、ファイル管理テーブル21(図3)を参照して、現在、Key-ValueデータDAの書込みに使用しているファイル(以下、適宜、これをデータ書込み先ファイルと呼ぶ)FLに、保存対象のKey-ValueデータDAを書き込むだけの空き容量があるかを判断する(SP1)。
 そしてデータ管理部12は、この判断で肯定結果を得るとステップSP3に進む。これに対してデータ管理部12は、ステップSP1の判断で否定結果を得ると、ファイル管理テーブル21における現在のデータ書込み先ファイルFLの空き容量を「0」に変更すると共に、新たなデータ書込み先ファイルFLの作成をファイルシステム11のファイル管理部14に要求する(SP2)。
 かくしてファイル管理部14は、この要求に応じて、SSD5におけるブロックサイズの整数倍の所定サイズを有するファイルFLをSSD5上に作成する。そしてファイル管理部14は、この後、次のデータ書込み先ファイルFLを作成するまで、このとき作成したファイルFLを新たなデータ書込み先ファイルFLとして取り扱う。
 続いて、データ管理部12は、保存対象のKey-ValueデータDA及びそのデータ書込み要求をファイルシステム11のファイル管理部14に送信する(SP3)。かくして、ファイル管理部14は、データ管理部12から与えられたKey-ValueデータDAに対して合計データ量がSSD5のページサイズの直近の整数倍となるようにパディングデータPDを付加した後、このKey-ValueデータDA及びその書込み要求をSSD16のコントローラ16に与えることにより、当該Key-ValueデータDAをデータ書込み先ファイルFLに書き込ませる。
 次いで、データ管理部12は、ファイル管理テーブル21におけるデータ書込み先ファイルFLに対応するエントリのKey数欄21B及び空き容量欄21Cを更新する(SP4)。具体的に、データ管理部12は、かかるエントリのKey数欄21Bに格納されているKey数を「1」増加させると共に、空き容量欄21Cに格納されている空き容量を、そのときデータ書込み先ファイルFLに書き込んだKey-ValueデータDAを差し引いた値に更新する。
 この後、データ管理部12は、ステップSP3においてデータ書込み先ファイルFLに書き込ませたKey-ValueデータDAがKVS10において新規に追加されたものであるか否かを判断する(SP5)。そしてデータ管理部12は、この判断で肯定結果を得るとステップSP9に進む。
 これに対して、ステップSP5の判断で否定結果を得ることは、かかるKey-ValueデータDAの書き込みが既に書き込まれたKey-ValueデータDAの更新であることを意味する。かくして、このときデータ管理部12は、かかるKey-ValueデータDAにおける更新前のKey-ValueデータDAを無効にするため、Key-Value管理テーブル20における対応するエントリを参照して、ファイル管理テーブル21における更新前のKey-ValueデータDAが格納されているファイル(以下、これを更新前データ格納ファイルと呼ぶ)FLと対応するエントリのKey数欄21Bに格納されているKey数を「1」だけ減少させる。
 続いて、データ管理部12は、ファイル管理テーブル21を参照して、ステップSP6の処理の結果、更新前データ格納ファイルFL内の有効なKeyの数(有効なKey-ValueデータDAの数)が「0」となり、かつ当該ファイルFLの空き容量が「0」であるか否かを判断する(SP7)。そしてデータ管理部12は、この判断で否定結果を得るとステップSP9に進む。
 これに対して、データ管理部12は、ステップSP7の判断で肯定結果を得ると、ファイルシステム11に対してかかる更新前データ格納ファイルFLの削除を要求する(SP8)。
 かくして、この要求を受信したファイルシステム11のファイル管理部14は、SSD5のコントローラ16(図2)に対して既存のTRMIコマンドを送信することにより、その更新前データ格納ファイルFLに含まれるすべてのページを無効化するよう指示を与える。また、このTRMIコマンドを受信したSSD5のコントローラ16は、SSD5における対応するページに格納されたKey-Valueデータを消去する。これにより、上述の更新前データ格納ファイルFLがSSD5から削除される。
 次いで、データ管理部12は、Key-Value管理テーブル20の内容を更新する(SP9)。具体的に、データ管理部12は、保存対象のKey-ValueデータDAが新規にSSD5に格納された場合には、Key-Value管理テーブル20にそのKey-ValueデータDAを登録する。またデータ管理部12は、そのKey-ValueデータDAの書き込みが、既にSSD5に格納されているKey-ValueデータDAの更新等であった場合には、Key-Value管理テーブル20のエントリのうち、そのKey-ValueデータDAに対応するエントリのファイル名欄20B(図3)に格納されているファイル名や、オフセット欄20C(図3)に格納されているオフセット量を必要に応じて更新する。そしてデータ管理部12は、この後、このデータ書込み処理を終了する。
(1-3)本実施の形態の効果
 以上のように本実施の形態のデータ管理装置1では、SSD5の記憶領域15上にブロックの整数倍のファイルサイズを有するファイルFLを作成し、当該ファイルFLに保存対象のKey-ValueデータDAを追記的に書き込む一方、各ファイルFLにおける有効なKeyの数(有効なKey-ValueデータDAの数)を管理し、有効なKeyの数が「0」となったファイルFLについては逐次削除するため、SSD5におけるガベージコレクションの発生を極力抑えることができる。かくするにつき、本データ管理装置1によれば、ガベージコレクションの発生を低減し、SSD5へのデータ書込み性能の低下を防止することができる。
(2)第2の実施の形態
 上述した第1の実施の形態によるデータ管理装置1では、上述のようにデータ書込み先ファイルFLに追記的にKey-ValueデータDAを書き込み、ガベージコレクションの発生を抑制するため、更新又は削除により無効化されたKey-ValueデータDAについても、そのKey-ValueデータDA単独での更新前データ格納ファイルFLからの削除は行わない。このため、第1の実施の形態によるデータ管理装置1では、無効化されたKey-ValueデータDAを多く含んだファイルFLがSSD5内に存在する可能性があり、SSD5の利用効率が低くなるおそれがあるという課題がある。
 そこで、本実施の形態のデータ管理装置30では、SSD5に格納されているKey-ValueデータDAが更新された場合、当該Key-ValueデータDAの更新前のデータが書き込まれている更新前データ格納ファイルFLにおける有効なKey-ValueデータDAの合計データ量が予め定められた閾値(例えばファイルサイズの50〔%〕)よりも小さくなったときには、その更新前データ格納ファイルFLにおける有効なKey-ValueデータDAをすべてデータ書込み先ファイルFLにコピーした後に、そのファイルFLをSSD5から削除する。
 図5は、このようなデータ管理装置30において、図3について上述した第1の実施の形態のKey-Value管理テーブル20に代えて利用される本実施の形態のKey-Value管理テーブル31を示す。このKey-Value管理テーブル31は、Key欄31A、ファイル名欄31B、オフセット欄31C及びデータサイズ欄31Dから構成される。
 そしてKey欄31A、ファイル名欄31B及びオフセット欄31Cには、それぞれ第1の実施の形態のKey-Value管理テーブル20のKey欄20A、ファイル名欄20B及びオフセット欄20Cと同様の情報が格納される。またデータサイズ欄31Dには、対応するKey-ValueデータDAのパディングデータPD(図3)を含むデータサイズが格納される。
 また図6は、図3について上述した第1の実施の形態のファイル管理テーブル21に代えて適用される本実施の形態のファイル管理テーブル32を示す。このファイル管理テーブル32は、ファイル名欄32A、Key数欄32B、空き容量欄32C及び合計有効データ量欄32Dから構成される。
 そして、ファイル名欄32A、Key数欄32B、空き容量欄32Cには、それぞれ第1の実施の形態のファイル管理テーブル21のファイル名欄21A、Key数欄21B及び空き容量欄21Cと同様の情報が格納される。また合計有効データ量欄32Dには、対応するファイルFL内の有効なKey-Valueデータ(パディングデータPDを含む)DAの合計データ量(以下、これを合計有効データ量と呼ぶ)が格納される。
 図7は、Key-ValueデータDAをSSD5上のファイルFLに書き込む際に本実施の形態のKVS33(図2)のデータ管理部34(図2)により実行される本実施の形態のデータ書込み処理手順を示す。本実施の形態のデータ書込み処理は、ステップSP13における処理が異なる点と、ステップSP16~ステップSP19の処理が付け加えられている点を除いて第1の実施の形態のデータ書込み処理と同様に行われる。
 実際上、データ管理部34は、ユーザからのデータ書込み要求及び保存対象のKey-Valueデータが与えられると、このデータ書込み処理を開始し、ステップSP10~ステップSP12を図4のステップSP1~ステップSP3と同様に処理する。
 続いて、データ管理部34は、ファイル管理テーブル32におけるデータ書込み先ファイルFLと対応するエントリのファイル名欄32A、Key数欄32B、空き容量欄32C及び合計有効データ量欄32Dをそれぞれ更新する(SP13)。
 次いで、データ管理部34は、かかるKey-ValueデータDAがKVS33において新規に追加されたものであるか否かを判断する(SP14)。この判断は、保存対象のKey-ValueデータDAのKeyがKey-Value管理テーブル31に未だ登録されていないか否かを判断することにより行われる。そしてデータ管理部34は、この判断で肯定結果を得るとステップSP22に進む。
 これに対して、データ管理部34は、ステップSP14の判断で否定結果を得ると、かかるKey-ValueデータDAの更新前のデータを無効にするため、Key-Value管理テーブル31における保存対象のKey-ValueデータDAのKeyと同じKeyがKey欄31Aに格納されているエントリのファイル名欄31Bを参照して、そのKey-ValueデータDAの更新前のデータが格納されているファイル(更新前データ格納ファイル)FLを特定し、ファイル管理テーブル32における更新前データ格納ファイルFLと対応するエントリのKey数欄32Bに格納されているKey数を「1」だけ減少させる。さらに、前述のKey-Value管理テーブル31の同エントリのデータサイズ欄31Dを参照して、そのKey-ValueデータDAの更新前のデータサイズを特定し、前述のファイル管理テーブル32の同エントリの有効データ量欄32Dを更新前のデータサイズだけ減少させる。
 次いで、データ管理部34は、かかる更新前データ格納ファイルFLにおける有効なKey-ValueデータDAの合計有効データ量をファイル管理テーブル32から読み出し、読み出した合計有効データ量と、予め設定されている閾値とを比較する(SP16)。そしてデータ管理部34は、この比較結果に基づいて、かかる合計有効データ量が閾値よりも小さいか否かを判断する(SP17)。
 データ管理部34は、この判断で否定結果を得るとステップSP22に進む。これに対して、データ管理部34は、ステップSP17の判断で肯定結果を得ると、かかる更新前データ格納ファイルFLにおける有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーするようファイルシステム11のファイル管理部14に指示を与える(SP18)。かくしてファイル管理部14は、この指示に従って、かかる更新前データ格納ファイルFLから有効なKey-ValueデータDAをすべてデータ書込み先ファイルFLにコピーする。
 またデータ管理部34は、ステップSP18において行われたデータコピーの内容に応じてKey-Value管理テーブル31及びファイル管理テーブル32をそれぞれ更新する(SP19)。この結果、ファイル管理テーブル32における更新前データ格納ファイルFLと対応するエントリのKey数欄42Bに格納されている有効なKey数(Key-Valueデータ数)が「0」に更新されることになる。
 この後、データ管理部34は、ファイル管理テーブル21を参照して、ステップSP19の処理の結果、更新前データ格納ファイルFLのKey数(Key-Valueデータ数)が「0」となり、かつ当該更新前データ格納ファイルFLの空き容量が「0」であるか否かを判断する(SP20)。なお、データ管理部34は、この判断では常に肯定結果を得ることになる。
 かくしてデータ管理部34は、この後、ステップSP21及びステップSP22を図4のデータ書込み処理のステップSP8及びステップSP9と同様に処理する。ただしデータ管理部34は、ステップSP22において、ステップSP9の処理に加えて、Key-Value管理テーブル31のデータサイズ欄31も更新する。そしてデータ管理部34は、この後、このデータ書込み処理を終了する。
 以上の本実施の形態のデータ管理装置30によれば、格納されたKey-ValueデータDAの更新等により合計有効データ量が閾値未満となったファイルFLをその都度削除することができる。かくするにつき、本データ管理装置30によれば、第1の実施の形態のデータ管理装置1により得られる効果に加えて、SSD5の利用効率を向上できるという効果をも得ることができる。
(3)第3の実施の形態
 上述の第1及び第2の実施の形態によるデータ管理装置30では、Key-ValueデータDAをSSD5に書き込む際、Key-ValueデータDAがページを跨がないようにするため、合計サイズがページサイズの整数倍となるようにKey-ValueデータDAにパディングデータPD(図3)を付加している。このため、かかるデータ管理装置30によると、かかるパディングデータPDの分だけSSD5の利用効率が低下することになる。
 そこで本実施の形態のデータ管理装置40(図2)では、図7について上述した第2の実施の形態によるデータ書込み処理のステップSP18において、KVS41(図2)のデータ管理部42(図2)が、更新前データ格納ファイルFLに書き込まれている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際に、これらのKey-ValueデータDAからパディングデータPDをそれぞれ除去するようファイルシステム11のファイル管理部14(図2)に要求する。
 かくして、かかる指示が与えられたファイル管理部14は、元のファイルFLに書き込まれている個々の有効なKey-ValueデータDAに付加されたパディングデータPDを削除し、これらKey-ValueデータDAの合計のデータサイズがページPG(図2)の直近の整数倍となるようにパディングデータPDを付加した上で、これら有効なKey-ValueデータDAをデータ書込み先ファイルFLに纏めて書き込む。
 以上の本実施の形態のデータ管理装置40によれば、更新前データ格納ファイルFLに書き込まれている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際に余分なパディングデータPDを削除することができるため、第1の実施の形態のデータ管理装置1により得られる効果に加えて、SSD5の利用効率をより一層と向上できるという効果をも得ることができる。
(4)第4の実施の形態
 一般的なSSDでは、ファイルシステムで取り扱う論理的なアドレスをSSDのコントローラで内部の物理アドレスに変換している。この変換処理の内容はファイルシステムからは認識できないため、ファイル作成時にファイルサイズを指定してファイルシステム上で連続領域を確保したとしても、SSDのブロック内のページが連続領域として確保されない場合がある。一般的には、逐次的な書き込みであれば、連続したSSDのページが割り当てられるが、既にランダムにデータが書き込まれた状態であれば、連続領域が割り当てられるかは確実なものではない。
 そこで本実施の形態では、第1~第3の実施の形態によるデータ管理装置1,30,40)に対して、SSD5がブロックBL(図2)内の連続したページPG(図2)をファイルFLに割り当て、ファイルFLの先頭が連続したブロックBL内のページPGの先頭になるようにするインタフェース(コマンド)を設ける。
 そして本実施の形態のデータ管理装置50では、KVS51(図2)のデータ管理部52(図2)が、図4について上述したデータ書込み処理のステップSP2や、図7について上述したデータ書込み処理のステップSP11において、かかるコマンド(以下、これを連続領域割当て指定コマンドと呼ぶ)をファイルシステム63(図2)に送信する。
 また、この連続領域割当て指定コマンドを受信したファイルシステム53(図2)のファイル管理部54(図2)は、当該連続領域割当て指定コマンドに応じた要求をSSD5のコントローラ16に送信する。これによりファイルシステム53のファイル管理部54によりファイルシステム53上で連続した領域のファイルFLが作成されると共に、SSD5内において、かかるファイルFL用の記憶領域として、連続した記憶領域がコントローラ16により確保される。
 以上の本実施の形態のデータ管理装置50によれば、ファイルFLがSSD5の連続した記憶領域上に形成されるため、図4について上述したデータ書込み処理のステップSP8や、図7について上述したデータ書込み処理のステップSP21におけるファイルFLの削除時において、ブロック単位でのデータ削除が行われる。かくするにつき、本データ管理装置50によれば、第1~第3の実施の形態のデータ管理装置1,30,40により得られる効果に加えて、ファイルFLの削除処理を高速化させることができるという効果をも得ることができる。
(5)第5の実施の形態
 第2の実施の形態のデータ管理装置40では、図7について上述したデータ書込み処理のステップSP18において、更新前データ格納ファイルFL内の有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際、更新前データ格納ファイルFLからデータ書込み先ファイルFLにコピーしている。
 この場合において、KVS31がインメモリ型の場合、コピー対象のKey-ValueデータDAがメモリ4(図1)上に存在する場合があり、このような場合、コピー対象のKey-ValueデータDAを更新前データ格納ファイルFLからデータ書込み先ファイルFLにコピーするよりも、メモリ4からデータ書込み先ファイルFLにコピーした方がコピー速度を向上させることができる。
 そこで本実施の形態のデータ管理装置60(図2)では、図7について上述したデータ書込み処理のステップSP18において、更新前データ格納ファイルFLに格納されている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際、そのKey-ValueデータDAがメモリ4上に存在する場合には、当該Key-ValueデータDAをメモリ4からデータ書込み先ファイルFLにコピーする。
 実際上、本データ管理装置60の場合、図7について上述したデータ書込み処理のステップSP18において、KVS61(図2)のデータ管理部62(図2)は、更新前データ格納ファイルFLにおける有効なKey-ValueデータDAがメモリ4上に存在するか否かをそれぞれ判断する。
 そしてデータ管理部62は、かかる有効なKey-ValueデータDAのうち、メモリ4上に存在するKey-ValueデータDAについては、そのKey-ValueデータDAをメモリ4から読み出し、読み出したKey-ValueデータDAを、データ書込み先ファイルFLに書き込むべき旨のデータ書込み要求と共にファイルシステム11のファイル管理部14に送信する。かくしてファイル管理部14は、データ管理部62からデータ書込み要求と共に与えられたKey-ValueデータDAをデータ書込み先ファイルFLに書き込む。
 またデータ管理部62は、かかる有効なKey-ValueデータDAのうち、メモリ4上に存在しないKey-ValueデータDAについては、当該Key-ValueデータDAの更新前のデータが格納されている更新前データ格納ファイルFLからデータ書込み先ファイルFLにコピーするようファイル管理部14に指示を与える。かくしてファイル管理部14は、この指示に従って、かかる更新前データ格納ファイルFLに書き込まれているKey-ValueデータDAをデータ書込み先ファイルFLにコピーする。
 以上の本実施の形態のデータ管理装置60によれば、図7について上述したデータ書込み処理のステップSP18において、Key-ValueデータDAの更新前のデータが格納されていた更新前データ格納ファイルFLからデータ書込み先ファイルFLに有効なKey-Valueデータをコピーする際、更新前データ格納ファイルFLからコピー対象のKey-ValueデータDAを読み出すための処理負荷を低減することができる。かくするにつき、本実施の形態のデータ管理装置60によれば、第2の実施の形態のデータ管理装置30により得られる効果に加えてコピー速度を向上させることができるという効果をも得ることができる。
(6)他の実施の形態
 なお上述の第1~第5の実施の形態においては、データ管理装置1,40,50,60,70がSSD5を内部記憶装置として保持する場合について述べたが、本発明はこれに限らず、データ管理装置1,40,50,60,70がSSD5を外部記憶装置として利用する場合にも本発明を適用することができる。
 また上述の第2、第3及び第5の実施の形態においては、更新前データ格納ファイルFLやメモリ4に格納されている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際に、各Key-ValueデータDAからパディングデータPDをそれぞれ除去した上で、これらをKey-ValueデータDAまとめてデータ書込み先ファイルFLにコピーするようにした場合について述べたが、本発明はこれに限らず、これらの有効なKey-ValueデータDAのうちの少なくともValueをデータ圧縮した上でデータ書込み先ファイルFLにコピーするようにしても良い。このようにすることによって、SSD5の利用効率をより一層と向上できるという効果を得ることができる。
 1,30,40,50,60……データ管理装置、3……CPU、4……メモリ、5……SSD、10,33,41,51,61……KVS、11……ファイルシステム、12,34,42,52,62……データ管理部、13……データ管理テーブル、14,54……ファイル管理部、15……記憶領域、16……コントローラ、20,31……Key-Value管理テーブル、21,32……ファイル管理テーブル、DA……Key-Valueデータ、FL……ファイル、BL……ブロック、PG……ページ、PD……パディングデータ。

Claims (12)

  1.  保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理装置において、
     前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、
     前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部と
     を備え、
     前記ファイルは、
     前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、
     前記データ管理部は、
     保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理し、
     有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求する
     ことを特徴とするデータ管理装置。
  2.  前記ファイル管理部は、
     保存対象の前記キー・バリューデータを、全体として前記SSDにおけるデータの書込み単位であるページのサイズの直近の整数倍となるようにパディングデータを付加して前記ファイルに書き込む
     ことを特徴とする請求項1に記載のデータ管理装置。
  3.  前記データ管理部は、
     前記ファイル内の有効な前記キー・バリューデータのデータ量が予め設定された閾値よりも小さい場合に、当該ファイル内の有効な前記キー・バリューデータをすべて他の前記ファイルにコピーするよう前記ファイル管理部に要求すると共に、コピー元の前記ファイルにおける他の前記ファイルにコピーした各前記キー・バリューデータをすべて無効化する
     ことを特徴とする請求項2に記載のデータ管理装置。
  4.  前記データ管理部は、
     削除対象の前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、各前記キー・バリューデータから前記パディングデータをそれぞれ削除するよう前記ファイル管理部に要求する
     ことを特徴とする請求項3に記載のデータ管理装置。
  5.  前記データ管理部は、
     前記ファイルの作成を前記ファイル管理部に要求する際、前記SSD内の連続した記憶領域を確保するよう前記ファイル管理部に要求する
     ことを特徴とする請求項1に記載のデータ管理装置。
  6.  前記SSDに書き込む前記キー・バリューデータを一時的に記憶するメモリを備え、
     前記データ管理部は、
     前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、前記メモリに記憶されている前記キー・バリューデータについては、当該キー・バリューデータを前記メモリから読み出してコピー先の他の前記ファイルに書き込むよう前記ファイル管理部に要求する
     ことを特徴とする請求項3に記載のデータ管理装置。
  7.  保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理装置によるデータ管理方法において、
     前記データ管理装置は、
     前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、
     前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部と
     を有し、
     前記ファイルは、
     前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、
     前記データ管理部が、保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理する第1のステップと、
     前記データ管理部が、有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求する第2のステップと
     ことを特徴とするデータ管理方法。
  8.  前記第1のステップにおいて、
     前記ファイル管理部は、保存対象の前記キー・バリューデータを、全体として前記SSDにおけるデータの書込み単位であるページのサイズの直近の整数倍となるようにパディングデータを付加して前記ファイルに書き込む
     ことを特徴とする請求項7に記載のデータ管理方法。
  9.  前記第2のステップにおいて、データ管理部は、
     前記ファイル内の有効な前記キー・バリューデータのデータ量が予め設定された閾値よりも小さい場合に、当該ファイル内の有効な前記キー・バリューデータをすべて他の前記ファイルにコピーするよう前記ファイル管理部に要求すると共に、コピー元の前記ファイルにおける他の前記ファイルにコピーした各前記キー・バリューデータをすべて無効化する
     ことを特徴とする請求項8に記載のデータ管理方法。
  10.  前記第2のステップにおいて、前記データ管理部は、
     削除対象の前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、各前記キー・バリューデータから前記パディングデータをそれぞれ削除するよう前記ファイル管理部に要求する
     ことを特徴とする請求項9に記載のデータ管理方法。
  11.  前記第1のステップにおいて、前記データ管理部は、
     前記ファイルの作成を前記ファイル管理部に要求する際、前記SSD内の連続した前記記憶領域を確保するよう前記ファイル管理部に指示を与える
     ことを特徴とする請求項7に記載のデータ管理方法。
  12.  前記データ管理装置は、
     前記SSDに書き込む前記キー・バリューデータを一時的に記憶するメモリを備え、
     前記第2のステップにおいて、前記データ管理部は、
     前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、前記メモリに記憶されている前記キー・バリューデータについては、当該キー・バリューデータを前記メモリから読み出してコピー先の他の前記ファイルに書き込むよう前記ファイル管理部に要求する
     ことを特徴とする請求項9に記載のデータ管理方法。
PCT/JP2014/053276 2014-02-13 2014-02-13 データ管理装置及び方法 WO2015121938A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2014/053276 WO2015121938A1 (ja) 2014-02-13 2014-02-13 データ管理装置及び方法
JP2015562598A JP6140311B2 (ja) 2014-02-13 2014-02-13 データ管理装置及び方法
US14/909,615 US9785547B2 (en) 2014-02-13 2014-02-13 Data management apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/053276 WO2015121938A1 (ja) 2014-02-13 2014-02-13 データ管理装置及び方法

Publications (1)

Publication Number Publication Date
WO2015121938A1 true WO2015121938A1 (ja) 2015-08-20

Family

ID=53799707

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/053276 WO2015121938A1 (ja) 2014-02-13 2014-02-13 データ管理装置及び方法

Country Status (3)

Country Link
US (1) US9785547B2 (ja)
JP (1) JP6140311B2 (ja)
WO (1) WO2015121938A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307087A (zh) * 2016-12-22 2018-07-20 京瓷办公信息系统株式会社 信息处理装置及计算机能够读取的存储介质
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
JP2020524849A (ja) * 2017-06-22 2020-08-20 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804787B2 (en) * 2015-11-03 2017-10-31 Samsung Electronics Co., Ltd. Mitigating GC effect in a raid configuration
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
US10922011B2 (en) * 2018-04-12 2021-02-16 Samsung Electronics Co., Ltd. Controllers configured to perform secure deletion, key-value storage devices including said controllers, and methods of operation thereof
US11372812B2 (en) * 2018-10-08 2022-06-28 Silicon Motion, Inc. Mobile device and method capable of earlier determining that a number of files in a directory of an external connected storage device is about to full
US11188231B2 (en) * 2019-03-01 2021-11-30 International Business Machines Corporation Data placement on storage devices
KR20210075731A (ko) 2019-12-13 2021-06-23 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
KR20210081888A (ko) 2019-12-24 2021-07-02 삼성전자주식회사 키-밸류 기반으로 데이터를 저장하는 스토리지 장치 및 이의 동작 방법
CN112925745B (zh) * 2021-03-25 2023-08-08 北京奇艺世纪科技有限公司 数据的清理方法及装置、电子设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188701A (ja) * 1999-10-21 2001-07-10 Matsushita Electric Ind Co Ltd 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカード
WO2012020544A1 (ja) * 2010-08-11 2012-02-16 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
JP2013200839A (ja) * 2012-03-26 2013-10-03 Toshiba Corp 半導体記憶装置、情報処理システムおよび制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621143B2 (en) 2011-04-15 2013-12-31 Oracle International Corporation Elastic data techniques for managing cache storage using RAM and flash-based memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188701A (ja) * 1999-10-21 2001-07-10 Matsushita Electric Ind Co Ltd 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカード
WO2012020544A1 (ja) * 2010-08-11 2012-02-16 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
JP2013200839A (ja) * 2012-03-26 2013-10-03 Toshiba Corp 半導体記憶装置、情報処理システムおよび制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHASHANK TIWARI: "NoSQL Programming Jissen Katsuyo Gijutsuho, 1st edition", 17 May 2012, article SHASHANK TIWARI, pages: 345 - 355 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307087A (zh) * 2016-12-22 2018-07-20 京瓷办公信息系统株式会社 信息处理装置及计算机能够读取的存储介质
JP2020524849A (ja) * 2017-06-22 2020-08-20 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム
JP2022031959A (ja) * 2017-06-22 2022-02-22 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム
US11550381B2 (en) 2017-06-22 2023-01-10 Micron Technology, Inc. Non-volatile memory system or sub-system
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
US11243877B2 (en) 2018-05-01 2022-02-08 Fujitsu Limited Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program

Also Published As

Publication number Publication date
US9785547B2 (en) 2017-10-10
US20160188461A1 (en) 2016-06-30
JPWO2015121938A1 (ja) 2017-03-30
JP6140311B2 (ja) 2017-05-31

Similar Documents

Publication Publication Date Title
JP6140311B2 (ja) データ管理装置及び方法
US9798655B2 (en) Managing a cache on storage devices supporting compression
US20160283124A1 (en) Multi-streamed solid state drive
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
US8521949B2 (en) Data deleting method and apparatus
RU2642349C1 (ru) Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных
JP6076506B2 (ja) ストレージ装置
US9990304B2 (en) Multimode storage management system
JP2020035300A (ja) 情報処理装置および制御方法
US7673096B2 (en) Control apparatus for controlling virtual storage
US20180232155A1 (en) Memory device and host device
US11297137B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US20160132270A1 (en) Information processing device, information procesing method, and program
JP4561168B2 (ja) データ処理システムおよび方法並びにその処理プログラム
US20180307426A1 (en) Storage apparatus and storage control method
WO2017000821A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
WO2015145667A1 (ja) ストレージシステム
WO2021068517A1 (zh) 一种存储数据整理方法与装置
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
JP7132491B2 (ja) メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法
JP6988445B2 (ja) ストレージシステム、制御装置及び制御方法
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法
JP6254986B2 (ja) 情報処理装置、アクセスコントローラ、および情報処理方法
CN115168317A (zh) 一种lsm树存储引擎构建方法和系统
JP2010003150A (ja) メモリコントローラおよびフラッシュメモリのデータ管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14882277

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14909615

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2015562598

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14882277

Country of ref document: EP

Kind code of ref document: A1