WO2016186583A1 - Cache architecture and algorithms for hybrid object storage devices - Google Patents

Cache architecture and algorithms for hybrid object storage devices Download PDF

Info

Publication number
WO2016186583A1
WO2016186583A1 PCT/SG2016/050240 SG2016050240W WO2016186583A1 WO 2016186583 A1 WO2016186583 A1 WO 2016186583A1 SG 2016050240 W SG2016050240 W SG 2016050240W WO 2016186583 A1 WO2016186583 A1 WO 2016186583A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
cache
data
accordance
hybrid
Prior art date
Application number
PCT/SG2016/050240
Other languages
French (fr)
Inventor
Chao JIN
Weiya Xi
Khai Leong Yong
Zhi Yong CHING
Original Assignee
Agency For Science, Technology And Research
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 Agency For Science, Technology And Research filed Critical Agency For Science, Technology And Research
Priority to CN201680029289.7A priority Critical patent/CN107615254A/en
Priority to JP2017560268A priority patent/JP2018520420A/en
Priority to US15/567,295 priority patent/US20180107601A1/en
Priority to SG11201708381PA priority patent/SG11201708381PA/en
Priority to EP16796853.6A priority patent/EP3298495A4/en
Publication of WO2016186583A1 publication Critical patent/WO2016186583A1/en

Links

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile 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/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache

Definitions

  • the present invention generally relates to methods and systems for data storage, and more particularly relates to methods and systems for data system management.
  • next-generation storage systems the storage servers and redundant array of independent disk (RAID) controllers used to manage storage devices have been removed. Instead, single system-on-ship (SOC) active drive controllers are used to manage a storage node, shifting the functions of storage servers to the storage devices. Applications can directly connect to storage devices thereby greatly reducing whole system cost including hardware cost and maintenance cost.
  • RAID redundant array of independent disk
  • hybrid technology solutions combine different storage media in a single storage device to simultaneously improve storage performance (measured as input/output operations per second (IO PS) per dollar (IOPS/$)) and reduce storage cost (measured as dollar per Gigabyte ($/GB)).
  • IO PS input/output operations per second
  • IOPS/$ input/output operations per second
  • IO cost measured as dollar per Gigabyte ($/GB)
  • a hybrid storage device normally consists of a small amount of high performance and high cost storage media with a large amount of low performance and low cost storage media.
  • NVRAM non-volatile random access memory
  • a hybrid storage device could also be a storage node consisting of single/multiple solid state devices (SSDs) and single/multiple hard disk drives (HDDs). The number of SSDs and HDDs used in such a node could be determined based on desired performance or cost.
  • SSDs solid state devices
  • HDDs hard disk drives
  • a method for data storage in a hybrid storage node of a data storage system includes first and second storage devices having different performance characteristics wherein the first devices includes at least one high performance nonvolatile memory for cache storage.
  • the hybrid storage node further includes processing resources for managing data storage in the hybrid storage node.
  • the method includes receiving a read request to read stored information from the hybrid storage node and, in response to the read request, accessing both the cache storage first storage devices and storage in the second storage devices to locate the stored information.
  • a data storage system comprising one or more hybrid storage nodes.
  • Each hybrid storage node includes first and second storage devices and processing resources.
  • the first storage devices having first performance characteristics and the second storage devices having second performance characteristics different than the first performance characteristics.
  • the processing resources manage data storage in the hybrid storage node.
  • the first performance characteristics are higher performing than the second performance characteristics and the first storage devices include at least one high performance non-volatile memory for cache storage.
  • the cache storage serves as cache for the second storage devices.
  • FIG. 1 depicts side -by-side block diagrams of conventional storage systems and typical proposed next generation storage systems.
  • FIG. 2 illustrates a block diagram of a distributed file/object based hybrid storage system in accordance with a present embodiment.
  • FIG. 3 illustrates a layered block diagram of an object store architecture for a single storage device in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • FIG. 4 illustrates a layered block diagram of a cache architecture for a single active hybrid storage node in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • FIG. 5 illustrates a layered block diagram of a shared cache architecture among multiple storage devices in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • FIG. 6 illustrates a flowchart of a process flow for writing an object to object store with cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • FIG. 7 illustrates a flowchart of a process flow for reading an object from object store with cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • FIG. 8 depicts an illustration of algorithms of loading and destaging objects between a hard disk drive (HDD) and cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • HDD hard disk drive
  • FIG. 8 depicts an illustration of algorithms of loading and destaging objects between a hard disk drive (HDD) and cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
  • Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been depicted to scale.
  • a hybrid storage device in accordance with the present embodiment can be either a single hybrid drive with a non-volatile memory (NVM) chip and a magnetic disk or a group of drives with one solid state device (SSD) and one or multiple hard disk drives (HDDs).
  • NVM non-volatile memory
  • SSD solid state device
  • HDDs hard disk drives
  • the hybrid storage device in accordance with the present embodiment will contain a single system-on-chip (SOC) board to manage the hybrid storage medias.
  • SOC system-on-chip
  • the SOC board in accordance with the present embodiment is typically equipped with a low power consumption processor and a certain amount of dynamic random access memory (DRAM).
  • DRAM dynamic random access memory
  • the SOC board may also, in accordance with the present embodiment, provide an ethernet interface that allows the hybrid storage device to directly connect to the Ethernet.
  • the storage system cluster can be a file-based or object-based storage system, in which the data access unit will be a file or an object.
  • the faster media e.g., the NVM or the SSD
  • the cache architecture in accordance with the present embodiment is built on top of the file or object layer, enabling the cache to be better integrated with the upper distributed file or object storage systems.
  • the cache architecture and algorithms in accordance with the present embodiment are designed and implemented by reusing the index structures and access application programming interfaces (APIs) of the underlying file or object store. In this manner, the cache architecture in accordance with the present embodiment requires very little additional resource usage (e.g., only DRAM for metadata), to accommodate critical constraints for hybrid storage devices with limited resources.
  • APIs application programming interfaces
  • the cache in accordance with the present embodiment is designed to be a general cache for both read and write operations, with the SOC processor providing the process flows of read and write operations and the cache loading and destaging policies and algorithms.
  • the faster media inside a hybrid storage device is used to store a journal of the file/object store.
  • the cache architecture and algorithms has several differences from conventional architectures and algorithms.
  • the journal is mainly designed for supporting transactions, but this may be unnecessary since local file systems (e.g., the B-tree file system btrfs originally designed by Oracle Corporation, California USA) may already have similar functions.
  • the cache can improve performance on all file systems.
  • journal entries are not visible to subsequent read operations because in typical systems the objects can only be read when they are written to disk. Thus, the journal may have negative impact on read performance.
  • entries in cache can be accessed by read requests, thereby improving read performance.
  • objects in the HDD become hot, they are loaded into cache in accordance with the present embodiment to improve performance.
  • objects cannot be loaded from the HDD into the journal.
  • a block diagram 100 shows the evolution from conventional storage systems 110 to next-generation storage systems 150.
  • the conventional storage systems 110 include application servers 112 with client servers 114 for use in distributed file storage.
  • the application servers 112 are coupled to storage servers 116 via a network 118.
  • the storage servers 116 utilize redundant array of independent disk (RAID) controllers 120 to manage storage devices 122.
  • RAID redundant array of independent disk
  • a metadata server 124 is also coupled to the network 118 for managing metadata associated with information stored in the storage devices 122.
  • next- generation storage systems 150 the storage servers 116 and the RAID controllers used to manage the storage devices 122 have been removed. Instead, single system-on-a-chip (SOC) active drive controllers 152 are used to manage storage nodes 154 which communicate with client libraries in application servers 156 via the network 118. Thus, the functions of the storage servers 116 have been shifted to the storage devices and applications 156 can directly connect to the 154 storage devices thereby greatly reducing the storage system cost including hardware cost and maintenance cost.
  • SOC system-on-a-chip
  • the storage devices 154 of the next generation storage systems 150 are typically hybrid storage devices including different storage media in a single storage device to simultaneously improve storage performance and reduce storage cost.
  • efficient data management and cache algorithms are required and special requirements need to be considered.
  • the hybrid storage devices in such system are directly attached to the network, and are often managed by a distributed file or object storage system, it is more efficient for hybrid data management and cache algorithms to be designed and implemented at the file or object level.
  • the hybrid storage devices usually have limited hardware resources, it is critical that the cache architecture and algorithms designed for such systems should be highly efficient and less resource demanding.
  • FIG. 2 depicts a block diagram 200 of architecture of a scale-out object storage cluster 202 in accordance with a present embodiment which addresses the challenges of the next generation storage systems.
  • the storage nodes of the system are active hybrid bays 204.
  • Each active hybrid bay 204 includes one solid state device (SSD) 206 and multiple hard disk drives (HDDs) 208 as storage.
  • Each active hybrid bay 204 also includes a single SOC board called an active controller board (ACB) 210 which includes processing resources to manage the active hybrid bay 204 which can be configured as a single object storage device or configured as multiple object storage devices, with each HDD belonging to a separate object storage device.
  • the object storage cluster 202 also includes an Active Management Node 212 which maintains the metadata for the object storage cluster 202 and includes a set of modules and processes referred to as a Gateway 213 which run in the Active Management Node 212.
  • the object storage cluster 202 via the high speed Ethernet network 118 provides multiple interfaces to applications 214.
  • the Gateway 213 provides storage interfaces, such as a S3 interface, to the applications 214.
  • a block interface 216 allows the applications 214 to use the cluster like a block device and usually uses the object storage cluster 202 to provide storage space for virtual machines 218.
  • a file interface 220 allows portable operating system interface (POSIX) applications 222 to use the object storage cluster 202 like a POSIX file system.
  • An object interface 224 is compatible with S3 or Swift applications 226, allowing the S3 or Swift applications to use the object storage cluster 202.
  • a key-value interface 228 is compatible with Kinetic drive applications 230, allowing the Kinetic drive applications to use the object storage cluster 202.
  • a layered block diagram 300 illustrates an object store architecture for a single storage node (e.g., a hard disk drive 208) in the hybrid storage system 202 in accordance with the present embodiment.
  • the object store is based on a local file system 302, and each object is stored as an individual file.
  • the object store implements an index structure 304 for indexing and managing the objects.
  • an indexing structure 304 may use hash algorithms to map the object name to an object file path name 306 and a file name in the local file system 302.
  • An object store contains multiple collections and each collection corresponds to a separate folder containing a group of objects in the local file system 302.
  • the object store also provides a set of POSIX-like application programming interfaces (APIs) 308, allowing the objects to be accessed from the local file system 302 like files.
  • APIs application programming interfaces
  • FIG. 4 illustrates a layered block diagram 400 of a cache architecture for an active hybrid storage node 204 in the hybrid storage system 202 in accordance with the present embodiment.
  • the cache architecture is based on the object store architecture illustrated in the block diagram 300 and adds a separate cache collection 402 to the original object store.
  • the cache collection 402 uses an index structure 404 and a file system 406 similar to the multiple index structures 304 and the file system 406.
  • the cache collection 402 is located on faster media such as the NVM/SSD 206, while the other collections 306 are located on slower media such as the HDD 208.
  • a cache management module 408 is implemented to manage the objects between the cache collection 402 on the NVM/SSD 206 and the object collection 306 on the HDD.
  • the object APIs 308 are the same as the single device object store illustrated in the block diagram 300, allowing the object store applications to run on top of the cache architecture without modification. Additional cache APIs such as force destaging are implemented in the object API layer 308 for the applications to directly manipulate the data in the cache on the NVM/SSD 206.
  • FIG. 5 illustrates a layered block diagram 500 of a shared cache architecture among multiple storage devices 208 in the hybrid storage system 202 in accordance with the present embodiment.
  • Each cache collection 402 corresponds to a separate folder in the local file system 406 on the NVM/SSD 206.
  • the local file system 406 may contain multiple folders, and each corresponds to a different cache collection. While these cache collections share the same file system space, they each belong to a different object store file system 302 on different HDDs 208.
  • FIG. 6 illustrates a flowchart 600 of a process flow for writing an object to object store with cache in the hybrid storage system 202 in accordance with the present embodiment.
  • the cache management module 408 Upon receiving an object write request 602, the cache management module 408 first detects 604 if the object is already in the cache collection 402, and if it does, performs 606 an update to the object in the cache. If the object is not in the cache 604, the cache management module 408 further detects 606 if the object exists in the HDD 208. If the object is stored 606 in the HDD 208, it will be updated 608 in the HDD 208 directly. Otherwise, the object is a new object and it is written 606 to the cache or written 608 to the HDD 208 according to object size, name, type, or other object attributes 610.
  • a flowchart 700 illustrates a process flow for reading an object from object store with cache in the hybrid storage system 202 in accordance with the present embodiment.
  • the cache management module 408 first detects 704 if the object is in the cache collection 402. If it does, it is read 706 from the cache. If it is detected 708 that the object is in the HDD 208, it is read 710 from the HDD 208. If the object is not detected 704, 708 in either the cache collection 402 or in the HDD 208, an error is returned 712 by the cache management module 408 to the object API layer noting that the object is not stored in the file systems 302, 406 accessible by the cache management module 408.
  • FIG. 8 depicts an illustration 800 of algorithms of loading and destaging objects between the HDD 208 and NVM 206 cache in the hybrid storage system 202 in accordance with the present embodiment.
  • the cache management module 408 implements two metadata structures: a FIFO queue 802 and a LRU list 804.
  • the FIFO queue 802 serves as a short history buffer storing the object ids which have been accessed once from the HDD 208 during a predetermined recent period of time, the object ids being stored at a head 805 of the FIFO queue 802. If an object in the FIFO queue 802 is accessed for a second time, it will be loaded from the HDD 208 to the cache in the NVM 206.
  • the FIFO queue 802 acts as a filter that prevents the objects which are accessed only once during a long time duration from coming into the cache, thus advantageously avoiding cache pollution and reserving cache space for truly hot objects.
  • the LRU list 804 is usually much larger than the FIFO queue 802, and the LRU list 804 stores the object ids which are currently in the cache. Whenever an object comes into the cache, its object id is added at a head 808 of the LRU list 804.
  • a "clean object” is an object in the cache in the NVM 206 that has not been updated since it was copied from the HDD 208 into the cache.
  • objects from the tail 810 of the LRU list 804 will be evicted from cache and written to the HDD 208 if they are dirty objects, since the cache version of the dirty objects are newer versions of the objects than the HDD-stored versions of the dirty objects.
  • Clean objects will be evicted from cache without being written to the HDD 208 as the HDD-stored version of the clean object is the same as the cache version of the clean object.
  • the cache can be implemented with an in-memory LRU list 804.
  • the cache can also be implemented in accordance with another aspect of the present embodiment without an in-memory LRU list 804. This is because the cache in accordance with the present embodiment is at the object/file level and the access/modification time of stored objects are already recorded by the underneath file system. By utilizing file system information and sorting the objects/files by access/modification time, the cache can achieve similar effects as the in-memory LRU list 804.
  • a cache destage operation may be scheduled according to current cache space utilization and workload state. Two thresholds for cache space utilization can be set, a lower threshold and an upper threshold. If the current cache space utilization is under the lower threshold, no cache destage need be scheduled. If the current cache space utilization is above the lower threshold but below the upper watermark, the cache destage can be scheduled when the system 202 is idle. And if the current cache space utilization is above the upper threshold, cache destage should be scheduled with high priority.
  • the present embodiment provides improved methods for data storage and data storage systems for efficient hybrid data management and cache algorithms which overcome, at least partially, the drawbacks of conventional approaches and provide minimal resource usage solutions for effective use in future storage systems.

Abstract

A method for data storage in a hybrid storage node of a data storage system is provided. The hybrid storage node includes first and second storage devices having different performance characteristics wherein the first devices includes at least one high performance non-volatile memory for cache storage. The hybrid storage node further includes processing resources for managing data storage in the hybrid storage node. The method includes receiving a read request to read stored information from the hybrid storage node and, in response to the read request, accessing both the cache storage first storage devices and storage in the second storage devices to locate the stored information.

Description

CACHE ARCHITECTURE AND ALGORITHMS FOR HYBRID OBJECT STORAGE DEVICES
TECHNICAL FIELD
[0001] The present invention generally relates to methods and systems for data storage, and more particularly relates to methods and systems for data system management.
BACKGROUND OF THE DISCLOSURE
[0002] With the advancement of central processing unit and non-volatile memory technologies, it is increasingly feasible to incorporate functionalities of operating system software and storage system software into small storage controller boards to optimize storage system performance and reduce Total Ownership Cost (TOC).
[0003] In next-generation storage systems, the storage servers and redundant array of independent disk (RAID) controllers used to manage storage devices have been removed. Instead, single system-on-ship (SOC) active drive controllers are used to manage a storage node, shifting the functions of storage servers to the storage devices. Applications can directly connect to storage devices thereby greatly reducing whole system cost including hardware cost and maintenance cost.
[0004] Such hybrid technology solutions combine different storage media in a single storage device to simultaneously improve storage performance (measured as input/output operations per second (IO PS) per dollar (IOPS/$)) and reduce storage cost (measured as dollar per Gigabyte ($/GB)). As different storage media have different performance characteristics and different costs, a hybrid storage device normally consists of a small amount of high performance and high cost storage media with a large amount of low performance and low cost storage media. For example, a hybrid storage device could be a hybrid drive containing non-volatile random access memory (NVRAM) semiconductor chips and magnetic disk platters inside a single disk enclosure. A hybrid storage device could also be a storage node consisting of single/multiple solid state devices (SSDs) and single/multiple hard disk drives (HDDs). The number of SSDs and HDDs used in such a node could be determined based on desired performance or cost.
[0005] In order to take full advantage of the different storage media in such hybrid storage devices, efficient data management and cache algorithms are required and special requirements need to be considered. First, since the hybrid storage devices in such system are directly attached to the network, and are often managed by a distributed file or object storage system, it is more efficient for hybrid data management and cache algorithms to be designed and implemented at the file or object level. Second, as the hybrid storage devices usually have limited hardware resources, it is critical that the cache architecture and algorithms designed for such systems should be highly efficient and less resource demanding.
[0006] Thus, what is needed is methods and systems for efficient hybrid data management and cache algorithms which at least partially overcome the drawbacks of present approaches and provide minimal resource usage solutions for effective use in future storage systems. Furthermore, other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background of the disclosure. SUMMARY
[0007] According to at least one embodiment of the present invention a method for data storage in a hybrid storage node of a data storage system is provided. The hybrid storage node includes first and second storage devices having different performance characteristics wherein the first devices includes at least one high performance nonvolatile memory for cache storage. The hybrid storage node further includes processing resources for managing data storage in the hybrid storage node. The method includes receiving a read request to read stored information from the hybrid storage node and, in response to the read request, accessing both the cache storage first storage devices and storage in the second storage devices to locate the stored information.
[0008] According to another embodiment of the present invention a data storage system comprising one or more hybrid storage nodes is provided. Each hybrid storage node includes first and second storage devices and processing resources. The first storage devices having first performance characteristics and the second storage devices having second performance characteristics different than the first performance characteristics. The processing resources manage data storage in the hybrid storage node. The first performance characteristics are higher performing than the second performance characteristics and the first storage devices include at least one high performance non-volatile memory for cache storage. The cache storage serves as cache for the second storage devices.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to illustrate various embodiments and to explain various principles and advantages in accordance with a present embodiment.
[0010] FIG. 1 depicts side -by-side block diagrams of conventional storage systems and typical proposed next generation storage systems.
[0011] FIG. 2 illustrates a block diagram of a distributed file/object based hybrid storage system in accordance with a present embodiment.
[0012] FIG. 3 illustrates a layered block diagram of an object store architecture for a single storage device in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
[0013] FIG. 4 illustrates a layered block diagram of a cache architecture for a single active hybrid storage node in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
[0014] FIG. 5 illustrates a layered block diagram of a shared cache architecture among multiple storage devices in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
[0015] FIG. 6 illustrates a flowchart of a process flow for writing an object to object store with cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
[0016] FIG. 7 illustrates a flowchart of a process flow for reading an object from object store with cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment.
[0017] And FIG. 8 depicts an illustration of algorithms of loading and destaging objects between a hard disk drive (HDD) and cache in the hybrid storage system of FIG. 2 in accordance with the present embodiment. [0018] Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been depicted to scale.
DETAILED DESCRIPTION
[0019] The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background of the invention or the following detailed description. It is the intent of the present embodiment to present cache architecture and algorithms for hybrid storage devices in a scale-out storage cluster. A hybrid storage device in accordance with the present embodiment can be either a single hybrid drive with a non-volatile memory (NVM) chip and a magnetic disk or a group of drives with one solid state device (SSD) and one or multiple hard disk drives (HDDs).
[0020] In either form, the hybrid storage device in accordance with the present embodiment will contain a single system-on-chip (SOC) board to manage the hybrid storage medias. The SOC board in accordance with the present embodiment is typically equipped with a low power consumption processor and a certain amount of dynamic random access memory (DRAM). The SOC board may also, in accordance with the present embodiment, provide an ethernet interface that allows the hybrid storage device to directly connect to the Ethernet. The storage system cluster can be a file-based or object-based storage system, in which the data access unit will be a file or an object.
[0021] Inside the hybrid storage device in accordance with the present embodiment, the faster media (e.g., the NVM or the SSD) serves as cache for the slower media (magnetic disk). Unlike conventional cache which manages data as disk blocks, the cache architecture in accordance with the present embodiment is built on top of the file or object layer, enabling the cache to be better integrated with the upper distributed file or object storage systems. Also, the cache architecture and algorithms in accordance with the present embodiment are designed and implemented by reusing the index structures and access application programming interfaces (APIs) of the underlying file or object store. In this manner, the cache architecture in accordance with the present embodiment requires very little additional resource usage (e.g., only DRAM for metadata), to accommodate critical constraints for hybrid storage devices with limited resources.
[0022] The cache in accordance with the present embodiment is designed to be a general cache for both read and write operations, with the SOC processor providing the process flows of read and write operations and the cache loading and destaging policies and algorithms. Conventionally, the faster media inside a hybrid storage device is used to store a journal of the file/object store. In accordance with the present embodiment, the cache architecture and algorithms has several differences from conventional architectures and algorithms. First, the journal is mainly designed for supporting transactions, but this may be unnecessary since local file systems (e.g., the B-tree file system btrfs originally designed by Oracle Corporation, California USA) may already have similar functions. Using the journal in accordance with the present embodiment, the cache can improve performance on all file systems.
[0023] Second, in conventional journal design, all object writes are performed twice: the object data is written to the journal first and then the object data is written to the disk. In the cache architecture and operation in accordance with the present embodiment, only selected objects (small objects and/or hot objects) will be written to cache; all other objects are written to the disk without being written to the journal. This advantageously reduces processing time and resources because if all writes (especially the large sequential writes) go to the SSD, the limited space of the SSD resource will quickly exhausted, triggering processing-expensive flush/eviction operations.
[0024] Third, objects already committed to the journal are flushed to the disk at fixed intervals. In accordance with the present embodiment, cache entries are evicted to the disk dynamically according to various cache policies to improve overall system performance. In this manner, objects remain in the cache only as long as they are hot enough.
[0025] Fourth, conventionally journal entries are not visible to subsequent read operations because in typical systems the objects can only be read when they are written to disk. Thus, the journal may have negative impact on read performance. In the systems in accordance with the present embodiment, however, entries in cache can be accessed by read requests, thereby improving read performance. And finally, when objects in the HDD become hot, they are loaded into cache in accordance with the present embodiment to improve performance. Conventionally, objects cannot be loaded from the HDD into the journal.
[0026] Referring to FIG. 1, a block diagram 100 shows the evolution from conventional storage systems 110 to next-generation storage systems 150. The conventional storage systems 110 include application servers 112 with client servers 114 for use in distributed file storage. The application servers 112 are coupled to storage servers 116 via a network 118. The storage servers 116 utilize redundant array of independent disk (RAID) controllers 120 to manage storage devices 122. A metadata server 124 is also coupled to the network 118 for managing metadata associated with information stored in the storage devices 122.
[0027] In the next- generation storage systems 150, the storage servers 116 and the RAID controllers used to manage the storage devices 122 have been removed. Instead, single system-on-a-chip (SOC) active drive controllers 152 are used to manage storage nodes 154 which communicate with client libraries in application servers 156 via the network 118. Thus, the functions of the storage servers 116 have been shifted to the storage devices and applications 156 can directly connect to the 154 storage devices thereby greatly reducing the storage system cost including hardware cost and maintenance cost.
[0028] The storage devices 154 of the next generation storage systems 150 are typically hybrid storage devices including different storage media in a single storage device to simultaneously improve storage performance and reduce storage cost. As discussed in the background, in order to take full advantage of the different storage media in such hybrid storage devices, efficient data management and cache algorithms are required and special requirements need to be considered. First, since the hybrid storage devices in such system are directly attached to the network, and are often managed by a distributed file or object storage system, it is more efficient for hybrid data management and cache algorithms to be designed and implemented at the file or object level. Second, as the hybrid storage devices usually have limited hardware resources, it is critical that the cache architecture and algorithms designed for such systems should be highly efficient and less resource demanding.
[0029] FIG. 2 depicts a block diagram 200 of architecture of a scale-out object storage cluster 202 in accordance with a present embodiment which addresses the challenges of the next generation storage systems. The storage nodes of the system are active hybrid bays 204. Each active hybrid bay 204 includes one solid state device (SSD) 206 and multiple hard disk drives (HDDs) 208 as storage. Each active hybrid bay 204 also includes a single SOC board called an active controller board (ACB) 210 which includes processing resources to manage the active hybrid bay 204 which can be configured as a single object storage device or configured as multiple object storage devices, with each HDD belonging to a separate object storage device. The object storage cluster 202 also includes an Active Management Node 212 which maintains the metadata for the object storage cluster 202 and includes a set of modules and processes referred to as a Gateway 213 which run in the Active Management Node 212.
[0030] The object storage cluster 202 via the high speed Ethernet network 118 provides multiple interfaces to applications 214. The Gateway 213 provides storage interfaces, such as a S3 interface, to the applications 214. A block interface 216 allows the applications 214 to use the cluster like a block device and usually uses the object storage cluster 202 to provide storage space for virtual machines 218. A file interface 220 allows portable operating system interface (POSIX) applications 222 to use the object storage cluster 202 like a POSIX file system. An object interface 224 is compatible with S3 or Swift applications 226, allowing the S3 or Swift applications to use the object storage cluster 202. A key-value interface 228 is compatible with Kinetic drive applications 230, allowing the Kinetic drive applications to use the object storage cluster 202.
[0031] Referring to FIG. 3, a layered block diagram 300 illustrates an object store architecture for a single storage node (e.g., a hard disk drive 208) in the hybrid storage system 202 in accordance with the present embodiment. The object store is based on a local file system 302, and each object is stored as an individual file. The object store implements an index structure 304 for indexing and managing the objects. For instance, an indexing structure 304 may use hash algorithms to map the object name to an object file path name 306 and a file name in the local file system 302. An object store contains multiple collections and each collection corresponds to a separate folder containing a group of objects in the local file system 302. The object store also provides a set of POSIX-like application programming interfaces (APIs) 308, allowing the objects to be accessed from the local file system 302 like files.
[0032] FIG. 4 illustrates a layered block diagram 400 of a cache architecture for an active hybrid storage node 204 in the hybrid storage system 202 in accordance with the present embodiment. The cache architecture is based on the object store architecture illustrated in the block diagram 300 and adds a separate cache collection 402 to the original object store. The cache collection 402 uses an index structure 404 and a file system 406 similar to the multiple index structures 304 and the file system 406. The cache collection 402 is located on faster media such as the NVM/SSD 206, while the other collections 306 are located on slower media such as the HDD 208. A cache management module 408 is implemented to manage the objects between the cache collection 402 on the NVM/SSD 206 and the object collection 306 on the HDD. The object APIs 308 are the same as the single device object store illustrated in the block diagram 300, allowing the object store applications to run on top of the cache architecture without modification. Additional cache APIs such as force destaging are implemented in the object API layer 308 for the applications to directly manipulate the data in the cache on the NVM/SSD 206.
[0033] FIG. 5 illustrates a layered block diagram 500 of a shared cache architecture among multiple storage devices 208 in the hybrid storage system 202 in accordance with the present embodiment. Each cache collection 402 corresponds to a separate folder in the local file system 406 on the NVM/SSD 206. The local file system 406 may contain multiple folders, and each corresponds to a different cache collection. While these cache collections share the same file system space, they each belong to a different object store file system 302 on different HDDs 208.
[0034] FIG. 6 illustrates a flowchart 600 of a process flow for writing an object to object store with cache in the hybrid storage system 202 in accordance with the present embodiment. Upon receiving an object write request 602, the cache management module 408 first detects 604 if the object is already in the cache collection 402, and if it does, performs 606 an update to the object in the cache. If the object is not in the cache 604, the cache management module 408 further detects 606 if the object exists in the HDD 208. If the object is stored 606 in the HDD 208, it will be updated 608 in the HDD 208 directly. Otherwise, the object is a new object and it is written 606 to the cache or written 608 to the HDD 208 according to object size, name, type, or other object attributes 610.
[0035] Referring to FIG. 7, a flowchart 700 illustrates a process flow for reading an object from object store with cache in the hybrid storage system 202 in accordance with the present embodiment. When an object read request 702 is received, the cache management module 408 first detects 704 if the object is in the cache collection 402. If it does, it is read 706 from the cache. If it is detected 708 that the object is in the HDD 208, it is read 710 from the HDD 208. If the object is not detected 704, 708 in either the cache collection 402 or in the HDD 208, an error is returned 712 by the cache management module 408 to the object API layer noting that the object is not stored in the file systems 302, 406 accessible by the cache management module 408.
[0036] FIG. 8 depicts an illustration 800 of algorithms of loading and destaging objects between the HDD 208 and NVM 206 cache in the hybrid storage system 202 in accordance with the present embodiment. The cache management module 408 implements two metadata structures: a FIFO queue 802 and a LRU list 804. The FIFO queue 802 serves as a short history buffer storing the object ids which have been accessed once from the HDD 208 during a predetermined recent period of time, the object ids being stored at a head 805 of the FIFO queue 802. If an object in the FIFO queue 802 is accessed for a second time, it will be loaded from the HDD 208 to the cache in the NVM 206. If an object in the FIFO queue 802 is never accessed again, it will be gradually moved to a tail 806 of the FIFO queue 802 and eventually evicted from the FIFO queue 802 as new objects are coming into the queue. In fact, the FIFO queue 802 acts as a filter that prevents the objects which are accessed only once during a long time duration from coming into the cache, thus advantageously avoiding cache pollution and reserving cache space for truly hot objects. On the other hand, the LRU list 804 is usually much larger than the FIFO queue 802, and the LRU list 804 stores the object ids which are currently in the cache. Whenever an object comes into the cache, its object id is added at a head 808 of the LRU list 804. If an object in the LRU list 804 is accessed again, it is moved back to the head 808 of the LRU list 804. In this way, the frequently accessed hot objects remain at the head 808 of the LRU list 804, and the colder objects move to a tail 810 of the LRU list 804.
[0037] When an object in the cache in the NVM 206 is updated after it was copied from the HDD 208 after it was copied into the cache in the NVM 206, the object is referred to as a "dirty object" because the cache has a newer version of the object stored in the NVM 206 than the HDD 208. A "clean object", on the other hand, is an object in the cache in the NVM 206 that has not been updated since it was copied from the HDD 208 into the cache. Thus, during cache destage, objects from the tail 810 of the LRU list 804 will be evicted from cache and written to the HDD 208 if they are dirty objects, since the cache version of the dirty objects are newer versions of the objects than the HDD-stored versions of the dirty objects. Clean objects, however, will be evicted from cache without being written to the HDD 208 as the HDD-stored version of the clean object is the same as the cache version of the clean object.
[0038] In accordance with one aspect of the present embodiment, the cache can be implemented with an in-memory LRU list 804. However, the cache can also be implemented in accordance with another aspect of the present embodiment without an in-memory LRU list 804. This is because the cache in accordance with the present embodiment is at the object/file level and the access/modification time of stored objects are already recorded by the underneath file system. By utilizing file system information and sorting the objects/files by access/modification time, the cache can achieve similar effects as the in-memory LRU list 804. In a practical implementation, one can also implement an in-memory LRU list 804 in accordance with the present embodiment but not back up the LRU list 804 in a persistent storage because, in case of a system crash, the in-memory LRU list 804 can be recovered from the file system information 302, 406.
[0039] In accordance with another aspect of the present embodiment, a cache destage operation may be scheduled according to current cache space utilization and workload state. Two thresholds for cache space utilization can be set, a lower threshold and an upper threshold. If the current cache space utilization is under the lower threshold, no cache destage need be scheduled. If the current cache space utilization is above the lower threshold but below the upper watermark, the cache destage can be scheduled when the system 202 is idle. And if the current cache space utilization is above the upper threshold, cache destage should be scheduled with high priority.
[0040] Thus, it can be seen that the present embodiment provides improved methods for data storage and data storage systems for efficient hybrid data management and cache algorithms which overcome, at least partially, the drawbacks of conventional approaches and provide minimal resource usage solutions for effective use in future storage systems.
[0041] While exemplary embodiments have been presented in the foregoing detailed description of the invention, it should be appreciated that a vast number of variations exist. It should further be appreciated that the exemplary embodiments are only examples, and are not intended to limit the scope, applicability, operation, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment of the invention, it being understood that various changes may be made in the function and arrangement of steps and method of operation described in the exemplary embodiment without departing from the scope of the invention as set forth in the appended claims.

Claims

CLAIMS What is claimed is:
1. A method for data storage in a hybrid storage node of a data storage system, the hybrid storage node comprising first and second storage devices having different performance characteristics wherein the first devices comprise at least one high performance non-volatile memory for cache storage, the hybrid storage node further comprising processing resources for managing data storage in the hybrid storage node, the method comprising:
receiving a read request to read stored information from the hybrid storage node; and
in response to the read request, accessing both the cache storage first storage devices and storage in the second storage devices to locate the stored information.
2. The method in accordance with Claim 1 further comprising:
receiving a write request to information to the hybrid storage node;
in response to the write request, writing the information to the second storage devices; and
in response to the write request, writing the information to the cache storage only if the information meets predetermined criteria.
3. The method in accordance with Claim 2 wherein the predetermined criteria comprises one or more of a size of the information is below a predetermined size threshold and the information comprises hot data.
4. The method in accordance with Claim 3 wherein the cache storage comprises id queue storage which stores identification information associated with data in the id queue storage each time the data is accessed and wherein information comprises hot data when the information comprises data which has associated identification information stored to the id queue storage when the associated identification information is already stored in the id queue storage.
5. The method in accordance with Claim 3 further comprising in response to locating the stored information in the storage in the second storage devices, writing the stored information to the cache storage if it is not already stored in the cache storage and if the stored information comprises hot data.
5. The method in accordance with Claim 1 further comprising performing cache flushing only when predetermined criteria is met, wherein cache flushing comprises deleting data form the cache which is not hot data.
6. The method in accordance with Claim 5 wherein the predetermined criteria comprises criteria selected from (a) cache space utilization is greater than a first threshold and (b) cache space utilization is below the first threshold but above a second threshold and the hybrid storage node is idle.
7. A data storage system comprising one or more hybrid storage nodes, each hybrid storage node comprising:
first storage devices having first performance characteristics; second storage devices having second performance characteristics different than the first performance characteristics; and
processing resources for managing data storage in the hybrid storage node, wherein the first performance characteristics are higher performing than the second performance characteristics, and wherein the first storage devices comprise at least one high performance non-volatile memory for cache storage, and wherein the cache storage serves as cache for the second storage devices.
8. The data storage system in accordance with Claim 7 wherein the second storage devices comprise two or more storage devices, and wherein the processing resources and the cache storage are shared among the two or more storage devices.
9. The data storage system in accordance with Claim 7 wherein the first and second performance characteristics comprise data access speeds, and wherein the first performance characteristics comprise faster access speeds than the second performance characteristics.
10. The data storage system in accordance with Claim 7 wherein the processing resources access the cache storage for both read and write operations.
11. The data storage system in accordance with Claim 7 wherein the processing resources include an id queue storage and an id list storage, and wherein the id queue storage comprises a short history buffer storing data identification information which has been accessed from the second storage devices during a predetermined recent period of time, and wherein the id list storage comprises larger storage than the id queue storage, and wherein the processing resources perform cache loading and cache destaging policies in response to the id list storage.
12. The data storage system in accordance with Claim 11 wherein the id list storage can be implemented in the first storage devices and can serve as the cache storage.
13. The data storage system in accordance with Claim 11 wherein the information associated with data in the id queue storage is read from the second storage devices and stored to the cache storage in response to the associated data in the id queue storage being accessed more than once, (cache loading)
14. The data storage system in accordance with Claim 11 wherein the information associated with data in the id list storage is evicted from the cache storage in response to the associated data in the id list storage not being accessed and moving to the end of the id list storage, (cache destaging)
15. The data storage system in accordance with Claim 7 wherein cache architecture reuses an index structure of each of the second storage devices.
16. The data storage system in accordance with Claim 7 wherein the first storage devices comprise non-volatile memory devices.
17. The data storage system in accordance with Claim 7 wherein the second storage devices comprise a single storage device.
18. The data storage system in accordance with Claim 7 wherein the second storage devices each comprise either hard disk drive storage media or a solid state storage device.
19. The data storage system in accordance with Claim 7 wherein the processing resources comprise a system-on-a-chip comprising a processor and memory resources for at least metadata storage.
20. The data storage system in accordance with Claim 7 wherein the processing resources comprise a network interface for interfacing over a network with applications.
21. The data storage system in accordance with Claim 20 interfaces the network interface couples with one or more of a block interface, a file interface, an object interface or a key-value interface.
22. The data storage system in accordance with Claim 7 wherein the data storage system is file-based, and wherein where each data access unit is a file, and wherein cache architecture of the cache storage is built on top of a file layer shared by the first and second storage devices.
23. The data storage system in accordance with Claim 7 wherein the data storage system is object-based, and wherein where each data access unit is an object, and wherein cache architecture of the cache storage is built on top of an object layer shared by the first and second storage devices.
PCT/SG2016/050240 2015-05-21 2016-05-20 Cache architecture and algorithms for hybrid object storage devices WO2016186583A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201680029289.7A CN107615254A (en) 2015-05-21 2016-05-20 The cache memory architectures and algorithm of blending objects storage device
JP2017560268A JP2018520420A (en) 2015-05-21 2016-05-20 Cache architecture and algorithm for hybrid object storage devices
US15/567,295 US20180107601A1 (en) 2015-05-21 2016-05-20 Cache architecture and algorithms for hybrid object storage devices
SG11201708381PA SG11201708381PA (en) 2015-05-21 2016-05-20 Cache architecture and algorithms for hybrid object storage devices
EP16796853.6A EP3298495A4 (en) 2015-05-21 2016-05-20 Cache architecture and algorithms for hybrid object storage devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG10201504018Y 2015-05-21
SG10201504018Y 2015-05-21

Publications (1)

Publication Number Publication Date
WO2016186583A1 true WO2016186583A1 (en) 2016-11-24

Family

ID=57320938

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2016/050240 WO2016186583A1 (en) 2015-05-21 2016-05-20 Cache architecture and algorithms for hybrid object storage devices

Country Status (6)

Country Link
US (1) US20180107601A1 (en)
EP (1) EP3298495A4 (en)
JP (1) JP2018520420A (en)
CN (1) CN107615254A (en)
SG (1) SG11201708381PA (en)
WO (1) WO2016186583A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US11321402B2 (en) * 2017-05-05 2022-05-03 Microsoft Technology Licensing, Llc. Index storage across heterogenous storage devices
CN108595367B (en) * 2018-04-25 2021-12-10 广州高专资讯科技有限公司 Server system based on computer cluster in local area network
CN108628551B (en) * 2018-05-04 2021-06-15 深圳市茁壮网络股份有限公司 Data processing method and device
CN109597579A (en) * 2018-12-03 2019-04-09 郑州云海信息技术有限公司 The method that tactful configuration is carried out to extended chip on board and rear end disk
CN111385327B (en) * 2018-12-28 2022-06-14 阿里巴巴集团控股有限公司 Data processing method and system
KR20200092710A (en) * 2019-01-25 2020-08-04 주식회사 리얼타임테크 Hybride index appratus in database management system based heterogeneous storage
CN110347338B (en) * 2019-06-18 2021-04-02 重庆大学 Hybrid memory data exchange processing method, system and readable storage medium
US11243694B2 (en) 2020-01-29 2022-02-08 Samsung Electronics Co., Ltd. Grouping key value object IOs to improve IO performance for key-value storage devices
KR20210097010A (en) * 2020-01-29 2021-08-06 삼성전자주식회사 Grouping Key Value Object IOs to Improve IO Performance for Key-Value Storage Devices
US11972361B2 (en) 2020-01-29 2024-04-30 Samsung Electronics Co., Ltd. Performance optimization of object grouping schema in a network key-value storage device using adaptive regression
KR102531765B1 (en) * 2020-12-07 2023-05-11 인하대학교 산학협력단 System of hybrid object storage for enhancing put object throughput and its operation method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493668A (en) * 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US20110258391A1 (en) * 2007-12-06 2011-10-20 Fusion-Io, Inc. Apparatus, system, and method for destaging cached data
US20120317338A1 (en) * 2011-06-09 2012-12-13 Beijing Fastweb Technology Inc. Solid-State Disk Caching the Top-K Hard-Disk Blocks Selected as a Function of Access Frequency and a Logarithmic System Time
US20130060999A1 (en) * 2011-09-01 2013-03-07 Waremax Electronics Corp. System and method for increasing read and write speeds of hybrid storage unit
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101636712B (en) * 2006-12-06 2016-04-13 才智知识产权控股公司(2) The device of object requests, system and method is served in memory controller
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US8327076B2 (en) * 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
US8095738B2 (en) * 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
US8898324B2 (en) * 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
CN102185910B (en) * 2011-04-22 2013-04-10 湖南大学 Data distribution method for diskless network server based on solid state disk (SSD) and hard disk drive (HDD) hybrid storage
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
US9128847B2 (en) * 2012-10-18 2015-09-08 Hitachi, Ltd. Cache control apparatus and cache control method
US9430386B2 (en) * 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US8935446B1 (en) * 2013-09-26 2015-01-13 Emc Corporation Indexing architecture for deduplicated cache system of a storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493668A (en) * 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US20110258391A1 (en) * 2007-12-06 2011-10-20 Fusion-Io, Inc. Apparatus, system, and method for destaging cached data
US20120317338A1 (en) * 2011-06-09 2012-12-13 Beijing Fastweb Technology Inc. Solid-State Disk Caching the Top-K Hard-Disk Blocks Selected as a Function of Access Frequency and a Logarithmic System Time
US20130060999A1 (en) * 2011-09-01 2013-03-07 Waremax Electronics Corp. System and method for increasing read and write speeds of hybrid storage unit
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
APPUSWAMY R. ET AL.: "Integrating flash-based SSDs into the storage stack.", 2012 IEEE 28TH SYMPOSIUM ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST, 20 April 2012 (2012-04-20), pages 1 - 12, XP032454568, [retrieved on 20160715] *
LI R. ET AL.: "An Efficient SSD-based Hybrid Storage Architecture for Large- Scale Search Engines.", 2012 41ST INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, 13 September 2012 (2012-09-13), pages 450 - 459, XP032265800, [retrieved on 20160715] *
LIU Z. ET AL.: "PCM-Based Durable Write Cache for Fast Disk I/O. on Modeling", MODELING, ANALYSIS&SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS), 2012 IEEE 20TH INTERNATIONAL SYMPOSIUM ON, 9 August 2012 (2012-08-09), pages 451 - 458, XP032235623, [retrieved on 20160715] *
See also references of EP3298495A4 *

Also Published As

Publication number Publication date
EP3298495A4 (en) 2019-01-09
SG11201708381PA (en) 2017-11-29
CN107615254A (en) 2018-01-19
JP2018520420A (en) 2018-07-26
US20180107601A1 (en) 2018-04-19
EP3298495A1 (en) 2018-03-28

Similar Documents

Publication Publication Date Title
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
KR101702201B1 (en) Optimized context drop for a solid state drive(ssd)
KR102093523B1 (en) Working set swapping using a sequentially ordered swap file
US9229653B2 (en) Write spike performance enhancement in hybrid storage systems
JP5943096B2 (en) Data migration for composite non-volatile storage
US20110320733A1 (en) Cache management and acceleration of storage media
US10558395B2 (en) Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
US9779026B2 (en) Cache bypass utilizing a binary tree
US8214581B2 (en) System and method for cache synchronization
CN109800185B (en) Data caching method in data storage system
CN102117248A (en) Caching system and method for caching data in caching system
CN105917318A (en) System and method for implementing SSD-based I/O caches
US20160188217A1 (en) Method for data placement in a memory based file system
US20130219122A1 (en) Multi-stage cache directory and variable cache-line size for tiered storage architectures
KR20170038853A (en) Host-managed non-volatile memory
US8862819B2 (en) Log structure array
CN105897859B (en) Storage system
US8583890B2 (en) Disposition instructions for extended access commands
JPWO2014142337A1 (en) Storage apparatus, method and program
US8769196B1 (en) Configuring I/O cache
Ma et al. Alleviating hot data write back effect for shingled magnetic recording storage systems
US9645926B2 (en) Storage system and method for managing file cache and block cache based on access type
JP4189342B2 (en) Storage apparatus, storage controller, and write-back cache control method
CN104598166B (en) Method for managing system and device
An et al. Your read is our priority in flash storage

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

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 11201708381P

Country of ref document: SG

WWE Wipo information: entry into national phase

Ref document number: 15567295

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2017560268

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE