WO2010093108A1 - 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템 - Google Patents

고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템 Download PDF

Info

Publication number
WO2010093108A1
WO2010093108A1 PCT/KR2009/006339 KR2009006339W WO2010093108A1 WO 2010093108 A1 WO2010093108 A1 WO 2010093108A1 KR 2009006339 W KR2009006339 W KR 2009006339W WO 2010093108 A1 WO2010093108 A1 WO 2010093108A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage device
block
super
cache
target block
Prior art date
Application number
PCT/KR2009/006339
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 CN2009801567030A priority Critical patent/CN102317926A/zh
Priority to US13/201,362 priority patent/US20110302365A1/en
Priority to EP09840098A priority patent/EP2397946A4/en
Priority to JP2011550046A priority patent/JP2012517644A/ja
Publication of WO2010093108A1 publication Critical patent/WO2010093108A1/ko

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60QARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
    • B60Q9/00Arrangement or adaptation of signal devices not provided for in one of main groups B60Q1/00 - B60Q7/00, e.g. haptic signalling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry

Definitions

  • a storage system having an access speed as a cache and a storage device having a large storage space at the same time provide a sufficient storage space while improving the access speed. to provide.
  • the caching method of a storage system using a fast storage device as a cache according to an embodiment of the present invention, the number of times of access to a super block including a target block among at least one block stored in RAM or the content including the super block. Storing the target block or the super block including the target block in a second storage device according to the number of times the file is accessed, and if there are a plurality of user sessions, the super block including the target block used in a specific user session. Storing the target block or the super block including the target block in the second storage device depending on whether at least one super block adjacent to the block is used in the at least one remaining user session.
  • the storage system may provide an optimized mechanism such as appropriately selecting a cached block or a super block, or appropriately deleting a cached block or a super block.
  • FIG. 4 is an operation flowchart showing a reading method according to an embodiment of the present invention.
  • FIG. 1 is a view showing a storage system according to an embodiment of the present invention.
  • the storage system receives an input / output request from an application 110, an input / output scheduler 120, a cache file controller 130, a first storage device 150, and a first storage device 150. 2 storage device 140.
  • the storage system may be used for various purposes, such as being used for a server for streaming multimedia content to a plurality of users.
  • large storage devices such as hard disk drives
  • high-speed storage devices such as solid-state drives require data to be read at once. If the size of is greater than a certain level (for example, 256 Kbytes), the performance is hardly improved.
  • the second storage device 140 manages cache files including a plurality of blocks in units of blocks, and the first storage device 150 has n blocks (where n is a natural number). Content files are managed in units of super blocks, which are collections.
  • the input / output scheduler 120 determines whether the specific block is stored in the RAM (not shown in FIG. 1) and in the second storage device 140. Check whether a specific block is stored. In particular, the input / output scheduler 120 may determine whether a specific block (or a super block including the specific block) exists in the RAM or the second storage device 140 using the content super block mapping table 170. .
  • the input / output scheduler 120 reads the specific block from RAM. In addition, if a specific block is cached in the second storage device 140, the input / output scheduler 120 reads the specific block using the cache file controller 130. At this time, the cache file controller 130 refers to the cache file block mapping table 160 in which location information of a specific block is recorded. In addition, when a specific block exists only in the first storage device 150, the input / output scheduler 120 reads the super block including the specific block from the first storage device 150 and then returns the super block.
  • the second storage device 220 (eg, a solid state drive) stores a plurality of cache files.
  • the cache files are composed of at least one block, and the second storage device 220 manages the cache files in block units.
  • the second storage device 220 caches at least one super block or at least one block belonging to a plurality of content files stored in the first storage device 210, thereby improving the input / output speed of the storage system.
  • FIG. 3 is a diagram illustrating a mapping table and the like according to an embodiment of the present invention.
  • a contents super block mapping table (CSBMT) 310 is a table for managing currently used content files among content files stored in a large first storage device.
  • each item of the content super block mapping table 310 includes super block information that is information about a corresponding super block.
  • the super block information includes information about whether the super block is cached by the second storage device, a cache flag, information about a cache file including the super block, a cache file number, and a number of times the super block is the cache file. Contains information about the block number stored in the block.
  • the super block information includes a super block buffer, which is information about a super block buffer, which is a memory buffer allocated from RAM, while a corresponding super block is used, buffer status which is information on the status of the super block buffer, and access time of the corresponding super block. Access time, which is information about information, Access count, which is information on the number of accesses of the corresponding super block, and Reference count, which is information on whether the corresponding super block is used in all user sessions, are further included.
  • the memory buffer allocated from RAM while the corresponding super block is used has a size of the super block
  • 'super block buffer' is a pointer to the memory buffer.
  • the 'super block buffer' is initially initialized to NULL and allocated when there is a read request for that super block.
  • the 'super block buffer' remains allocated while the super block is in use.
  • the contents of the super block are cached by the second storage device. It is recovered.
  • the location information of the super block in the second storage device is calculated based on the cache file number and the block number.
  • a Cache File Block Mapping Table is a table for managing cache files existing in a second fast storage device and managed by a cache file controller.
  • Each of the indices of the rows of the cache file block mapping table 330 is a pointer to each of the cache files, and each of the items in the cache file block mapping table 330 is used as a flag indicating whether the block is currently cached. do.
  • the present invention may minimize the amount of memory required by processing each of the items in the cache file block mapping table 330 in units of bits.
  • each of the items in the cache file block mapping table 330 may be used as location information regarding where the plurality of blocks cached in the second storage device exist. If the target block is cached by the second storage device and the application requests to read the target block, an item corresponding to the target block among the items in the cache file block mapping table 330 may indicate a set state. At this time, the cache file controller may determine the location information of the target block using the cache file block mapping table 330 and read the target block from the second storage device.
  • reference numeral 340 denotes a content super block reference table (CSBRT).
  • CSBRT content super block reference table
  • the content super block reference table indicates information on whether super blocks belonging to content files currently being used in all user sessions are used.
  • Each of the items in the table is generated based on a reference count included in the super block information of each of the super blocks, and has a bit-wise structure.
  • FIG. 4 is an operation flowchart showing a reading method according to an embodiment of the present invention.
  • the storage system receives a read request for a target block from an application (S410).
  • the storage system determines whether the target block exists in the RAM (S420). If the target block does not exist in the RAM, the storage system according to an embodiment of the present invention determines whether the target block is cached in the second storage device (S430).
  • the storage system may determine whether the target block exists in the RAM and the second storage device using the super block information of the super block including the target block from the content super block mapping table. More specifically, the storage system may determine whether a target block exists in memory based on whether a super block buffer in super block information of a super block including the target block is allocated or a value of a reference count. Based on the value of the flag, it may be determined whether the target block is cached in the second storage device.
  • the storage system transmits a read request for the super block including the target block to the hard disk drive (S440).
  • a memory buffer equal to the size of the super block is allocated from RAM, and the reference count for the memory buffer is increased, and then 'call again' is returned so that the application can request the target block again.
  • the read request is received from the application again, since the super block including the target block exists in the RAM, the super block including the target block is returned from the RAM.
  • the storage system uses the cache file block mapping table or the super block information of the super block including the target block to the second storage device.
  • a read request is transmitted. That is, the location information of the target block may be grasped from the cache file block mapping table or the cache file number and block number of the super block information, and thus the storage system may read the target block from the second storage device.
  • a memory buffer corresponding to the size of the super block including the target block is allocated from the RAM, and the read of the target block in the corresponding cache file of the second storage device is performed.
  • the request is passed to the second storage device.
  • the reference count and the access count increase, and the access time is recorded. After that, 'call again' is returned.
  • the storage system reads the target block from the RAM (S460).
  • the storage system determines whether the target block is cached by the second storage device (S470). If the target block is cached by the second storage device, the process of the read operation ends. However, when the target block is not cached by the second storage device, the storage system according to an embodiment of the present invention caches the target block in the second storage device and then terminates the process.
  • FIG. 5 is an operation flowchart showing a caching method according to an embodiment of the present invention.
  • the storage system may access the target block or the superblock including the target block to determine whether to cache the content file including the target block and the super block ( It is determined whether the access count is greater than or equal to the threshold value (S510). Since the number of accesses of the content file is high, it means that the probability of being read again is high. Accordingly, the present invention may determine whether to cache the target block based on the number of accesses of the content file.
  • the storage system caches the target block or the super block to the second storage device (S520).
  • the storage system determines whether to cache the target block or the super block by determining whether the previous super block of the target block is used in another user session (S530).
  • cache files 1 and 2 include super blocks of d, e, and f.
  • cache file 1 includes a, b, c, and cache file 2 include super blocks of d, e, and f.
  • the present invention can cache the super block b used by user A, taking into account that user B is more likely to use super block b in the future.
  • the present invention may not cache the super block b used by the user A.
  • the present invention may determine whether the previous super block of the super block including the target block is used in another user session through the CSBRT.
  • the present invention may determine to cache the super block including the target block. have.
  • the storage system is applied to the second storage device.
  • the super block including the block or the target block is cached (S540).
  • the storage system when the storage system does not cache the target block or the super block including the target block, the storage system recovers the target block or the super block including the target block from the memory (S550).
  • FIG. 6 is a flowchart illustrating a process of updating a cache file block mapping table when a block belonging to a used target content file is to be deleted according to an embodiment of the present invention.
  • the storage system determines whether a block belonging to the completed target content file exists in the second storage device (S610). That is, the storage system determines whether there is a cached block or a super block among blocks or super blocks belonging to the used target content file by using the CSBMT.
  • the storage system updates the CFBMT instead of deleting the cached block (hereinafter, the block to be deleted) or the cached super block (the block to be deleted) from the second storage device ( S620). That is, the present invention updates the CFBMT by resetting an item corresponding to the block to be deleted or the block to be deleted from the CFBMT.
  • the storage system determines whether the block to be deleted or the super block buffer of the block to be deleted exists in the RAM (S630). If the block to be deleted or the super block buffer of the block to be deleted exists in the RAM, the super block buffer is recovered (S640).
  • FIG. 7 is a flowchart illustrating a process of updating a cache file block mapping table when a block belonging to a target content file currently being used is deleted, according to an embodiment of the present invention.
  • the storage system determines whether a super block buffer corresponding to a super block to be deleted (or a corresponding super block) is currently used based on CSBMT (S710). If the super block buffer corresponding to the super block is used, the process ends.
  • the storage system determines whether there is a cached block among the blocks of the corresponding super block (S720). At this time, the storage system may determine using the CSBMT.
  • the storage system determines whether the cached block among the blocks of the super block can be deleted (S730). If erasable, CFBMT is updated instead of deleting the cached block (S740).
  • the methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • program instructions include machine code, such as produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Human Computer Interaction (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템이 제공된다. 스토리지 시스템은 대용량의 제1 저장 장치, 고속의 제2 저장 장치 및 램을 포함한다. 여기서, 대용량의 제1 저장 장치는 하드 디스크 드라이브이고, 고속의 제2 저장 장치는 고체 상태 드라이브일 수 있다. 또한, 고속의 제2 저장 장치는 캐쉬로 사용된다. 그리고, 제1 저장 장치는 수퍼 블록 단위로 컨텐츠 파일들을 관리하며, 제2 저장 장치는 블록 단위로 캐쉬 파일들을 관리한다.

Description

고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
본 발명의 실시예들은 스토리지 시스템에 적용될 수 있는 기술에 관한 것으로, 특히, 멀티미디어 컨텐츠를 복수의 사용자들로 스트리밍하는 서버를 위한 스토리지 시스템에 관한 것이다.
멀티미디어 컨텐츠를 실시간으로 전송하는 스트리밍 기술에 대한 관심이 증가하고 있다. 스트리밍 서버는 스토리지 시스템에 저장된 컨텐츠 파일들을 복수의 사용자들로 실시간으로 전송함으로써, 사용자들에게 요구되는 저장 공간의 크기를 최소화할 수 있다.
스트리밍 서버의 스토리지 시스템은 쓰기 동작보다 읽기 동작을 자주 수행하므로, 읽기 동작의 속도를 높일 필요가 있다. 뿐만 아니라, 스토리지 시스템은 대용량의 멀티미디어 컨텐츠를 저장하므로, 대용량의 저장 공간을 요구한다. 따라서, 읽기 동작의 속도를 높이면서도 대용량의 저장 공간을 확보할 수 있는 스토리지 시스템을 개발하는 것이 중요하다.
한편, 빠른 접근 속도(또는, 입/출력 속도)를 지원할 수 있는 고체 상태 드라이브(Solid State Drive, SSD)에 대한 관심도 크게 증가하고 있다. 스토리지 시스템에 빠른 접근 속도를 지원하는 고체 상태 드라이브를 사용할 경우, 스트리밍 서버는 우수한 품질로 스트리밍 서비스를 제공할 수 있다. 다만, 고체 상태 드라이브는 비교적 작은 저장 용량을 가지므로, 고체 상태 드라이브를 스트리밍 서버에 그대로 설치하는 것은 문제가 될 수 있다.
따라서, 빠른 접근 속도를 지원하는 저장 장치를 사용하면서도 대용량의 저장 공간을 가질 수 있는 스토리지 시스템에 대한 기술이 필요하다.
본 발명의 일실시예에 따른 스토리지 시스템은 접근 속도를 갖는 저장 장치를 캐쉬로 사용하고, 동시에 대용량의 저장 공간을 갖는 저장 장치를 사용함으로써 충분한 저장 공간을 제공하면서도 접근 속도를 향상시킬 수 있는 기술을 제공한다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템에서, 대용량의 저장 공간을 갖는 저장 장치는 수퍼 블록 단위로 컨텐츠 파일들을 관리하고, 빠른 접근 속도를 갖는 저장 장치는 블록 단위로 캐쉬 파일들을 관리함으로써, 읽기 동작의 속도를 향상시킬 수 있는 기술을 제공한다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 캐싱되는 블록 또는 수퍼 블록을 적절히 선택하거나, 캐싱된 블록 또는 수퍼 블록을 적절히 삭제하는 등 최적화된 메커니즘을 제공한다.
본 발명의 일실시예에 따른 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템은 복수의 블록들을 포함하는 복수의 컨텐츠 파일들을 저장하고, 상기 복수의 블록들을 미리 설정된 크기를 가지는 복수의 수퍼 블록들로 관리하는 제1 저장 장치, 상기 복수의 수퍼 블록들 중 적어도 하나의 수퍼 블록을 캐쉬(cache)하고, 블록 단위로 상기 적어도 하나의 수퍼 블록을 관리하는 제2 저장 장치 및 상기 복수의 블록들 중 적어도 하나의 블록을 저장하는 램(Random Access Memory, RAM)를 포함한다.
이 때, 스토리지 시스템은 대상 블록에 대한 어플리케이션의 읽기 요청에 응답하여 상기 대상 블록이 상기 제2 저장 장치 또는 상기 램에 저장되었는지 여부를 체크하고, 상기 체크 결과에 따라 상기 제1 저장 장치, 상기 제2 저장 장치 또는 상기 램 중 적어도 하나로부터 추출된 상기 대상 블록을 반환하는 입/출력 스케쥴러를 더 포함할 수 있다. 특히, 스토리지 시스템은 상기 제2 저장 장치에 캐쉬된 적어도 하나의 수퍼 블록들에 포함된 복수의 블록들에 대한 위치 정보가 기록된 캐쉬 파일 블록 맵핑 테이블을 이용하여 상기 제2 저장 장치로부터 상기 대상 블록을 읽는 캐쉬 파일 컨트롤러를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 읽기 방법은 대상 블록에 대한 어플리케이션의 읽기 요청을 수신하는 단계, 상기 대상 블록이 제2 저장 장치 또는 상기 램에 저장되었는지 여부를 체크하는 단계 및 상기 체크 결과에 따라 제1 저장 장치, 상기 제2 저장 장치 또는 상기 램 중 적어도 하나로부터 추출된 상기 대상 블록을 반환하는 단계를 포함한다.
또한, 본 발명의 일실시예에 따른 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 캐싱 방법은 램에 저장된 적어도 하나의 블록 중 대상 블록을 포함하는 수퍼 블록의 접근 횟수 또는 상기 수퍼 블록을 포함하는 컨텐츠 파일의 접근 횟수에 따라 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 저장하는 단계 및 복수의 사용자 세션들이 존재하는 경우, 특정 사용자 세션에서 사용된 상기 대상 블록을 포함하는 수퍼 블록과 인접한 적어도 하나의 수퍼 블록이 적어도 하나의 나머지 사용자 세션에서 사용되는지 여부에 따라 상기 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 저장하는 단계를 포함한다.
본 발명의 일실시예에 따른 스토리지 시스템은 접근 속도를 갖는 저장 장치를 캐쉬로 사용하고, 동시에 대용량의 저장 공간을 갖는 저장 장치를 사용함으로써 충분한 저장 공간을 제공하면서도 접근 속도를 향상시킬 수 있는 기술을 제공할 수 있다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템에서, 대용량의 저장 공간을 갖는 저장 장치는 수퍼 블록 단위로 컨텐츠 파일들을 관리하고, 빠른 접근 속도를 갖는 저장 장치는 블록 단위로 캐쉬 파일들을 관리함으로써, 읽기 동작의 속도를 향상시킬 수 있는 기술을 제공할 수 있다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 캐싱되는 블록 또는 수퍼 블록을 적절히 선택하거나, 캐싱된 블록 또는 수퍼 블록을 적절히 삭제하는 등 최적화된 메커니즘을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 스토리지 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 하드 디스크 드라이브, 고체 상태 드라이브 및 램을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 맵핑 테이블 등을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 읽기 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 캐싱 방법을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따라, 사용이 완료된 대상 컨텐츠 파일에 속하는 블록을 삭제하고자 하는 경우, 캐쉬 파일 블록 맵핑 테이블을 업데이트하는 과정을 나타낸 동작 흐름도이다.
도 7은 본 발명의 일실시예에 따라, 현재 사용되고 있는 대상 컨텐츠 파일에 속하는 블록을 삭제하고자 하는 경우, 캐쉬 파일 블록 맵핑 테이블을 업데이트하는 과정을 나타낸 동작 흐름도이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 스토리지 시스템을 나타낸 도면이다.
도 1을 참조하면, 스토리지 시스템은 어플리케이션(110)으로부터 입출력 요청(I/O Request)를 수신하며, 입/출력 스케쥴러(120), 캐쉬 파일 컨트롤러(130), 제1 저장 장치(150) 및 제2 저장 장치(140)를 포함한다. 이 때, 스토리지 시스템은 멀티미디어 컨텐츠를 복수의 사용자들로 스트리밍하는 서버를 위해 사용되는 등 다양한 용도로 사용될 수 있다.
여기서, 제1 저장 장치(150)의 용량은 제2 저장 장치(140)의 용량보다 크고, 제2 저장 장치(140)의 접근 속도는 제1 저장 장치(150)의 접근 속도보다 크다. 예를 들어, 제1 저장 장치(150)는 하드 디스크 드라이브일 수 있고, 제2 저장 장치(140)은 고체 상태 드라이브일 수 있다.
또한, 제1 저장 장치(150)는 복수의 블록들을 포함하는 복수의 컨텐츠 파일들을 저장하고, 복수의 컨텐츠 파일들을 수퍼 블록 단위로 관리한다. 반면에, 제2 저장 장치(140)는 제1 저장 장치(150)에 저장된 복수의 수퍼 블록들 중 적어도 하나의 수퍼 블록 또는 블록을 캐쉬하여 캐쉬 파일들을 생성한다. 그리고, 제2 저장 장치(140)는 캐쉬 파일들을 블록 단위로 관리한다.
제2 저장 장치(140)가 수퍼 블록 또는 블록을 캐쉬하는 알고리즘, 캐쉬된 수퍼 블록 또는 블록을 관리하는 알고리즘에 대해서는 아래에서 상세히 설명하기로 한다.
일반적으로, 하드 디스크 드라이브와 같은 대용량 저장 장치는 한 번에 읽기 요청하는 데이터의 크기가 클수록 전체적으로 높은 성능을 나타내는 특성을 갖는 반면, 고체 상태 드라이브와 같은 고속의 저장 장치는 한 번에 읽기 요청하는 데이터의 크기가 특정 수준(예를 들어, 256Kbytes) 이상이면, 성능이 거의 향상되지 않는 특성을 갖는다.
이러한 점을 고려하여, 본 발명에 따른 제2 저장 장치(140)는 복수의 블록들을 포함하는 캐쉬 파일들을 블록 단위로 관리하며, 제1 저장 장치(150)는 n (n은 자연수임)개의 블록들의 집합인 수퍼 블록 단위로 컨텐츠 파일들을 관리한다.
입/출력 스케쥴러(120)는 어플리케이션(110)의 읽기 요청과 관련된 처리를 수행한다. 이 때, 입/출력 스케쥴러(120)는 어플리케이션(110)이 제1 저장 장치(150) 및 제2 저장 장치(140)를 하나의 논리적 저장 장치로 인식하도록 제1 저장 장치(150) 및 제2 저장 장치(140)를 관리한다.
어플리케이션(110)으로부터 특정 블록에 대한 읽기 요청이 수신된 경우, 입/출력 스케쥴러(120)는 램(도 1에 도시되지 않음)에 특정 블록이 저장되어 있는지 여부 및 제2 저장 장치(140)에 특정 블록이 저장되어 있는지 여부를 검사한다. 특히, 입/출력 스케쥴러(120)는 컨텐츠 수퍼 블록 맵핑 테이블(170)을 이용하여 특정 블록(또는 특정 블록을 포함하는 수퍼 블록)이 램 또는 제2 저장 장치(140)에 존재하는지 판단할 수 있다.
만약, 특정 블록이 램에 존재한다면, 입/출력 스케쥴러(120)는 램으로부터 특정 블록을 읽는다. 또한, 제2 저장 장치(140)에 특정 블록이 캐쉬되어 있다면, 입/출력 스케쥴러(120)는 캐쉬 파일 컨트롤러(130)를 이용하여 특정 블록을 읽는다. 이 때, 캐쉬 파일 컨트롤러(130)는 특정 블록의 위치 정보가 기록된 캐쉬 파일 블록 맵핑 테이블(160)을 참조한다. 또한, 특정 블록이 제1 저장 장치(150)에만 존재하는 경우, 입/출력 스케쥴러(120)는 특정 블록을 포함하는 수퍼 블록을 제1 저장 장치(150)로부터 읽은 후, 수퍼 블록을 반환한다.
도 2는 본 발명의 일실시예에 따른 하드 디스크 드라이브, 고체 상태 드라이브 및 램을 도시한 도면이다.
도 2를 참조하면, 대용량의 제1 저장 장치(예를 들어, 하드 디스크 드라이브, 210)는 복수의 컨텐츠 파일들을 저장한다. 이 때, 제1 저장 장치(210)는 수퍼 블록 단위로 복수의 컨텐츠 파일들을 관리하며, 특정 블록에 대한 읽기 요청이 있는 경우, 특정 블록을 포함하는 수퍼 블록을 반환한다.
제2 저장 장치(220, 예를 들어, 고체 상태 드라이브)는 복수의 캐쉬 파일들을 저장한다. 캐쉬 파일들은 적어도 하나의 블록으로 구성되며, 제2 저장 장치(220)는 블록 단위로 캐쉬 파일들을 관리한다. 제2 저장 장치(220)는 제1 저장 장치(210)에 저장된 복수의 컨텐츠 파일들에 속하는 적어도 하나의 수퍼 블록 또는 적어도 하나의 블록을 캐쉬함으로써, 스토리지 시스템의 입/출력 속도를 향상시킨다.
또한, 램(230)은 현재 어플리케이션에 의해 사용되고 있는 블록이 로딩된다. 결국, 본 발명은 캐싱을 위하여 제2 저장 장치(220) 및 램(230)을 사용하는 구조를 가짐으로써, 스트리밍 서버를 이용하는 어플리케이션 환경에서 자주 사용되는 데이터를 효율적으로 캐싱할 수 있는 기술을 제공한다. 특히, 본 발명은 캐싱을 위하여 고속의 제2 저장 장치(220)를 사용함으로써, 램(230) 공간을 효율적으로 사용할 수 있다.
도 3은 본 발명의 일실시예에 따른 맵핑 테이블 등을 나타낸 도면이다.
도 3을 참조하면, 컨텐츠 수퍼 블록 맵핑 테이블(Contents Super Block Mapping Table, CSBMT, 310)은 대용량의 제1 저장 장치에 저장된 컨텐츠 파일들 중 현재 사용되고 있는 컨텐츠 파일들을 관리하기 위한 테이블이다.
도면 부호 320을 참조하면, 컨텐츠 수퍼 블록 맵핑 테이블(310)의 항목들 각각은 해당 수퍼 블록에 대한 정보인 수퍼 블록 정보를 포함한다. 이 때, 수퍼 블록 정보는 해당 수퍼 블록이 제2 저장 장치에 의해 캐쉬되었는지 여부에 대한 정보 cache flag, 해당 수퍼 블록을 포함하는 캐쉬 파일에 대한 정보 cache file number, 해당 수퍼 블록이 캐쉬 파일의 몇 번째 블록에 저장되었는지에 대한 정보 block number를 포함한다. 또한, 수퍼 블록 정보는 해당 수퍼 블록이 사용되는 동안 램으로부터 할당되는 메모리 버퍼인 수퍼 블록 버퍼에 대한 정보인 super block buffer, 수퍼 블록 버퍼의 상태에 관한 정보인 buffer status, 해당 수퍼 블록의 접근 시간에 대한 정보인 Access time, 해당 수퍼 블록의 접근 횟수에 관한 정보인 Access count, 해당 수퍼 블록이 모든 사용자 세션들에서 사용되고 있는지 여부에 대한 정보인 Reference count를 더 포함한다.
여기서, 해당 수퍼 블록이 사용되는 동안 램으로부터 할당되는 메모리 버퍼는 수퍼 블록의 사이즈를 가지며, 'super block buffer'를 상기 메모리 버퍼에 대한 포인터이다. 'super block buffer'는 최초에 NULL로 초기화되고, 해당 수퍼 블록에 대한 읽기 요청이 있는 경우 할당된다. 'super block buffer'는 해당 수퍼 블록이 사용 중인 동안 할당된 채로 존재하다가, 해당 수퍼 블록의 사용이 완료되면, 해당 수퍼 블록의 내용은 제2 저장 장치에 의해 캐쉬되고, 메모리 버퍼인 수퍼 블록 버퍼는 회수된다. 또한, 수퍼 블록이 캐싱된 경우, 제2 저장 장치에서 수퍼 블록의 위치 정보는 cache file number 및 block number를 기초로 계산된다.
도면 부호 330을 참조하면, 캐쉬 파일 블록 맵핑 테이블(330, Cache File Block Mapping Table, CFBMT)은 고속의 제2 저장 장치에 존재하는 캐쉬 파일을 관리하기 위한 테이블로서 캐쉬 파일 컨트롤러에 의해 관리된다. 캐쉬 파일 블록 맵핑 테이블(330)의 행들의 인덱스들 각각은 캐쉬 파일들 각각을 가리키는 포인터이고, 캐쉬 파일 블록 맵핑 테이블(330) 내의 항목들 각각은 해당 블록이 현재 캐싱되어 있는지 여부를 나타내는 플래그로 활용된다. 특히, 본 발명은 캐쉬 파일 블록 맵핑 테이블(330) 내의 항목들 각각을 비트(bit) 단위로 처리하여 요구되는 메모리의 용량을 최소화할 수 있다.
이 때, 캐쉬 파일 블록 맵핑 테이블(330) 내의 항목들 각각은 제2 저장 장치에 캐쉬된 복수의 블록들이 어디에 존재하는지에 대한 위치 정보로 사용될 수 있다. 만약, 대상 블록이 제2 저장 장치에 의해 캐쉬되었고, 어플리케이션이 대상 블록을 읽기 요청한 경우, 캐쉬 파일 블록 맵핑 테이블(330) 내의 항목들 중 대상 블록에 대응하는 항목은 셋팅된 상태를 나타낼 것이다. 이 때, 캐쉬 파일 컨트롤러는 캐쉬 파일 블록 맵핑 테이블(330)을 이용하여 대상 블록의 위치 정보를 파악하고, 대상 블록을 제2 저장 장치로부터 읽을 수 있다.
또한, 도면 부호 340은 컨텐츠 수퍼 블록 참조 테이블(Content Super Block Reference Table, CSBRT)을 나타낸다. 복수의 사용자 세션들이 스토리지 시스템으로부터 스트리밍 서비스를 제공받는 경우, 컨텐츠 수퍼 블록 참조 테이블은 모든 사용자 세션들에서 현재 사용되고 있는 컨텐츠 파일들에 속하는 수퍼 블록들이 사용되고 있는지 여부에 대한 정보를 나타내며, 컨텐츠 수퍼 블록 참조 테이블 내의 항목들 각각은 수퍼 블록들 각각의 수퍼 블록 정보에 포함된 Reference count를 기초로 생성되며, 비트 단위의 구조를 갖는다.
도 4는 본 발명의 일실시예에 따른 읽기 방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 스토리지 시스템은 어플리케이션으로부터 대상 블록에 대한 읽기 요청을 수신한다(S410).
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록이 램에 존재하는지 여부를 판단한다(S420). 만약, 대상 블록이 램에 존재하지 않는다면, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록이 제2 저장 장치에 캐쉬되어 있는지 여부를 판단한다(S430).
스토리지 시스템은 컨텐츠 수퍼 블록 맵핑 테이블로부터 대상 블록을 포함하는 수퍼 블록의 수퍼 블록 정보를 이용하여 대상 블록이 램에 존재하는지 여부 및 제2 저장 장치에 존재하는지 여부를 판단할 수 있다. 보다 구체적으로, 스토리지 시스템은 대상 블록을 포함하는 수퍼 블록의 수퍼 블록 정보에 있는 super block buffer가 할당되었는지 여부 또는 Reference count의 값을 기초로 대상 블록이 메모리에 존재하는지 여부를 판단할 수 있고, cache flag의 값을 기초로 대상 블록이 제2 저장 장치에 캐싱되어 있는지 여부를 판단할 수 있다.
대상 블록이 제1 저장 장치인 하드 디스크 드라이브에만 존재하는 경우, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록을 포함하는 수퍼 블록에 대한 읽기 요청을 하드 디스크 드라이브에 전달한다(S440). 이 때, 램으로부터 수퍼 블록의 사이즈만큼의 메모리 버퍼가 할당되고, 메모리 버퍼에 대한 reference count가 증가된 후, 어플리케이션이 다시 대상 블록을 요청할 수 있도록 'call again'을 리턴한다. 다시 어플리케이션으로부터 읽기 요청이 수신된 경우, 대상 블록을 포함하는 수퍼 블록이 램에 존재하므로, 램으로부터 대상 블록을 포함하는 수퍼 블록이 리턴된다.
대상 블록이 제2 저장 장치에 존재하는 경우, 본 발명의 일실시예에 따른 스토리지 시스템은 캐쉬 파일 블록 맵핑 테이블 또는 대상 블록을 포함하는 수퍼 블록의 수퍼 블록 정보를 이용하여 제2 저장 장치로 대상 블록에 대한 읽기 요청을 전송한다(S450). 즉, 캐쉬 파일 블록 맵핑 테이블 또는 수퍼 블록 정보의 cache file number, block number로부터 대상 블록의 위치 정보가 파악될 수 있으며, 이에 따라 스토리지 시스템은 대상 블록을 제2 저장 장치로부터 읽을 수 있다.
보다 구체적으로, 대상 블록이 제2 저장 장치에 존재하는 경우, 램으로부터 대상 블록을 포함하는 수퍼 블록의 사이즈만큼의 메모리 버퍼가 할당되고, 제2 저장 장치의 해당 캐쉬 파일에 있는 대상 블록에 대한 읽기 요청이 제2 저장 장치로 전달된다. 이 때, reference count 및 access count가 증가하며, access time이 기록된다. 그리고 난 후, 'call again'이 리턴된다.
대상 블록이 램에 존재하는 경우, 본 발명의 일실시예에 따른 스토리지 시스템은 램으로부터 대상 블록을 읽는다(S460).
그리고 난 후, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록이 제2 저장 장치에 의해 캐싱된 것인지 여부를 판단한다(S470). 대상 블록이 제2 저장 장치에 의해 캐싱된 경우, 읽기 동작의 프로세스는 종료된다. 다만, 대상 블록이 제2 저장 장치에 의해 캐싱되지 않은 경우, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록을 제2 저장 장치에 캐싱한 후, 프로세스를 종료한다.
이 때, 대상 블록을 제2 저장 장치에 캐싱할 것인지 여부에 대한 알고리즘은 후술하기로 한다.
도 5는 본 발명의 일실시예에 따른 캐싱 방법을 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록 또는 대상 블록을 포함하는 수퍼 블록을 캐싱할 것인지 여부를 판단하기 위하여 대상 블록 및 수퍼 블록을 포함하는 컨텐츠 파일의 접근 횟수(access count)가 임계값 이상인지 여부를 판단한다(S510). 컨텐츠 파일의 접근 횟수가 높다는 것은 다시 읽기 요청될 확률이 높다는 것을 의미하므로, 본 발명은 컨텐츠 파일의 접근 횟수에 기반하여 대상 블록을 캐싱할 것인지 여부를 결정할 수 있다.
컨텐츠의 파일의 접근 횟수가 임계값 이상인 경우, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록 또는 수퍼 블록을 제2 저장 장치에 캐싱한다(S520).
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 다른 사용자 세션에서 대상 블록의 이전 수퍼 블록이 사용되고 있는지 여부를 판단함으로써, 대상 블록 또는 수퍼 블록을 캐싱할 것인지 여부를 결정한다(S530).
예를 들어, 사용자 A, B가 있고, 캐쉬 파일 1, 2가 존재하고, 캐쉬 파일 1은 a, b, c, 캐쉬 파일 2는 d, e, f의 수퍼 블록을 포함한다고 가정한다. 사용자 A가 사용하고 있는 b를 캐싱할지 여부를 결정하기 위하여, 사용자 B가 어떤 수퍼 블록을 사용하고 있는지 여부를 고려할 수 있다. 즉, 사용자 B가 수퍼 블록 a를 사용하고 있다면, 사용자 B는 앞으로 수퍼 블록 b를 사용할 확률이 높다는 것을 예측할 수 있다. 이러한 경우, 본 발명은 사용자 B가 앞으로 수퍼 블록 b를 사용할 확률이 높다는 점에 착안하여 사용자 A에 의해 사용된 수퍼 블록 b를 캐싱할 수 있다. 다만, 사용자 B가 캐쉬 파일 2의 수퍼 블록 e를 사용하고 있다면, 수퍼 블록 b를 사용할 확률이 높지 않으므로, 본 발명은 사용자 A에 의해 사용된 수퍼 블록 b를 캐싱하지 않을 수 있다.
이 때, 본 발명은 다른 사용자 세션에서 대상 블록을 포함하는 수퍼 블록의 이전 수퍼 블록이 사용되고 있는지 여부를 CSBRT를 통해 파악할 수 있다. CSBRT의 항목들 중 이전 수퍼 블록에 대응하는 항목이 셋팅된 상태인 경우, 이전 수퍼 블록이 다른 사용자 세션에 의해 사용되는 것으로 의미하므로, 본 발명은 대상 블록을 포함하는 수퍼 블록을 캐싱하는 것으로 결정할 수 있다.
또한, CSBRT를 기초로 판단한 결과, 대상 블록을 포함하는 수퍼 블록의 이전 수퍼 블록이 다른 사용자 세션들에 의해 사용되고 있는 것으로 밝혀지면, 본 발명의 일실시예에 따른 스토리지 시스템은 제2 저장 장치에 대상 블록 또는 대상 블록을 포함하는 수퍼 블록을 캐싱한다(S540).
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 대상 블록 또는 대상 블록을 포함하는 수퍼 블록을 캐싱하지 않는 경우, 메모리로부터 대상 블록 또는 대상 블록을 포함하는 수퍼 블록을 회수한다(S550).
도 6은 본 발명의 일실시예에 따라, 사용이 완료된 대상 컨텐츠 파일에 속하는 블록을 삭제하고자 하는 경우, 캐쉬 파일 블록 맵핑 테이블을 업데이트하는 과정을 나타낸 동작 흐름도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 스토리지 시스템은 사용이 완료된 대상 컨텐츠 파일에 속하는 블록이 제2 저장 장치에 존재하는지 여부를 판단한다(S610). 즉, 스토리지 시스템은 CSBMT를 이용하여 사용이 완료된 대상 컨텐츠 파일에 속하는 블록들 또는 수퍼 블록들 중 캐쉬된 블록 또는 수퍼 블록이 존재하는지 여부를 판단한다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 캐쉬된 블록(이하, 삭제 대상 블록) 또는 캐쉬된 수퍼 블록(삭제 대상 수퍼 블록)을 제2 저장 장치로부터 삭제하는 대신에, CFBMT를 업데이트한다(S620). 즉, 본 발명은 CFBMT에서 삭제 대상 블록 또는 삭제 대상 수퍼 블록에 대응하는 항목을 리셋함으로써, CFBMT를 업데이트한다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 삭제 대상 블록 또는 삭제 대상 수퍼 블록의 수퍼 블록 버퍼가 램에 존재하는지 여부를 판단한다(S630). 만약, 삭제 대상 블록 또는 삭제 대상 수퍼 블록의 수퍼 블록 버퍼가 램에 존재한다면, 수퍼 블록 버퍼를 회수한다(S640).
도 7은 본 발명의 일실시예에 따라, 현재 사용되고 있는 대상 컨텐츠 파일에 속하는 블록을 삭제하고자 하는 경우, 캐쉬 파일 블록 맵핑 테이블을 업데이트하는 과정을 나타낸 동작 흐름도이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 스토리지 시스템은 CSBMT를 기초로 삭제 대상 수퍼 블록(또는 해당 수퍼 블록)에 대응하는 수퍼 블록 버퍼가 현재 사용되고 있는지 여부를 판단한다(S710). 만약, 해당 수퍼 블록에 대응하는 수퍼 블록 버퍼가 사용되고 있다면, 프로세스는 종료된다.
또한, 본 발명의 일실시예에 따른 스토리지 시스템은 해당 수퍼 블록의 블록들 중 캐쉬된 블록이 존재하는지 여부를 판단한다(S720). 이 때, 스토리지 시스템은 CSBMT를 이용하여 판단할 수 있다.
또한, 또한, 본 발명의 일실시예에 따른 스토리지 시스템은 해당 수퍼 블록의 블록들 중 캐쉬된 블록을 삭제할 수 있는지 여부를 판단한다(S730). 삭제 가능한 경우, 캐쉬된 블록을 삭제하는 대신에 CFBMT를 업데이트한다(S740).
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 복수의 블록들을 포함하는 복수의 컨텐츠 파일들을 저장하고, 상기 복수의 블록들을 미리 설정된 크기를 가지는 복수의 수퍼 블록들로 관리하는 제1 저장 장치;
    상기 복수의 수퍼 블록들 중 적어도 하나의 수퍼 블록을 캐쉬(cache)하고, 블록 단위로 상기 적어도 하나의 수퍼 블록을 관리하는 제2 저장 장치; 및
    상기 복수의 블록들 중 적어도 하나의 블록을 저장하는 램(Random Access Memory, RAM)
    을 포함하고,
    상기 제1 저장 장치의 용량은 상기 제2 저장 장치의 용량보다 크거나, 상기 제2 저장 장치의 접근 속도는 상기 제1 저장 장치의 접근 속도보다 높은 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  2. 제1항에 있어서,
    대상 블록에 대한 어플리케이션의 읽기 요청에 응답하여 상기 대상 블록이 상기 제2 저장 장치 또는 상기 램에 저장되었는지 여부를 체크하고, 상기 체크 결과에 따라 상기 제1 저장 장치, 상기 제2 저장 장치 또는 상기 램 중 적어도 하나로부터 추출된 상기 대상 블록을 반환하는 입/출력 스케쥴러
    를 더 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  3. 제2항에 있어서,
    상기 입/출력 스케쥴러는
    상기 어플리케이션이 상기 제1 저장 장치 및 상기 제2 저장 장치를 하나의 논리적 저장 장치로 인식하도록 상기 제1 저장 장치 및 상기 제2 저장 장치를 관리하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  4. 제2항에 있어서,
    상기 제2 저장 장치에 캐쉬된 적어도 하나의 수퍼 블록들에 포함된 복수의 블록들에 대한 위치 정보가 기록된 캐쉬 파일 블록 맵핑 테이블을 이용하여 상기 제2 저장 장치로부터 상기 대상 블록을 읽는 캐쉬 파일 컨트롤러
    를 더 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  5. 제2항에 있어서,
    상기 입/출력 스케쥴러는
    상기 복수의 수퍼 블록들이 상기 제2 저장 장치에 의해 캐쉬되었는지 여부에 대한 정보, 상기 제2 저장 장치에 의해 캐쉬된 적어도 하나의 수퍼 블록의 위치 정보, 상기 복수의 수퍼 블록들이 상기 램에 저장되었는지 여부에 대한 정보, 상기 복수의 수퍼 블록들의 접근 시간 또는 접근 횟수에 대한 정보 또는 상기 복수의 수퍼 블록들이 현재 사용되고 있는지 여부에 대한 정보 중 적어도 하나를 포함하는 컨텐츠 수퍼 블록 맵핑 테이블을 사용하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  6. 제1항에 있어서,
    상기 제2 저장 장치는
    상기 복수의 수퍼 블록들의 접근 횟수 또는 상기 복수의 컨텐츠 파일들의 접근 횟수를 기초로 상기 적어도 하나의 수퍼 블록을 캐쉬하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  7. 제1항에 있어서,
    복수의 사용자 세션들이 존재하는 경우,
    상기 제2 저장 장치는
    적어도 하나의 나머지 사용자 세션에서 사용되는 수퍼 블록을 고려하여 특정 사용자 세션에서 사용된 수퍼 블록을 캐쉬하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  8. 제7항에 있어서,
    상기 제2 저장 장치는
    상기 특정 사용자 세션에서 사용된 수퍼 블록과 인접한 적어도 하나의 수퍼 블록이 상기 적어도 하나의 나머지 사용자 세션에서 사용되는지 여부에 따라 상기 특정 사용자 세션에서 사용된 수퍼 블록을 캐쉬하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  9. 제1항에 있어서,
    상기 제1 저장 장치는
    대상 블록에 대한 어플리케이션의 읽기 요청이 있는 경우, 상기 적어도 하나의 수퍼 블록 중 상기 대상 블록을 포함하는 수퍼 블록을 반환하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  10. 제1항에 있어서,
    상기 제1 저장 장치는 하드 디스크 드라이브(Hard Disk Drive, HDD)이고, 상기 제2 저장 장치는 고체 상태 드라이브(Solid State Drive)인 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  11. 제1항에 있어서,
    상기 스토리지 시스템은
    멀티미디어 컨텐츠를 복수의 사용자들로 스트리밍하는 서버를 위해 사용되는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  12. 제4항에 있어서,
    상기 입/출력 스케쥴러는
    상기 제2 저장 장치에 캐쉬된 적어도 하나의 수퍼 블록 중 삭제 대상 수퍼 블록 또는 삭제 대상 블록이 존재하는 경우, 상기 제2 저장 장치로부터 상기 삭제 대상 수퍼 블록 또는 상기 삭제 대상 블록을 삭제하는 대신에 상기 캐쉬 파일 블록 맵핑 테이블을 업데이트하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템.
  13. 복수의 블록들을 포함하는 복수의 컨텐츠 파일들이 제1 저장 장치에 저장되고, 상기 제1 저장 장치는 상기 복수의 블록들을 미리 설정된 크기를 가지는 복수의 수퍼 블록들로 관리하고, 제2 저장 장치는 상기 복수의 수퍼 블록들 중 적어도 하나의 수퍼 블록을 캐쉬(cache)하고, 램이 상기 복수의 블록들 중 적어도 하나의 블록을 저장하는 경우,
    대상 블록에 대한 어플리케이션의 읽기 요청을 수신하는 단계;
    상기 대상 블록이 상기 제2 저장 장치 또는 상기 램에 저장되었는지 여부를 체크하는 단계; 및
    상기 체크 결과에 따라 상기 제1 저장 장치, 상기 제2 저장 장치 또는 상기 램 중 적어도 하나로부터 추출된 상기 대상 블록을 반환하는 단계
    를 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 읽기 방법.
  14. 제13항에 있어서,
    상기 대상 블록을 반환하는 단계는
    상기 제2 저장 장치에 캐쉬된 적어도 하나의 수퍼 블록들에 포함된 복수의 블록들에 대한 위치 정보가 기록된 캐쉬 파일 블록 맵핑 테이블을 이용하여 상기 제2 저장 장치로부터 상기 대상 블록을 읽는 단계
    를 더 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 읽기 방법.
  15. 제13항에 있어서,
    상기 대상 블록이 상기 제2 저장 장치 또는 상기 램에 저장되었는지 여부를 체크하는 단계는
    상기 복수의 수퍼 블록들이 상기 제2 저장 장치에 의해 캐쉬되었는지 여부에 대한 정보 및 상기 복수의 수퍼 블록들이 상기 램에 저장되었는지 여부에 대한 정보를 포함하는 컨텐츠 수퍼 블록 맵핑 테이블을 이용하여 상기 대상 블록이 상기 제2 저장 장치 또는 상기 램에 저장되었는지 여부를 체크하는 단계인 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 읽기 방법.
  16. 제13항에 있어서,
    상기 대상 블록이 상기 램에 저장된 경우, 상기 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록이 캐싱되도록 처리하는 단계
    를 더 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 읽기 방법.
  17. 복수의 블록들을 포함하는 복수의 컨텐츠 파일들이 제1 저장 장치에 저장되고, 상기 제1 저장 장치는 상기 복수의 블록들을 미리 설정된 크기를 가지는 복수의 수퍼 블록들로 관리하고, 제2 저장 장치는 상기 복수의 수퍼 블록들 중 적어도 하나의 수퍼 블록을 캐쉬(cache)하고, 램이 상기 복수의 블록들 중 적어도 하나의 블록을 저장하는 경우,
    상기 램에 저장된 상기 적어도 하나의 블록 중 대상 블록을 포함하는 수퍼 블록의 접근 횟수 또는 상기 수퍼 블록을 포함하는 컨텐츠 파일의 접근 횟수에 따라 상기 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 저장하는 단계; 및
    복수의 사용자 세션들이 존재하는 경우, 특정 사용자 세션에서 사용된 상기 대상 블록을 포함하는 수퍼 블록과 인접한 적어도 하나의 수퍼 블록이 적어도 하나의 나머지 사용자 세션에서 사용되는지 여부에 따라 상기 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 저장하는 단계
    를 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 캐싱 방법.
  18. 제17항에 있어서,
    상기 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 저장하지 않는 경우, 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 상기 램으로부터 회수(release)하는 단계
    를 더 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 캐싱 방법.
  19. 제18항에 있어서,
    상기 램에 저장된 상기 적어도 하나의 블록 중 대상 블록을 포함하는 수퍼 블록의 접근 횟수 또는 상기 수퍼 블록을 포함하는 컨텐츠 파일의 접근 횟수에 따라 상기 제2 저장 장치에 상기 대상 블록 또는 상기 대상 블록을 포함하는 수퍼 블록을 저장하는 단계는
    미리 설정된 임계값(threshold)와 상기 대상 블록을 포함하는 수퍼 블록의 접근 횟수 또는 상기 수퍼 블록을 포함하는 컨텐츠 파일의 접근 횟수를 비교하는 단계
    를 포함하는 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템의 캐싱 방법.
  20. 제13항 내지 제19항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2009/006339 2009-02-13 2009-10-30 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템 WO2010093108A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2009801567030A CN102317926A (zh) 2009-02-13 2009-10-30 将高速存储装置作为缓存使用的存储系统
US13/201,362 US20110302365A1 (en) 2009-02-13 2009-10-30 Storage system using a rapid storage device as a cache
EP09840098A EP2397946A4 (en) 2009-02-13 2009-10-30 STORAGE SYSTEM USING RAPID STORAGE DEVICE LIKE CACHE MEMORY
JP2011550046A JP2012517644A (ja) 2009-02-13 2009-10-30 高速記憶装置をキャッシュとして使用するストレージシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0011781 2009-02-13
KR1020090011781A KR101023883B1 (ko) 2009-02-13 2009-02-13 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템

Publications (1)

Publication Number Publication Date
WO2010093108A1 true WO2010093108A1 (ko) 2010-08-19

Family

ID=42561933

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/006339 WO2010093108A1 (ko) 2009-02-13 2009-10-30 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템

Country Status (6)

Country Link
US (1) US20110302365A1 (ko)
EP (1) EP2397946A4 (ko)
JP (1) JP2012517644A (ko)
KR (1) KR101023883B1 (ko)
CN (1) CN102317926A (ko)
WO (1) WO2010093108A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662459A (zh) * 2012-04-22 2012-09-12 复旦大学 利用固态硬盘与机械硬盘混合存储减少服务器能源消耗的方法
EP2609510A1 (en) * 2010-08-25 2013-07-03 Nevex Virtual Technologies Inc. Method and system for cache tiering
WO2017104906A1 (ko) * 2015-12-17 2017-06-22 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098423B2 (en) * 2011-10-05 2015-08-04 Taejin Info Tech Co., Ltd. Cross-boundary hybrid and dynamic storage and memory context-aware cache system
US20130267312A1 (en) * 2012-04-06 2013-10-10 Wms Gaming, Inc. Ordered loading of wagering game assets into memory
KR101709118B1 (ko) * 2012-05-04 2017-02-22 한국전자통신연구원 하이브리드 스토리지 시스템의 파일 관리 방법 및 장치
CN103150136B (zh) * 2013-03-25 2014-07-23 中国人民解放军国防科学技术大学 基于ssd的大容量缓存中的lru策略实现方法
JP6160240B2 (ja) * 2013-05-23 2017-07-12 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
CN104375961A (zh) * 2013-08-16 2015-02-25 国际商业机器公司 用于在数据存储子系统中进行数据访问的方法和装置
CN103678166A (zh) * 2013-08-16 2014-03-26 记忆科技(深圳)有限公司 一种采用固态硬盘作为计算机高速缓存的实现方法及系统
CN103677670A (zh) * 2013-12-11 2014-03-26 华为技术有限公司 读数据的方法及装置
CN104951239B (zh) * 2014-03-26 2018-04-10 国际商业机器公司 高速缓存驱动器、主机总线适配器及其使用的方法
CN105224475B (zh) 2014-05-30 2018-03-09 国际商业机器公司 用于调整存储装置的分配的方法和装置
KR101507093B1 (ko) * 2014-06-03 2015-03-30 중원대학교 산학협력단 정전에서 지속 가능한 읽기 및 쓰기 캐시 장치 및 방법
CN103997656B (zh) * 2014-06-12 2017-06-20 上海众源网络有限公司 高清视频文件处理方法及装置
KR102506135B1 (ko) 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10180805B2 (en) * 2015-03-25 2019-01-15 SK Hynix Inc. Memory system and operating method thereof
US10108344B1 (en) * 2015-05-06 2018-10-23 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm
TWI522805B (zh) * 2015-06-18 2016-02-21 群暉科技股份有限公司 用來於一儲存系統中進行快取管理之方法與裝置
KR102610846B1 (ko) * 2016-05-13 2023-12-07 한국전자통신연구원 고속 분산 저장 장치 및 방법
US10416887B1 (en) 2016-05-18 2019-09-17 Marvell International Ltd. Hybrid storage device and system
US10056147B1 (en) 2016-06-02 2018-08-21 Marvell International Ltd. Two-level storage device with faster front end
CN106502921A (zh) * 2016-10-25 2017-03-15 电子科技大学 一种基于用户活跃度的社交网络新动态队列缓存方法
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US11392553B1 (en) * 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11796594B2 (en) 2020-11-05 2023-10-24 Schneider Electric It Corporation PWM capture function for event analysis
CN112684981B (zh) * 2020-12-23 2023-12-22 北京浪潮数据技术有限公司 固态硬盘读操作记录方法、系统、装置及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
WO2002001365A2 (en) * 2000-06-23 2002-01-03 Intel Corporation Non-volatile cache
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02210561A (ja) * 1989-02-10 1990-08-21 Oki Electric Ind Co Ltd ディスクキャッシュの管理方式
JPH07334425A (ja) * 1994-06-14 1995-12-22 Mitsubishi Electric Corp ディスクキャッシュ制御方式
JPH1040170A (ja) * 1996-07-26 1998-02-13 Toshiba Corp ディスクキャッシュシステム
JP3335919B2 (ja) * 1998-07-28 2002-10-21 茨城日本電気株式会社 ディスクキャッシュ制御装置
JP2001051901A (ja) * 1999-08-05 2001-02-23 Toshiba Corp キャッシュ記憶装置
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US8549226B2 (en) * 2004-05-14 2013-10-01 Hewlett-Packard Development Company, L.P. Providing an alternative caching scheme at the storage area network level
CN101027668B (zh) * 2004-07-21 2012-01-04 海滩无极限有限公司 基于块映射表缓冲存储和虚拟文件系统的可堆叠文件系统模块的分布式存储结构
KR100675010B1 (ko) * 2006-02-03 2007-01-29 삼성전자주식회사 하이브리드 하드디스크 드라이브의 캐시 제어 방법, 이에적합한 기록 매체 그리고 이에 적합한 장치
US7613876B2 (en) * 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
CN100501702C (zh) * 2007-01-17 2009-06-17 晶天电子(深圳)有限公司 一种闪存卡及其缓存、恢复数据的方法
JP4727705B2 (ja) * 2008-10-31 2011-07-20 株式会社日立製作所 階層型ストレージシステム
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
WO2002001365A2 (en) * 2000-06-23 2002-01-03 Intel Corporation Non-volatile cache
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"2008 ACM SIGMOD international conference on Management of data. ACM, June 2008", June 2008, article LEE, SANG-WON ET AL.: "A case for flash memory ssd in enterprise database applications.", pages: 1075 - 1086, XP008160200 *
See also references of EP2397946A4 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2609510A1 (en) * 2010-08-25 2013-07-03 Nevex Virtual Technologies Inc. Method and system for cache tiering
JP2013536515A (ja) * 2010-08-25 2013-09-19 ネヴェックス ヴァーチャル テクノロジーズ インコーポレイテッド キャッシュ階層化のための方法およびシステム
EP2609510A4 (en) * 2010-08-25 2015-01-21 Intel Corp METHOD AND SYSTEM FOR FORMING CACHE MEMORY LAYERS
US9864685B2 (en) 2010-08-25 2018-01-09 Intel Corporation Method and system for cache tiering
CN102662459A (zh) * 2012-04-22 2012-09-12 复旦大学 利用固态硬盘与机械硬盘混合存储减少服务器能源消耗的方法
WO2017104906A1 (ko) * 2015-12-17 2017-06-22 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법
US10599574B2 (en) 2015-12-17 2020-03-24 Sk Telecom Co., Ltd. Memory control device and operating method thereof

Also Published As

Publication number Publication date
US20110302365A1 (en) 2011-12-08
CN102317926A (zh) 2012-01-11
KR20100092590A (ko) 2010-08-23
JP2012517644A (ja) 2012-08-02
EP2397946A1 (en) 2011-12-21
EP2397946A4 (en) 2012-08-29
KR101023883B1 (ko) 2011-03-22

Similar Documents

Publication Publication Date Title
WO2010093108A1 (ko) 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US9513817B2 (en) Free space collection in log structured storage systems
JP5651238B2 (ja) ハイブリッド・メモリ・サーバにおけるデータ・アクセス管理
US9274959B2 (en) Handling virtual memory address synonyms in a multi-level cache hierarchy structure
US9244980B1 (en) Strategies for pushing out database blocks from cache
WO2017065379A1 (ko) 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
CN101594309B (zh) 集群系统中内存资源的管理方法、设备及网络系统
WO2011055976A2 (ko) 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
JP6192660B2 (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
WO2011056002A9 (ko) 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
CN101350030A (zh) 用于缓存数据的方法及装置
US9189477B2 (en) Managing direct attached cache and remote shared cache
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
CN110352410A (zh) 跟踪索引节点的访问模式以及预提取索引节点
US9667735B2 (en) Content centric networking
CN112540954B (zh) 以目录单位的多级存储构建与在线迁移方法
WO2023096108A1 (ko) 가상화 환경에서 데이터를 저장하는 방법
WO2009088194A2 (ko) 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법
CN107506156B (zh) 一种块设备的io优化方法
KR102149468B1 (ko) 통합 캐시를 하나 또는 복수의 논리 유닛에 동적 할당하는 시스템 및 방법
WO2022179032A1 (zh) 用于存储管理的方法、设备、介质和程序产品
WO2022156452A1 (zh) 一种缓存管理方法、装置及设备
WO2024177187A1 (ko) 데이터 중복 제거 방법 및 데이터 중복 제거를 수행하는 스토리지 장치
Shen et al. A unified storage system for whole-time-range data analytics over unbounded data
JPWO2016051593A1 (ja) 計算機システム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980156703.0

Country of ref document: CN

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

Ref document number: 09840098

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011550046

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13201362

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009840098

Country of ref document: EP