JP2018520420A - ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム - Google Patents

ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム Download PDF

Info

Publication number
JP2018520420A
JP2018520420A JP2017560268A JP2017560268A JP2018520420A JP 2018520420 A JP2018520420 A JP 2018520420A JP 2017560268 A JP2017560268 A JP 2017560268A JP 2017560268 A JP2017560268 A JP 2017560268A JP 2018520420 A JP2018520420 A JP 2018520420A
Authority
JP
Japan
Prior art keywords
storage
cache
data
storage device
hybrid
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2017560268A
Other languages
English (en)
Inventor
チャオ ジン
チャオ ジン
ウェイヤ シー
ウェイヤ シー
カイ レオン ヨン
カイ レオン ヨン
ジー ヨン チン
ジー ヨン チン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agency for Science Technology and Research Singapore
Original Assignee
Agency for Science Technology and Research Singapore
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 Singapore filed Critical Agency for Science Technology and Research Singapore
Publication of JP2018520420A publication Critical patent/JP2018520420A/ja
Pending legal-status Critical Current

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

データストレージシステムのハイブリッドストレージノードにおけるデータ記憶のための方法を提供する。ハイブリッドストレージノードは、異なる性能特性を有する第1のストレージデバイスと第2のストレージデバイスとを含み、第1のデバイスは、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含む。ハイブリッドストレージノードは、ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースをさらに含む。本方法は、記憶された情報をハイブリッドストレージノードから読み出すよう求める読出し要求を受け取る段階、および読出し要求に応答して、記憶された情報を発見するためにキャッシュ記憶の第1のストレージデバイスと第2のストレージデバイス内の記憶との両方にアクセスする段階を含む。

Description

本発明は、概して、データ記憶のための方法およびシステムに関し、より詳細には、データシステム管理のための方法およびシステムに関する。
開示の背景
中央処理装置および不揮発性メモリの技術の進歩と共に、ストレージシステム性能を最適化し、総所有コスト(TOC)を削減するために、オペレーティングシステムソフトウェアおよびストレージシステムソフトウェアの機能を小型のストレージコントローラボードに組み込むことの実現可能性がますます高まっている。
次世代ストレージシステムでは、ストレージデバイスの管理に使用されるストレージサーバと独立ディスク冗長アレイ(redundant array of independent disk:RAID)コントローラが除かれている。代わりに、単一システムオンシップ(SOC)アクティブドライブコントローラがストレージノードの管理に使用され、ストレージサーバの機能はストレージデバイスに移される。アプリケーションをストレージデバイスに直接接続することができ、そのため、ハードウェアコストおよび保守コストを含むシステム全体のコストが大幅に削減される。
そうしたハイブリッド技術の解決策では、単一のストレージデバイスにおいて異なる記憶媒体を組み合わせることにより、記憶性能(1ドル当たりの毎秒入出力動作数(IOPS)(IOPS/ドル)として測定される)を向上させると同時に、記憶コスト(1ギガバイト当たりのドル金額として測定される(ドル/GB))を削減する。異なる記憶媒体は異なる性能特性および異なるコストを有するので、ハイブリッドストレージデバイスは、通常、少量の高性能かつ高コスト記憶媒体と、多量の低性能かつ低コスト記憶媒体とで構成される。例えば、ハイブリッドストレージデバイスは、単一のディスクエンクロージャ内に不揮発性ランダムアクセスメモリ(NVRAM)半導体チップと磁気ディスクプラッタとを含むハイブリッドドライブとすることもできる。またハイブリッドストレージデバイスは、単一/複数の固体デバイス(SSD)と単一/複数のハードディスクドライブ(HDD)とで構成されたストレージノードとすることもできる。そうしたノードで使用されるSSDおよびHDDの数は、所望の性能またはコストに基づいて決定することができる。
そうしたハイブリッドストレージデバイス内の異なる記憶媒体を十分に活用するためには、効率的なデータ管理およびキャッシュアルゴリズムが必要であり、特別な要件を考慮する必要がある。第1に、そうしたシステム内のハイブリッドストレージデバイスはネットワークに直接接続され、分散型のファイルストレージシステムまたはオブジェクトストレージシステムによって管理されることが多いため、ハイブリッドデータ管理およびキャッシュアルゴリズムをファイルレベルまたはオブジェクトレベルで設計し、実装した方がより効率的である。第2に、ハイブリッドストレージデバイスは、通常、ハードウェアリソースが限られているため、そうしたシステム向けに設計されるキャッシュアーキテクチャおよびアルゴリズムは、高効率で、リソース要求が少ないことが重要である。
よって、必要とされているのは、現在の手法の欠点を少なくとも部分的に克服し、将来のストレージシステムで有効に使用するための最小限のリソース使用解決策を提供する、効率的なハイブリッドデータ管理およびキャッシュアルゴリズムのための方法およびシステムである。さらに、以下の詳細な説明および添付の特許請求の範囲を、添付の図面およびこの開示の背景と共に読めば、他の望ましい特徴および特性が明らかになるであろう。
概要
本発明の少なくとも1つの態様によれば、データストレージシステムのハイブリッドストレージノードにおけるデータ記憶のための方法が提供される。ハイブリッドストレージノードは、異なる性能特性を有する第1のストレージデバイスと第2のストレージデバイスとを含み、第1のデバイスは、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含む。ハイブリッドストレージノードは、ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースをさらに含む。本方法は、記憶された情報をハイブリッドストレージノードから読み出すよう求める読出し要求を受け取る段階、および読出し要求に応答して、記憶された情報を発見するためにキャッシュ記憶の第1のストレージデバイスと第2のストレージデバイス内の記憶との両方にアクセスする段階を含む。
本発明の別の態様によれば、1つまたは複数のハイブリッドストレージノードを含むデータストレージシステムが提供される。各ハイブリッドストレージノードは、第1のストレージデバイスと第2のストレージデバイスと処理リソースとを含む。第1のストレージデバイスは第1の性能特性を有し、第2のストレージデバイスは、第1の性能特性とは異なる第2の性能特性を有する。処理リソースは、ハイブリッドストレージノードにおけるデータ記憶を管理する。第1の性能特性は第2の性能特性よりも高性能であり、第1のストレージデバイスはキャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含む。キャッシュ記憶は、第2のストレージデバイスのためのキャッシュの働きをする。
添付の各図において、類似した符番は別個の各図を通して同一の要素または機能的に類似した要素を指し、各図は以下の詳細な説明と共に本明細書に組み入れられ、本明細書の一部を形成しており、様々な態様を例示し、本発明の態様による様々な原理および利点の説明に使用される。
従来のストレージシステムと典型な次世代ストレージシステム案とを並べて示したブロック図である。 本発明の態様による分散型ファイル/オブジェクトベースハイブリッドストレージシステムを示すブロック図である。 本発明の態様による図2のハイブリッドストレージシステム内の単一のストレージデバイスのオブジェクトストアアーキテクチャを示す階層化ブロック図である。 本発明の態様による図2のハイブリッドストレージシステム内の単一のアクティブハイブリッドストレージノードのキャッシュアーキテクチャを示す階層化ブロック図である。 本発明の態様による図2のハイブリッドストレージシステム内の複数のストレージデバイス間の共用キャッシュアーキテクチャを示す階層化ブロック図である。 本発明の態様による図2のハイブリッドストレージシステム内のキャッシュを有するオブジェクトストアにオブジェクトを書き込むためのプロセスフローを示す流れ図である。 本発明の態様による図2のハイブリッドストレージシステム内のキャッシュを有するオブジェクトストアからオブジェクトを読み出すためのプロセスフローを示す流れ図である。 本発明の態様による図2のハイブリッドストレージシステム内のハードディスクドライブ(HDD)とキャッシュとの間のオブジェクトのロードおよびデステージのアルゴリズムを示す図である。
当業者は、各図の要素が簡潔かつ明瞭であるように図示されており、必ずしも縮尺通りには描かれていないことを理解するであろう。
詳細な説明
以下の詳細な説明は単に例示的な性格のものにすぎず、本発明または本発明の適用および用途を限定するためのものではない。さらに、前述の本発明の背景または以下の詳細な説明で提示されるいかなる理論による拘束も意図されていない。本発明の態様の目的は、スケールアウトストレージクラスタ内のハイブリッドストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズムを提示することである。本発明の態様によるハイブリッドストレージデバイスは、不揮発性メモリ(NVM)チップと磁気ディスクとを有する単一のハイブリッドドライブとするか、または1台の固体デバイス(SSD)と1台もしくは複数台のハードディスクドライブ(HDD)とを有するドライブのグループとすることができる。
どちらの形態においても、本発明の態様によるハイブリッドストレージデバイスは、ハイブリッド記憶媒体を管理するための単一システムオンチップ(SOC)ボードを含むことになる。本発明の態様によるSOCボードは、通常、低消費電力プロセッサと、ある一定量のダイナミックランダムアクセスメモリ(DRAM)とを備えている。またSOCボードは、本発明の態様によれば、ハイブリッドストレージデバイスがイーサネットに直接接続することを可能にするイーサネットインターフェースを提供することもできる。ストレージシステムクラスタは、ファイルベースまたはオブジェクトベースのストレージシステムとすることができ、その場合のデータアクセス単位はファイルまたはオブジェクトになる。
本発明の態様によるハイブリッドストレージデバイスの内部では、より高速な媒体(例えばNVMまたはSSD)は、より低速な媒体(磁気ディスク)のキャッシュの働きをする。データをディスクブロックとして管理する従来のキャッシュとは異なり、本発明の態様によるキャッシュアーキテクチャは、ファイル層またはオブジェクト層の上に構築され、キャッシュを上位の分散型のファイルストレージシステムまたはオブジェクトストレージシステムとよりよく統合することが可能になる。また、本発明の態様によるキャッシュアーキテクチャおよびアルゴリズムは、基礎となるファイルストアまたはオブジェクトストアの索引構造およびアクセスアプリケーションプログラミングインターフェース(API)を再利用することによって設計され、実装される。このように、本発明の態様によるキャッシュアーキテクチャは、限られたリソースを有するハイブリッドストレージデバイスのクリティカルな制約条件に対応するために、追加のリソース使用をほとんど必要としない(例えば、メタデータ用のDRAMのみ)。
本発明の態様によるキャッシュは、読出し動作と書込み動作の両方のための汎用キャッシュであるように設計されており、SOCプロセッサは、読出し動作および書込み動作のプロセスフローと、キャッシュロードおよびキャッシュデステージのポリシーおよびアルゴリズムを提供する。従来、ハイブリッドストレージデバイス内部のより高速な媒体は、ファイルストア/オブジェクトストアのジャーナルを記憶するのに使用される。本発明の態様によれば、キャッシュアーキテクチャおよびアルゴリズムは、従来のアーキテクチャおよびアルゴリズムとのいくつかの相違点を有する。第1に、ジャーナルは主にトランザクションをサポートするように設計されているが、ローカルファイルシステム(例えば、Oracle Corporation、米国カリフォルニア州が最初に設計したBツリーファイルシステムbtrfs)がすでに同様の機能を有しているため、これを不要とすることができる。本発明の態様に従ってジャーナルを使用すれば、キャッシュは、すべてのファイルシステムで性能を向上させることができる。
第2に、従来のジャーナル設計では、すべてのオブジェクト書込みが2回実行される。すなわち、オブジェクトデータはまずジャーナルに書き込まれ、次いでオブジェクトデータはディスクに書き込まれる。本発明の態様によるキャッシュアーキテクチャおよび動作では、選択されたオブジェクト(スモールオブジェクトおよび/またはホットオブジェクト)だけがキャッシュに書き込まれ、他のすべてのオブジェクトはジャーナルに書き込まれずにディスクに書き込まれる。これにより、有利には、処理時間およびリソースが削減される。というのは、すべての書込み(特に大きな連続した書込み)がSSDに向かった場合、SSDリソースの限られた空間がすぐに使い果たされ、処理が高くつくフラッシュ動作/追い出し動作を引き起こすことになるからである。
第3に、すでにジャーナルにコミットされたオブジェクトが、一定の間隔でディスクにフラッシュされる。本発明の態様によれば、システム全体の性能を向上させるために様々なキャッシュポリシーに従ってキャッシュエントリがディスクに動的に追い出される。このように、オブジェクトはそれらが十分にホットである間だけキャッシュ内に留まる。
第4に、従来、ジャーナルエントリは後続の読出し動作からは確認できない。というのは、通常のシステムでは、オブジェクトは、それらがディスクに書き込まれるときにだけ読み出すことができるからである。よって、ジャーナルは読出し性能に悪影響を及ぼす場合がある。しかし、本発明の態様によるシステムでは、読出し要求によってキャッシュ内のエントリにアクセスすることができ、そのため、読出し性能が向上する。最後に、HDD内のオブジェクトがホットになった場合、それらは、性能を向上させるために本発明の態様に従ってキャッシュにロードされる。従来は、オブジェクトをHDDからジャーナルにロードすることはできない。
図1を参照すると、ブロック図100には、従来のストレージシステム110から次世代ストレージシステム150への進化が示されている。従来のストレージシステム110は、分散ファイルストレージで使用するためのクライアントサーバ114を有するアプリケーションサーバ112を含む。アプリケーションサーバ112は、ネットワーク118を介してストレージサーバ116に結合されている。ストレージサーバ116は、ストレージデバイス122を管理するために独立ディスク冗長アレイ(RAID)コントローラ120を利用する。ネットワーク118には、ストレージデバイス122に記憶された情報と関連付けられたメタデータを管理するためのメタデータサーバ124も結合されている。
次世代のストレージシステム150では、ストレージサーバ116と、ストレージデバイス122の管理に使用されるRAIDコントローラが除かれている。代わりに、単一システムオンチップ(SOC)アクティブドライブコントローラ152が、ネットワーク118を介してアプリケーションサーバ156内のクライアントライブラリと通信するストレージノード154の管理に使用される。よって、ストレージサーバ116の機能はストレージデバイスに移行されており、アプリケーション156は154ストレージデバイスに直接接続することができ、そのため、ハードウェアコストおよび保守コストを含むストレージシステム全体のコストが大幅に削減される。
次世代ストレージシステム150のストレージデバイス154は、典型的には、記憶性能を向上させると同時に記憶コストを削減するために単一のストレージデバイス内に異なる記憶媒体を含むハイブリッドストレージデバイスである。背景技術で論じたように、そうしたハイブリッドストレージデバイス内の異なる記憶媒体を十分に活用するためには、効率的なデータ管理およびキャッシュアルゴリズムが必要であり、特別な要件を考慮する必要がある。第1に、そうしたシステム内のハイブリッドストレージデバイスはネットワークに直接接続され、分散型のファイルストレージシステムまたはオブジェクトストレージシステムによって管理されることが多いため、ハイブリッドデータ管理およびキャッシュアルゴリズムをファイルレベルまたはオブジェクトレベルで設計し、実装した方がより効率的である。第2に、ハイブリッドストレージデバイスは、通常、ハードウェアリソースが限られているため、そうしたシステム向けに設計されるキャッシュアーキテクチャおよびアルゴリズムは、高効率で、リソース要求が少ないことが重要である。
図2に、次世代ストレージシステムの課題に対処する本発明の態様によるスケールアウトオブジェクトストレージクラスタ202のアーキテクチャのブロック図200を示す。システムのストレージノードは、アクティブハイブリッドベイ204である。各アクティブハイブリッドベイ204は、ストレージとして1台の固体デバイス(SSD)206と複数台のハードディスクドライブ(HDD)208とを含む。各アクティブハイブリッドベイ204は、アクティブハイブリッドベイ204を管理する処理リソースを含むアクティブコントローラボード(ACB)210と呼ばれる単一SOCボードも含み、アクティブハイブリッドベイ204は、単一のオブジェクトストレージデバイスとして構成することもでき、複数のオブジェクトストレージデバイスとして構成することもでき、各HDDは別々のオブジェクトストレージデバイスに属する。オブジェクトストレージクラスタ202はアクティブ管理ノード212も含み、アクティブ管理ノード212は、オブジェクトストレージクラスタ202のメタデータを維持し、アクティブ管理ノード212内で動作するゲートウェイ213と呼ばれるモジュールおよびプロセスのセットを含む。
オブジェクトストレージクラスタ202は高速イーサネットネットワーク118を介して、アプリケーション214に複数のインターフェースを提供する。ゲートウェイ213は、アプリケーション214に、S3インターフェースなどの記憶インターフェースを提供する。ブロックインターフェース216は、アプリケーション214がブロックデバイスのようにクラスタを使用することを可能にし、通常は、オブジェクトストレージクラスタ202を使用して仮想マシン218に記憶空間を提供する。ファイルインターフェース220は、ポータブルオペレーティングシステムインターフェース(POSIX)アプリケーション222がオブジェクトストレージクラスタ202をPOSIXファイルシステムのように使用することを可能にする。オブジェクトインターフェース224は、S3アプリケーションまたはSwiftアプリケーション226と互換性があり、S3アプリケーションまたはSwiftアプリケーションがオブジェクトストレージクラスタ202を使用することを可能にする。キー値インターフェース228は、キネティックドライブアプリケーション230と互換性があり、キネティックドライブアプリケーションがオブジェクトストレージクラスタ202を使用することを可能にする。
図3を参照すると、階層化ブロック図300には、本発明の態様によるハイブリッドストレージシステム202内の単一のストレージノード(例えばハードディスクドライブ208)のオブジェクトストアアーキテクチャが示されている。オブジェクトストアは、ローカルファイルシステム302に基づくものであり、各オブジェクトは個別ファイルとして記憶されている。オブジェクトストアは、オブジェクトに索引付けし、オブジェクトを管理するための索引構造304を実装している。例えば、索引付け構造304は、ハッシュアルゴリズムを使用して、オブジェクト名をオブジェクトファイルパス名306およびローカルファイルシステム302内のファイル名にマップする。オブジェクトストアは複数のコレクションを含み、各コレクションは、ローカルファイルシステム302内のオブジェクトのグループを含む別個のフォルダに対応している。オブジェクトストアは、ファイルのようにローカルファイルシステム302からオブジェクトにアクセスすることを可能にする、POSIXのようなアプリケーションプログラミングインターフェース(API)308のセットも提供する。
図4に、本発明の態様によるハイブリッドストレージシステム202内の1つのアクティブハイブリッドストレージノード204のキャッシュアーキテクチャの階層化ブロック図400を示す。キャッシュアーキテクチャは、ブロック図300に示されているオブジェクトストアアーキテクチャに基づくものであり、元のオブジェクトストアに別個のキャッシュコレクション402が追加されている。キャッシュコレクション402は、複数の索引構造304およびファイルシステム406と同様の索引構造404およびファイルシステム406を使用する。キャッシュコレクション402は、NVM/SSD206などのより高速な媒体上に位置し、その他のコレクション306は、HDD208などのより低速な媒体上に位置する。NVM/SSD206上のキャッシュコレクション402とHDD上のオブジェクトコレクション306との間でオブジェクトを管理するためにキャッシュ管理モジュール408が実装されている。オブジェクトAPI308は、ブロック図300に示されている単一のデバイスオブジェクトストアと同じであり、オブジェクトストアアプリケーションが変更なしでキャッシュアーキテクチャの上で動作することを可能にする。アプリケーションがNVM/SSD206上のキャッシュ内のデータを直接操作するために、強制デステージなどの追加キャッシュAPIがオブジェクトAPI層308に実装されている。
図5に、本発明の態様によるハイブリッドストレージシステム202内の複数のストレージデバイス208間の共用キャッシュアーキテクチャを示す階層化ブロック図500を示す。各キャッシュコレクション402は、NVM/SSD206上のローカルファイルシステム406内の別個のフォルダに対応している。ローカルファイルシステム406は複数のフォルダを含んでいてよく、各フォルダは異なるキャッシュコレクションに対応している。これらのキャッシュコレクションは、同じファイルシステム空間を共用するが、各々、異なるHDD208上の異なるオブジェクトストアファイルシステム302に属する。
図6に、本発明の態様によるハイブリッドストレージシステム202内のキャッシュを有するオブジェクトストアにオブジェクトを書き込むためのプロセスフローの流れ図600を示す。キャッシュ管理モジュール408は、オブジェクト書込み要求602を受け取ると、まず、オブジェクトがキャッシュコレクション402にすでに存在しているかどうか検出し(604)、オブジェクトがすでに存在している場合、キャッシュ内のオブジェクトの更新を実行する(606)。オブジェクトがキャッシュ内にない場合(604)、キャッシュ管理モジュール408は、オブジェクトがHDD208に存在しているかどうかさらに検出する(606)。オブジェクトがHDD208に記憶されている場合(606)、オブジェクトはHDD208において直接更新される(608)。そうでない場合、オブジェクトは新しいオブジェクトであり、オブジェクトのサイズ、名前、種類、または他のオブジェクト属性に従って(610)、キャッシュに書き込まれる(606)か、またはHDD208に書き込まれる(608)。
図7を参照すると、流れ図700には、本発明の態様によるハイブリッドストレージシステム202内のキャッシュを有するオブジェクトストアからオブジェクトを読み出すためのプロセスフローが示されている。キャッシュ管理モジュール408は、オブジェクト読出し要求702を受け取ると、まず、オブジェクトがキャッシュコレクション402内にあるかどうか検出する(704)。オブジェクトがキャッシュコレクション402内にある場合、オブジェクトをキャッシュから読み出す(706)。オブジェクトがHDD208にあることが検出された場合(708)、オブジェクトをHDD208から読み出す(710)。オブジェクトがキャッシュコレクション402でもHDD208でも検出されない場合(704、708)、キャッシュ管理モジュール408はオブジェクトAPI層にエラーを返し(712)、キャッシュ管理モジュール408がアクセスできるファイルシステム302、406にはそのオブジェクトが記憶されていないことを示す。
図8に、本発明の態様によるハイブリッドストレージシステム202内のHDD208とNVM206キャッシュとの間のオブジェクトのロードおよびデステージのアルゴリズムの説明図800を示す。キャッシュ管理モジュール408は、FIFO待ち行列802とLRUリスト804の2つのメタデータ構造を実装している。FIFO待ち行列802は、所定の最近の期間中にHDD208から一度アクセスされたオブジェクトIDを記憶する短期履歴バッファの働きをし、オブジェクトIDはFIFO待ち行列802の先頭805に記憶されている。FIFO待ち行列802内のオブジェクトが2回目にアクセスされた場合、そのオブジェクトはHDD208からNVM206内のキャッシュにロードされる。FIFO待ち行列802内のオブジェクトが一度しかアクセスされなかった場合、そのオブジェクトは徐々にFIFO待ち行列802の末尾806に移動され、最終的には新しいオブジェクトが待ち行列に入るときにFIFO待ち行列802から追い出される。実際には、FIFO待ち行列802は、長い期間に一度しかアクセスされていないオブジェクトがキャッシュに入るのを防止するフィルタとして機能し、よって有利には、キャッシュ汚染を回避し、真にホットなオブジェクトのためのキャッシュ空間を確保する。他方、LRUリスト804は、通常、FIFO待ち行列802よりもはるかに大きく、LRUリスト804は、現在キャッシュ内にあるオブジェクトIDを記憶する。オブジェクトがキャッシュに入る度に、そのオブジェクトIDがLRUリスト804の先頭808に追加される。LRUリスト804内のオブジェクトが再度アクセスされた場合、そのオブジェクトIDはLRUリスト804の先頭808に戻される。このようにして、頻繁にアクセスされるホットオブジェクトはLRUリスト804の先頭808に留まり、よりコールドなオブジェクトはLRUリスト804の末尾810に移動する。
オブジェクトがNVM206内のキャッシュへとコピーされた後、HDD208からコピーされた後にNVM206のキャッシュ内のそのオブジェクトが更新される場合、そのオブジェクトを「ダーティオブジェクト」と呼ぶ。というのは、キャッシュにはNVM206に記憶された、HDD208よりも新しいバージョンのオブジェクトがあるからである。他方、「クリーンオブジェクト」とは、HDD208からキャッシュにコピーされてから更新されていないNVM206のキャッシュ内のオブジェクトである。よって、キャッシュデステージ中に、LRUリスト804の末尾810のオブジェクトがキャッシュから追い出され、それらがダーティオブジェクトである場合には、HDD208に書き込まれる。というのは、キャッシュバージョンのダーティオブジェクトはHDDに記憶されたバージョンのダーティオブジェクトよりも新しいバージョンのオブジェクトだからである。しかし、クリーンオブジェクトは、HDDに記憶されたバージョンのクリーンオブジェクトがキャッシュバージョンのクリーンオブジェクトと同じであるため、HDD208に書き込まれずにキャッシュから追い出されることになる。
本発明の態様の一局面によれば、キャッシュは、メモリ内LRUリスト804を用いて実装することができる。しかし、キャッシュは、本発明の態様の別の局面に従って、メモリ内LRUリスト804なしで実装することもできる。これは、本発明の態様によるキャッシュがオブジェクト/ファイルレベルのものであり、記憶されたオブジェクトのアクセス/変更時刻が下層のファイルシステムによってすでに記録されているためである。ファイルシステム情報を利用し、アクセス/変更時刻によってオブジェクト/ファイルをソートすることによって、キャッシュはメモリ内LRUリスト804と同様の効果を達成することができる。実用的な実装形態では、本発明の態様によるメモリ内LRUリスト804を、LRUリスト804を永続記憶でバックアップせずに実装することもできる。というのは、システムクラッシュの場合には、メモリ内LRUリスト804をファイルシステム情報302、406から回復することができるからである。
本発明の態様の別の局面によれば、キャッシュデステージ動作を、現在のキャッシュ空間利用度およびワークロード状態に従って予定することができる。キャッシュ空間利用度の2つの閾値、下限閾値および上限閾値を設定することができる。現在のキャッシュ空間利用度が下限閾値を下回る場合には、キャッシュデステージを予定しなくてよい。現在のキャッシュ空間利用度が下限閾値を上回るが上限水位を下回る場合には、システム202がアイドル状態にあるときにキャッシュデステージを予定することができる。また、現在のキャッシュ空間利用度が上限閾値を上回る場合には、キャッシュデステージを最優先で予定する必要がある。
よって、本発明の態様は、従来の手法の欠点を少なくとも部分的に克服し、将来のストレージシステムで有効に使用するための最小限のリソース使用解決策を提供する効率的なハイブリッドデータ管理およびキャッシュアルゴリズムのための、改善されたデータ記憶のための方法およびデータストレージシステムを提供することが理解できる。
以上の本発明の詳細な説明では例示的な態様が提示されているが、膨大な数の変形形態が存在することを理解されたい。例示的な態様は単なる例にすぎず、いかなる点においても本発明の範囲、適用性、動作または構成を限定するものではないことをさらに理解されたい。そうではなく、以上の詳細な説明は、当業者に、本発明の例示的な態様を実施するのに好都合なロードマップを提供するものであり、添付の特許請求の範囲に記載されている本発明の範囲を逸脱することなく、例示的な態様に記載されている段階および操作方法の機能および構成に様々な変更を加えることができることを理解されたい。

Claims (24)

  1. データストレージシステムのハイブリッドストレージノードにおけるデータ記憶のための方法であって、前記ハイブリッドストレージノードは、異なる性能特性を有する第1のストレージデバイスと第2のストレージデバイスとを含み、前記第1のデバイスは、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含み、前記ハイブリッドストレージノードは、前記ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースをさらに含み、前記方法は、
    記憶された情報を前記ハイブリッドストレージノードから読み出すよう求める読出し要求を受け取る段階;および
    前記読出し要求に応答して、前記記憶された情報を発見するために前記キャッシュ記憶の第1のストレージデバイスと前記第2のストレージデバイス内の記憶との両方にアクセスする段階
    を含む、前記方法。
  2. 前記ハイブリッドストレージノードへの情報の書込み要求を受け取る段階;
    前記書込み要求に応答して、前記情報を前記第2のストレージデバイスに書き込む段階;および
    前記書込み要求に応答して、前記情報が所定の基準を満たす場合に限り前記情報を前記キャッシュ記憶に書き込む段階
    をさらに含む、請求項1記載の方法。
  3. 前記所定の基準は、前記情報のサイズが所定のサイズ閾値を下回ること、および前記情報がホットデータを含むこと、のうちの1つまたは複数を含む、請求項2記載の方法。
  4. 前記キャッシュ記憶は、データと関連付けられた識別情報を該データへのアクセスがある度にID待ち行列記憶に記憶するID待ち行列記憶を含み、かつここで、関連付けられた識別情報がID待ち行列記憶にすでに記憶されている場合に前記ID待ち行列記憶に記憶された前記関連付けられた識別情報を有するデータを情報が含む場合、該情報はホットデータを含む、請求項3記載の方法。
  5. 前記記憶された情報が前記キャッシュ記憶にまだ記憶されておらず、かつ前記記憶された情報がホットデータを含む場合、前記第2のストレージデバイス内の記憶において前記記憶された情報を発見したことに応答して、前記記憶された情報を前記キャッシュ記憶に書き込む段階をさらに含む、請求項3記載の方法。
  6. 所定の基準が満たされた場合に限り、前記キャッシュからホットデータではないデータを削除することを含むキャッシュフラッシュを実行する段階をさらに含む、請求項1記載の方法。
  7. 前記所定の基準は、(a)キャッシュ空間利用度が第1の閾値より大きいこと、および(b)キャッシュ空間利用度が前記第1の閾値を下回るが、第2の閾値を上回り、かつハイブリッドストレージノードがアイドル状態であること、の中から選択される基準を含む、請求項5記載の方法。
  8. 1つまたは複数のハイブリッドストレージノードを含むデータストレージシステムであって、各ハイブリッドストレージノードが、
    第1の性能特性を有する第1のストレージデバイスと、
    前記第1の性能特性とは異なる第2の性能特性を有する第2のストレージデバイスと、
    前記ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースと
    を含み、
    前記第1の性能特性が、前記第2の性能特性よりも高性能であり、かつ前記第1のストレージデバイスが、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含み、かつ前記キャッシュ記憶が、前記第2のストレージデバイスのためのキャッシュの働きをする、
    データストレージシステム。
  9. 前記第2のストレージデバイスが2つ以上のストレージデバイスを含み、かつ前記処理リソースおよび前記キャッシュ記憶が前記2つ以上のストレージデバイスの間で共用される、請求項7記載のデータストレージシステム。
  10. 前記第1の性能特性および前記第2の性能特性がデータアクセス速度を含み、かつ前記第1の性能特性が、前記第2の性能特性より高速なアクセス速度を含む、請求項7記載のデータストレージシステム。
  11. 前記処理リソースが、読出し動作と書込み動作の両方のために前記キャッシュ記憶にアクセスする、請求項7記載のデータストレージシステム。
  12. 前記処理リソースがID待ち行列記憶およびIDリスト記憶を含み、かつ前記ID待ち行列記憶が、所定の最近の期間中に前記第2のストレージデバイスからのアクセスがあったデータ識別情報を記憶する短期履歴バッファを含み、かつ前記IDリスト記憶が、前記ID待ち行列記憶より大きい記憶を含み、かつ前記処理リソースが、前記IDリスト記憶に応答してキャッシュロードポリシーおよびキャッシュデステージポリシーを実行する、請求項7記載のデータストレージシステム。
  13. 前記IDリスト記憶が、前記第1のストレージデバイスにおいて実装され得、かつ前記キャッシュ記憶の働きをすることができる、請求項11記載のデータストレージシステム。
  14. 前記ID待ち行列記憶内のデータと関連付けられた情報が、前記ID待ち行列記憶内の関連付けられた前記データが複数回アクセスされたことに応答して、前記第2のストレージデバイスから読み出され、かつ前記キャッシュ記憶に記憶される(キャッシュロード)、請求項11記載のデータストレージシステム。
  15. 前記IDリスト記憶内のデータと関連付けられた情報が、前記IDリスト記憶内の関連付けられた前記データがアクセスされずかつ前記IDリスト記憶の末尾に移動したことに応答して、前記キャッシュ記憶から追い出される(キャッシュデステージ)、請求項11記載のデータストレージシステム。
  16. キャッシュアーキテクチャが、前記第2のストレージデバイスの各々の索引構造を再利用する、請求項7記載のデータストレージシステム。
  17. 前記第1のストレージデバイスが不揮発性メモリデバイスを含む、請求項7記載のデータストレージシステム。
  18. 前記第2のストレージデバイスが単一のストレージデバイスを含む、請求項7記載のデータストレージシステム。
  19. 前記第2のストレージデバイスが各々、ハードディスクドライブ記憶媒体または固体ストレージデバイスのいずれかを含む、請求項7記載のデータストレージシステム。
  20. 前記処理リソースが、プロセッサと少なくともメタデータ記憶用のメモリリソースとを含むシステムオンチップを含む、請求項7記載のデータストレージシステム。
  21. 前記処理リソースが、ネットワーク上でアプリケーションと連携するためのネットワークインターフェースを含む、請求項7記載のデータストレージシステム。
  22. 連携する前記ネットワークインターフェースが、ブロックインターフェース、ファイルインターフェース、オブジェクトインターフェース、またはキー値インターフェースのうちの1つまたは複数と結合する、請求項20記載のデータストレージシステム。
  23. 前記データストレージシステムがファイルベースであり、かつ各データアクセス単位がファイルであり、かつ前記キャッシュ記憶のキャッシュアーキテクチャが、前記第1のストレージデバイスと前記第2のストレージデバイスとによって共用されるファイル層の上に構築される、請求項7記載のデータストレージシステム。
  24. 前記データストレージシステムがオブジェクトベースであり、かつ各データアクセス単位がオブジェクトであり、かつ前記キャッシュ記憶のキャッシュアーキテクチャが、前記第1のストレージデバイスと前記第2のストレージデバイスとによって共用されるオブジェクト層の上に構築される、請求項7記載のデータストレージシステム。
JP2017560268A 2015-05-21 2016-05-20 ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム Pending JP2018520420A (ja)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
JP2018520420A true JP2018520420A (ja) 2018-07-26

Family

ID=57320938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017560268A Pending JP2018520420A (ja) 2015-05-21 2016-05-20 ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220080329A (ko) * 2020-12-07 2022-06-14 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Families Citing this family (11)

* 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 (zh) * 2018-04-25 2021-12-10 广州高专资讯科技有限公司 一种基于局域网内计算机集群的服务器系统
CN108628551B (zh) * 2018-05-04 2021-06-15 深圳市茁壮网络股份有限公司 一种数据处理方法及装置
CN109597579A (zh) * 2018-12-03 2019-04-09 郑州云海信息技术有限公司 对板卡上扩展芯片及后端磁盘进行策略配置的方法
CN111385327B (zh) * 2018-12-28 2022-06-14 阿里巴巴集团控股有限公司 数据处理方法和系统
KR20200092710A (ko) * 2019-01-25 2020-08-04 주식회사 리얼타임테크 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치
CN110347338B (zh) * 2019-06-18 2021-04-02 重庆大学 混合内存数据交换处理方法、系统及可读存储介质
KR102698959B1 (ko) * 2020-01-29 2024-08-27 삼성전자주식회사 키-값 스토리지 장치들에 대한 입출력 성능을 향상을 위한 키 값 객체 입출력들 그룹화
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
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

Family Cites Families (15)

* 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
CN101646994B (zh) * 2006-12-06 2016-06-15 才智知识产权控股公司(2) 利用内存库交错管理固态存储器的命令的装置、系统及方法
US9104599B2 (en) * 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
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 (zh) * 2011-04-22 2013-04-10 湖南大学 基于ssd和hdd混合存储的无盘网络服务器数据分布方法
US8838895B2 (en) * 2011-06-09 2014-09-16 21Vianet Group, Inc. Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time
TWI472920B (zh) * 2011-09-01 2015-02-11 A system and method for improving the read and write speed of a hybrid storage unit
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
WO2014061064A1 (en) * 2012-10-18 2014-04-24 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220080329A (ko) * 2020-12-07 2022-06-14 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법
KR102531765B1 (ko) 2020-12-07 2023-05-11 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Also Published As

Publication number Publication date
EP3298495A4 (en) 2019-01-09
SG11201708381PA (en) 2017-11-29
WO2016186583A1 (en) 2016-11-24
US20180107601A1 (en) 2018-04-19
CN107615254A (zh) 2018-01-19
EP3298495A1 (en) 2018-03-28

Similar Documents

Publication Publication Date Title
JP2018520420A (ja) ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム
US11163699B2 (en) Managing least recently used cache using reduced memory footprint sequence container
KR102093523B1 (ko) 순차적인 순서의 스왑 파일을 이용한 작업 세트 스와핑 기법
US9465554B2 (en) Tiered caching and migration in differing granularities
KR101702201B1 (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
US9430404B2 (en) Thinly provisioned flash cache with shared storage pool
JP5944587B2 (ja) 計算機システム及び制御方法
US20170206166A1 (en) Cache bypass utilizing a binary tree
CN102117248A (zh) 一种缓存系统和在缓存系统中缓存数据的方法
US20130219122A1 (en) Multi-stage cache directory and variable cache-line size for tiered storage architectures
US9471253B2 (en) Use of flash cache to improve tiered migration performance
JP4189342B2 (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
Chen et al. Co-optimizing storage space utilization and performance for key-value solid state drives
Gwak et al. SCJ: Segment Cleaning Journaling for Log-Structured File Systems
KR102149468B1 (ko) 통합 캐시를 하나 또는 복수의 논리 유닛에 동적 할당하는 시스템 및 방법
JP2010160544A (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
JP6273678B2 (ja) ストレージ装置
CN117785034A (zh) 一种分级缓存系统、方法及服务器
US9183154B2 (en) Method and system to maintain maximum performance levels in all disk groups by using controller VDs for background tasks
KR100980667B1 (ko) Ssd에서의 임의 쓰기 성능을 개선하기 위한 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180216