WO2012020544A1 - データ処理システム、データ処理方法、およびプログラム - Google Patents

データ処理システム、データ処理方法、およびプログラム Download PDF

Info

Publication number
WO2012020544A1
WO2012020544A1 PCT/JP2011/004094 JP2011004094W WO2012020544A1 WO 2012020544 A1 WO2012020544 A1 WO 2012020544A1 JP 2011004094 W JP2011004094 W JP 2011004094W WO 2012020544 A1 WO2012020544 A1 WO 2012020544A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
area
storage device
data processing
processing system
Prior art date
Application number
PCT/JP2011/004094
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 JP2012528588A priority Critical patent/JPWO2012020544A1/ja
Priority to US13/816,147 priority patent/US20130138915A1/en
Publication of WO2012020544A1 publication Critical patent/WO2012020544A1/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a data processing system, a data processing method, and a program, and more particularly, to a data processing system, a data processing method, and a program for processing periodic data.
  • Flash memory is a non-volatile storage medium, and there are two types, NAND type (Not AND-type) and NOR type (Not OR-type).
  • NAND flash memory has storage units called pages and blocks.
  • a page is a unit of reading and writing, and in recent years, it is often data of about 2 KB.
  • a block is a unit of erasure, and in recent years, it is often about 128 KB (64 pages).
  • SLC Single-Level Cell
  • MLC Multi-Level Cell
  • a hard disk widely used as a storage device and a flash memory have different characteristics.
  • a hard disk has a low bit unit price.
  • a SATA (Serial Advanced Technology Attachment) disk has a unit price per GB of 0.30 to $ 0.50, whereas an MLC NAND flash unit price is 8 to $ 12 per GB.
  • Flash memory has low power consumption and random read latency.
  • the power consumption per GB when the MLC NAND flash is idle is 0.003 W, and the latency is 25 microseconds.
  • the power consumption per GB when the SATA disk is idle is 0.07 W, and the random read latency is 5,000 microseconds.
  • Flash memory can be used to achieve low power consumption and high random access performance, but writing to the flash memory is not necessarily fast.
  • the bit can be changed from 1 to 0, but cannot be changed from 0 to 1. Therefore, when overwriting a page, it is necessary to write after erasing, that is, setting all bits to 1. Therefore, even when writing to one page, data for one block (for example, 64 pages) is saved, data in the block is erased, and data for one block is written reflecting the writing to one page. Processing is required.
  • the latency of writing and erasing to the MLC NAND flash is 800 microseconds and 2,000 microseconds, respectively. When a page is rewritten, it is necessary to erase in units of blocks in advance.
  • Flash Translation Layer FTL
  • the FTL can write requested data in a convenient block by providing a function for converting a logical address of a block into a physical address. Thereby, for example, wear leveling can be realized by preferentially writing to a block having a small number of erasures.
  • Non-Patent Document 3 is a survey paper on algorithms and data structures related to flash memory.
  • Patent Document 1 US Pat. No. 6,535,949 taken up here, data is added to the circulation log. In other words, the page is not rewritten, the old data is left as it is, and new data is written to an empty page. Although the physical address of the latest page changes, the influence of writing on reading can be hidden by keeping the logical address constant.
  • the problem here is that valid pages (having the latest data) and invalid pages (having old data that is not referenced) coexist in the same block. In order to effectively use the storage area, it is necessary to delete invalid pages and collect valid pages in the same block. This is called a garbage collection (GC).
  • a circulation log is prepared for hot data with a large number of rewrites and cold data with a small number of rewrites so that GC can be performed efficiently.
  • this document does not mention a hot / cold discrimination method.
  • Non-Patent Document 4 describes Journaling Flash Flash Filing System 2 (JFFS2).
  • JFFS2 blocks including only valid or free pages are connected to the clean list, and blocks including invalid pages are connected to the dirty list. Then, a block to be GC-erased (erased) is selected from the dirty list 99 times out of 100 times and once from the clean list.
  • Non-Patent Document 2 has a problem that FTL cannot process writing in parallel.
  • a plurality of (flash memory) chips are each assigned a sequence number. Writes are issued to the chip with the lowest number. Thereby, the writing process can be performed in parallel, that is, at a high speed.
  • Non-Patent Document 5 shows FAWN (Fast Array of Wimpy Nodes) -DS which is a Key-Value Store that provides a function for obtaining a value from a key.
  • FAWN-DS 160-bit hash index data is generated from a key. A pointer to the location where the key and value are recorded can be obtained from this data.
  • the hash index is arranged on the memory, and writing to the actual pair is added to the flash memory. In addition to the basic functions of writing, reading, and deleting, it also has a maintenance function of GC and data range division and combination (in distributed processing with a plurality of units).
  • Non-Patent Document 6 has a problem that writing to a plurality of flash memories has been conventionally distributed in a round-robin format.
  • this round robin format random access can be accelerated.
  • sequential writing of small data occurs normally, and sequential reading occurs when recovering from an error.
  • request splitting in which the data is distributed to different devices occurs.
  • request skipping occurs in which many writes are continuously performed on one device.
  • Patent Document 2 Japanese translations of PCT publication No. 2009-503735.
  • the effective data amount is reused from a block with a small amount. Before erasing a block of data, it is necessary to copy valid data to another block, which involves overhead. If the amount of data is small, this overhead is small.
  • Patent Document 3 Japanese translations of PCT publication No. 2006-512463.
  • data recording is started from the first and last two locations in the address space.
  • one of the two types of data is recorded in a journaling manner from the beginning to the end of the address space.
  • Another type of data is recorded from the end of the address space to the beginning.
  • Patent Document 4 Japanese Patent Laid-Open No. 2007-133487.
  • the purpose of the file management method described in Patent Document 4 is to increase the usable period of the block and to shorten the time required to start using the file system. Therefore, the storage area is divided into a sequence number storage area and a plurality of log areas. A sequence number indicating the order in which logs are written in the log area is written in the sequence number storage area. Since the file system can be constructed from the sequence number storage area, it is possible to reduce the time required to start use. In addition, since the log state is also recorded in the sequence number storage area, the data can be efficiently deleted, so that the usable period is extended.
  • Patent Document 5 International Publication No. 2007/013372
  • the nonvolatile memory address management method described in Patent Document 5 is intended for wear leveling.
  • the physical address space is divided into a plurality of physical areas having different sizes.
  • data that is expected to have a high rewrite frequency, specifically, data in the file allocation table is recorded in a large area. This has the effect of making the block rewrite frequency uniform.
  • the memory management methods described in the above-mentioned documents have a problem that garbage collection overhead occurs.
  • garbage collection overhead occurs in the data writing process of a device such as a flash memory.
  • data overwriting tends to be inefficient, and in many cases, data is additionally written to increase efficiency.
  • data when data is additionally written, generally, a situation occurs in which old data and latest data are mixed in a recording unit. At this time, old data occupies a storage area in vain. Therefore, the data is rearranged so that the recording unit includes only the latest data and the recording unit includes only old data, and the newly written data is recorded in the latter. This garbage collection (relocation) generates overhead.
  • An object of the present invention is to provide a data processing system, a data processing method, and a program that suppress the occurrence of garbage collection overhead.
  • the data processing system of the present invention includes: Area allocating means for determining an area of the storage device to be allocated according to a periodic data writing period and a valid period of the data written to the storage device for permanently storing data; Appending means for accepting the data written in the storage device and temporarily storing it in the temporary storage device; Permanent means for writing the data temporarily stored in the temporary storage device to the area of the storage device determined by the area allocation means; Is provided.
  • the data processing method of the data processing apparatus of the present invention includes: Data processing device Determine the area of the storage device to be allocated according to the periodic data writing period and the valid period of the data written to the storage device that permanently stores the data, Accepts data to be written to the storage device and temporarily stores it in a temporary storage device; A data processing method for writing the data temporarily stored in the temporary storage device to the determined area of the storage device.
  • the program of the present invention A program executed by a computer for realizing a data processing device, In the computer, A step of determining an area of the storage device to be allocated according to a periodic data writing period and a validity period of the data written to the storage device for permanently storing the data; A procedure for accepting data to be written to the storage device and temporarily storing it in a temporary storage device; A computer program for executing a procedure for writing the data temporarily stored in the temporary storage device to the region of the storage device determined by the procedure for allocating the region.
  • a plurality of components are formed as a single member, and a single component is formed of a plurality of members. It may be that a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like.
  • the data processing method and the computer program of the present invention describe a plurality of procedures in order, the described order does not limit the order in which the plurality of procedures are executed. For this reason, when implementing the data processing method and computer program of this invention, the order of the several procedure can be changed in the range which does not interfere in content.
  • the data processing method and the plurality of procedures of the computer program of the present invention are not limited to being executed at different timings. For this reason, another procedure may occur during the execution of a certain procedure, or some or all of the execution timing of a certain procedure and the execution timing of another procedure may overlap.
  • a data processing system a data processing method, and a program for suppressing the occurrence of garbage collection overhead are provided.
  • FIG. 1 is a functional block diagram showing a configuration of a data processing system 1 according to an embodiment of the present invention.
  • the data processing system includes a storage device (nonvolatile recording medium) that is allocated according to a periodic data writing period and a data valid period written in a storage device (nonvolatile recording medium 200) that permanently stores data. 200) and an additional recording unit 104 that receives data to be written in the storage device (nonvolatile recording medium 200) and temporarily stores the data in the temporary storage device (volatile recording medium 300).
  • a persistence unit 106 that writes data temporarily stored in the temporary storage device (volatile recording medium 300) to the area 202 of the storage device (nonvolatile recording medium 200) determined by the area allocation unit 102; Prepare.
  • the data processing system 1 includes a data processing device 100, a nonvolatile recording medium 200, and a volatile recording medium 300.
  • the data processing apparatus 100 includes an area allocation unit 102, an additional recording unit 104, a persistence unit 106, and a control unit 110.
  • the data processing device 100 includes, for example, a CPU (Central Processing Unit) (not shown), a memory, a hard disk, and a communication device, and is connected to an input device such as a keyboard and a mouse and an output device such as a display and a printer. It can be realized using a computer or a device corresponding to them. Each function of each unit can be realized by the CPU reading the program stored in the hard disk into the memory and executing it.
  • a CPU Central Processing Unit
  • each component of the data processing apparatus 100 includes a CPU, a memory of any computer, a program that realizes the components of this figure loaded in the memory, and a storage unit such as a hard disk that stores the program. It is realized by any combination of hardware and software, centering on the network connection interface. It will be understood by those skilled in the art that there are various modifications to the implementation method and apparatus. Each figure described below shows functional unit blocks, not hardware unit configurations. Further, in the following drawings, the configuration of parts not related to the essence of the present invention is omitted and is not shown.
  • the area allocation unit 102 allocates a partial area 202 of the nonvolatile recording medium 200 in order to record a specific type of write data.
  • the region allocation unit 102 determines the region 202 based on the writing cycle and valid period of data to be written.
  • the write data of the present invention is periodic data, for example, data that is periodically added such as position information, sensor data, and log data. Alternatively, it may be frequently added data that can be regarded as periodically written on a certain time scale, for example, data related to billing, calls, mails, and the like.
  • the appending unit 104 accepts data writing and temporarily stores it in the buffer 302 of the volatile recording medium 300.
  • the perpetuating unit 106 writes the data temporarily stored in the volatile recording medium 300 to the area 202 of the non-volatile recording medium 200 determined by the area allocating unit 102 to make it permanent.
  • the term “permanent” means that data written in the nonvolatile recording medium 200 is continuously held until it is erased for a certain amount or for a certain period.
  • the control unit 110 controls the entire apparatus together with each element of the data processing apparatus 100.
  • the nonvolatile recording medium 200 retains data even when the power is turned off, and is, for example, a NAND flash memory. As described above, in the present embodiment, the nonvolatile recording medium 200 has a plurality of areas 202 (R1, R2,..., Rn, where n is a natural number) allocated by the area allocation unit 102.
  • the volatile recording medium 300 erases data when the power is turned off, and is, for example, a DRAM (Dynamic Random Access Memory).
  • the computer program according to the present embodiment is a computer for realizing the data processing apparatus 100.
  • the computer program for realizing the data processing apparatus 100 periodically writes data in a storage device (nonvolatile recording medium 200) that permanently stores data and the validity of the data.
  • Non-volatile recording medium 200 determined by the procedure of allocating the area of the procedure for storing the data in the buffer 302) and the data temporarily stored in the temporary storage device (buffer 302 of the volatile recording medium 300) The procedure for writing to 202 is described.
  • the computer program of this embodiment may be recorded on a computer-readable recording medium.
  • the recording medium is not particularly limited, and various forms can be considered.
  • the program may be loaded from a recording medium into a computer memory, or downloaded to a computer through a network and loaded into the memory.
  • the area allocation unit 102 upon receiving a request to allocate the area 202, the area allocation unit 102 allocates k blocks.
  • the request includes information on the data writing cycle and the data validity period. Even if these pieces of information are not directly given, it is only necessary to indirectly give information capable of calculating them.
  • This request can be received from a user of the data processing apparatus 100 as an operation instruction using a user interface (such as an operation unit and a display unit) of a computer constituting the data processing apparatus 100, for example. Alternatively, a value designated in advance by the user may be stored in a memory and read out.
  • This request can be received as an allocation request and notified to the area allocation unit 102 by, for example, a program for performing data processing executed by the CPU of the data processing device 100.
  • the value of the block number k is determined based on the validity period and the period.
  • the area allocation unit 102 determines the number k of blocks based on the following equation (1).
  • a is a certain positive integer.
  • a typical value of a is the number of blocks that are simultaneously written to the nonvolatile recording medium 200.
  • the nonvolatile recording medium 200 is a flash memory
  • write requests to different planes can be processed in parallel. For example, when there are two planes, it is efficient to write one block from each plane, but the oldest data is recorded across the two blocks. Therefore, when there are two planes, it is appropriate to set the value of a to 2 or more.
  • E is a proportionality constant.
  • the appending unit 104 accepts a data write request to the area 202 designated by the area allocation unit 102.
  • the area 202 and data are specified in the write request.
  • the appending unit 104 that has received the request writes the data in the buffer 302 of the volatile recording medium 300.
  • to which area 202 data should be written is also written to the volatile recording medium 300.
  • the persistence unit 106 writes the data written by the appending unit 104 to the volatile recording medium 300 to the nonvolatile recording medium 200. For example, when the data designated to be written in a certain area 202 accumulates in the volatile recording medium 300 more than a predetermined amount, the persistence unit 106 writes a predetermined amount of data in the nonvolatile recording medium 200. be able to. The determined amount is, for example, the page size of the nonvolatile recording medium 200.
  • the persistence unit 106 also has a function of creating a new free page or block when there is no free page or block.
  • the persistence unit 106 erases data from the old block in the area 202 of the nonvolatile recording medium 200, and reuses the empty block as a block for recording new writing.
  • 2 and 3 are flowcharts showing an example of the operation of the data processing system 1.
  • description will be given with reference to FIG.
  • the data processing method of the present embodiment is a periodic data write cycle and data written by a data processing device 100 to a storage device (nonvolatile recording medium 200) that permanently stores data.
  • the storage device (nonvolatile recording medium 200) area 202 to be allocated is determined for each effective period (step S111), data written to the storage device (nonvolatile recording medium 200) is received, and temporarily stored in the temporary storage device (volatile memory).
  • Data stored in the buffer 302 of the volatile recording medium 300 step S115
  • the data temporarily stored in the temporary storage device buffer 302 of the volatile recording medium 300
  • the data is written in the area 202 of the non-volatile recording medium 200 (step S105).
  • an event occurs in the data processing system 1 (YES in step S101), this processing starts.
  • An event occurs when data processing, such as data writing, reading, or erasing, occurs on the non-volatile recording medium 200 or the volatile recording medium 300 by the above-described data processing program or the like.
  • the event includes a request reception and a persistence trigger.
  • the request includes an allocation request and a write request.
  • the persistence trigger is a trigger for starting the persistence process, and includes a notification of a certain amount of writing to the volatile recording medium 300 and a notification of the passage of time.
  • the control unit 110 determines whether or not the event is a persistence trigger (step S103). If the event is a persistence trigger (YES in step S103), the persistence unit 106 executes a persistence process described later (step S105). On the other hand, when the event is not a persistence trigger (NO in step S103), the control unit 110 determines that the event is a request reception and receives a request (step S107).
  • control unit 110 determines whether the received request is an allocation request or a write request (step S109 and step S113).
  • the area allocation unit 102 allocates the area 202 based on the data writing cycle and the valid period (step S111).
  • the additional recording unit 104 temporarily stores data in the volatile recording medium 300 (step S115). Further, when neither the allocation request nor the write request is received (NO in step S109 and NO in step S113), the control unit 110 ends this process and enters a next event waiting state.
  • step S105, step S111, and step S115 described above the control unit 110 ends this processing and enters a next event waiting state.
  • step S101 For example, if the next periodic data write request is accepted, the result of step S101 is YES, step S103 is NO, step S107 is NO, step S109 is NO, and step S113 is YES, and the process proceeds to step S115.
  • step S ⁇ b> 115 the additional recording unit 104 temporarily stores data in the volatile recording medium 300.
  • step S ⁇ b> 201 the persistence unit 106 determines whether or not a certain amount of data to be written to the target area 202 exists in the volatile recording medium 300. If there is no fixed amount of data (NO in step S201), the process returns to FIG. 2 and the control unit 110 waits for the next event. If there is a certain amount of data (YES in step S201), the process proceeds to step S203.
  • step S203 the persistence unit 106 determines whether there is an empty page in the first block of the area 202 of the nonvolatile recording medium 200.
  • the head block of the area 202 is a block that is currently a target of writing. Therefore, there is no need for one head block. For example, when different periodic data are written at the same time, the respective areas 202 are to be written. Alternatively, if different planes are to be written, data can be written in parallel.
  • the area 202 includes a plurality of blocks 210, 212, 214,. . .
  • block 210 data has already been written to all pages.
  • the block 212 is a head block, and the head block 212 includes a plurality of pages 220, 222, 224,. . . including.
  • data has already been made permanent on pages 220 and 222. It is assumed that the pages after page 224 are empty pages.
  • step S203 if there is an empty page (YES in step S203), the persistence unit 106 proceeds to step S211 and writes data on the page. If there is no empty page (NO in step S203), the process proceeds to step S205.
  • step S ⁇ b> 205 the persistence unit 106 determines whether there is an empty block in the area 202 of the nonvolatile recording medium 200. If there is an empty block (YES in step S205), the process proceeds to step S209. On the other hand, if there is no empty block (NO in step S205), the perpetuating unit 106 simply deletes the data of the oldest q blocks to make a new empty block (step S207).
  • the number q of blocks to be erased is preferably a number proportional to the number of leading blocks in the area.
  • step S209 the perpetuating unit 106 selects q blocks from the free blocks as the first block.
  • step S211 the persistence unit 106 writes data to the empty page of the first block selected in step S209 or the empty page of the first block in the corresponding area 202 in step S203.
  • the appending unit 104 secures a part of the volatile recording medium 300 as the buffer 302 for each area 202 and writes data therein.
  • a portion where data has already been written in the buffer 302 is indicated by an area 310.
  • This buffer 302 is overwritten like a circular log.
  • the appending unit 104 also manages the head TA (the address where data is next written, TA1 in FIG. 4 and the like) and the tail LA (the address of the oldest data that has not been made permanent, LA1 in FIG. 4) in the buffer 302. .
  • TA the address where data is next written
  • LA the address of the oldest data that has not been made permanent
  • the appending unit 104 notifies the persistence unit 106.
  • the persistence unit 106 copies a certain amount of data from the oldest data that has not yet been persisted to the nonvolatile recording medium 200. In this embodiment, copying is performed for each page size of the flash memory.
  • the persistence unit 106 transfers a certain amount of data from the end LA1 of the buffer 302, that is, the oldest data that is not persisted indicated by the area 320 to the nonvolatile recording medium 200. make a copy. Thereby, the data temporarily stored in the area 320 in FIG. 4B is made permanent. Then, the persistence unit 106 notifies the appending unit 104 of the end of copying. Upon receiving the notification, the appending unit 104 moves the end of the buffer 302 from LA1 to LA2, as shown in FIG. As described above, the head TA and the tail LA of the buffer 302 are changed by data writing and persistence, respectively.
  • a low power consumption nonvolatile recording medium such as a flash memory can be used more efficiently than a recording method based on a nonvolatile recording medium such as a hard disk. That is, it is possible to record periodic data with low power consumption by efficiently using a low power consumption nonvolatile recording medium such as a flash memory.
  • the data processing apparatus 100 may further include an analysis unit 108.
  • the analysis unit 108 performs a user-specified calculation on the data written in the nonvolatile recording medium 200.
  • the analysis unit 108 performs a specified calculation on data recorded in one or more areas.
  • a simple calculation “the number of data whose distance from (x0, y0) is less than or equal to d for the two-dimensional data (x, y) recorded in the region D” is given.
  • FIG. 7 is a flowchart showing an example of the operation of the data processing apparatus 100 of the present embodiment.
  • the request further includes an analysis request in addition to the allocation request and the write request.
  • the data processing method of the data processing apparatus 100 is different in that it has the same steps as those in the flowchart of FIG. 2 and further includes step S121.
  • step S113 when the control unit 110 determines in step S113 that the received request is not a write request (NO in step S113), the process proceeds to step S121, and the calculation process designated by the analysis unit 108 is performed. I do.
  • the control unit 110 enters a next event waiting state.
  • the overhead of rearrangement of the latest data associated with garbage collection is eliminated, and moreover, the flash is more efficiently performed than the recording and analysis method based on a nonvolatile recording medium such as a hard disk.
  • a low power consumption nonvolatile recording medium such as a memory can be used. That is, it is possible to record periodic data with low power consumption by efficiently using a low power consumption nonvolatile recording medium such as a flash memory.
  • the data processing system 2 according to the embodiment of the present invention will be described below with reference to FIG.
  • the data processing device 120 of the data processing system 2 according to the present embodiment is different from the above-described embodiment in that the nonvolatile recording medium 200 is allocated in consideration of the data size of data in addition to the data write cycle and the data valid period. The difference is that the size of the region 202 is determined.
  • the data processing device 120 of the data processing system 2 of this embodiment can also include the analysis unit 108 of the data processing device 100 of the data processing system 1 of the above embodiment of FIG.
  • the data processing system 2 of the present embodiment includes a data processing device 120 instead of the data processing device 100 of FIG. 1, and further includes a nonvolatile recording medium 200 similar to that of FIG. Medium 300.
  • the data processing device 120 includes an area allocation unit 122 instead of the area allocation unit 102 in FIG. 1, and further includes an additional recording unit 104, a persistence unit 106, and a control unit 110 similar to those in FIG. 1.
  • the area allocation unit 122 Upon receiving a request to allocate the area 202, the area allocation unit 122 allocates k blocks.
  • the request includes three pieces of information: data size, (data) validity period, and (write) cycle.
  • data size means the amount of data, and its unit is bytes.
  • the block size is a value given in advance and can be changed, or a different value for each region may be used.
  • the value of k is determined from the size, effective period, and cycle. For example, the following equation (2) is determined. Where a is a positive integer.
  • the area allocating unit 122 is arranged so as to be proportional to the effective period or the data size, or to be inversely proportional to the writing period or the block size of the area 202 of the nonvolatile recording medium 200. 202 can be assigned.
  • FIG. 9 is a flowchart showing an example of the operation of the data processing apparatus 120 of this embodiment.
  • description will be given with reference to FIG.
  • the data processing method of the data processing device 120 is different in that it has the same steps as those in the flowchart of FIG. 2 and includes step S211 instead of step S111 in FIG.
  • step S109 the operation of the area allocation unit 102 in step S111 of FIG. If it is determined in step S109 that the request is an allocation request (YES in step S109), the process proceeds to step S211.
  • step S211 the area allocation unit 122 allocates the area 202 based on the size of the data to be written, in addition to the data write cycle and effective period. Since other operations are the same as those in the above embodiment, detailed description thereof is omitted.
  • the same effects as in the above embodiment can be obtained, and the area 202 corresponding to the data size to be written can be efficiently allocated, and data can be efficiently recorded on the nonvolatile recording medium 200. Can be analyzed. The reason is that the size of the area is determined in consideration of the data size in addition to the data writing cycle and the effective period.
  • the data processing system 3 according to the embodiment of the present invention will be described below with reference to FIG.
  • the data processing system 3 of this embodiment is different from the above embodiment in that the data processing device 130 receives data to be written for each area 202, for example, the time at which a data write request occurs, or the amount of data to be written. Is recorded, and the writing period or periodical data size in the area 202 can be estimated for each area 202 from these times and the amount of writing.
  • the systems described in the above documents have a problem in that it is difficult to estimate the necessary storage capacity in advance because it is impossible to know in advance which data is retained for how long. As long as there is a sufficient storage capacity, it is not common to erase data. Therefore, the present invention provides a data processing system 3 that can know in advance the storage capacity required for the nonvolatile recording medium 200.
  • the data processing system 3 of this embodiment includes a data processing device 130 instead of the data processing device 120 of the above-described embodiment of FIG. 8, and further includes a nonvolatile recording medium 200 similar to FIG. And a volatile recording medium 300.
  • the data processing device 130 includes a recording unit 132 and an estimation unit 134 in addition to the area allocation unit 122, the additional recording unit 104, the persistence unit 106, and the control unit 110 in FIG.
  • the recording unit 132 records the time when a write request is generated for each area 202 or the size of data to be written.
  • the additional recording unit 104 records the information in the recording unit 132.
  • the time can be obtained from a clock (not shown) of the data processing device 130.
  • the recording period may be arbitrary, but it is preferable to end the recording when the valid period has passed or when a sufficient amount of data has been written to fill the temporary area.
  • the estimation unit 134 estimates the writing period to the area and the average data size from the time recorded in the recording unit 132. Further, the estimation unit 134 can estimate the period of writing in the area from the time and size recorded in the recording unit 132.
  • the recording unit 132 and the estimation unit 134 of the data processing system 3 of the present embodiment are the data processing device 100 of FIG. 1 or FIG. 6 of the above embodiment, the data processing device 120 of FIG. 8, and combinations thereof.
  • the data processing apparatus can be similarly provided.
  • the same operation described with reference to the flowchart of FIG. 2 of the above embodiment can be performed.
  • the user instructs to allocate the area 202 as in the following formula (3).
  • i is a natural number and is the number of periodic data in which writing occurs.
  • outi alloc (vi) (3) It is assumed that the allocation request represented by Expression (3) includes only the valid period v.
  • the assignment request from the user can be received as an operation instruction using a user interface (an operation unit, a display unit, etc.) of a computer constituting the data processing apparatus 130, for example.
  • a value designated in advance by the user may be stored in a memory and read out.
  • the area allocation unit 122 allocates a temporary area composed of a certain number of blocks.
  • the additional recording unit 104 writes in the temporary area (buffer 302) allocated only from the valid period, the time of writing in the recording unit 132 and the size of the written data are recorded.
  • the appending unit 104 notifies the area allocation unit 122 of the estimated writing cycle and data size when the estimation by the estimating unit 134 is completed. Then, the area allocation unit 122 allocates a new area 202 based on the data write cycle, the data size, and the given effective period. The blocks constituting the original area 202 are sequentially erased. The operation after allocating the area 202 based on the given effective period, the estimated writing cycle, and the data size is as described in the above embodiment.
  • the same effect as that of the above embodiment can be obtained, and the storage capacity required for the nonvolatile recording medium 200 can be predicted in advance.
  • the reason is that the area size is determined in consideration of the data size in addition to the data writing period and effective period, and the period of writing to the area 202 or the periodic data size is estimated. This is because. Thereby, it can be determined whether or not the assumed nonvolatile recording medium 200 has a sufficient storage capacity. When the storage capacity is insufficient, the non-volatile recording medium 200 can be used, which has a larger capacity and is expensive, and when it is excessive, has a smaller capacity and is inexpensive. Further, by efficiently using a low power consumption nonvolatile recording medium such as a flash memory, periodic data can be recorded or analyzed with low power consumption.
  • the data processing apparatus 140 compares the estimated write data capacity with the storage capacity of the nonvolatile recording medium 200 and notifies the result of the data processing apparatus 140 in the data processing system 4 of FIG. It is different in the point to do.
  • the data processing device 140 stores data based on the estimated data write cycle, data size, and validity period in addition to the configuration of the data processing device 130 of the above embodiment.
  • the apparatus further includes a comparison unit 146 that estimates the capacity of data written to the apparatus (nonvolatile recording medium 200) and compares the estimated capacity with the storage capacity of the storage apparatus (nonvolatile recording medium 200).
  • the data processing device 140 of this embodiment further includes a notification unit 148 that notifies the comparison result by the comparison unit 146.
  • the data processing system 4 of this embodiment includes a data processing device 140 instead of the data processing device 130 of the above-described embodiment of FIG. 10, and further includes a nonvolatile recording medium 200 similar to FIG. And a volatile recording medium 300.
  • the data processing device 140 further includes a comparison unit 146, a notification unit 148, Is provided.
  • the area allocation unit 122 of the present embodiment may be the area allocation unit 102 of FIG. 1 or FIG.
  • the comparison unit 146 estimates the capacity of data to be written to the nonvolatile recording medium 200 based on the data write cycle, data size, and validity period estimated by the estimation unit 134, and the storage capacity of the nonvolatile recording medium 200 And the comparison result is passed to the notification unit 148.
  • the notification unit 148 notifies the user of the comparison result by the comparison unit 146.
  • the notification unit 148 displays information indicating that the storage capacity is insufficient or insufficient on the display unit of the computer constituting the data processing apparatus 140, or information that can compare specific capacities with numerical values. By doing so, the user can be notified.
  • the notification unit 148 can also notify the user's mail address or IP (Internet Protocol) address specified in advance by transmitting a mail or message including the information via a network.
  • the notification unit 148 can also notify by recording the information in the storage device of the data processing device 140 so that the user can refer to it later.
  • the same effects as those of the above-described embodiment can be obtained, and further assumed based on the predicted storage capacity required for the nonvolatile recording medium 200. It is possible to determine whether the non-volatile recording medium 200 has a sufficient storage capacity and notify the user of the result. Upon receiving the notification, the user may select and use a non-volatile storage medium that is larger and more expensive if the storage capacity is insufficient, and that is smaller and less expensive if the storage capacity is excessive. It will be possible.
  • Period data Data that is periodically written (hereinafter referred to as “periodic data”) is expressed as follows in terms of a cycle p, an effective period v, and a data size s.
  • the data processing system 4 of the above-described embodiment of FIG. 11 is used, and the data processing device 140 further includes an analysis unit 108 (not shown in FIG. 11) of FIG.
  • the above instruction is directly processed by the area allocation unit 122. It is assumed that the block size b is given in advance to the area allocation unit 122. Then, the area allocating unit 122 allocates (si / b * vi / pi + ai) blocks to (pi, vi, si) using the equation (4) of the above embodiment.
  • the area 202 can be used like a circular log.
  • the persistence unit 106 reuses the area 202 of the non-volatile recording medium 200 from the end of the block constituting the circular log.
  • ai is a positive integer
  • a typical value of ai is the number of blocks to be written simultaneously.
  • the non-volatile recording medium 200 is a flash memory
  • write requests to different planes can be processed in parallel. For example, when there are two planes, it is efficient to write one block from each plane, but the oldest data is recorded across the two blocks. Therefore, when there are two planes, it is appropriate to set the value of ai to 2 or more.
  • the appending unit 104 directly processes the above instructions.
  • the additional recording unit 104 secures a part of the volatile recording medium 300 as a buffer for each area, and writes data therein.
  • the buffer is overwritten like a circular log.
  • the appending unit 104 also manages the head TA (address to be written next) and the tail LA (address of the oldest data that has not been made permanent) of the buffer.
  • the persistence unit 106 is notified from the appending unit 104 that the writing to a certain area has reached a certain amount. Receiving the notification, the perpetuating unit 106 copies the data to the nonvolatile recording medium 200 by a certain amount, here, the page size of the flash memory. Then, the end of copying is notified to the additional recording unit 104. Upon receiving the notification, the appending unit 104 advances the tail TA of the buffer by the page size (TA2).
  • the persistence unit 106 manages the top (writing) block of the area.
  • the data temporarily recorded on the volatile recording medium 300 is copied to the area 202 allocated on the non-volatile recording medium 200 to the first block of the area.
  • the block that holds the oldest data becomes the next first block. If this block is not empty, an erase operation is performed to make it an empty block, and then data is written.
  • the analysis unit 108 performs a calculation designated by the user on the data recorded in one or more areas.
  • the entity of the periodic data (p1, v1, s1) is assumed to be position information including four items of customer ID, time, latitude, and longitude.
  • the analysis unit 108 receives an instruction such as the following equation (7). outi. analyze (func, x0, y0, r) (7)
  • func is a user-defined function, but since it is not related to the essence of the present invention, details are omitted.
  • periodic data can be efficiently recorded on the nonvolatile recording medium 200, and analysis specified by the user can be performed.
  • this invention can also include the following aspects.
  • Appendix 1 Area allocating means for determining an area of the storage device to be allocated according to a periodic data writing period and a valid period of the data written to the storage device for permanently storing data; Appending means for accepting the data written in the storage device and temporarily storing it in the temporary storage device; Permanent means for writing the data temporarily stored in the temporary storage device to the area of the storage device determined by the area allocation means; A recording means for recording the time at which the additional writing means has received the data to be written for each area, and a writing amount of the data to be written that has been received by the additional writing means for each area; Estimating means for estimating the data write cycle for each area based on the recorded time, and estimating the data size of the data for each area based on the recorded write amount; Comparing means for estimating the capacity of the data to be written to the storage device based on the estimated write period of the data, the data size, and the effective period, and comparing the estimated capacity with the storage capacity of the storage device; Notification means for
  • Appendix 2 In the data processing system described in Appendix 1, The data processing system in which the perpetuating means is reused from the end of a block constituting a circular log in the area of the storage device.
  • the storage device is a data processing system which is a nonvolatile recording medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

 データ処理システム(1)は、データを永続的に記憶する不揮発性記録媒体(200)に書き込まれる周期的なデータの書き込み周期およびデータの有効期間別に、割り当てる不揮発性記録媒体(200)の領域(202)を決定する領域割当部(102)と、不揮発性記録媒体(200)に書き込まれるデータを受け付けて一時的に揮発性記録媒体(300)に記憶する追記部(104)と、揮発性記録媒体(300)に一時的に記憶されたデータを、領域割当部(102)により決定された不揮発性記録媒体(200)の領域(202)に書き込む永続化部(106)と、を備える。

Description

データ処理システム、データ処理方法、およびプログラム
 本発明はデータ処理システム、データ処理方法、およびプログラムに関し、特に、周期的なデータを処理するデータ処理システム、データ処理方法およびプログラムに関する。
 フラッシュメモリは不揮発性の記憶媒体であり、NAND型(Not AND-type)とNOR型(Not OR-type)の2種類がある。NAND型フラッシュメモリには、ページとブロックという記憶単位がある。ページは読み出しと書き込みの単位であり、近年は2KB程度のデータであることが多い。ブロックは消去の単位であり、近年は128KB(64ページ)程度であることが多い。また、ブロックをまとめたプレーンという単位もあり、異なるプレーンに属するページは、並行して読み書きできる。
 NAND型フラッシュメモリには、SLC(Single-Level Cell)とMLC(Multi-Level Cell)の二種類がある。SLC NANDフラッシュの長所は高速な書き込みと高い信頼性であり、MLC NANDフラッシュの長所は安価に大きな記憶容量を実現できることである。
 記憶装置として広く用いられているハードディスクと、フラッシュメモリは異なる特性を持つ。非特許文献1によれば、ハードディスクはビット単価が低い。SATA(Serial Advanced Technology Attachment)のディスクは1GB当たり単価が0.30から0.50ドルであるのに対し、MLC NANDフラッシュの単価は1GB当たり8から12ドルである。
 フラッシュメモリは消費電力とランダム読み出しのレイテンシが低い。MLC NANDフラッシュのアイドル時のGB当たりの消費電力は0.003W、レイテンシは25マイクロ秒である。一方、SATAディスクのアイドル時のGB当たりの消費電力は0.07W、ランダム読み出しのレイテンシは5,000マイクロ秒である。
 低い消費電力と高いランダムアクセス性能を達成するために、フラッシュメモリを使用することができるが、フラッシュメモリへの書き込みは必ずしも高速ではない。フラッシュメモリへの書き込みでは、ビットを1から0に変更できるが、0から1へは変更できない。そのため、ページを上書きする際には、消去してから、つまり全てのビットを1にしてから、書き込む必要がある。よって、1ページへの書き込みであっても、1ブロック(たとえば、64ページ)分のデータを退避し、ブロックのデータを消去し、1ページへの書き込みを反映し、1ブロック分のデータを書き込む処理が必要となる。非特許文献2によれば、MLC NANDフラッシュへの書き込みと消去のレイテンシは、それぞれ800マイクロ秒と2,000マイクロ秒である。そして、ページを書き換える場合には、ブロック単位の消去が事前に必要となる。
 さらに、フラッシュメモリのブロックの消去の回数には制限がある。MLC NANDフラッシュでは一万回程度、SLC NANDフラッシュでは十万回程度の消去で、ブロックが正しい値を保持できなくなる。そのため、同一ブロックに消去が集中しないように、ウェアレベリングを行う。ウェアレベリングは、たとえば、Flash Translation Layer(FTL)で行われる。
 非特許文献2で指摘されている通り、FTLでは、ブロックの論理アドレスを物理アドレスに変換する機能を提供することで、要求されたデータを都合のよいブロックに書き込むことができる。これによって、たとえば、消去回数が小さいブロックへ優先的に書き込むことなどによって、ウェアレベリングが実現できる。
 非特許文献3は、フラッシュメモリ関連のアルゴリズムとデータ構造のサーベイ論文である。ここで取り上げられた特許文献1(米国特許第6,535,949号明細書)では、循環ログにデータを追記する。つまり、ページは書き換えず、古いデータはそのままにして、新たなデータを空いているページに書き込むのである。最新ページの物理アドレスは変化するが、論理アドレスを一定に保つことで、書き込みが読み出しに与える影響を隠すことができる。ここで問題となるのが、同一ブロック中に有効な(最新のデータを持つ)ページと無効な(参照されない古いデータを持つ)ページが混在することである。記憶領域を有効に活用するには、無効なページを削除し、有効なページを同一ブロックにまとめる必要がある。これはガーベッジコレクション(Garbage Collection:GC)と呼ばれる。特許文献1では、GCが効率的にできるように、書き換えが多いホットデータと少ないコールドデータに対して、それぞれ循環ログを用意する。ただし、この文献ではホット/コールドの判別方法についての言及はない。
 非特許文献4では、Journaling Flash Filing System 2(JFFS2)が示されている。JFFS2では、有効な、または空いているページのみを含むブロックをクリーンリストに、無効なページを含むブロックをダーティリストにつなぐ。そして、GCの対象となる(消去される)ブロックを、100回のうち99回はダーティリストから選び、1回はクリーンリストから選ぶ。
 非特許文献2では、FTLでは並列に書き込みを処理できないことを問題としている。その解決策として、複数の(フラッシュメモリの)チップに、それぞれ順序番号を持たせる。書き込みは、最も小さい番号を持つチップに発行される。これによって、書き込み処理を並列に、つまり高速に、処理することができる。
 非特許文献5では、キーから値を求める機能を提供するKey-Value StoreであるFAWN(Fast Array of Wimpy Nodes)-DSが示されている。FAWN-DSでは、キーから160ビットのハッシュインデックス用のデータを生成する。このデータからキーと値が記録されている場所へのポインタを得ることができる。また、ハッシュインデックスはメモリ上に配置し、実際のペアへの書き込みはフラッシュメモリに追記される。そして、書き込み、読み出し、削除の基本機能を持つだけでなく、GCと、(複数台での分散処理において)処理を受け持つデータの範囲の分割と結合のメンテナンス機能を持つ。
 非特許文献6では、複数のフラッシュメモリへの書き込みは、従来はラウンドロビン形式で分散されていたことを問題にしている。このラウンドロビン形式ではランダムアクセスは高速化できる。しかし、ログの場合、通常時には小さなデータの順次書き込みが発生し、エラーからの復旧時には順次読み出しが発生するため問題となる。そして、ラウンドロビン形式では、書き込むデータが分散の単位よりも大きいときに、このデータが異なるデバイスに分散するリクエストスプリッティングが起きる。逆に、データが分散の単位に比べて非常に小さければ、多くの書き込みが一つのデバイスに連続して行われるリクエストスキッピングが起きる。これらは、順次アクセスの効率を下げる。そこで、分散の単位を超える量のデータを単一のデバイスにフラッシュすることを許すとともに、単位に満たないデータを異なるデバイスに分散させることも許す。
 データ記憶容量の解放方法の一例が特許文献2(特表2009-503735号公報)に記載されている。特許文献2に記載のデータ記憶容量の解放方法では、有効なデータの量が少ないブロックから再利用する。ブロックのデータを消去する前に、有効なデータを他のブロックにコピーする必要があるが、これにはオーバーヘッドが伴う。データの量が少なければ、このオーバーヘッドは小さくなる。
 記憶媒体の二重ジャーナリングの一例が特許文献3(特表2006-512643号公報)に記載されている。特許文献3に記載の二重ジャーナリングでは、保存媒体としてフラッシュメモリ等を利用する時、アドレス空間の最初と最後の二箇所からデータの記録を開始する。つまり、二種類のうちの一種類のデータは、アドレス空間の始めから終わりに向けてジャーナリング方式で記録される。もう一種類のデータは、アドレス空間の終わりから始めに向けて記録される。
 ファイル管理方法の一例が特許文献4(特開2007-133487号公報)に記載されている。特許文献4に記載のファイル管理方法の目的は、ブロックの使用可能期間を長くすることと、ファイルシステムの使用開始にかかる時間を短縮することである。そのため、シーケンス番号記憶領域と複数のログ領域に記憶領域を分割する。ログ領域にログが書き込まれた順序を示すシーケンス番号は、シーケンス番号記憶領域に書き込まれる。そして、シーケンス番号記憶領域からファイルシステムを構築できるため、使用開始にかかる時間を短縮することができる。また、シーケンス番号記憶領域にはログの状態も記録するため、効率的にデータを消去できるので、使用可能期間も延びる。
 不揮発性メモリのアドレス管理方法の一例が特許文献5(国際公開第2007/013372号)に記載されている。特許文献5に記載の不揮発性メモリのアドレス管理方法は、ウェアレベリングを目的としている。この方法では、物理アドレス空間を大きさの異なる複数の物理領域に分割する。そして、書き換え頻度が高いと予想されるデータ、具体例としてはファイルアロケーションテーブルのデータ、を大きな領域に記録する。これによって、ブロックの書き換え頻度が均一化される効果がある。
米国特許第6,535,949号明細書 特表2009-503735号公報 特表2006-512643号公報 特開2007-133487号公報 国際公開第2007/013372号
Mohan, C. (IBM Almaden),"Implications of Storage Class Memories (SCM) on Software Architectures", [online], The 13th International Workshop on High Performance Transaction Systems (HPTS), 2009, インターネット〈http://www.hpts.ws/session2/mohan.pdf〉 Caulfield, A.M., Grupp, L.M., and Swanson, S. "Gordon: Using Flash Memory to Build Fast, Power-efficient Clusters for Data-intensive Applications", in Proceeding of the 14th international conference on Architectural support for programming languages and operating systems, 2009, pp. 217-228. Gal, E. and Toledo, S. "Algorithms and Data Structures for Flash Memories",ACM Computing Surveys, Vol. 37, No. 2, June 2005, pp. 138-163. Woodhouse, D. "JFFS: The journaling flash file system", [online], Ottawa Linux Symposium (July), 2001, インターネット〈http://sources.redhat.com/jffs2/jffs2.pdf〉 Andersen, D.G., Franklin, J., Kaminsky, M., Phanishayee, A., Tan, L., and Vasudevan, V. "FAWN: A Fast Array of Wimpy Nodes", in Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles (SOSP), 2009, pp. 1-14. Chen, S. "FlashLogging: Exploiting Flash Devices for Synchronous Logging Performance", in Proceedings of the 35th SIGMOD international conference on Management of data, 2009, pp. 73-86.
 上述した各文献に記載されたメモリの管理方法においては、ガーベッジコレクションのオーバーヘッドが発生するという問題点があった。その理由は、フラッシュメモリなどのデバイスのデータの書き込み処理において、データの上書きが非効率になりやすいため、多くの場合、効率を挙げるためにデータを追記していくためである。このように、データを追記する場合、一般には古いデータと最新のデータが記録単位中に混在する状況が発生する。このとき、古いデータは無駄に記憶領域を占めてしまう。そこで、最新データのみを含む記録単位と、古いデータのみを含む記録単位になるようにデータを再配置し、後者に新たに書き込まれたデータを記録する。このガーベッジコレクション(再配置)は、オーバーヘッドを発生させるのである。
 本発明の目的は、ガーベッジコレクションのオーバーヘッドの発生を抑制するデータ処理システム、データ処理方法、およびプログラムを提供することにある。
 本発明のデータ処理システムは、
 データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定する領域割当手段と、
 前記記憶装置に書き込まれる前記データを受け付けて一時的に一時記憶装置に記憶する追記手段と、
 前記一時記憶装置に一時的に記憶された前記データを、前記領域割当手段により決定された前記記憶装置の前記領域に書き込む永続化手段と、
を備える。
 本発明のデータ処理装置のデータ処理方法は、
 データ処理装置が、
 データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定し、
 前記記憶装置に書き込まれるデータを受け付けて一時的に一時記憶装置に記憶し、
 前記一時記憶装置に一時的に記憶された前記データを、決定された前記記憶装置の前記領域に書き込むデータ処理方法である。
 本発明のプログラムは、
 データ処理装置を実現するためのコンピュータが実行するプログラムであって、
 前記コンピュータに、
 データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定する手順、
 前記記憶装置に書き込まれるデータを受け付けて一時的に一時記憶装置に記憶する手順、
 前記一時記憶装置に一時的に記憶された前記データを、前記領域を割り当てる手順により決定された前記記憶装置の前記領域に書き込む手順を実行させるためのコンピュータプログラムである。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
 また、本発明のデータ処理方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明のデータ処理方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
 さらに、本発明のデータ処理方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
 本発明によれば、ガーベッジコレクションのオーバーヘッドの発生を抑制するデータ処理システム、データ処理方法、およびプログラムが提供される。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の実施の形態に係るデータ処理システムの構成を示す機能ブロック図である。 本発明の実施の形態に係るデータ処理システムの動作を示すフローチャートである。 図2のデータ処理システムの永続化処理の動作の一例を示すフローチャートである。 本実施形態のデータ処理システムにおける揮発性記録媒体のバッファの使用例を説明するための図である。 本実施形態のデータ処理システムにおける不揮発性記録媒体の領域の使用例を説明するための図である。 本発明の実施の形態に係るデータ処理システムの構成を示す機能ブロック図である。 本発明の実施の形態に係るデータ処理システムの動作を示すフローチャートである。 本発明の実施の形態に係るデータ処理システムの構成を示す機能ブロック図である。 本発明の実施の形態に係るデータ処理システムの動作を示すフローチャートである。 本発明の実施の形態に係るデータ処理システムの構成を示す機能ブロック図である。 本発明の実施の形態に係るデータ処理システムの構成を示す機能ブロック図である。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
 図1は、本発明の実施の形態に係るデータ処理システム1の構成を示す機能ブロック図である。
 本実施形態のデータ処理システムは、データを永続的に記憶する記憶装置(不揮発性記録媒体200)に書き込まれる周期的なデータの書き込み周期およびデータの有効期間別に、割り当てる記憶装置(不揮発性記録媒体200)の領域202を決定する領域割当部102と、記憶装置(不揮発性記録媒体200)に書き込まれるデータを受け付けて一時的に一時記憶装置(揮発性記録媒体300)に記憶する追記部104と、一時記憶装置(揮発性記録媒体300)に一時的に記憶されたデータを、領域割当部102により決定された記憶装置(不揮発性記録媒体200)の領域202に書き込む永続化部106と、を備える。
 詳細には、データ処理システム1は、データ処理装置100と、不揮発性記録媒体200と、揮発性記録媒体300と、を備える。
 データ処理装置100は、領域割当部102と、追記部104と、永続化部106と、制御部110と、を備える。
 データ処理装置100は、たとえば、図示しないCPU(Central Processing Unit)やメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやパーソナルコンピュータ、またはそれらに相当する装置を用いて実現することができる。そして、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
 なお、データ処理装置100の各構成要素は、上述したように、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
 また、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
 具体的には、データ処理装置100において、領域割当部102は、特定の種類の書き込みデータを記録するために不揮発性記録媒体200の一部の領域202を割り当てる。本実施形態において、領域割当部102は、書き込むデータの書き込み周期および有効期間に基づいて、領域202を決定する。
 本発明の書き込みデータは、周期的なデータであり、たとえば、位置情報や、センサーデータ、ログデータなどの、周期的に追加されていくデータである。あるいは、ある時間スケールでは周期的に書き込まれるとみなせるような、頻繁に追加されるデータ、たとえば、課金や、通話、メールなどに関するデータであってもよい。
 追記部104は、データの書き込みを受け付け、揮発性記録媒体300のバッファ302に一時的に記憶する。
 永続化部106は、揮発性記録媒体300に一時的に記憶されたデータを、領域割当部102が決定した不揮発性記録媒体200の領域202に書き込み、永続化する。ここで、永続化とは、不揮発性記録媒体200に書き込まれたデータを、一定量または一定期間、消去されるまで継続して保持することを言う。
 制御部110は、データ処理装置100の各要素とともに装置全体を制御する。
 不揮発性記録媒体200は、電源を切ってもデータが保持され、たとえば、NAND型のフラッシュメモリである。上述したように、本実施形態では、不揮発性記録媒体200は、領域割当部102が割り当てた複数の領域202(R1、R2、・・・、Rn、ここで、nは自然数)を有する。
 揮発性記録媒体300は、電源を切るとデータが消去され、たとえば、DRAM(Dynamic Random Access Memory)である。
 本実施形態のコンピュータプログラムは、データ処理装置100を実現させるためのコンピュータに、データを永続的に記憶する記憶装置(不揮発性記録媒体200)に書き込まれる周期的なデータの書き込み周期およびデータの有効期間別に、割り当てる記憶装置(不揮発性記録媒体200)の領域202を決定する手順、記憶装置(不揮発性記録媒体200)に書き込まれるデータを受け付けて一時的に一時記憶装置(揮発性記録媒体300のバッファ302)に記憶する手順、一時記憶装置(揮発性記録媒体300のバッファ302)に一時的に記憶されたデータを、領域を割り当てる手順により決定された記憶装置(不揮発性記録媒体200)の領域202に書き込む手順、を実行させるように記述されている。
 本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
 より詳細には、領域割当部102は、領域202を割り当てる要求を受けると、k個のブロックを割り当てる。要求には、データの書き込み周期およびデータの有効期間の情報が含まれる。これらの情報は直接与えられなくても、これらを算出できる情報が間接的に与えられればよい。この要求は、たとえば、データ処理装置100の利用者から、データ処理装置100を構成するコンピュータのユーザインターフェイス(操作部および表示部など)を用いた操作指示として受け付けることができる。あるいは、予め利用者により指定された値をメモリに記憶しておき、読み出してもよい。そして、この要求は、たとえば、データ処理装置100のCPUが実行するデータ処理を行うプログラムなどにより、利用者の指示を割り当てリクエストとして受け付け、領域割当部102に通知することができる。
 ブロック数kの値は、有効期間および周期に基づき決定される。たとえば、領域割当部102は、以下の式(1)に基づきブロック数kを決定する。ただし、aはある正の整数である。典型的なaの値は、同時に不揮発性記録媒体200に書き込むブロックの数である。不揮発性記録媒体200がフラッシュメモリの場合、異なるプレーンへの書き込み要求は、並列に処理できる。たとえば、2つのプレーンがある場合、それぞれのプレーンから1つずつ選んだブロックに書き込むと効率的であるが、最も古いデータが2つのブロックにまたがって記録されることとなる。したがって、2つのプレーンがある場合は、aの値を2以上とするのが適切である。また、eは、比例定数である。
Figure JPOXMLDOC01-appb-M000001
 追記部104は、領域割当部102により指定された領域202へのデータの書き込み要求を受け付ける。書き込み要求には、領域202とデータが指定されている。要求を受け付けた追記部104は、データを揮発性記録媒体300のバッファ302に書き込む。また、データをどの領域202に書き込むべきものなのかも、あわせて揮発性記録媒体300に書き込む。
 永続化部106は、追記部104が揮発性記録媒体300に書き込んだデータを、不揮発性記録媒体200に書き込む。たとえば、ある領域202に書き込むことが指定されたデータが定められた量以上に揮発性記録媒体300にたまったときに、永続化部106は定められた量のデータを不揮発性記録媒体200に書き込むことができる。定められた量は、たとえば、不揮発性記録媒体200のページサイズである。永続化部106は、空いているページまたはブロックがないときに、新たな空きページまたはブロックを作成する機能も有する。
 永続化部106は、不揮発性記録媒体200の領域202の古いブロックからデータを消去し、空になったブロックを新たな書き込みを記録するためのブロックとして再利用する。
 上述のような構成において、本実施の形態のデータ処理システム1において、データ処理装置100によるデータ処理方法を以下に説明する。図2および図3は、データ処理システム1の動作の一例を示すフローチャートである。以下、図1も用いて説明する。
 本実施形態のデータ処理方法は、図2に示すように、データ処理装置100が、データを永続的に記憶する記憶装置(不揮発性記録媒体200)に書き込まれる周期的なデータの書き込み周期およびデータの有効期間別に、割り当てる記憶装置(不揮発性記録媒体200)の領域202を決定し(ステップS111)、記憶装置(不揮発性記録媒体200)に書き込まれるデータを受け付けて一時的に一時記憶装置(揮発性記録媒体300のバッファ302)に記憶し(ステップS115)、一時記憶装置(揮発性記録媒体300のバッファ302)に一時的に記憶されたデータを、領域割当部102により決定された記憶装置(不揮発性記録媒体200)の領域202に書き込む(ステップS105)。
 具体的には、まず、データ処理システム1において、イベントが発生すると(ステップS101のYES)、本処理が開始する。イベントは、上述したデータ処理を行うプログラムなどにより不揮発性記録媒体200または揮発性記録媒体300に対するデータ処理、たとえば、データ書き込み、読み込み、消去などの処理が発生したときに発生する。本実施形態では、イベントは、リクエスト受付と永続化トリガを含む。リクエストは、割当リクエストおよび書込リクエストを含む。永続化トリガは、永続化処理を開始するトリガであり、揮発性記録媒体300への一定量の書き込みの通知や、時間の経過の通知などを含む。
 次に、制御部110が、イベントが永続化トリガか否かを判定する(ステップS103)。イベントが永続化トリガの場合(ステップS103のYES)、永続化部106が後述する永続化処理を実行する(ステップS105)。一方、イベントが永続化トリガでない場合(ステップS103のNO)、制御部110は、イベントはリクエスト受付であると判定し、リクエストを受け付ける(ステップS107)。
 そして、制御部110が、受け付けたリクエストが、割当リクエストおよび書込リクエストのいずれなのかを判定する(ステップS109およびステップS113)。割当リクエストの場合(ステップS109のYES)、領域割当部102が、データの書き込み周期と有効期間に基づき、領域202を割り当てる(ステップS111)。一方、書込リクエストの場合(ステップS109のNOかつステップS113のYES)、追記部104が、データを一時的に揮発性記録媒体300に記憶する(ステップS115)。さらに、割当リクエストおよび書込リクエストのいずれでもない場合(ステップS109のNOかつステップS113のNO)、制御部110は、本処理を終了し、次のイベント待ち状態となる。また、上述したステップS105、ステップS111、ステップS115の後も、制御部110は、本処理を終了し、次のイベント待ち状態となる。
 たとえば、次の周期的なデータの書き込みリクエストを受け付ければ、ステップS101のYES、ステップS103のNO、ステップS107を介して、ステップS109のNO、そして、ステップS113のYESとなり、ステップS115に進む。そして、ステップS115で、追記部104がデータを揮発性記録媒体300に一時的に記憶することとなる。
 次に、図3を参照して、上述した図2のステップS105における永続化部106による永続化処理について、さらに詳細に説明する。
 まず、ステップS201において、永続化部106が、対象とする領域202に対して書き込むべき、一定量のデータが揮発性記録媒体300にあるかどうかを判定する。一定量のデータがなければ(ステップS201のNO)、図2に戻り、制御部110が、次のイベント待ちとなる。一定量のデータがあれば(ステップS201のYES)、ステップS203に進む。
 ステップS203では、永続化部106が、不揮発性記録媒体200の領域202の先頭ブロックに空きページがあるかどうかを判定する。領域202の先頭ブロックとは、現在書き込みの対象となっているブロックである。したがって、先頭ブロックは一つである必要はない。たとえば、異なる周期的なデータを同時に書き込む場合は、それぞれの領域202が書き込み対象となるためである。あるいは、異なるプレーンを書き込み対象とした場合、並行してデータを書き込むことができるためである。
 図5に示すように、たとえば、領域202は、複数のブロック210、212、214、...を有する。ここでは、ブロック210は、既に全てのページにデータが書き込まれている。そして、ブロック212が先頭ブロックであり、先頭ブロック212は、複数のページ220、222、224、...を含む。ここでは、ページ220、222には既にデータが永続化されて書き込まれている。そして、ページ224以降が空きページとなっているものとする。
 図3に戻り、永続化部106は、空きページがあれば(ステップS203のYES)、ステップS211に進み、そのページにデータを書き込む。空きページがなければ(ステップS203のNO)、ステップS205に進む。
 ステップS205では、永続化部106が、不揮発性記録媒体200の領域202に空きブロックがあるかどうかを判定する。空きブロックがあれば(ステップS205のYES)、ステップS209に進む。一方、空きブロックがなければ(ステップS205のNO)、永続化部106が、単に最も古いq個のブロックのデータを消去し、新たな空きブロックとする(ステップS207)。ここで、消去するブロックの個数qは、領域にある先頭ブロックの数に比例する数であるのが好ましい。
 そして、ステップS209において、永続化部106が、空きブロックの中からq個を先頭ブロックとして選択する。そして、ステップS211において、永続化部106が、ステップS209で選択された先頭ブロックの空きページ、またはステップS203の該当領域202の先頭ブロックの空きページに、データを書き込む。
 次に、図2のステップS115における追記部104の処理の詳細について、図4を用いて説明する。
 追記部104は、領域202ごとに、揮発性記録媒体300の一部をバッファ302として確保し、そこにデータを書き込む。図4(a)では、バッファ302の中で既にデータが書き込まれた部分を領域310で示してある。
 このバッファ302は、循環ログのように上書きされていくことになる。追記部104は、バッファ302の先頭TA(次にデータを書き込むアドレス、図4では、TA1等)と末尾LA(まだ永続化されていない最も古いデータのアドレス、図4では、LA1)も管理する。図4(a)に示すように、データがバッファ302に周期的に書き込まれると、1番目のデータが書き込まれた領域312分だけ、バッファ302の先頭がTA1からTA2に移動する。そして、さらに、2番目のデータが書き込まれた領域314分だけ、バッファ302の先頭がTA2からTA3へと移動する。
 そして、揮発性記録媒体300に、領域202に対する書き込みデータが一定量溜まったとき、追記部104が永続化部106に通知する。通知を受け付けた永続化部106は、まだ永続化されていない最も古いデータから一定量のデータを不揮発性記録媒体200にコピーする。本実施形態では、フラッシュメモリのページサイズずつコピーする。
 図4(b)に示すように、永続化部106は、バッファ302の末尾LA1から、すなわち、領域320で示される永続化されていない最も古いデータから一定量のデータを不揮発性記録媒体200にコピーする。これにより、図4(b)の領域320に一時的に記憶されていたデータは、永続化されたこととなる。そして、永続化部106は、コピーの終了を追記部104に通知する。
 通知を受けた追記部104は、図4(c)に示すように、バッファ302の末尾がLA1からLA2に移動する。
 このように、バッファ302の先頭TAおよび末尾LAは、データの書き込みおよび永続化によりそれぞれ変化することとなる。
 以上、説明したように、本実施の形態のデータ処理システム1によれば、単に最も古いブロックから消去するだけで不要なデータのみを消去できる。その理由は、データ書き込みの周期および有効期間別に設けた不揮発性記録媒体200の領域202に対してデータを追記するように構成されているためである。このように、書き込み周期と有効期間が異なるデータを異なる領域に保持するため、最新のデータと古いデータが同じ記録単位上に混在するのを防ぐことができる。これにより、ガーベッジコレクションに伴う最新データの再配置のオーバーヘッドがなくなる。したがって、ハードディスクのような不揮発性記録媒体を前提とした記録方式よりも、効率よくフラッシュメモリのような低消費電力の不揮発性記録媒体を利用できる。すなわち、フラッシュメモリのような低消費電力の不揮発性記録媒体を効率的に用いることにより、周期的なデータを低い消費電力で記録できるという効果を奏する。
 また、本実施形態のデータ処理システム1において、図6に示すように、データ処理装置100は、さらに、分析部108を備えてもよい。
 分析部108は、利用者指定の演算を、不揮発性記録媒体200に書き込まれたデータに施すものである。本実施形態では、分析部108は、一つ以上の領域に記録されたデータに対して、指定された演算を実行する。簡単な演算の一例として、「領域Dに記録された2次元のデータ(x,y)に関して、(x0,y0)からの距離がd以下のデータの数」、を挙げておく。
 このように構成された本実施形態のデータ処理装置100の動作について、図7を用いて以下に説明する。図7は、本実施形態のデータ処理装置100の動作の一例を示すフローチャートである。以下、図6も用いて説明する。
 なお、本実施形態では、リクエストは、割当リクエストと書込リクエストに加え、さらに、分析リクエストを含むものとする。
 本実施形態のデータ処理システム1において、データ処理装置100のデータ処理方法は、図2のフローチャートと同様なステップを有するとともに、さらに、ステップS121を有する点で相違する。
 すなわち、図7に示すように、ステップS113で、制御部110が、受け付けたリクエストが書き込みリクエストでないと判定した場合(ステップS113のNO)、ステップS121に進み、分析部108が指定された演算処理を行う。分析部108における処理が終了すると、本処理を処理し、制御部110は、次のイベント待ち状態となる。
 この構成によれば、上述したように、ガーベッジコレクションに伴う最新データの再配置のオーバーヘッドがなくなるとともに、さらに、ハードディスクのような不揮発性記録媒体を前提とした記録や分析方式よりも、効率よくフラッシュメモリのような低消費電力の不揮発性記録媒体を利用できる。すなわち、フラッシュメモリのような低消費電力の不揮発性記録媒体を効率的に用いることにより、周期的なデータを低い消費電力で記録できるという効果を奏する。
(第2の実施の形態)
 図8を用いて、本発明の実施の形態に係るデータ処理システム2について、以下に説明する。
 本実施形態のデータ処理システム2のデータ処理装置120は、上記実施形態とは、データの書き込み周期およびデータの有効期間に加え、さらに、データのデータサイズを考慮して、割り当てる不揮発性記録媒体200の領域202のサイズを決定する点で相違する。
 本実施形態のデータ処理システム2のデータ処理装置120は、図6の上記実施形態のデータ処理システム1のデータ処理装置100の分析部108も含むことができる。
 具体的には、本実施形態のデータ処理システム2は、図1のデータ処理装置100に替えて、データ処理装置120を備え、さらに、図1と同様な不揮発性記録媒体200と、揮発性記録媒体300と、を備える。データ処理装置120は、図1の領域割当部102に替えて、領域割当部122を備え、さらに、図1と同様な追記部104と、永続化部106と、制御部110と、を備える。
 領域割当部122は、領域202を割り当てる要求を受けると、k個のブロックを割り当てる。要求には、データサイズ、(データの)有効期間、(書き込みの)周期の三つの情報が含まれる。たとえば、データサイズはデータ量のことを意味し、その単位はバイトである。一方、サイズ、有効期間、周期が直接与えられなくても、これらを算出できる情報が間接的に与えられればよい。
 また、ブロックサイズは予め与えられている値とし、変更することもできるし、領域毎に違う値を用いてもよい。
kの値は、サイズ、有効期間、周期から決定する。たとえば、以下の式(2)のように決定する。ただしaはある正の整数である。
Figure JPOXMLDOC01-appb-M000002
 上記式(2)に示すように、領域割当部122は、有効期間またはデータサイズに比例するように、あるいは、書き込み周期または不揮発性記録媒体200の領域202のブロックサイズに反比例するように、領域202を割り当てることができる。
 このように構成された本実施形態のデータ処理システム2のデータ処理装置120の動作について、図9を用いて以下に説明する。図9は、本実施形態のデータ処理装置120の動作の一例を示すフローチャートである。以下、図8も用いて説明する。
 本実施形態のデータ処理装置120において、データ処理装置120のデータ処理方法は、図2のフローチャートと同様なステップを有するとともに、図2のステップS111に替えて、ステップS211を有する点で相違する。
 すなわち、図2のステップS111の領域割当部102の動作が、領域割当部122による動作に変更される。ステップS109でリクエストが割当リクエストと判定された場合(ステップS109のYES)、ステップS211に進む。そして、ステップS211で、領域割当部122が、データの書き込み周期と有効期間に加え、さらに、書き込むデータのサイズに基づき、領域202を割り当てる。
 その他の動作は上記実施形態と同様であるので、詳細な説明は省略する。
 この構成によれば、上記実施形態と同様な効果を奏するとともに、さらに、書き込まれるデータサイズにあった領域202を効率よく割り当てることができ、不揮発性記録媒体200に効率よくデータを記録でき、また、分析することができる。その理由は、データ書き込みの周期と有効期間に加えてデータサイズも考慮して領域の大きさを決定するように構成されているためである。
(第3の実施の形態)
 図10を用いて、本発明の実施の形態に係るデータ処理システム3について、以下に説明する。
 本実施形態のデータ処理システム3は、上記実施形態とは、データ処理装置130が、領域202ごとに書き込むデータを受け付けた時刻、たとえば、データの書き込み要求が発生した時刻、または書き込むデータの書き込み量を記録し、これらの時刻と書き込み量から、領域202毎に領域202への書き込みの周期または周期的なデータのサイズを推定できる点で相違する。
 たとえば、上記各文献記載のシステムでは、どのデータをどれくらいの期間保持するかを事前に知ることができないため、必要な記憶容量を事前に見積もるのが困難であるといった問題点があった。そして、十分な記憶容量がある限りにおいて、データを消去することは一般的ではなかった。
 そこで、本発明では、不揮発性記録媒体200に要求される記憶容量を事前に知ることができるデータ処理システム3を提供する。
 具体的には、本実施形態のデータ処理システム3は、図8の上記実施形態のデータ処理装置120に替えて、データ処理装置130を備え、さらに、図8と同様な不揮発性記録媒体200と、揮発性記録媒体300と、を備える。データ処理装置130は、図8の領域割当部122、追記部104、永続化部106、および制御部110に加え、さらに、記録部132と、推定部134と、を備える。
 記録部132は、領域202ごとに書き込み要求が発生した時刻、または書き込むデータのサイズを記録する。本実施形態では、追記部104が、データの書き込み要求を受け付けたとき、記録部132にこれらの情報を記録する。時刻は、データ処理装置130の図示されない時計から取得することができる。記録する期間は任意でよいが、有効期間が過ぎた場合、または、一時領域を満たすだけの量のデータが書き込まれた場合などをトリガとして記録を終了するのが好適である。
 推定部134は、記録部132に記録された時刻から、領域への書き込みの周期と平均データサイズを推定する。また、推定部134は、記録部132に記録された時刻とサイズから、領域への書き込みの周期を推定することができる。
 なお、本実施形態のデータ処理システム3の記録部132および推定部134は、上記実施形態の図1または図6のデータ処理装置100、または図8のデータ処理装置120、および、これらの組合せのデータ処理装置においても同様に備えることができる。
 このように構成された本実施形態のデータ処理システム3においても、上記実施形態の図2のフローチャートを用いて説明した同様な動作を行うことができる。本実施形態では、たとえば、利用者は、以下の式(3)ように、領域202を割り当てることを指示する。ただし、iは自然数であり、書き込みが発生する周期的なデータの数である。
 outi = alloc(vi)     ・・・式(3)
 式(3)で示される割り当てリクエストには、有効期間vのみが含まれるものとする。
 利用者からこの割り当てリクエストは、たとえば、データ処理装置130を構成するコンピュータのユーザインターフェイス(操作部および表示部など)を用いた操作指示として受け付けることができる。あるいは、予め利用者により指定された値をメモリに記憶しておき、読み出してもよい。
 そして、領域割当部122は、ある数のブロックからなる一時領域を割り当てる。そして、追記部104が、有効期間のみから割り当てられた一時領域(バッファ302)に書き込むとき、記録部132に書き込んだ時刻と、書き込んだデータのサイズを記録する。
 さらに、本実施形態において、追記部104は、推定部134における推定が終了したとき、推定された書き込み周期とデータサイズを領域割当部122に通知する。そして、データの書き込み周期、データサイズ、与えられた有効期間に基づいて、領域割当部122は、新たな領域202を割り当てる。元の領域202を構成するブロックは、順次消去する。与えられた有効期間と推定した書き込み周期とデータサイズに基づいて領域202を割り当てた後の動作は、前述の実施形態で述べたとおりである。
 以上、説明したように、本実施形態のデータ処理システム3によれば、上記実施形態と同様な効果を奏するとともに、不揮発性記録媒体200に要求される記憶容量を事前に予測することができる。その理由は、データ書き込みの周期と有効期間に加えてデータサイズも考慮して領域の大きさを決定するとともに、領域202への書き込みの周期または周期的なデータのサイズを推定するように構成されているためである。これによって、想定する不揮発性記録媒体200が十分な記憶容量を持つかどうかを判断できる。記憶容量が不足する場合には、より大容量で高価な、過剰である場合にはより小容量で安価な、不揮発性記録媒体200を用いることができる。
 また、フラッシュメモリのような低消費電力の不揮発性記録媒体を効率的に用いることにより、周期的なデータを低い消費電力で記録または分析できる。
(第4の実施の形態)
 図11を用いて、本発明の実施の形態に係るデータ処理システム4について、以下に説明する。
 本実施形態のデータ処理システム4は、図10の上記実施形態とは、データ処理装置140が、推定された書き込みデータの容量と、不揮発性記録媒体200の記憶容量を比較し、その結果を通知する点で相違する。
 すなわち、本実施形態のデータ処理システム4において、データ処理装置140は、上記実施形態のデータ処理装置130の構成に加え、推定されたデータの書き込み周期、データサイズ、および有効期間に基づいて、記憶装置(不揮発性記録媒体200)に書き込まれるデータの容量を推定し、記憶装置(不揮発性記録媒体200)の記憶容量と比較する比較部146をさらに備える。
 さらに、本実施形態のデータ処理装置140は、比較部146による比較結果を通知する通知部148をさらに備える。
 具体的には、本実施形態のデータ処理システム4は、図10の上記実施形態のデータ処理装置130に替えて、データ処理装置140を備え、さらに、図10と同様な不揮発性記録媒体200と、揮発性記録媒体300と、を備える。データ処理装置140は、図10の領域割当部122、追記部104、永続化部106、記録部132、推定部134、および制御部110に加え、さらに、比較部146と、通知部148と、を備える。
 なお、本実施形態の領域割当部122は、図1または図6の領域割当部102であってもよい。
 比較部146は、推定部134で推定されたデータの書き込み周期、データサイズ、および有効期間に基づいて、不揮発性記録媒体200に書き込まれるデータの容量を推定し、不揮発性記録媒体200の記憶容量と比較し、比較結果を通知部148に受け渡す。
 通知部148は、比較部146による比較結果を利用者に通知する。通知部148は、たとえば、データ処理装置140を構成するコンピュータの表示部に記憶容量が足りること、または足りないことを示す情報、あるいは、具体的な容量を数値でそれぞれ比較できるような情報を表示させることで、利用者に通知することができる。あるいは、通知部148は、予め指定されている利用者のメールアドレスやIP(Internet Protocol)アドレス宛に、前記情報を含むメールまたはメッセージを、ネットワークを介して送信することで通知することもできる。または、通知部148は、データ処理装置140の記憶装置に前記情報を記録し、後から利用者が参照できるようにすることで、通知することもできる。
 以上、説明したように本実施形態のデータ処理システム4によれば、上記実施形態と同様な効果を奏するとともに、さらに、予測した不揮発性記録媒体200に要求される記憶容量に基づいて、想定する不揮発性記録媒体200が十分な記憶容量を持つかどうかを判断し、その結果を利用者に通知することができる。利用者は、通知を受けて、記憶容量が不足する場合には、より大容量で高価な、過剰である場合には、より小容量で安価な、不揮発性記憶媒体を選択して用いることができることとなる。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
 次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
 周期的に書き込みが発生するデータ(以下、「周期的データ」と呼ぶ。)を、周期p、有効期間v、データサイズsの三つで、以下のように表す。本実施例では、図11の上記実施形態のデータ処理システム4を用いるものとし、データ処理装置140は、さらに、図6の分析部108(図11には不図示)を有するものとする。
 今、三つの周期的データ、(p1,v1,s1)、(p2,v2,s2)、(p3,v3,s3)、を記録し、分析するとする。本発明のデータ処理システム4の利用者は、たとえば、以下の式(4)ように、領域202を割り当てることを指示する。ただし、i=1,2,3であり、outiが割り当てられる複数の領域202を表している。
 outi=alloc(pi,vi,si)    ・・・式(4)
 上記の指示は、直接的には領域割当部122が処理する。領域割当部122には、ブロックサイズbが、予め与えられているものとする。そして、領域割当部122は、上記実施形態の上記式(4)を用いて、(pi,vi,si)に対して(si/b*vi/pi+ai)個のブロックを割り当てる。
 ここで、連続したブロックを割り当てることで、領域202は循環ログのように使用することができる。すなわち、永続化部106は、不揮発性記録媒体200の領域202において、循環ログを構成するブロックの末尾から再利用する。aiは正の整数であり、典型的なaiの値は、同時に書き込むブロックの数である。不揮発性記録媒体200がフラッシュメモリの場合、異なるプレーンへの書き込み要求は並列に処理できる。
 たとえば、2つのプレーンがある場合、それぞれのプレーンから1つずつ選んだブロックに書き込むと効率的であるが、最も古いデータが2つのブロックにまたがって記録されることとなる。したがって、2つのプレーンがある場合は、aiの値を2以上とするのが適切である。
 各周期的データへの書き込みは、たとえば、以下の式(5)ように指示する。ただし、dataは書き込むデータそのもの、またはデータがあるアドレスへのポインタである。
 outi=put(data)        ・・・式(5)
 上記の指示は、直接的には追記部104が処理する。追記部104は、領域ごとに揮発性記録媒体300の一部をバッファとして確保し、そこにdataを書き込む。また、バッファは循環ログのように上書きされていく。バッファの先頭TA(次に書き込むアドレス)と末尾LA(まだ永続化されていない最も古いデータのアドレス)も追記部104は管理する。
 本実施例では、永続化部106は、ある領域に対する書き込みが一定量に達したことを、追記部104から通知される。通知を受けた永続化部106は、一定量ずつ、ここではフラッシュメモリのページサイズずつ、不揮発性記録媒体200にコピーする。そして、コピーの終了を追記部104に通知する。通知を受けた追記部104は、バッファの末尾TAをページサイズ分進める(TA2)。
 永続化部106は、領域の先頭(書き込み中の)ブロックを管理する。揮発性記録媒体300に一時的に記録されたデータの、不揮発性記録媒体200上に割り当てた領域202へのコピーは、領域の先頭ブロックに対して行われる。先頭ブロックに空いているページがなくなれば、最も古いデータを保持するブロック(先頭ブロックの一つ先のブロック)が、次の先頭ブロックになる。このブロックが空いていなければ、消去の操作を施して、空きブロックにしてからデータを書き込む。
 本実施例では、三つの周期的データを記録しており、これらを記録するのに必要な記憶容量は、以下の式(6)で示されることが事前にわかる。これによって、適切な容量を持つ不揮発性記憶媒体を選択できる。
Figure JPOXMLDOC01-appb-M000003
 分析部108は、一つ以上の領域に記録されたデータに対して、利用者が指定した演算を実行する。ここで、周期的データ(p1,v1,s1)の実体は、顧客ID、時刻、緯度、経度の四つを含む位置情報であるとする。有効期間v1において、地点(x0,y0)から距離r以内に居たことがある人の数を求める場合、以下の式(7)のような指示を分析部108は受ける。
outi.analyze(func,x0,y0,r) ・・・式(7)
 ここで、funcは利用者定義の関数であるが、本発明の本質には関わらないので、詳細については省略する。
 このように、本実施例のデータ処理システムでは、周期的データを効率良く不揮発性記録媒体200に記録するとともに、利用者が指定した分析を行うことができる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 なお、本発明は、以下の態様も含むことができる。
(付記1)
 データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定する領域割当手段と、
 前記記憶装置に書き込まれる前記データを受け付けて一時的に一時記憶装置に記憶する追記手段と、
 前記一時記憶装置に一時的に記憶された前記データを、前記領域割当手段により決定された前記記憶装置の前記領域に書き込む永続化手段と、
 前記追記手段が前記領域毎に書き込む前記データを受け付けた時刻、および前記追記手段が前記領域毎に受け付けた書き込む前記データの書き込み量を記録する記録手段と、
 記録された前記時刻に基づいて、前記領域毎に前記データの書き込み周期を推定するとともに、記録された前記書き込み量に基づいて、前記領域毎に前記データのデータサイズを推定する推定手段と、
 前記推定された前記データの前記書き込み周期、前記データサイズ、および前記有効期間に基づいて、前記記憶装置に書き込まれる前記データの容量を推定し、前記記憶装置の記憶容量と比較する比較手段と、
 前記比較手段による比較結果を通知する通知手段と、
を備え、
 前記領域割当手段は、推定した前記書き込み周期、およびを前記データサイズ用いて新たな領域を割り当てるデータ処理システム。
(付記2)
 付記1に記載のデータ処理システムにおいて、
 前記永続化手段は、前記記憶装置の前記領域において、循環ログを構成するブロックの末尾から再利用するデータ処理システム。
(付記3)
 付記1または2に記載のデータ処理システムにおいて、
 前記記憶装置は、不揮発性記録媒体であるデータ処理システム。
 この出願は、2010年8月11日に出願された日本出願特願2010-180311号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1.  データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定する領域割当手段と、
     前記記憶装置に書き込まれる前記データを受け付けて一時的に一時記憶装置に記憶する追記手段と、
     前記一時記憶装置に一時的に記憶された前記データを、前記領域割当手段により決定された前記記憶装置の前記領域に書き込む永続化手段と、
    を備えるデータ処理システム。
  2.  請求項1に記載のデータ処理システムにおいて、
     前記領域割当手段は、さらに、前記データのデータサイズを考慮して、前記割り当てる前記記憶装置の前記領域のサイズを決定するデータ処理システム。
  3.  請求項2に記載のデータ処理システムにおいて、
     前記領域割当手段が、前記有効期間または前記データサイズに比例するように、あるいは、前記書き込み周期または前記記憶装置の前記領域のブロックサイズに反比例するように、前記領域を割り当てるデータ処理システム。
  4.  請求項1乃至3いずれかに記載のデータ処理システムにおいて、
     前記追記手段が前記領域毎に書き込む前記データを受け付けた時刻を記録する記録手段と、
     記録された前記時刻に基づいて、前記領域毎に前記データの書き込み周期を推定する推定手段と、をさらに備え、
     前記領域割当手段は、推定した前記書き込み周期を用いて新たな領域を割り当てるデータ処理システム。
  5.  請求項4に記載のデータ処理システムにおいて、
     前記記録手段は、さらに、前記追記手段が前記領域毎に受け付けた書き込む前記データの書き込み量を記録し、
     前記推定手段は、記録された前記書き込み量に基づいて、前記領域毎に前記データのデータサイズを推定し、
     前記領域割当手段は、推定した前記データサイズを用いて新たな領域を割り当てるデータ処理システム。
  6.  請求項5に記載のデータ処理システムにおいて、
     前記推定された前記データの前記書き込み周期、前記データサイズ、および前記有効期間に基づいて、前記記憶装置に書き込まれる前記データの容量を推定し、前記記憶装置の記憶容量と比較する比較手段をさらに備えるデータ処理システム。
  7.  請求項1乃至6いずれかに記載のデータ処理システムにおいて、
     前記永続化手段が、前記記憶装置の前記領域の古いブロックから消去し、新たな書き込みを記録するためのブロックとして再利用するデータ処理システム。
  8.  請求項1乃至7いずれかに記載のデータ処理システムにおいて、
     利用者指定の演算を、前記記憶装置に書き込まれた前記データに施す分析手段をさらに備えるデータ処理システム。
  9.  データ処理装置が、
     データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定し、
     前記記憶装置に書き込まれるデータを受け付けて一時的に一時記憶装置に記憶し、
     前記一時記憶装置に一時的に記憶された前記データを、決定された前記記憶装置の前記領域に書き込むデータ処理装置のデータ処理方法。
  10.  データ処理装置を実現するためのコンピュータが実行するプログラムであって、
     前記コンピュータに、
     データを永続的に記憶する記憶装置に書き込まれる周期的なデータの書き込み周期および前記データの有効期間別に、割り当てる前記記憶装置の領域を決定する手順、
     前記記憶装置に書き込まれるデータを受け付けて一時的に一時記憶装置に記憶する手順、
     前記一時記憶装置に一時的に記憶された前記データを、前記領域を割り当てる手順により決定された前記記憶装置の前記領域に書き込む手順を実行させるためのプログラム。
PCT/JP2011/004094 2010-08-11 2011-07-20 データ処理システム、データ処理方法、およびプログラム WO2012020544A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012528588A JPWO2012020544A1 (ja) 2010-08-11 2011-07-20 データ処理システム、データ処理方法、およびプログラム
US13/816,147 US20130138915A1 (en) 2010-08-11 2011-07-20 Data processing system, data processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-180311 2010-08-11
JP2010180311 2010-08-11

Publications (1)

Publication Number Publication Date
WO2012020544A1 true WO2012020544A1 (ja) 2012-02-16

Family

ID=45567520

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/004094 WO2012020544A1 (ja) 2010-08-11 2011-07-20 データ処理システム、データ処理方法、およびプログラム

Country Status (3)

Country Link
US (1) US20130138915A1 (ja)
JP (1) JPWO2012020544A1 (ja)
WO (1) WO2012020544A1 (ja)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015121938A1 (ja) * 2014-02-13 2015-08-20 株式会社日立製作所 データ管理装置及び方法
JP2015527682A (ja) * 2012-09-28 2015-09-17 アップル インコーポレイテッド フラッシュトランスレーションレイヤ(ftl)データベースジャーナリングスキーム
KR20170063332A (ko) * 2015-11-30 2017-06-08 삼성전자주식회사 솔리드 스테이트 드라이브 및 그것의 동작 방법
US9946643B2 (en) 2015-12-14 2018-04-17 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US10282288B2 (en) 2015-12-14 2019-05-07 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US10592171B2 (en) 2016-03-16 2020-03-17 Samsung Electronics Co., Ltd. Multi-stream SSD QoS management
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10732842B2 (en) 2014-12-31 2020-08-04 Samsung Electronics Co., Ltd. Computing system with processing and method of operation thereof
US10732905B2 (en) 2016-02-09 2020-08-04 Samsung Electronics Co., Ltd. Automatic I/O stream selection for storage devices
US10739995B2 (en) 2016-10-26 2020-08-11 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
US10747443B2 (en) 2015-04-10 2020-08-18 Samsung Electronics Co., Ltd. Electronic system with storage management mechanism and method of operation thereof
US10824576B2 (en) 2015-07-13 2020-11-03 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
US10901907B2 (en) 2017-10-19 2021-01-26 Samsung Electronics Co., Ltd. System and method for identifying hot data and stream in a solid-state drive
US10949087B2 (en) 2018-05-15 2021-03-16 Samsung Electronics Co., Ltd. Method for rapid reference object storage format for chroma subsampled images
US11099750B2 (en) 2015-12-17 2021-08-24 Samsung Electronics Co., Ltd. Computing system with communication mechanism
US11144351B2 (en) 2015-07-10 2021-10-12 Samsung Electronics Co., Ltd. Computing system with resource management mechanism and method of operation thereof
US11194710B2 (en) 2017-04-25 2021-12-07 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
US11216323B2 (en) 2015-09-16 2022-01-04 Samsung Electronics Co., Ltd. Solid state memory system with low power error correction mechanism and method of operation thereof
US11449256B2 (en) 2018-05-15 2022-09-20 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US11507326B2 (en) 2017-05-03 2022-11-22 Samsung Electronics Co., Ltd. Multistreaming in heterogeneous environments

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194524B2 (en) * 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
TWI653632B (zh) * 2017-09-29 2019-03-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001041058A1 (fr) * 1999-11-30 2001-06-07 Kabushiki Kaisha Toshiba Carte a circuit integre et procede de gestion de la memoire volatile de la carte a circuit integre
WO2002101535A2 (en) * 2001-06-11 2002-12-19 Storage Technology Corporation Outboard data storage management system and method
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4688617B2 (ja) * 2005-09-16 2011-05-25 株式会社日立製作所 記憶制御システム及び方法
JP2008009767A (ja) * 2006-06-29 2008-01-17 Hitachi Ltd データ処理システム及びその方法並びにストレージ装置
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100199060A1 (en) * 2009-02-04 2010-08-05 Panasonic Corporation Memory controller, nonvolatile memory module, access module, and nonvolatile memory system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
WO2001041058A1 (fr) * 1999-11-30 2001-06-07 Kabushiki Kaisha Toshiba Carte a circuit integre et procede de gestion de la memoire volatile de la carte a circuit integre
WO2002101535A2 (en) * 2001-06-11 2002-12-19 Storage Technology Corporation Outboard data storage management system and method

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015527682A (ja) * 2012-09-28 2015-09-17 アップル インコーポレイテッド フラッシュトランスレーションレイヤ(ftl)データベースジャーナリングスキーム
JPWO2015121938A1 (ja) * 2014-02-13 2017-03-30 株式会社日立製作所 データ管理装置及び方法
WO2015121938A1 (ja) * 2014-02-13 2015-08-20 株式会社日立製作所 データ管理装置及び方法
US10732842B2 (en) 2014-12-31 2020-08-04 Samsung Electronics Co., Ltd. Computing system with processing and method of operation thereof
US11630578B2 (en) 2015-04-10 2023-04-18 Samsung Electronics Co., Ltd. Electronic system with storage management mechanism and method of operation thereof
US10747443B2 (en) 2015-04-10 2020-08-18 Samsung Electronics Co., Ltd. Electronic system with storage management mechanism and method of operation thereof
US11995465B2 (en) 2015-07-10 2024-05-28 Samsung Electronics Co., Ltd. Computing system with resource management mechanism and method of operation thereof
US11144351B2 (en) 2015-07-10 2021-10-12 Samsung Electronics Co., Ltd. Computing system with resource management mechanism and method of operation thereof
US11392297B2 (en) 2015-07-13 2022-07-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10824576B2 (en) 2015-07-13 2020-11-03 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US11216323B2 (en) 2015-09-16 2022-01-04 Samsung Electronics Co., Ltd. Solid state memory system with low power error correction mechanism and method of operation thereof
KR102363519B1 (ko) 2015-11-30 2022-02-16 삼성전자주식회사 솔리드 스테이트 드라이브 및 그것의 동작 방법
KR20170063332A (ko) * 2015-11-30 2017-06-08 삼성전자주식회사 솔리드 스테이트 드라이브 및 그것의 동작 방법
US10713161B2 (en) 2015-12-14 2020-07-14 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US9946643B2 (en) 2015-12-14 2018-04-17 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US10789162B2 (en) 2015-12-14 2020-09-29 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US10185656B2 (en) 2015-12-14 2019-01-22 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US10282288B2 (en) 2015-12-14 2019-05-07 Toshiba Memory Corporation Memory system and method for controlling nonvolatile memory
US11099750B2 (en) 2015-12-17 2021-08-24 Samsung Electronics Co., Ltd. Computing system with communication mechanism
US10732905B2 (en) 2016-02-09 2020-08-04 Samsung Electronics Co., Ltd. Automatic I/O stream selection for storage devices
US11586392B2 (en) 2016-03-16 2023-02-21 Samsung Electronics Co., Ltd. Multi-stream SSD QoS management
US10592171B2 (en) 2016-03-16 2020-03-17 Samsung Electronics Co., Ltd. Multi-stream SSD QoS management
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
US11048411B2 (en) 2016-10-26 2021-06-29 Samsung Electronics Co., Ltd. Method of consolidating data streams for multi-stream enabled SSDs
US10739995B2 (en) 2016-10-26 2020-08-11 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
US11194710B2 (en) 2017-04-25 2021-12-07 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
US11630767B2 (en) 2017-04-25 2023-04-18 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
US11507326B2 (en) 2017-05-03 2022-11-22 Samsung Electronics Co., Ltd. Multistreaming in heterogeneous environments
US11847355B2 (en) 2017-05-03 2023-12-19 Samsung Electronics Co., Ltd. Multistreaming in heterogeneous environments
US10901907B2 (en) 2017-10-19 2021-01-26 Samsung Electronics Co., Ltd. System and method for identifying hot data and stream in a solid-state drive
US11449256B2 (en) 2018-05-15 2022-09-20 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates
US10949087B2 (en) 2018-05-15 2021-03-16 Samsung Electronics Co., Ltd. Method for rapid reference object storage format for chroma subsampled images
US11947826B2 (en) 2018-05-15 2024-04-02 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates

Also Published As

Publication number Publication date
JPWO2012020544A1 (ja) 2013-10-28
US20130138915A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
WO2012020544A1 (ja) データ処理システム、データ処理方法、およびプログラム
US20220100377A1 (en) Memory system and method of controlling memory system
CN107346290B (zh) 使用并行化日志列表重放分区逻辑到物理数据地址转换表
Kim et al. A space-efficient flash translation layer for compactflash systems
KR101038167B1 (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US9298534B2 (en) Memory system and constructing method of logical block
KR101297563B1 (ko) 스토리지 관리 방법 및 관리 시스템
TWI399644B (zh) 非揮發記憶體區塊管理方法
TW201112253A (en) Write-erase endurance lifetime of memory storage devices
KR20150083264A (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
CN103150258A (zh) 一种固态存储系统的写入、读取及垃圾收集方法
CN105917303B (zh) 一种控制器、识别数据块稳定性的方法和存储系统
WO2016086411A1 (zh) 一种控制器、闪存装置、识别数据块稳定性的方法以及在闪存装置中存储数据的方法
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
Han et al. CATA: A garbage collection scheme for flash memory file systems
CN116737064A (zh) 一种固态硬盘的数据管理方法和系统
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
Liu et al. Synergistic coupling of SSD and hard disk for QoS-aware virtual memory
US20210279188A1 (en) Client input/output (i/o) access rate variation compensation
Han et al. An intelligent garbage collection algorithm for flash memory storages
Ross Modeling the performance of algorithms on flash memory devices
CN106205707A (zh) 存储器装置
KR100994052B1 (ko) 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
Kwon et al. Fast responsive flash translation layer for smart devices
Lomet et al. Efficiently reclaiming space in a log structured store

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: 11816214

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012528588

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13816147

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11816214

Country of ref document: EP

Kind code of ref document: A1