JP2016162168A - キャッシュファイルシステム - Google Patents

キャッシュファイルシステム Download PDF

Info

Publication number
JP2016162168A
JP2016162168A JP2015040006A JP2015040006A JP2016162168A JP 2016162168 A JP2016162168 A JP 2016162168A JP 2015040006 A JP2015040006 A JP 2015040006A JP 2015040006 A JP2015040006 A JP 2015040006A JP 2016162168 A JP2016162168 A JP 2016162168A
Authority
JP
Japan
Prior art keywords
data
file
file system
cluster
cache file
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.)
Granted
Application number
JP2015040006A
Other languages
English (en)
Other versions
JP6506050B2 (ja
Inventor
史明 塚嵜
Fumiaki Tsukasaki
史明 塚嵜
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.)
MegaChips Corp
Original Assignee
MegaChips Corp
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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2015040006A priority Critical patent/JP6506050B2/ja
Publication of JP2016162168A publication Critical patent/JP2016162168A/ja
Application granted granted Critical
Publication of JP6506050B2 publication Critical patent/JP6506050B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】要求される記憶容量の増大に対応できると共に、効率的にファイルの更新が可能なキャッシュファイルシステムを提供する。
【解決手段】ホスト装置内のファイルのデータを、ネットワークを介してダウンロードし、端末電子機器の記憶装置にキャッシュされたデータを管理するキャッシュファイルシステムであって、キャッシュファイルシステムは、記憶装置内に設けられ、ファイルを構成する最小管理単位どうしの繋がりを示すチェーン情報を格納する管理テーブルを備え、管理テーブルは、記憶装置の記憶容量を越える記憶容量を管理可能な行数を有し、記憶装置の記憶容量を越えた分の行をホスト装置内のファイルのデータの管理に割り当てることで、記憶装置にキャッシュされたデータと共にホスト装置内のファイルのデータも管理する。
【選択図】図1

Description

本発明はキャッシュファイルシステムに関し、特に、ローカルストレージを有効に利用できるキャッシュファイルシステムに関する。
複数の端末電子機器が、ネットワークを介してホスト装置(サーバ)のファイルを共有する分散ファイルシステムが提案されているが、端末電子機器では、ホスト装置から取り込んだファイルを自分の記憶装置(ローカルストレージ)に保持しておく(キャッシングする)ことで、ファイルへのアクセスを高速化している。このため、端末電子機器には取り込むファイルに対する十分な記憶容量が要求される。
端末電子機器としてゲーム機を例に採れば、昨今では、ゲーム機で実行されるゲームプログラムも高度化、複雑化し、プログラム量は増える一方であり、ローカルストレージに要求される記憶容量も増大する傾向にある。
例えば、特許文献1には、端末内の記憶容量が足りなくなった場合に、優先度が低いファイルや、参照時刻が古いファイルをパージすることで記憶容量を確保する構成が開示されている。
また、端末電子機器では、ファイルを最新の状態に保つために、ホスト装置に定期的にアクセスしてファイルを更新する必要があるが、更新すべきファイルが大きくなるほどコストが増大する。
特許文献2では、ファイルの更新を効率的に行うために、サーバと端末とが対話しながらファイルの変更点の情報を交換するシステムが開示されている。
特開平7−182220号公報 特許第4794143号公報
以上説明したように分散ファイルシステムにおいては、端末電子機器に要求される記憶容量が増大する傾向にあるが、これまでは、要求に応じて記憶容量を増やすか、記憶容量が足りなくなった場合に、一部のファイルをパージするなどの対策しか行われていなかった。また、ファイルの更新に際しても、サーバと端末とが対話を繰り返すなど、非効率な方法が採られていた。
本発明は上記のような問題を解決するためになされたものであり、要求される記憶容量の増大に対応できると共に、効率的にファイルの更新が可能なキャッシュファイルシステムを提供することを目的とする。
本発明に係るキャッシュファイルシステムの第1の態様は、ホスト装置内のファイルのデータをネットワークを介してダウンロードし、端末電子機器の記憶装置にキャッシュされたデータを管理するキャッシュファイルシステムであって、前記キャッシュファイルシステムは、前記記憶装置内に設けられ、前記ファイルを構成する最小管理単位どうしの繋がりを示すチェーン情報を格納する管理テーブルを備え、前記管理テーブルは、前記記憶装置の記憶容量を越える記憶容量を管理可能な行数を有し、前記記憶装置の記憶容量を越えた分の行を前記ホスト装置内の前記ファイルの前記データの管理に割り当てることで、前記記憶装置にキャッシュされた前記データと共に前記ホスト装置内の前記ファイルの前記データも管理する。
本発明に係るキャッシュファイルシステムの第2の態様は、前記キャッシュファイルシステムが、前記ファイルの前記データを前記最小管理単位ごとにダウンロードし、前記管理テーブルは、前記最小管理単位ごとに、前記ホスト装置内の前記ファイルの前記データおよび前記記憶装置にキャッシュされた前記データを管理する。
本発明に係るキャッシュファイルシステムの第3の態様は、前記キャッシュファイルシステムが、前記ホスト装置内の前記ファイルの前記データを逐次的にダウンロードする。
本発明に係るキャッシュファイルシステムの第4の態様は、前記管理テーブルが、記憶装置内データの管理領域とホスト装置内データの管理領域とに区分され、前記記憶装置にキャッシュされた前記データは、前記記憶装置内データの管理領域で管理され、前記ホスト装置内の前記ファイルの前記データは、前記ホスト装置内データの管理領域で管理される。
本発明に係るキャッシュファイルシステムの第5の態様は、前記キャッシュファイルシステムが、前記管理テーブルの前記記憶装置内データの管理領域の前記記憶装置にキャッシュされた前記データを管理する行を削除することで、前記記憶装置にキャッシュされた前記データを削除する。
本発明に係るキャッシュファイルシステムの第6の態様は、前記キャッシュファイルシステムが、前記記憶装置にキャッシュされた前記データのうち、使われてから最も長い時間が経ったデータを削除する。
本発明に係るキャッシュファイルシステムの第7の態様は、前記キャッシュファイルシステムが、前記記憶装置にキャッシュされた前記データのうち、使用回数が規定値より低いデータを削除する。
本発明に係るキャッシュファイルシステムの第8の態様は、前記管理テーブルが、前記記憶装置内データの管理領域では、前記最小管理単位ごとに採番された番号と、次に続く前記最小管理単位の番号とが1つの行に記録され、前記ホスト装置内データの管理領域では、前記最小管理単位が連続する場合には、連続する前記最小管理単位の先頭の行に、前記最小管理単位の連続数が記載される。
本発明に係るキャッシュファイルシステムの第9の態様は、前記ホスト装置が、前記ファイルに変更があった場合、その変更内容を示す更新リストを作成しリビジョン番号を付して管理し、前記キャッシュファイルシステムは、前記ホスト装置へのアクセス時に、前記ホスト装置で管理されている前記リビジョン番号を確認し、前記リビジョン番号が変更されている場合には、前記更新リストを参照して前記管理テーブルを変更する。
本発明に係るキャッシュファイルシステムの第10の態様は、前記キャッシュファイルシステムが、前記ファイルが更新された場合は、該当ファイルの全データまたは更新された部分のデータが前記ホスト装置内データの管理領域にあるように前記管理テーブルを変更する。
本発明に係るキャッシュファイルシステムの第11の態様は、前記キャッシュファイルシステムが、前記ファイルが追加された場合は、該当ファイルの全データが前記ホスト装置内データの管理領域にあるように前記管理テーブルを変更する。
本発明に係るキャッシュファイルシステムの第12の態様は、前記キャッシュファイルシステムは、前記ファイルが削除された場合は、該当ファイルの全データを削除するように前記管理テーブルを変更する。
本発明に係るキャッシュファイルシステムによれば、端末電子機器の記憶装置に要求される記憶容量の増大に対応できると共に、効率的にファイルの更新が可能なキャッシュファイルシステムが得られる。
本発明に係るキャッシュファイルシステムを備えた端末電子機器の構成を示すブロック図である。 ローカルストレージが空の状態を示す図である。 端末電子機器で作成された初期段階のFATエントリおよびディレクトリエントリを示す図である。 サーバからのファイル読み込みを説明する図である。 サーバから逐次にダウンロードする場合のFATエントリの書き込み例と、データ領域に書き込まれるデータの例を示す図である。 ファイルの更新、追加、削除の具体例を説明する図である。 ファイルの更新、追加、削除の具体例を説明する図である。 ファイルの更新、追加、削除の具体例を説明する図である。 ファイルの更新、追加、削除の具体例を説明する図である。 FATエントリの書き込みの変形例を説明する図である。 FATエントリの書き込みの変形例を説明する図である。 従来的なFATエントリを説明する図である。
<はじめに>
発明の説明に先立って、従来的なFAT(File Allocation Table)ファイルシステムについて説明する。FATファイルシステムでは、管理テーブル内に記憶装置に格納された実データのチェーン情報を格納している。
すなわち、ファイルはクラスタを最小管理単位として構成されているが、クラスタの記憶装内での物理的な位置は必ずしも連続しているわけではない。そのためFATによって各クラスタがどのように繋がって、1つのファイルを構成しているかの情報(チェーン情報)を管理しており、FATの各エントリは、1つのクラスタに対応している。なお、ファイルのファイル名や、ファイルの先頭クラスタのクラスタ番号はディレクトリエントリに記録されている。
以下にFATエントリおよびディレクトリエントリの一例について、図12を用いて説明する。
図12においては、ファイルa.binがクラスタ番号1000から始まる場合を示しており、管理テーブル(FATエントリ)においては、クラスタ番号1000以下のクラスタについてのチェーン情報を格納している。
すなわち、FATエントリには、記憶装置においてデータが格納されているクラスタ番号と、次に続くクラスタのクラスタ番号の値とが記録されている。
図12に示すファイルa.binのデータは、クラスタ番号1000、1001、1002、2000、2001、2002、3000、3001、3002の順に記憶装置に格納されていることになる。
すなわち、クラスタ番号1000に続くクラスタのクラスタ番号は1001であり、クラスタ番号1001に続くクラスタのクラスタ番号は1002であり、クラスタ番号1002のクラスタに続くクラスタのクラスタ番号は2000であることが示されている。なお、図12においては、便宜的に各クラスタの繋がりを矢印で表している。
また、クラスタ番号2000に続くクラスタのクラスタ番号は2001であり、クラスタ番号2001に続くクラスタのクラスタ番号は2002であり、クラスタ番号2002のクラスタに続くクラスタのクラスタ番号は3000であることが示されている。
さらに、クラスタ番号3000に続くクラスタのクラスタ番号は3001であり、クラスタ番号3001に続くクラスタのクラスタ番号は3002であり、クラスタ番号3000のクラスタはEOC(End Of Cluster chain)であることが示されている。
通常、このテーブルはローカルストレージの記憶容量が管理できるだけの領域を持っており、例えば、ローカルストレージが10000クラスタであれば、10000行(要素)もしくはそれ以上のテーブルとなっている。
このように、FATファイルシステムでは、ローカルストレージの記憶容量を管理できるだけのテーブルを準備しているが、先に説明したように、ローカルストレージに要求される記憶容量は増大する傾向にあるが、それに応じてローカルストレージの記憶容量を増やすにはコスト的に難しいと共に、コストを無視したとしても端末電子機器では、記憶容量の拡大には物理的な限界がある。
そこで、本発明は、プログラムの実行等に必要なデータの全てを格納できるローカルストレージを有さない場合であっても、チェーン情報を管理する管理テーブルには、ローカルストレージの記憶容量を越えて管理可能な行数(要素数)を持たせ、ローカルストレージの記憶容量を越えた分の行をホスト装置(サーバ)内のファイルのデータの管理に割り当てることで、ローカルストレージ内の管理テーブルで、サーバ内のファイルのデータも管理する。そして、プログラムの実行等に必要なデータは、ネットワークを介して逐次的にサーバからダウンロードして実行させるキャッシュファイルシステムを提供する。
<実施の形態>
以下、図1〜図9を用いて、本発明に係るキャッシュファイルシステムの実施の形態について説明する。
<装置構成>
図1は、本発明に係るキャッシュファイルシステムを備えた端末電子機器EQの構成を示すブロック図である。図1に示すように、端末電子機器EQは、インターネットなどのネットワークNWに接続される電子機器である。なお、ネットワークNWはインターネットに限定されるものではなく、LAN(Local Area Network)や、WAN(Wide Area Network)や、公衆網等も含まれる。
ネットワークNWには、端末電子機器EQのホスト装置となるサーバSVも接続されており、端末電子機器EQはネットワークNWを介してサーバSVにアクセスして、サーバSV内の記憶装置MRからファイルセットをダウンロードする。なお、サーバSVは複数の端末電子機器EQとの間でもファイルを共有する。
端末電子機器EQは、サーバSVからダウンロードしたファイルセットのデータをローカルストレージ10内のデータ領域12にキャッシングするが、ダウンロードに際しては、ファイルセット内のファイルのデータを、ファイル単位でダウンロードするのではなく、必要なデータだけをクラスタ単位でダウンロードしてキャッシングする。このような処理を行うためにローカルストレージ10は本発明に係るキャッシュファイルシステム20で管理されている。
なお、キャッシュファイルシステム20は、例えば、図示されないCPU(Central Processing Unit)、RAM(Random Access Memory)およびROM(Read Only Memory)等で構成され、ROM内に格納されたキャッシュファイルプログラムをRAMに読み出し、当該プログラムをCPUで実行することによって実現される。また、ローカルストレージ10は、フラッシュメモリなどの記憶装置で構成される。なお、上記CPUに端末電子機器EQのアプリケーションプログラムを実行する機能を持たせても良い。
<ファイルシステムの動作>
以下、キャッシュファイルシステムの動作について説明する。なお、以下においてはFATファイルシステムに適用した場合を例に採って説明するが、本発明の適用はFATファイルシステムに限定されるものではない。
<初期状態>
初期状態では、ローカルストレージは空の状態であるか、あるいは、サーバSV内にある全てのファイルの管理情報だけが保存されており、実際のデータは全てサーバ内にのみ存在する。図2においては、ローカルストレージ10(図1)が空の状態を示しており、管理領域11内のディレクトリエントリにもFATエントリ(管理テーブル)にも何も書き込まれていない。これは、全てのファイルのデータがサーバSV内にあることを示している。
ここで、本発明に係るキャッシュファイルシステムの特徴的な構成として、FATエントリにはローカルストレージの記憶容量を越えて管理可能な行数(要素数)を持たせ、FATエントリをローカルストレージ内データの管理領域とサーバ内データの管理領域とに区分することで、FATエントリをローカルストレージ内のデータの管理だけでなくサーバ内のデータの管理にも使用する構成を採っている。このため、図2のFAエントリにおいては、ローカルストレージ内データの管理領域を上部側に設け、サーバ内データの管理領域を下部側に設けた構成となっている。
また、図2に示すように、サーバSVにはリビジョン番号r1のファイルセットとしてファイルa.bin、ファイルb.binおよびファイルc.binが格納されている。
端末電子機器EQは、サーバSVにアクセスすると、サーバSVからファイル名、ファイルサイズおよびリビジョン番号などをダウンロードし、それらに基づいて初期段階のFATエントリおよびディレクトリエントリを作成して、初期状態のローカルストレージ10に書き込む。なお、リビジョン番号はサーバ内のファイルおよびファイル構成に変更があった場合には変更され、端末電子機器EQは、リビジョン番号が変わることで、ファイルおよびファイル構成に変更があったことを検出できる。
図3には、端末電子機器EQで作成された初期段階のFATエントリおよびディレクトリエントリを示す。図3に示すように、ディレクトリエントリには、ファイルa.bin、ファイルb.binおよびファイルc.binのそれぞれの先頭クラスタのクラスタ番号11000、12000および13000が書き込まれている。
また、FATエントリには、ファイルa.bin、ファイルb.binおよびファイルc.binのそれぞれを構成するクラスタのクラスタ番号と、次に続くクラスタのクラスタ番号の値とが書き込まれている。これらは、サーバ内データの管理領域に書き込まれており、ローカルストレージ内データの管理領域には何も書き込まれていない。これは、初期段階のFATエントリを作成した時点では、ファイルのダウンロードを行っておらず、未だ全てのファイルのデータがサーバSV内にあるためである。
従って、FATエントリはサーバ内のデータの管理だけを行っており、例えば、クラスタ番号11000からクラスタ番号11008までの9クラスタがファイルa.binを構成するクラスタであり、クラスタ番号11008のクラスタがEOCとなっている。
図3のFATエントリにおいて、例えば、クラスタ番号11000に対する値は11001とされており、クラスタ番号11000のクラスタに続くクラスタのクラスタ番号は11001であることが判る。以下、同様にしてクラスタ番号11008までのクラスタの繋がりが示されている。なお、図3においては、便宜的に各クラスタの繋がりを矢印で表している。
また、クラスタ番号12000からクラスタ番号12008までの9クラスタがファイルb.binを構成するクラスタであり、クラスタ番号13000からクラスタ番号13008までの9クラスタがファイルc.binを構成するクラスタである。
ここで、例えば、ファイルa.binを構成するクラスタが、クラスタ番号11000からクラスタ番号11008までとなっているのは、端末電子機器EQであり、端末電子機器EQがサーバSVからダウンロードしたファイルa.binのファイルサイズに基づいて、クラスタの個数を算出してそれぞれのクラスタに採番した結果であり、このクラスタ番号はサーバSV内のクラスタ番号と対応するものではない。これは、ディレクトリエントリに書き込まれた先頭クラスタのクラスタ番号についても同じである。
このように、上記では、端末電子機器EQがサーバSVからダウンロードしたファイルサイズに基づいてクラスタ番号等を決定して初期段階のFATエントリを作成する構成を説明したが、サーバSVからファイルごとのクラスタ数をダウンロードして、FATエントリに書き込んでも良い。この場合も、全てのファイルのデータはサーバSV内にあるので、結果として図3と同じようなFATエントリとなる。
<サーバからのファイル読み込み>
端末電子機器EQは、初期段階のFATエントリが得られると、図4に示すように、サーバSVにアクセスする。この後、サーバSV内の記憶装置MRからファイルセットをダウンロードするが、このときにダウンロードするのはファイル全体ではなく、現状で必要な部分だけをダウンロードする。
すなわち、先に説明したようにサーバSV内に格納されるファイルが大規模化しつつあるが、実際に必要となるのはその一部分でしかない場合がある。例えば、ゲームプログラムのファイルである場合、ゲームの進行に応じて要、不要のデータが変わり、あるステージでは必要なデータ(ステージデータ、キャラクタデータ、ムービーデータ)は、次のステージでは不要となる。換言すれば、次のステージで不要なデータは、例えば、現在のステージが終了する直前にダウンロードすれば良く、現在のステージでダウンロードしておく必要はない。
このように、サーバSVからファイルをダウンロードする際には必要な部分だけを逐次にダウンロードすることで、ダウンロードするデータ量が少なくなり、ファイル取得に要する時間が短縮されると共に、必要最小限のデータをローカルストレージ10に保存するので、ローカルストレージ10を有効に利用することができる。また、サーバSVに対する負荷を低減することもできる。すなわち、サーバSVには複数の端末電子機器EQが同時にアクセスする場合があるが、そのような場合でも、個々の端末電子機器EQがダウンロードするデータ量が少なければ、サーバSVに過大な負荷がかかることを抑制し、サーバSVが機能不全となることを抑制できる。
図5には、逐次にダウンロードする場合のFATエントリの書き込み例と、データ領域12に書き込まれるデータの例を示す。
図5に示すように、ディレクトリエントリには、ファイルa.bin、ファイルb.binおよびファイルc.binのそれぞれの先頭クラスタのクラスタ番号1000、2000および3000が書き込まれている。
また、FATエントリのローカルストレージ内データの管理領域には、ファイルa.bin、ファイルb.binおよびファイルc.binの中の必要な部分のクラスタのクラスタ番号と、次に続くクラスタのクラスタ番号の値とが書き込まれている。
図5の例では、ファイルa.binを構成する9クラスタのうち、6クラスタがダウンロードされてローカルストレージ10に存在し、残りの3クラスタはサーバ内に存在している例を示している。これは、ファイルb.binおよびファイルc.binにおいても同じである。
すなわち、クラスタ番号1000からクラスタ番号1002に対応するデータがローカルストレージ10に存在し、クラスタ番号1002に対する値は11003とされており、クラスタ番号11002のクラスタに続くクラスタのクラスタ番号は11003である。そして、クラスタ番号11003に対応するデータはサーバSVに存在し、サーバSVにはクラスタ番号11003からクラスタ番号11005に対応するデータが存在している。そしてクラスタ番号11005に対する値は1500とされており、クラスタ番号11005のクラスタに続くクラスタのクラスタ番号は1500である。
クラスタ番号1500に対応するデータはローカルストレージ10に存在し、ローカルストレージ10にはクラスタ番号1500からクラスタ番号1502に対応するデータが存在し、クラスタ番号1502のクラスタがEOCとなっている。
このように、クラスタ単位でデータを管理することで、クラスタ単位でのキャッシングを実現することができる。すなわち、図5のデータ領域には、サーバからダウンロードしたデータがクラスタ単位でキャッシュされた状態を示しており、例えば、クラスタ番号1000からクラスタ番号1002にそれぞれ対応するデータとして、ファイルa.binの1クラスタ目から3クラスタ目までのデータが格納され、また、クラスタ番号1500からクラスタ番号1502にそれぞれ対応するデータとして、ファイルa.binの7クラスタ目から9クラスタ目までのデータが格納されている。
なお、上記ではファイルa.binを構成する9クラスタのうち、6クラスタがダウンロードされてローカルストレージ10に存在している例を示したが、ローカルストレージ10に格納されていないデータに対しては、サーバSVからダウンロードする。
端末電子機器EQで実行されるアプリケーション、例えばゲームからファイルa.binの最初の3クラスタに対してアクセスが発生した場合、キャッシュファイルシステムは、ローカルストレージからデータを読み出してアプリケーションに与えるが、次に、ファイルa.binの4クラスタ目から6クラスタ目までのデータに対するアクセスが発生した場合、キャッシュファイルシステムは、FATエントリの書き込みに基づいて、該当するクラスタのデータをサーバからダウンロードする。
例えば、クラスタ番号11003からクラスタ番号11005に対応するデータにアクセスが発生した場合、キャッシュファイルシステムは、FATエントリの書き込みから、それらはサーバSVに存在しているものと判断して、サーバSVに対して、ファイルa.binの4クラスタ目から6クラスタ目までのデータを要求する。要求を受けたサーバSVは要求されたデータを端末電子機器EQに送信し、キャッシュファイルシステムは、サーバSVから受信したデータをアプリケーションに与える。この場合、一旦、受信したデータをローカルストレージ10に保存(キャッシング)しても良い。
なお、ローカルストレージ10に空きがなくなると、ローカルストレージ内のデータを削除することで新たにダウンロードしたデータをキャッシュすることができる。
<サーバ内のファイルの更新、追加、削除>
サーバSV内のファイルおよびファイル構成に変更があった場合、それを端末電子機器EQ内のキャッシュファイルシステムに反映させる必要がある。サーバSVに格納されているファイルセットには、リビジョン番号が設定されており、サーバSV内のファイルおよびファイル構成が変更されるたびにリビジョン番号が更新される。また、リビジョンごとに、どのファイルが更新、追加、削除されたかを示す更新リストも作成される。
一方、端末電子機器EQでもリビジョン番号を管理しており、端末電子機器EQは、サーバSVへのアクセス時にサーバSVが管理しているファイルセットのリビジョン番号と、ローカルストレージ10で管理しているリビジョン番号とを比較する。リビジョン番号が異なっている場合、ファイルの更新リストを参照し、以下の操作を行う。
<更新されたファイルに対しての操作>
ローカルストレージの対応するファイルのキャッシュを全て削除し、FATエントリを該当ファイルの全データがサーバ内にあることを示すように更新するか、更新された部分のデータがサーバ内にあることを示すように更新する。後者の場合は、ローカルストレージのキャッシュの削除は、更新された部分に対応するキャッシュのみとなる。
なお、ファイル更新時には、ファイル単位ではなく、クラスタ単位で更新情報を管理しても良い。更新前のファイルと、更新後のファイルとで差分を取り、差分のあるクラスタのみがサーバ内にデータがあることを示すようにFATエントリを作成する。なお、更新箇所が少ない場合はクラスタ単位で更新を行うが、更新箇所が多い場合はファイル全体で更新するなど、ファイル単位での更新とクラスタ単位での更新を混在させても良い。これにより、より効率的なキャッシュが実現できる。
<追加されたファイルに対しての操作>
ローカルストレージの管理情報に該当ファイルを追加する。また、そのファイルの全データがサーバ内にあることを示すようにFATエントリを生成する。
<削除されたファイルに対しての操作>
ローカルストレージの管理情報から、該当ファイルを削除する。
これらの操作により、サーバSVとローカルストレージ10との間で透過的なファイルシステムを実現することが可能になる。このように、サーバSVとローカルストレージ10とで、リビジョン番号を同じにすることを「同期」と呼称する。
なお、サーバSV内のファイルの更新リストには、必要最小限の更新内容が書き込まれている。なお、このような更新リストは、リビジョンの更新ごとに作成される場合と、全リビジョンの更新内容が書き込まれた場合とがある。そのため、ローカルストレージ10のリビジョン番号が何であっても、最新のリビジョン番号に同期が可能である。
以下、ファイルの更新、追加、削除の具体例について図6〜図9を用いて説明する。図5に示したようにFATエントリの書き込みが行われた後、図6に示すようにサーバSV内のファイルおよびファイル構成に変更があり、ファイルセットのリビジョン番号がr1からr2に更新されたものとする。
リビジョン番号r2のファイルセットでは、ファイルc.binが削除されてファイルd.binが追加されるというファイル構成の変更があり、また、ファイルb.binが全体的に変更されると共に、ファイルa.binの3クラスタ目が変更されている。これらの変更については更新リストに記載されている。
図7には、ネットワークNWを介してサーバSVからダウンロードしたリビジョン番号r2のファイルセットと更新リストに基づいて作成されたディレクトリエントリとFATエントリを示す。
図7に示すように、ディレクトリエントリには、ファイルa.bin、ファイルb.binおよびファイルd.binのそれぞれの先頭クラスタのクラスタ番号1000、15000および16000が書き込まれている。
また、FATエントリのローカルストレージ内データの管理領域には、ファイルa.binの中の必要な部分のクラスタのクラスタ番号と、次に続くクラスタのクラスタ番号の値とが書き込まれている。
図7の例では、ファイルa.binを構成する9クラスタのうち、5クラスタがダウンロードされてローカルストレージ10に存在し、残りの4クラスタはサーバSV内に存在している例を示している。なお、ファイルa.binの3クラスタ目は、クラスタ番号14000に置き換わってサーバSV内に存在している。
すなわち、クラスタ番号1000、クラスタ番号1001に対応するデータがローカルストレージ10に存在し、クラスタ番号1001に対する値は14000とされており、クラスタ番号14000に対応するデータはサーバSV内に存在している。
クラスタ番号14000のクラスタに続くクラスタのクラスタ番号は11003であって、クラスタ番号11003に対応するデータはサーバSVに存在し、サーバSVにはクラスタ番号11003からクラスタ番号11005に対応するデータが存在している。そしてクラスタ番号11005に対する値は1500とされており、クラスタ番号11005のクラスタに続くクラスタのクラスタ番号は1500である。
また、クラスタ番号1500に対応するデータはローカルストレージ10に存在し、ローカルストレージ10にはクラスタ番号1500からクラスタ番号1502に対応するデータが存在し、クラスタ番号1502のクラスタがEOCとなっている。
ファイルb.binは、全体的に変更されることで9クラスタ構成から3クラスタ構成となっており、その3クラスタは全てサーバSV内に存在しており、FATエントリのサーバ内データの管理領域に書き込まれている。
すなわち、クラスタ番号15000からクラスタ番号15002に対応するデータがサーバSVに存在している。そしてクラスタ番号15000に対する値は15001とされており、クラスタ番号15000のクラスタに続くクラスタのクラスタ番号は15001である。また、クラスタ番号15001に対する値は15002とされており、クラスタ番号15001のクラスタに続くクラスタのクラスタ番号は15002であり、クラスタ番号15002のクラスタがEOCとなっている。
ファイルd.binは1クラスタ構成であり、その1クラスタはサーバSV内に存在しており、FATエントリのサーバ内データの管理領域に書き込まれている。
すなわち、クラスタ番号16000のクラスタに対応するデータがサーバSVに存在しており、そのクラスタがEOCとなっている。
以上説明したように、クラスタ単位でデータを管理しているので、ファイル中の一部のクラスタに変更があった場合にも対応することができ、変更を端末電子機器EQ内のキャッシュファイルシステムに反映させることができる。
次に、図8に示すようにサーバSV内のファイルおよびファイル構成にさらなる変更があり、ファイルセットのリビジョン番号がr2からr3に更新された場合について説明する。
リビジョン番号r3のファイルセットでは、ファイルb.bin削除されるというファイル構成の変更があり、また、ファイルa.binが2クラスタ拡張されるように変更されている。これらの変更については更新リストに記載されている。
図8には、ネットワークNWを介してサーバSVからダウンロードしたリビジョン番号r3のファイルセットと更新リストに基づいて作成されたディレクトリエントリとFATエントリを示す。
図8に示すように、ディレクトリエントリには、ファイルa.binおよびファイルd.binのそれぞれの先頭クラスタのクラスタ番号1000および16000が書き込まれている。
また、FATエントリのローカルストレージ内データの管理領域には、ファイルa.binの中の必要な部分のクラスタのクラスタ番号と、次に続くクラスタのクラスタ番号の値とが書き込まれている。
図8の例では、ファイルa.binを構成する11クラスタのうち、5クラスタがダウンロードされてローカルストレージ10に存在し、残りの6クラスタはサーバSV内に存在している例を示している。なお、ファイルa.binの10クラスタ目と11クラスタ目は、それぞれクラスタ番号12500およびクラスタ番号12501に対応するデータとしてサーバSV内に存在している。
すなわち、クラスタ番号1000、クラスタ番号1001に対応するデータがローカルストレージ10に存在し、クラスタ番号1001に対する値は14000とされており、クラスタ番号14000のクラスタはサーバSV内に存在している。
クラスタ番号14000のクラスタに続くクラスタのクラスタ番号は11003であって、クラスタ番号11003に対応するデータはサーバSVに存在し、サーバSVにはクラスタ番号11003からクラスタ番号11005に対応するデータが存在している。そしてクラスタ番号11005に対する値は1500とされており、クラスタ番号11005のクラスタに続くクラスタのクラスタ番号は1500である。
また、クラスタ番号1500に対応するデータはローカルストレージ10に存在し、ローカルストレージ10にはクラスタ番号1500からクラスタ番号1502のクラスタが存在し、クラスタ番号1502に対する値は12500とされており、クラスタ番号12500に対応するデータはサーバSV内に存在している。
クラスタ番号12500のクラスタに続くクラスタのクラスタ番号は12501であって、クラスタ番号12501に対応するデータはサーバSVに存在し、クラスタ番号12501のクラスタがEOCとなっている。
ファイルd.binは1クラスタ構成であり、その1クラスタはサーバSV内に存在しており、FATエントリのサーバ内データの管理領域に書き込まれている。
すなわち、クラスタ番号16000に対応するデータがサーバSVに存在しており、そのクラスタがEOCとなっている。
以上の説明では、ファイルセットのリビジョン番号がr1からr2に更新され、さらにr3に変更された場合について、更新の順にFATエントリを変更する例を説明したが、端末電子機器EQでの処理負荷を軽減するため、最新リビジョンに一気に更新する構成としても良い。
すなわち、リビジョン番号r1の情報を持つ端末電子機器EQが、サーバSV内のリビジョン番号r3のファイルと同期するには、更新リストからリビジョン番号r1からリビジョン番号r3への変更内容を更新ごとに取得して同期する必要がある。
それに対し、予めリビジョン番号r1からリビジョン番号r3への更新リストをサーバ内に生成しておけば、リビジョン番号r1の情報を持つ端末電子機器EQは、リビジョン番号r1からリビジョン番号r3への更新リストを参照すれば良く、処理負荷を低減することができる。
図9には、ネットワークNWを介してサーバSVからリビジョン番号r1からリビジョン番号r3への更新リストをダウンロードしてFATエントリを変更する例を示している。
図9の例では、ファイルa.binの3クラスタ目が変更されると共に2クラスタ拡張されるように変更され、ファイルb.binおよびファイルc.binが削除されてファイルd.binが追加されるというファイル構成の変更が更新リストに記載されている。なお、このような更新リストに基づいて作成されたディレクトリエントリとFATエントリは、図8と同じものとなる。
なお、サーバSV内のファイルおよびファイル構成の変更の確認方法は、端末電子機器EQの起動時や、動作中の端末電子機器EQからサーバSVへのアクセス発生時などに行えば良い。例えば、ゲームプログラムのファイルである場合、ゲームの進行に応じてデータのダウンロードが必要となった場合にサーバSVにアクセスするので、その際に変更を確認して更新すれば良い。
<キャッシュの削除について>
ローカルストレージ10の記憶容量には限りがあるため、適宜、キャッシュを削除する必要がある。通常のファイルシステムであれば、キャッシュの削除はファイルの削除となるが、本発明のキャッシュファイルシステムでは、FATエントリを操作し、FATエントリから該当ファイルを管理する行を削除することで、該当ファイルの全データがサーバ内にあることを示すようにすれば済む。
また、どのキャッシュを削除するかについては、例えば、使われてから最も長い時間が経ったキャッシュを削除する方法が挙げられる。これは、タイムスタンプの情報を参照することで、何れのキャッシュが最も古いかを容易に判断できるので、簡便な方法である。
また、各ファイルの使用回数を保存しておき、使用回数が規定値よりも低いキャッシュを削除する方法が挙げられる。
また、サーバからの指示に基づいて削除するキャッシュを決定しても良い。例えばゲームのプログラムである場合、ゲームが進行することにより、不必要になるデータが存在するが、このようなデータは予め判っているので、ゲーム進行に応じて、サーバからの指示に基づいて対応するキャッシュを削除しても良いし、サーバ内にゲーム進行状況と必要/不要ファイルの対応リストを準備しておき、端末電子機器EQがそれを参照して適宜にキャッシュを削除しても良い。
また、削除対象を決められないが、ローカルストレージ10の記憶容量が不足しそうな場合には、ランダムに削除しても良い。なお、消去単位はファイル単位でも良いし、クラスタ単位でも良い。
なお、ローカルストレージ10のキャッシュの削除判定は、ローカルストレージ10の空き容量が、規定値よりも少なくなった場合や、サーバへのアクセス時に判定すれば良い。
また、ローカルストレージ10のキャッシュファイルに対して、何らかの不正操作、例えば、プログラムの改変などを見つけた場合、サーバSVからそのファイルを削除する指示を与えるようにしても良い。なお、不正操作の検出は、サーバSVによるキャッシュファイルのCRC (Cyclic Redundancy Check)などで行うことができる。
<FATエントリの書き込みの変形例>
以下、図10、11を用いて、FATエントリの書き込みの変形例について説明する。
FATエントリのサーバ内データの管理領域においては、サーバ内にあるデータについては、クラスタが連続する場合には、次に続くクラスタのクラスタ番号の値を省略し、クラスタの連続数を記録する構成としても良い。
例えば、図10に示すFATエントリでは、ファイルa.binを構成する9クラスタのうち、3クラスタがダウンロードされてローカルストレージ10に存在し、残りの6クラスタはサーバ内に存在している例を示している。
すなわち、クラスタ番号1000からクラスタ番号1002に対応するデータがローカルストレージ10に存在し、クラスタ番号1002に対する値は11000とされており、クラスタ番号1002のクラスタに続くクラスタのクラスタ番号は11000である。そして、クラスタ番号11000に対応するデータはサーバSVに存在している。
サーバ内データの管理領域のクラスタ番号11000に対応するデータにおいては、連続数6が書き込まれると共に、次のクラスタがEOCであることが書き込まれている。これにより、ファイルa.binの4クラスタ目から9クラスタ目はサーバ内にあり、9クラスタ目がEOC(ファイル終端)であることが表されている。
また、図11に示すFATエントリでは、ファイルa.binを構成する9クラスタのうち、6クラスタがダウンロードされてローカルストレージ10に存在し、残りの3クラスタはサーバ内に存在している例を示している。
すなわち、クラスタ番号1000からクラスタ番号1002に対応するデータがローカルストレージ10に存在し、クラスタ番号1002に対する値は11000とされており、クラスタ番号1002のクラスタに続くクラスタのクラスタ番号は11000である。そして、クラスタ番号11000に対応するデータはサーバSVに存在している。
サーバ内データの管理領域のクラスタ番号11000に対応するデータにおいては、連続数3が書き込まれると共に、次のクラスタが3000であることが書き込まれている。これにより、ファイルa.binの4クラスタ目から6クラスタ目はサーバ内にあり、7クラスタ目はローカルストレージ10のクラスタ番号3000に存在することが表される。
以上説明したような書き込みを採用することで、FATエントリの表示を簡略化して、ローカルストレージ10の記憶容量を有効に利用することができる。
<他の適用例>
以上説明した実施の形態においては、本発明に係るキャッシュファイルシステムをFATファイルシステムに適用した場合を例に採って説明したが、本発明の適用はFATファイルシステムに限定されるものではない。
例えば、Linux(登録商標)のファイルシステムであるext2(second extended file system)、ext3(third extended file system)およびext4(fourth extended file system)で使われるiノードにも適用可能である。
iノードではクラスタのことをブロックと呼称しており、例えば、iノード中の「複数個のディスクブロックアドレスの配列」が実際のデータが格納されているブロック番号を表している。
ファイルのどの位置のデータがストレージ内のどこにあるかというマップを作っているという点ではFATファイルシステムと同じであり、本発明に係るキャッシュファイルシステムの適用が可能である。
例えば、ローカルストレージ内に存在するブロックが11000個だった場合、iノード中のブロック番号に11000以上(例えば11001番目のブロック)の値が指定されている場合、そのブロックのデータはローカルストレージ内ではなく、サーバ内にのみ存在することになる。
このように、ファイルのどの位置のデータがローカルストレージ内のどこにあるかというマップを作るキャッシュファイルシステムであれば、本発明の適用は可能である。
なお、本発明は、その発明の範囲内において、実施の形態を適宜、変形、省略することが可能である。
10 ローカルストレージ
20 キャッシュファイルシステム
EQ 端末電子機器
SV サーバ
NW ネットワーク

Claims (12)

  1. ホスト装置内のファイルのデータを、ネットワークを介してダウンロードし、端末電子機器の記憶装置にキャッシュされたデータを管理するキャッシュファイルシステムであって、
    前記キャッシュファイルシステムは、
    前記記憶装置内に設けられ、前記ファイルを構成する最小管理単位どうしの繋がりを示すチェーン情報を格納する管理テーブルを備え、
    前記管理テーブルは、
    前記記憶装置の記憶容量を越える記憶容量を管理可能な行数を有し、前記記憶装置の記憶容量を越えた分の行を前記ホスト装置内の前記ファイルの前記データの管理に割り当てることで、前記記憶装置にキャッシュされた前記データと共に前記ホスト装置内の前記ファイルの前記データも管理する、キャッシュファイルシステム。
  2. 前記キャッシュファイルシステムは、
    前記ファイルの前記データを前記最小管理単位ごとにダウンロードし、
    前記管理テーブルは、
    前記最小管理単位ごとに、前記ホスト装置内の前記ファイルの前記データおよび前記記憶装置にキャッシュされた前記データを管理する、請求項1記載のキャッシュファイルシステム。
  3. 前記キャッシュファイルシステムは、
    前記ホスト装置内の前記ファイルの前記データを逐次的にダウンロードする、請求項1記載のキャッシュファイルシステム。
  4. 前記管理テーブルは、
    記憶装置内データの管理領域とホスト装置内データの管理領域とに区分され、
    前記記憶装置にキャッシュされた前記データは、前記記憶装置内データの管理領域で管理され、
    前記ホスト装置内の前記ファイルの前記データは、前記ホスト装置内データの管理領域で管理される、請求項3記載のキャッシュファイルシステム。
  5. 前記キャッシュファイルシステムは、
    前記管理テーブルの前記記憶装置内データの管理領域の前記記憶装置にキャッシュされた前記データを管理する行を削除することで、前記記憶装置にキャッシュされた前記データを削除する、請求項4記載のキャッシュファイルシステム。
  6. 前記キャッシュファイルシステムは、
    前記記憶装置にキャッシュされた前記データのうち、使われてから最も長い時間が経ったデータを削除する、請求項5記載のキャッシュファイルシステム。
  7. 前記キャッシュファイルシステムは、
    前記記憶装置にキャッシュされた前記データのうち、使用回数が規定値より低いデータを削除する、請求項5記載のキャッシュファイルシステム。
  8. 前記管理テーブルは、
    前記記憶装置内データの管理領域では、
    前記最小管理単位ごとに採番された番号と、次に続く前記最小管理単位の番号とが1つの行に記録され、
    前記ホスト装置内データの管理領域では、
    前記最小管理単位が連続する場合には、
    連続する前記最小管理単位の先頭の行に、前記最小管理単位の連続数が記載される、請求項4記載のキャッシュファイルシステム。
  9. 前記ホスト装置は、前記ファイルに変更があった場合、その変更内容を示す更新リストを作成しリビジョン番号を付して管理し、
    前記キャッシュファイルシステムは、
    前記ホスト装置へのアクセス時に、前記ホスト装置で管理されている前記リビジョン番号を確認し、前記リビジョン番号が変更されている場合には、前記更新リストを参照して前記管理テーブルを変更する、請求項1記載のキャッシュファイルシステム。
  10. 前記キャッシュファイルシステムは、
    前記ファイルが更新された場合は、該当ファイルの全データまたは更新された部分のデータが前記ホスト装置内データの管理領域にあるように前記管理テーブルを変更する、請求項9記載のキャッシュファイルシステム。
  11. 前記キャッシュファイルシステムは、
    前記ファイルが追加された場合は、該当ファイルの全データが前記ホスト装置内データの管理領域にあるように前記管理テーブルを変更する、請求項9記載のキャッシュファイルシステム。
  12. 前記キャッシュファイルシステムは、
    前記ファイルが削除された場合は、該当ファイルの全データを削除するように前記管理テーブルを変更する、請求項9記載のキャッシュファイルシステム。
JP2015040006A 2015-03-02 2015-03-02 端末電子機器 Active JP6506050B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015040006A JP6506050B2 (ja) 2015-03-02 2015-03-02 端末電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015040006A JP6506050B2 (ja) 2015-03-02 2015-03-02 端末電子機器

Publications (2)

Publication Number Publication Date
JP2016162168A true JP2016162168A (ja) 2016-09-05
JP6506050B2 JP6506050B2 (ja) 2019-04-24

Family

ID=56845069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015040006A Active JP6506050B2 (ja) 2015-03-02 2015-03-02 端末電子機器

Country Status (1)

Country Link
JP (1) JP6506050B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095589A (ja) * 2018-12-14 2020-06-18 株式会社アール・アイ 仮想ファイル処理システム及び仮想ファイル処理プログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262074A (ja) * 1994-03-07 1995-10-13 Internatl Business Mach Corp <Ibm> キャッシュ管理方法、コンピュータ・ファイル・システム及びキャッシュ装置
JPH1040147A (ja) * 1996-07-25 1998-02-13 Nec Corp 仮想ファイルキャッシュ制御方式
JPH11345164A (ja) * 1998-06-03 1999-12-14 Sony Corp 情報処理装置
JPH11345125A (ja) * 1998-05-29 1999-12-14 Nec Corp ファイルのダウンロード方式および方法
JP2006146679A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd 情報処理装置の制御方法、情報処理装置、及びプログラム
JP2007058671A (ja) * 2005-08-25 2007-03-08 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP2008090378A (ja) * 2006-09-29 2008-04-17 Seiko Epson Corp ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
JP2009031885A (ja) * 2007-07-25 2009-02-12 Seiko Epson Corp 画像データ処理装置および画像データ処理方法
JP2009205591A (ja) * 2008-02-29 2009-09-10 Panasonic Corp アクセスモジュール、情報記録モジュール、及び情報記録システム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262074A (ja) * 1994-03-07 1995-10-13 Internatl Business Mach Corp <Ibm> キャッシュ管理方法、コンピュータ・ファイル・システム及びキャッシュ装置
JPH1040147A (ja) * 1996-07-25 1998-02-13 Nec Corp 仮想ファイルキャッシュ制御方式
JPH11345125A (ja) * 1998-05-29 1999-12-14 Nec Corp ファイルのダウンロード方式および方法
JPH11345164A (ja) * 1998-06-03 1999-12-14 Sony Corp 情報処理装置
JP2006146679A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd 情報処理装置の制御方法、情報処理装置、及びプログラム
JP2007058671A (ja) * 2005-08-25 2007-03-08 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP2008090378A (ja) * 2006-09-29 2008-04-17 Seiko Epson Corp ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
JP2009031885A (ja) * 2007-07-25 2009-02-12 Seiko Epson Corp 画像データ処理装置および画像データ処理方法
JP2009205591A (ja) * 2008-02-29 2009-09-10 Panasonic Corp アクセスモジュール、情報記録モジュール、及び情報記録システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095589A (ja) * 2018-12-14 2020-06-18 株式会社アール・アイ 仮想ファイル処理システム及び仮想ファイル処理プログラム
JP7164176B2 (ja) 2018-12-14 2022-11-01 アップデータ株式会社 仮想ファイル処理システム及び仮想ファイル処理プログラム

Also Published As

Publication number Publication date
JP6506050B2 (ja) 2019-04-24

Similar Documents

Publication Publication Date Title
CN102667772B (zh) 文件级分级存储管理系统、方法和设备
US20190220266A1 (en) Upgrading Bundled Applications In A Distributed Computing System
US8463802B2 (en) Card-based management of discardable files
US8504792B2 (en) Methods and apparatuses to allocate file storage via tree representations of a bitmap
JP5948340B2 (ja) データストレージシステムにおける、ファイルのクローニング及びデクローニング
US9015209B2 (en) Download management of discardable files
US7694103B1 (en) Efficient use of memory and accessing of stored records
US7613738B2 (en) FAT directory structure for use in transaction safe file system
US20080010325A1 (en) Data migration apparatus, method, and program
US20160253352A1 (en) Method and apparatus for file synchronization and sharing with cloud storage
CN105183839A (zh) 一种基于Hadoop的小文件分级索引的存储优化方法
US20090327621A1 (en) Virtual memory compaction and compression using collaboration between a virtual memory manager and a memory manager
US20180336125A1 (en) Unified paging scheme for dense and sparse translation tables on flash storage systems
JP2016535380A (ja) 順方向専用にページ化されたデータストレージ管理
CN110109868B (zh) 用于索引文件的方法、装置和计算机程序产品
CN113568582B (zh) 数据管理方法、装置和存储设备
US9021208B2 (en) Information processing device, memory management method, and computer-readable recording medium
CN106326229A (zh) 一种嵌入式系统的文件存储方法和装置
CN100437524C (zh) 用于将文件的数据存储在存储块中的高速缓存方法及系统
CN115048149A (zh) 应用的缓存可伸缩处理方法、装置、设备及介质
JP2015079473A (ja) データ運用方法及びこれを支援するシステム
KR102571197B1 (ko) 클러스터 파일시스템의 캐시 일관성 유지방법
JP6506050B2 (ja) 端末電子機器
US20120089651A1 (en) Download Management of Discardable Files
KR102123701B1 (ko) 네트워크 부트 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190328

R150 Certificate of patent or registration of utility model

Ref document number: 6506050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250