JP6584529B2 - ファイルにアクセスするための方法および装置、ならびに記憶システム - Google Patents

ファイルにアクセスするための方法および装置、ならびに記憶システム Download PDF

Info

Publication number
JP6584529B2
JP6584529B2 JP2017561340A JP2017561340A JP6584529B2 JP 6584529 B2 JP6584529 B2 JP 6584529B2 JP 2017561340 A JP2017561340 A JP 2017561340A JP 2017561340 A JP2017561340 A JP 2017561340A JP 6584529 B2 JP6584529 B2 JP 6584529B2
Authority
JP
Japan
Prior art keywords
file
call request
request message
information
storage space
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.)
Active
Application number
JP2017561340A
Other languages
English (en)
Other versions
JP2018515859A (ja
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018515859A publication Critical patent/JP2018515859A/ja
Application granted granted Critical
Publication of JP6584529B2 publication Critical patent/JP6584529B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1724Details of de-fragmentation performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報技術の分野に関し、詳細には、ファイルにアクセスするための方法および装置、ならびに記憶システムに関する。
ファイルシステムでは、inode(information node、情報ノード)が各ファイルに通常割り当てられ、data blockが各ファイルに対応する実際のデータに割り当てられ、data blockの番号がinodeに記録される。ファイルシステムでサポートされるdata blockのサイズは、1K、2K、4Kなどである。フォーマット中、data blockのサイズが固定され、各data blockは、inodeでの記録を容易にするための番号を持つ。
従来技術では、各data blockが収容できるのは1つのファイルのデータのみであるため、サイズの小さいファイルがファイルシステム内に大量に存在する場合が多くなり、例えば、サイズの小さいファイルが有するサイズは、数百バイト以下である。別々のdata blockがこのようなサイズの小さいファイルに割り当てられると、内部断片が生じ、磁気ディスク空間が無駄になる。さらに、サイズの小さいファイルの頻繁な読み出し/書き込みにより、入力(Input、I)/出力(Output、O)の回数がさらに増加し、過度のシステム呼び出しを生じる。システム呼び出しはまた、コンテキストスイッチングを引き起こし、CPUリソースおよびメモリリソースが過度に占有される。その結果、ファイルシステムの全体的なI/O効率が低下する。
本発明は、ファイルシステムの全体的なI/O効率を高めるために、ファイルにアクセスするための方法および装置、ならびに記憶システムを提供する。
第1の実施態様によれば、ファイルにアクセスするための方法が提供され、本方法は、Lの第1のファイル呼び出し要求メッセージを判定するステップであって、Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である、ステップと、物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージを別々に加えるステップであって、Mは、正の整数である、ステップと、Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得する、ステップであって、各第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である、ステップと、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするステップと、を含む。
第1の実施態様に関連して、第1の実施態様の一実装方式では、本方法は、ファイルを記憶する物理セクタ上でNの第1のファイル記憶空間グループを判定するステップであって、Nの第1のファイル記憶空間グループは、第1のファイルを記憶するために使用され、Nは、正の整数であり、Nの第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、またはNの第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、少なくとも1つの第1のファイル記憶空間グループを解放する、またはNの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、Nの第1のファイル記憶空間グループの数を増やす、ステップをさらに含み、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするステップは、Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするステップを含む。
第1の実施態様および第1の実施態様の上記の実装方式に関連して、第1の実施態様の別の実装方式では、物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージを別々に加えるステップは、物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加えるステップであって、少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する第1のファイルの物理セクタのアドレスは、連続である、ステップを含む。
第1の実施態様および第1の実施態様の上記の実装方式に関連して、第1の実施態様の別の実装方式では、各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、アクセスパス情報は、物理セクタの、各第1のファイル呼び出しメッセージに対応する第1のファイルにアクセスするために使用される、パスを示すために使用される。
第1の実施態様および第1の実施態様の上記の実装方式に関連して、第1の実施態様の別の実装方式では、Lの第1のファイル呼び出し要求メッセージを判定するステップは、Lの第1のファイル情報ノードを判定するステップであって、Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を記憶するために使用される、ステップと、各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を判定するステップと、を含む。
第1の実施態様および第1の実施態様の上記の実装方式に関連して、第1の実施態様の別の実装方式では、Lの第1のファイル情報ノードを判定するステップは、Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定するステップと、第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在しない場合、情報ノード連結リストに、第i番目の第1のファイル情報ノードを生成し、第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、ステップ、または第i番目の第1のファイル情報ノードが情報ノード連結リストに存在する場合、第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定するステップと、を含む。
第2の実施態様によれば、ファイルにアクセスするための装置が提供され、本装置は、Lの第1のファイル呼び出し要求メッセージを判定するように構成された第1の判定モジュールであって、Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である、第1の判定モジュールと、物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、第1の判定モジュールが判定したLの第1のファイル呼び出し要求メッセージを別々に加えるように構成された割り当てモジュールであって、Mは、正の整数である、割り当てモジュールと、割り当てモジュールが割り当てたMの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得する、処理モジュールであって、各第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である、処理モジュールと、処理モジュールが取得した、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするように構成された呼び出しモジュールと、を備える。
第2の実施態様に関連して、第2の実施態様の一実装方式では、本装置は、ファイルを記憶する物理セクタ上でNの第1のファイル記憶空間グループを判定するように構成された第2の判定モジュールであって、Nの第1のファイル記憶空間グループは、第1のファイルを記憶するために使用され、Nの第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、またはNの第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、少なくとも1つの第1のファイル記憶空間グループを解放する、またはNの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、Nの第1のファイル記憶空間グループの数を増やす、第2の判定モジュールをさらに備え、呼び出しモジュールは、Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするようにさらに構成される。
第2の実施態様および第2の実施態様の上記の実装方式に関連して、第2の実施態様の別の実装方式では、処理モジュールは、物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加えるように特に構成され、少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの物理セクタのアドレスは、連続である。
第2の実施態様および第2の実施態様の上記の実装方式に関連して、第2の実施態様の別の実装方式では、各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、アクセスパス情報は、物理セクタの、各第1のファイル呼び出しメッセージに対応する第1のファイルにアクセスするために使用される、パスを示すために使用される。
第2の実施態様および第2の実施態様の上記の実装方式に関連して、第2の実施態様の別の実装方式では、判定モジュールは、Lの第1のファイル情報ノードを判定し、Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を記憶するために使用され、各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を判定するように特に構成される。
第2の実施態様および第2の実施態様の上記の実装方式に関連して、第2の実施態様の別の実装方式では、判定モジュールは、Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定し、第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在しない場合、情報ノード連結リストに、第i番目の第1のファイル情報ノードを生成し、第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、または第i番目の第1のファイル情報ノードが情報ノード連結リストに存在する場合、第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定するように特に構成される。
第3の実施態様によれば、記憶システムが提供され、本記憶システムは、ファイルおよびプログラムを記憶するように構成されたメモリと、プログラムを実行するように構成されたプロセッサと、を備えて、Lの第1のファイル呼び出し要求メッセージを判定し、Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数であり、物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージを別々に加え、Mは、正の整数であり、Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得し、各第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数であり、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスする。
第3の実施態様に関連して、第3の実施態様の一実装方式では、プロセッサは、ファイルを記憶する物理セクタ上でNの第1のファイル記憶空間グループを判定し、Nの第1のファイル記憶空間グループは、第1のファイルを記憶するために使用され、Nの第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、またはNの第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、少なくとも1つの第1のファイル記憶空間グループを解放する、またはNの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、Nの第1のファイル記憶空間グループの数を増やし、Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするようにさらに構成される。
第3の実施態様および第3の実施態様の上記の実装方式に関連して、第3の実施態様の別の実装方式では、プロセッサは、物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加えるように特に構成され、少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの物理セクタのアドレスは、連続である。
第3の実施態様および第3の実施態様の上記の実装方式に関連して、第3の実施態様の別の実装方式では、各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、アクセスパス情報は、物理セクタの、各第1のファイル呼び出しメッセージに対応する第1のファイルにアクセスするために使用される、パスを示すために使用される。
第3の実施態様および第3の実施態様の上記の実装方式に関連して、第3の実施態様の別の実装方式では、プロセッサは、Lの第1のファイル情報ノードを判定し、Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を記憶するために使用され、各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を判定するように特に構成される。
第3の実施態様および第3の実施態様の上記の実装方式に関連して、第3の実施態様の別の実装方式では、プロセッサは、Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定し、第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在しない場合、情報ノード連結リストに、第i番目の第1のファイル情報ノードを生成し、第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、または第i番目の第1のファイル情報ノードが情報ノード連結リストに存在する場合、第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定するように特に構成される。
上記の技術的解決策に基づいて、本発明の各実施形態における、ファイルにアクセスするための方法および装置、ならびに記憶システムにより、サイズの小さいファイルの呼び出し要求メッセージが判定され、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューが割り当てられ、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができ、サイズの小さいファイルを呼び出す回数が減る。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。
本発明の実施形態における技術的な解決策をより明確に説明するために、以下、本発明の各実施形態を説明するために必要な添付の図面を簡単に説明する。当然のことながら、以下の説明における添付の図面は、本発明の一部の実施形態を単に示すものであり、当業者は、創造的努力がなくても、これらの添付の図面から他の図面をさらに導出することができる。
本発明の一実施形態に係る、ファイルにアクセスするための方法の概略的な流れ図である。 本発明の一実施形態に係る、ファイルにアクセスするための方法の別の概略的な流れ図である。 本発明の一実施形態に係る、ファイルにアクセスするための装置200の概略的なブロック図である。 本発明の一実施形態に係る、ファイルにアクセスするための装置200の別の概略的なブロック図である。 本発明の一実施形態に係る、記憶システム300の概略的なブロック図である。
以下、本発明の実施形態における添付の図面を参照しながら、本発明の実施形態における技術的な解決策を明確かつ完全に説明する。当然のことながら、説明される実施形態は、本発明の実施形態の一部であり、すべてではない。本発明の実施形態に基づいて、当業者によって創造的努力なしに得られるすべての他の実施形態は、本発明の保護範囲内に含まれるものとする。
事前の統計によれば、linux(登録商標)システムには、数万、それどころか数百万ものファイルが含まれる。ファイルシステムは、ディレクトリ構造を用いて、記憶されたデータを整理し、実際のデータにファイルシステムの元の情報を関連付ける。linux(登録商標)は、多くの異なるファイルシステム、例えば、ext4、F2FS、Brtfs、およびVfatをサポートしている。linux(登録商標)カーネルは、追加的なソフトウェア層VFSを使用して、様々な下層にあるファイルシステムを関連付ける。
I/Oアクセス手順によれば、システムは、5つのモジュール、すなわち、ユーザ層(User Space)、ファイルシステム層、ブロックデバイス層、マルチメディアカード(Multimedia Card、略称「MMC」)ドライバ層、およびハードウェアに分割され得る。
ここでのUser Spaceとは、ユーザ空間においてI/O要求を処理するすべてのアプリケーションプログラムおよび標準ライブラリを含む。
ファイルシステム層、ブロックデバイス層、およびMMCドライバ層は、カーネル空間において稼働する。
ハードウェアは、MMCホストコントローラを指し、JEDEC標準およびベンだのハードウェアに応じて主に実装され、本特許の考察の主要な点ではない。
図1は、本発明の一実施形態に係る、ファイルにアクセスするための方法100の概略的な流れ図である。方法100は、ファイルシステムにおけるブロックデバイス層によって行われ得る。図1に示すように、方法100は、以下を含む。
S110:Lの第1のファイル呼び出し要求メッセージを判定し、Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である。
S120:物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージを別々に加え、Mは、正の整数である。
S130:Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得し、各第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である。
S140:各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスする。
具体的には、Lの第1のファイル呼び出し要求メッセージは、ユーザ機器が送信したファイル呼び出し要求メッセージから判定され、Lは、1よりも大きい整数である。第1のファイル呼び出し要求メッセージは、第1のファイルを呼び出すために使用され、第1のファイルのサイズは、サイズの小さいファイルであり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、対応するサイズの小さいファイルを記憶する物理セクタのアドレスを含む。Mの第1のファイルディスパッチキューは、Lの第1のファイル呼び出し要求メッセージに割り当てられ、Mは、正の整数である。Lの第1のファイル呼び出し要求メッセージは、各第1のファイル呼び出し要求メッセージにおける物理セクタ情報に従って、Mの第1のファイルディスパッチキューに別々に加えられる。各第1のファイルディスパッチキューに割り当てられたKの第1のファイル呼び出し要求メッセージが処理される。例えば、Kの第1のファイル呼び出し要求メッセージに対して結合および/または削除の処理が行われ得る。したがって、各第1のファイルディスパッチキューに対応する呼び出し要求メッセージが取得される。Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルは、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って呼び出される。例えば、第1のファイルがアクセスされ得る。
したがって、本発明の本実施形態における、ファイルにアクセスするための方法により、サイズの小さいファイルの呼び出し要求メッセージが判定され、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューが割り当てられ、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができ、サイズの小さいファイルを呼び出す回数が減る。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。
S110では、ファイルシステムは、受信したファイル呼び出し要求メッセージから、Lの第1のファイル呼び出し要求メッセージを判定し得、Lは、1よりも大きい正の整数である。Lの第1のファイル呼び出し要求メッセージの各第1のファイル要求メッセージは、1つの対応する第1のファイルを呼び出すように要求するために使用される。場合により、第1のファイルは、サイズの小さいファイル(Micro File、略称「MF」)である。実際のアプリケーションに従って、閾値が設定され得る。ファイルサイズが閾値以下であるファイルが、サイズの小さいファイル、つまり、第1のファイルと判定される。例えば、閾値は、1Kに設定されてよく、つまり、ファイルサイズが1K以下であるファイルが、サイズの小さいファイルと規定され、閾値はまた、2M、4Mなどに設定されてもよい。本発明はこれに限定されるものではない。このようにして、ファイルシステムは、受信したファイル呼び出し要求メッセージから、サイズの小さいファイルの呼び出し要求メッセージを判定し得、これらのサイズの小さいファイルの呼び出し要求メッセージは、ファイルシステムから対応するサイズの小さいファイルを呼び出すように要求するために使用される。
本発明の本実施形態では、ファイルシステムは、Lの第1のファイル呼び出し要求メッセージを判定し、1つの第1のファイル呼び出し要求メッセージを一度に受信してもよいし、複数の第1のファイル呼び出し要求メッセージを一度に受信してもよい。例えば、ファイルシステムは、3つの第1のファイル呼び出し要求メッセージを一度に受信してもよい。このケースでは、ファイルシステムがLの第1のファイル呼び出し要求メッセージを判定する場合、ファイルシステムは、3つの受信された第1のファイル呼び出し要求メッセージを判定する。あるいは、ファイルシステムはまた、ランダムな数の第1のファイル呼び出し要求メッセージを受信してもよい。数がLまで増加すると、ファイルシステムは、Lの第1のファイル呼び出し要求メッセージを判定する。Lの値は、実際のアプリケーションに応じて判定されてもよいし、経験的な値に従って設定されてもよい。本発明はこれに限定されるものではない。
場合により、本発明の本実施形態では、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み得、物理セクタ情報は、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルを記憶する物理セクタのアドレスを含む。場合により、物理セクタ情報は、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの開始アドレス、呼び出された第1のファイルのサイズ、または第1のファイル呼び出し要求メッセージを運ぶデバイスの関連情報のうちの少なくとも1つを特に含み得る。ファイルシステムは、物理セクタ情報を含む第1のファイル呼び出し要求メッセージに従って、呼び出す必要がある第1のファイルを判定し得る。
場合により、本発明の本実施形態では、第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み得、アクセスパス情報は、第1のファイルを対応して記憶する物理セクタのパス情報を含み、対応する第1のファイルを記憶する物理セクタ、つまり、サイズの小さいファイルを記憶する物理セクタは、アクセスパス情報に従って、ファイルシステム内で見つかり得る。具体的には、1つのファイルを開くopenもしくは閉じるclose、または新しいファイルを作成する場合、ファイルシステムのカーネルは、1つのファイル記述子を割り当て、ファイル記述子をユーザプログラムに返し、ファイル記述子のエントリ内のポインタは、新しく開いたファイルを指す。ファイルがアクセスされる場合、ユーザプログラムは、ファイル記述子をカーネルに送信し、カーネルは、ファイル記述子に従って対応するエントリを見つけ、エントリ内のポインタを使用して対応するファイルを見つける。各ファイル構造は、dentry(directory entry、ディレクトリエントリ)構造を指すポインタを有し、ファイルのinodeノードは、パスに従って見つけることができる。ディスクを読み出す回数を減らすために、カーネルは、ディレクトリのツリー状の構造を通常キャッシュし、ディレクトリのツリー状の構造は、dentry cacheと呼ばれる。各inodeノードは、dentry構造である。探索は、パスの部分のdentryに沿って行うだけでよい。dentry cacheは、最近アクセスされたディレクトリエントリのみを記憶する。ヒットしない場合、ディレクトリエントリを磁気ディスクからメモリへ読み出す必要がある。
具体的には、サイズの小さいファイルでは、ファイルシステムは、サイズの小さいファイル情報ノードMF−inodeを連結リストの形態で記憶し得る。これらのサイズの小さいファイル情報ノードは、対応するサイズの小さいファイルのアクセスパス情報を記憶し、サイズの小さいファイルは、情報ノードのアクセスパス情報に従って探索され得る。第i番目の第1のファイル呼び出し要求メッセージを受信すると、ファイルシステムは、記憶されたMF−inode連結リストにおいて第i番目の第1のファイルの対応する情報ノードを探索し、第i番目の第1のファイルの情報ノードが連結リストに存在する場合、第i番目の第1のファイルの情報ノードに従って、第1のファイルの記憶パスを示すために使用されるアクセスパス情報を判定し、アクセスパス情報は、第i番目の第1のファイル呼び出し要求メッセージに記憶され得る。第i番目の第1のファイルの対応する情報ノードがMF−inode連結リスト内で見つからない場合、第i番目の第1のファイルに対応する新しいinodeが適用され、新しいinodeは、MF−inode連結リストに加えられ、第1のファイルに対応する記憶パスおよびファイル名が新しいinodeに記憶され、かつinodeのメンバ変数として記録され、アクセスパス情報はまた、第i番目の第1のファイル呼び出し要求メッセージに記憶される。
場合により、サイズの小さいファイルに対応するMF−inode連結リストでは、MF−inode連結リストに含まれるinodeに対応するファイルが、ファイルデータが連続的に書き込まれたために、サイズの小さいファイルからサイズの大きいファイルに転じた場合、例えば、サイズの小さいファイルのサイズが4Mを超えた場合、切り捨て(O_TRUNC)動作が呼び出され得、その結果、サイズの大きいファイルは、サイズの小さいファイルになるように切り捨てされる。あるいは、サイズが大きくなったファイルは、サイズの小さいファイルのMF−inode連結リストから除去され、共通inodeがファイルに割り当てられてもよい。性能に影響しないため、そのままの状態が維持されてもよい。その一方、サイズの大きいファイルがサイズの小さいファイルへと転じた場合、サイズの小さいファイルをMF−inode連結リストに加えてもよい。場合により、このことは、システムがアイドル状態の時にディスクデフラグメンタプログラム(defragement daemon)を使用して完了させてもよい。
本発明の本実施形態では、Linux(登録商標)のI/Oスケジューラが、ブロックデバイスのI/Oサブシステムのメインコンポーネントであり、かつユニバーサルブロック層とブロックデバイスドライバとの間に配置される。Linux(登録商標)カーネルコンポーネントが、なんらかのデータを読み出し/書き込みする必要がある場合、要求が送信されたならば、カーネルは、要求を直ちに実行する代わりに、要求の実行を延期する。割り当て延期は、ブロックデバイスの性能の主な機構である。新しいデータブロックを送信する場合、カーネルは、新しい要求が、その間ずっと待機状態にある先の要求を延長することによって対応可能かどうかを確認する。
具体的には、各ブロックデバイスプログラムは、要求キューに関連付けられる。ブロックデバイスの初期化中、要求キューが割り当てられ、初期化される。このケースでは、特定のI/Oスケジューリングアルゴリズムがブロックデバイスドライバについて指定され得る。デフォルトのケースでは、システムのデフォルトスケジューリングアルゴリズムが使用される。デフォルトスケジューリングアルゴリズムでは、先の処理された要求に最も近い要求がまず処理され、したがって、要求は極めて長期間無視され、このケースはエレベータアルゴリズムである。このようなケースを避けるために、要求が未処理に留まるケースを避けるために、要求がエレベータアルゴリズムに送信される場合、タイムアウトタイマーが開始される。ユーザ経験を改善するために、読み出し要求は、書き込み要求に一般的に優先するが、これは、読み出し要求が、要求を送信するプロセスを通常ブロックするためである。
本発明の本実施形態では、サイズの小さいファイルの呼び出し要求メッセージは、このアルゴリズムを使用して処理され得、場合により、以下のI/Oスケジューリング(scheduler)アルゴリズム方法を使用してさらにスケジューリングされ得る。S120では、Lの第1のファイル呼び出し要求メッセージは、Lの第1のファイル呼び出し要求メッセージにおける物理セクタ情報に従って、Mの第1のファイルディスパッチキュー(MF dispatch Queue)に別々に加えられ得、Mは、正の整数である。ファイルシステムは、サイズの小さいファイルの呼び出し要求メッセージに対応する第1のファイルディスパッチキューを割り当てる。ファイルシステムが受信した第1のファイル呼び出し要求メッセージでは、Lの第1のファイル呼び出し要求メッセージは、各呼び出し要求メッセージにおける物理セクタ情報に従って、Mの第1のファイルディスパッチキューに別々に加えられ得、その結果、物理セクタが連続するアドレスを有する少なくとも2つの第1のファイル呼び出し要求メッセージは、同じ第1のファイルディスパッチキューに加えられ、各第1のファイルディスパッチキューは、Kの第1のファイル呼び出し要求メッセージを含み、KおよびMの両方とも正の整数である。
例えば、本発明の本実施形態では、ファイルシステムは、6つの第1のファイル呼び出し要求メッセージを判定し、つまり、L=6である。1つの第1のファイルディスパッチキューのみ、つまり、サイズの小さいファイルのディスパッチキュー、M=1がある場合、6つの第1のファイル呼び出し要求メッセージのうちの3つの第1のファイル呼び出し要求メッセージにおける物理セクタ情報が、3つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続であり、残りの3つが不連続であることを示す。第6番目の第1のファイル呼び出し要求メッセージは、第1のファイルディスパッチキューにすべて配置され、物理セクタが連続するアドレスを有する3つの第1のファイル呼び出し要求メッセージが結合され、つまり、このケースでは、K=3である。物理セクタが不連続なアドレスを有する残りの3つの第1のファイル呼び出し要求メッセージは、一時的に処理されない。新しい第1のファイル呼び出し要求メッセージがある場合、物理セクタのアドレスが連続であるかどうかが再度判定される。連続である場合、結合が行われる、または不連続である場合、処理は依然として行われない。場合により、物理セクタのアドレスが連続であるかどうかを判定することによって、結合処理を行うかどうかが判定される。第1のファイル呼び出し要求情報は、呼び出された第1のファイルのサイズに従ってさらに結合され得る。例えば、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、2つの第1のファイルのサイズの和は、1つのデータブロック(block)を正確に構成し得、2つの第1のファイル呼び出し要求メッセージもまた結合され、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、対応する第1のファイルは、同じデータブロックにおける同じ物理セクタに書き込まれる。本発明はこれに限定されるものではない。
場合により、別の例では、ファイルシステムは、6つの第1のファイル呼び出し要求メッセージを判定し、つまり、L=6である。第1のファイルディスパッチキューが5つのディスパッチキューに分割され、つまり、サイズの小さいファイルの5つのディスパッチキューがあり、M=5である場合、6つの第1のファイル呼び出し要求メッセージのうちの3つの第1のファイル呼び出し要求メッセージにおける物理セクタ情報が、3つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続であり、残りの3つが不連続であることを示す。物理セクタが連続なアドレスを有する3つの第1のファイル呼び出し要求メッセージは、同じ第1のファイルディスパッチキューに配置される。例えば、3つの第1のファイル呼び出し要求メッセージは、第1番目の第1のファイルディスパッチキューに配置され、物理セクタが不連続なアドレスを有する残りの3つの第1のファイル呼び出し要求メッセージは、他の3つの第1のファイルディスパッチキューに配置され得、1つの残りの第1のファイルディスパッチキューは、一時的に空である。このケースでは、3つの第1のファイル呼び出し要求メッセージは、第1番目の第1のファイルディスパッチキューに存在し、つまり、K=3である。このケースでは、第1のファイルディスパッチキューにおける3つの第1のファイル呼び出し要求メッセージに対して結合処理が行われて、第1のファイルディスパッチキューの1つの呼び出し要求メッセージを取得し得る。結合処理は、1つの第1のファイル呼び出し要求メッセージをそれぞれ有する他の3つのディスパッチキューに対して最初行われず、他の3つのディスパッチキューは、別の第1のファイル呼び出し要求メッセージの割り当てを待機し続け得る。結合され得る複数の第1のファイル呼び出し要求メッセージがいくつかの第1のファイルディスパッチキューに存在する場合、第1の第1のファイルディスパッチキューのケースと同様に、同じ第1のファイルディスパッチキューにある複数の第1のファイル呼び出し要求メッセージが結合される。場合により、物理セクタのアドレスが連続であるかどうかを判定することによって、結合処理を行うかどうかが判定される。第1のファイル呼び出し要求情報は、呼び出された第1のファイルのサイズに従ってさらに結合され得る。例えば、2つの
第1のファイル呼び出し要求メッセージが書き込むように要求する、2つの第1のファイルのサイズの和は、1つのデータブロック(block)を正確に構成し得、2つの第1のファイル呼び出し要求メッセージもまた結合され、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、対応する第1のファイルは、同じデータブロックにおける同じ物理セクタに書き込まれる。本発明はこれに限定されるものではない。
場合により、別の例では、ファイルシステムは、6つの第1のファイル呼び出し要求メッセージを判定し、つまり、L=6である。3つの第1のファイルディスパッチキューがある、つまり、M=3である場合、6つの第1のファイル呼び出し要求メッセージのうちの3つの第1のファイル呼び出し要求メッセージにおける物理セクタ情報が、3つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続であり、残りの3つが不連続であることを示す。物理セクタが連続するアドレスを有する3つの第1のファイル呼び出し要求メッセージは、同じ第1のファイルディスパッチキューに配置され、例えば、3つの第1のファイル呼び出し要求メッセージは、第1の第1のファイルディスパッチキューに配置され、物理アドレスが不連続な残りの3つの第1のファイル呼び出し要求メッセージは、第1のファイル呼び出し要求メッセージのサイズに従って、もしくはランダムに、3つの第1のファイルディスパッチキューに割り当てられ得る、または第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの記憶アドレスの相関関係に従って、3つの第1のファイルディスパッチキューに割り当てられ得る、または3つの第1のファイルディスパッチキューにランダムに割り当てられ得る。次いで、物理セクタ情報が連続であり、かつ第1番目の第1のファイルディスパッチキューにおける3つの第1のファイル呼び出し要求メッセージに対して結合処理が行われて、第1のファイルディスパッチキューの1つの呼び出し要求メッセージを取得する。他の2つの第1のファイルディスパッチキューは、最初に処理され得ない、または結合されていない第1のファイル呼び出し要求メッセージが第1番目の第1のファイルディスパッチキューに依然として存在する場合、処理もまた一時的に行われない。結合され得る複数の第1のファイル呼び出し要求メッセージがいくつかの第1のファイルディスパッチキューに存在する場合、第1番目の第1のファイルディスパッチキューのケースと同様に、同じ第1のファイルディスパッチキューにある複数の第1のファイル呼び出し要求メッセージが結合される。場合により、物理セクタのアドレスが連続であるかどうかを判定することによって、結合処理を行うかどうかが判定される。第1のファイル呼び出し要求情報は、呼び出され
た第1のファイルのサイズに従ってさらに結合され得る。例えば、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、2つの第1のファイルのサイズの和は、1つのデータブロック(block)を正確に構成し得、2つの第1のファイル呼び出し要求メッセージもまた結合され、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、対応する第1のファイルは、同じデータブロックにおける同じ物理セクタに書き込まれる。本発明はこれに限定されるものではない。
場合により、ファイルシステムが受信した呼び出し要求メッセージは、Lの第1のファイル呼び出し要求メッセージの異なるプロセスID(PID)に従ってグループ化され得る。次いで、グループ化した呼び出し要求メッセージの第1のファイル呼び出し要求メッセージを第1のファイルディスパッチキューに記憶し、第1のファイルディスパッチキューは、Mのディスパッチキューを含み得る。場合により、構造が、ファイルシステムに新しく加えられ、どの呼び出し要求メッセージが第1のファイル呼び出し要求メッセージであるかを判定するために使用される。あるいは、S110で第1のファイル呼び出し要求メッセージが判定される際、第1のファイル呼び出し要求メッセージが識別され得、第1のファイル呼び出し要求メッセージは、識別子を使用して区別され、第1のファイル呼び出し要求メッセージは、対応するMの第1のファイルディスパッチキューに割り当てられ、各第1のファイルディスパッチは、Kの第1のファイル呼び出し要求メッセージを対応して含む。
S130では、ファイルシステムにおけるMの第1のファイルディスパッチキューのそれぞれが、各第1のファイルディスパッチキューに含まれるKの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得し得る。具体的には、Lの第1のファイル呼び出し要求メッセージは、Mの第1のファイルディスパッチキューに加えられる。各第1のファイルディスパッチキューについて、各第1のファイルディスパッチキューに含まれる少なくとも2つの第1のファイル呼び出し要求メッセージが連続する物理セクタ(bi_sector)アドレスを有する場合、呼び出す回数を減らすために、少なくとも2つの第1のファイル呼び出し要求メッセージに対して結合処理が行われ得、その結果、少なくとも2つの第1のファイル呼び出し要求メッセージは、1つの呼び出し要求メッセージ、つまり、第1のファイルディスパッチキューの呼び出し要求メッセージへと結合され得る。例えば、任意の第1のファイルディスパッチキューについて、第1のファイルディスパッチキューは、Kの第1のファイル呼び出し要求メッセージを含み、Kの第1のファイル呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに含まれる物理セクタ情報に従って処理されて、第1のファイルディスパッチキューの1つの呼び出し要求メッセージを生成し得、第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すために使用される。場合により、ファイルシステムは、第1のファイル呼び出し要求メッセージに対する削除処理をさらに行って、不要な呼び出し要求を削除する。このようにして、呼び出し回数がまた減らされ得る。
場合により、第1のファイルディスパッチキューが1つの第1のファイル呼び出し要求メッセージのみを含む場合、つまり、別の呼び出し要求メッセージがなく、別の呼び出し要求メッセージの物理セクタおよび呼び出し要求メッセージの物理セクタが連続するアドレスを有し、第1のファイル呼び出し要求メッセージは、一時的に処理されない場合もある。第1のファイルディスパッチキューに含まれる少なくとも2つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続する場合、次いで、結合処理が行われる。本発明はこれに限定されるものではない。
S140では、第1のファイルディスパッチキューに含まれるKの第1のファイル呼び出し要求メッセージに対して結合または削除の処理が行われた後、ファイルシステムは、第1のファイルディスパッチキューの取得した呼び出し要求メッセージに従って、対応する第1のファイルにアクセスし得る。具体的には、各第1のファイル呼び出し要求メッセージがアクセスパス情報を含み得ることから、第1のファイルディスパッチキューについて結合を行った後、各第1のファイルディスパッチキューの呼び出し要求メッセージは、対応するアクセスパス情報を依然として有する。したがって、アクセス処理は、アクセスパス情報に従って、第1のファイルに対して対応して行われ得る。場合により、第1のファイルディスパッチキューの呼び出し要求メッセージは、記憶媒体要求キュー(mmc_request)に送信され得、mmc_requestは、第1のファイルディスパッチキューの呼び出し要求メッセージを処理し、デバイスコントローラを設定し、デバイスコントローラは、データを生成し、送信するために主に使用される。データ送信が完了した後、現在の呼び出し要求メッセージが対応するディスパッチキューから削除され得、次の要求に対応するデータ送信が開始される。
本発明の各実施形態において上記のプロセスのシーケンス番号は、実行する順番を意味するものではないことを理解されたい。プロセスの実行する順番は、プロセスの機能および内部ロジックに従って判定されるものとするが、本発明の各実施形態の実装プロセスにいかなる限定をも構成しないものとする。
したがって、本発明の本実施形態における、ファイルにアクセスするための方法により、サイズの小さいファイルの呼び出し要求メッセージが判定され、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューが割り当てられ、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができ、サイズの小さいファイルを呼び出す回数が減る。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。
場合により、一実施形態では、本発明の本実施形態におけるファイルにアクセスするための方法100は、以下をさらに含む。
S150:ファイルを記憶する物理セクタ上でNの第1のファイル記憶空間グループを判定し、Nの第1のファイル記憶空間グループは、第1のファイルを記憶するために使用される。
本発明の本実施形態では、具体的には、ファイルシステムは、サイズの小さいファイルのアクセスのための独立物理セクタを設定し得る。物理セクタは、複数の独立領域を含み、領域は、複数の第1のファイル記憶空間グループ(MF Group)を含み、領域のサイズは、タイムスロットアプリケーションに従って調整および最適化され得、領域に含まれるMF Groupの数は、要件に従って動的に調整され得る。場合により、複数のMF Groupは、サイズの小さいファイルを独立に記憶し、各MF Groupは、複数のデータベース(date block)を含み得、各date blockは、1つ以上のサイズの小さいファイルを記憶し得る。本発明はこれに限定されるものではない。
具体的には、複数のMF Groupは、システムがアイドル状態の時にディスクデフラグメンタプログラム(defragement daemon)を使用して結合および/または削除され得る。例えば、複数のMF Groupが結合されて、複数の第1のファイルが連続する物理セクタ上に記憶されることを確保し、その結果、eMMCの特徴がより良好に使用され得る。システムの稼働中、ファイルの削除動作のため、ファイルを記憶するために使用される一部のMF Groupにおける空間が余剰となる、つまり、MF Groupにおける大半の空間が削除予定リストに加えられる。これらのMF Groupは結合されて、少なくとも2つのMF Groupにおけるデータを結合し、1つ以上のMF Groupにおけるデータを記憶し得る。したがって、より多くの空間が解放され、空間利用が改善される。
場合により、一実施形態では、削除処理はまた、MF Groupに対して行われ得る。例えば、MF Groupに存在する一部のサイズの小さいファイルがサイズの大きいファイルに転じた場合、例えば、サイズの大きいファイルのサイズが4Mの範囲を超えた場合、ファイルのサイズが大きくなったMF Groupが見つけられ、識別され得る。次いで、削除予定リストを走査する際に、defragement daemonは、MF Groupに含まれる第1のファイルはすべて削除されたリストに加えられたことを見つけ、その結果、MF Groupにファイルが存在しない場合、つまり、MF Groupが空である場合に削除が行われ、MF Groupが削除されて、リソースを解放する。
場合により、一実施形態では、追加処理はまた、MF Groupに対して行われ得る。例えば、サイズの小さいファイルが新しく加えられる場合、例えば、サイズの大きいファイルがサイズの小さいファイルに転じた場合、defragement daemonは、余剰空間を有するMF Groupについて、複数のMF Groupをまず探索する。サイズの小さいファイルをMF Groupに記憶可能にし得る利用可能な記憶空間が存在する場合、新しく加えられたサイズの小さいファイルは、MF Groupに記憶される。余剰空間を有するMF Groupがない場合、defragement daemonは、新しいMF Groupを加え、新しいMF Groupは、サイズの小さいファイルと別の新しく加えられたサイズの小さいファイルとを記憶するために使用される。
本発明の本実施形態では、ファイルシステムは、少なくとも1つの第1のファイルディスパッチキューの呼び出し要求メッセージに従って、アクセスおよび呼び出される必要がある第1のファイルのためのファイルを記憶するMF Groupを探索し得る。
本発明の各実施形態において上記のプロセスのシーケンス番号は、実行する順番を意味するものではないことを理解されたい。プロセスの実行する順番は、プロセスの機能および内部ロジックに従って判定されるものとするが、本発明の各実施形態の実装プロセスにいかなる限定をも構成しないものとする。
したがって、本発明の本実施形態における、ファイルにアクセスするための方法により、サイズの小さいファイルの呼び出し要求メッセージが判定され、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューが割り当てられ、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができる。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。加えて、対応するダイナミック記憶領域は、サイズの小さいファイルにさらに割り当てられ得、異なるサイズの小さいファイルが記憶するために集められる。このようにして、記憶空間の無駄使いを減らすことができ、空間利用が改善される。
以上、図1および図2を参照して、本発明の本実施形態に係る、ファイルにアクセスするための方法を詳細に説明した。以下、図3および図4を参照して、本発明の一実施形態に係る、ファイルにアクセスするための装置200を説明する。
図3に示すように、本発明の本実施形態によるファイルにアクセスするための装置200は、
Lの第1のファイル呼び出し要求メッセージを判定するように構成された第1の判定モジュール210であって、Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である、第1の判定モジュール210と、
物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、第1の判定モジュールが判定したLの第1のファイル呼び出し要求メッセージを別々に加えるように構成された割り当てモジュール220であって、Mは、正の整数である、割り当てモジュール220と、
割り当てモジュールが割り当てたMの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得する、処理モジュール230であって、各第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である、処理モジュール230と、
処理モジュールが取得した、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするように構成された呼び出しモジュール240と、
を備える。
具体的には、判定モジュール210は、ユーザ機器が送信したファイル呼び出し要求メッセージから、Lの第1のファイル呼び出し要求メッセージを判定し、Lは、1よりも大きい整数である。第1のファイル呼び出し要求メッセージは、第1のファイルを呼び出すために使用され、第1のファイルのサイズは、サイズの小さいファイルであり、各サイズの小さいファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、サイズの小さいファイルを記憶する物理セクタのアドレスを含み得る。割り当てモジュール220は、判定モジュール210が判定したLの第1のファイル呼び出し要求メッセージに、Mの第1のファイルディスパッチキューを割り当て、Mは、正の整数であり、各第1のファイル呼び出し要求メッセージにおける物理セクタ情報に従って、Mの第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージを別々に加える。各第1のファイルディスパッチキューについて、処理モジュール230は、各第1のファイルディスパッチキューに割り当てられたKの第1のファイル呼び出し要求メッセージを処理する、例えば、Kの第1のファイル呼び出し要求メッセージに対して結合および/または削除の処理を行い得、その結果、各第1のファイルディスパッチキューに対応する呼び出し要求メッセージが取得される。呼び出しモジュール240は、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出し得る、例えば、第1のファイルにアクセスし得る。
したがって、本発明の本実施形態における、ファイルにアクセスするための装置は、サイズの小さいファイルの呼び出し要求メッセージを判定し、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューを割り当て、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができ、サイズの小さいファイルを呼び出す回数が減る。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。
本発明の本実施形態では、ファイルシステムにおいてファイルにアクセスするための装置200の判定モジュール210は、受信したファイル呼び出し要求メッセージからLの第1のファイル呼び出し要求メッセージを判定し得る。Lの第1のファイル呼び出し要求メッセージの各第1のファイル要求メッセージは、1つの対応する第1のファイルを呼び出すように要求するために使用される。場合により、第1のファイルは、サイズの小さいファイル(Micro File、略称「MF」)である。実際のアプリケーションに従って、閾値が設定され得る。ファイルサイズが閾値以下であるファイルが、サイズの小さいファイル、つまり、第1のファイルと判定される。例えば、閾値は、1Kに設定されてよく、つまり、ファイルサイズが1K以下であるファイルが、サイズの小さいファイルと規定され、閾値はまた、2M、4Mなどに設定されてもよい。本発明はこれに限定されるものではない。このようにして、ファイルシステムは、受信したファイル呼び出し要求メッセージから、サイズの小さいファイルの呼び出し要求メッセージを判定し得、これらのサイズの小さいファイルの呼び出し要求メッセージは、ファイルシステムから対応するサイズの小さいファイルを呼び出すように要求するために使用される。
本発明の本実施形態では、ファイルシステムは、Lの第1のファイル呼び出し要求メッセージを判定し、1つの第1のファイル呼び出し要求メッセージを一度に受信してもよいし、複数の第1のファイル呼び出し要求メッセージを一度に受信してもよい。例えば、ファイルシステムは、3つの第1のファイル呼び出し要求メッセージを一度に受信してもよい。このケースでは、ファイルシステムがLの第1のファイル呼び出し要求メッセージを判定する場合、ファイルシステムは、3つの受信された第1のファイル呼び出し要求メッセージを判定する。あるいは、ファイルシステムはまた、ランダムな数の第1のファイル呼び出し要求メッセージを受信してもよい。数がLまで増加すると、ファイルシステムは、Lの第1のファイル呼び出し要求メッセージを判定する。Lの値は、実際のアプリケーションに応じて判定されてもよいし、経験的な値に従って設定されてもよい。本発明はこれに限定されるものではない。
場合により、本発明の本実施形態では、ファイルにアクセスするための装置200の判定モジュール210が判定したLの第1のファイル呼び出し要求メッセージのそれぞれは、物理セクタ情報を含み得、物理セクタ情報は、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルを記憶する物理セクタのアドレスを含む。場合により、物理セクタ情報は、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの開始アドレス、呼び出された第1のファイルのサイズ、第1のファイル呼び出し要求メッセージを運ぶデバイスの関連情報などを特に含み得る。ファイルシステムは、物理セクタ情報を含む第1のファイル呼び出し要求メッセージに従って、呼び出す必要がある第1のファイルを判定し得る。
場合により、本発明の本実施形態では、判定モジュール210が判定した第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み得、アクセスパス情報は、第1のファイルを対応して記憶する物理セクタのパス情報を含み、対応するサイズの小さいファイルを記憶する物理セクタは、アクセスパス情報に従って、ファイルシステム内で見つかり得る。具体的には、1つのファイルを開くopenもしくは閉じるclose、または新しいファイルを作成する場合、ファイルシステムのカーネルは、1つのファイル記述子を割り当て、ファイル記述子をユーザプログラムに返し、ファイル記述子のエントリ内のポインタは、新しく開いたファイルを指す。ファイルがアクセスされる場合、ユーザプログラムは、ファイル記述子をカーネルに送信し、カーネルは、ファイル記述子に従って対応するエントリを見つけ、エントリ内のポインタを使用して対応するファイルを見つける。各ファイル構造は、dentry(directory entry、ディレクトリエントリ)構造を指すポインタを有し、ファイルのinodeノードは、パスに従って見つけることができる。ディスクを読み出す回数を減らすために、カーネルは、ディレクトリのツリー状の構造を通常キャッシュし、ディレクトリのツリー状の構造は、dentry cacheと呼ばれる。各inodeノードは、dentry構造である。探索は、パスの部分のdentryに沿って行うだけでよい。dentry cacheは、最近アクセスされたディレクトリエントリのみを記憶する。ヒットしない場合、ディレクトリエントリを磁気ディスクからメモリへ読み出す必要がある。
具体的には、サイズの小さいファイルでは、ファイルシステムは、サイズの小さいファイル情報ノードMF−inodeを連結リストの形態で記憶し得る。これらのサイズの小さいファイル情報ノードは、対応するサイズの小さいファイルのアクセスパス情報を記憶し、サイズの小さいファイルは、情報ノードのアクセスパス情報に従って探索され得る。第i番目の第1のファイル呼び出し要求メッセージを受信すると、ファイルシステムは、記憶されたMF−inode連結リストにおいて第i番目の第1のファイルの対応する情報ノードを探索し、第i番目の第1のファイルの情報ノードが連結リストに存在する場合、第i番目の第1のファイルの情報ノードに従って、第1のファイルの記憶パスを示すために使用されるアクセスパス情報を判定し、アクセスパス情報は、第i番目の第1のファイル呼び出し要求メッセージに記憶され得る。第i番目の第1のファイルの対応する情報ノードがMF−inode連結リスト内で見つからない場合、第i番目の第1のファイルに対応する新しいinodeが適用され、新しいinodeは、MF−inode連結リストに加えられ、第1のファイルに対応する記憶パスおよびファイル名が新しいinodeに記憶され、かつinodeのメンバ変数として記録され、アクセスパス情報はまた、第i番目の第1のファイル呼び出し要求メッセージに記憶される。
場合により、サイズの小さいファイルに対応するMF−inode連結リストでは、MF−inode連結リストに含まれるinodeに対応するファイルが、ファイルデータが連続的に書き込まれたために、サイズの小さいファイルからサイズの大きいファイルに転じた場合、例えば、サイズの小さいファイルのサイズが4Mを超えた場合、切り捨て(O_TRUNC)動作が呼び出され得、その結果、サイズの大きいファイルは、サイズの小さいファイルになるように切り捨てされる。あるいは、サイズが大きくなったファイルは、サイズの小さいファイルのMF−inode連結リストから除去され、共通inodeがファイルに割り当てられてもよい。性能に影響しないため、そのままの状態が維持されてもよい。その一方、サイズの大きいファイルがサイズの小さいファイルへと転じた場合、サイズの小さいファイルをMF−inode連結リストに加えてもよい。場合により、このことは、システムがアイドル状態の時にディスクデフラグメンタプログラム(defragement daemon)を使用して完了させてもよい。
本発明の本実施形態では、Linux(登録商標)のI/Oスケジューラが、ブロックデバイスのI/Oサブシステムのメインコンポーネントであり、かつユニバーサルブロック層とブロックデバイスドライバとの間に配置される。Linux(登録商標)カーネルコンポーネントが、なんらかのデータを読み出し/書き込みする必要がある場合、要求が送信されたならば、カーネルは、要求を直ちに実行する代わりに、要求の実行を延期する。割り当て延期は、ブロックデバイスの性能の主な機構である。新しいデータブロックを送信する場合、カーネルは、新しい要求が、その間ずっと待機状態にある先の要求を延長することによって対応可能かどうかを確認する。
具体的には、各ブロックデバイスプログラムは、要求キューに関連付けられる。ブロックデバイスの初期化中、要求キューが割り当てられ、初期化される。このケースでは、特定のI/Oスケジューリングアルゴリズムがブロックデバイスドライバについて指定され得る。デフォルトのケースでは、システムのデフォルトスケジューリングアルゴリズムが使用される。デフォルトスケジューリングアルゴリズムでは、先の処理された要求に最も近い要求がまず処理され、したがって、要求は極めて長期間無視され、このケースはエレベータアルゴリズムである。このようなケースを避けるために、要求が未処理に留まるケースを避けるために、要求がエレベータアルゴリズムに送信される場合、タイムアウトタイマーが開始される。ユーザ経験を改善するために、読み出し要求は、書き込み要求に一般的に優先するが、これは、読み出し要求が、要求を送信するプロセスを通常ブロックするためである。
本発明の本実施形態では、サイズの小さいファイルの呼び出し要求メッセージは、このアルゴリズムを使用して処理され得、場合により、以下のI/Oスケジューリング(scheduler)アルゴリズム方法を使用してさらにスケジューリングされ得る。本発明の本実施形態では、割り当てモジュール220は、Lの第1のファイル呼び出し要求メッセージにおける物理セクタ情報に従って、Mの第1のファイルディスパッチキュー(MF dispatch Queue)に、Lの第1のファイル呼び出し要求メッセージを別々に加え得る。ファイルシステムは、サイズの小さいファイルの呼び出し要求メッセージに対応する第1のファイルディスパッチキューを割り当てる。ファイルシステムが受信した第1のファイル呼び出し要求メッセージでは、Lの第1のファイル呼び出し要求メッセージは、各呼び出し要求メッセージにおける物理セクタ情報に従って、Mの第1のファイルディスパッチキューに別々に加えられ得、その結果、物理セクタが連続するアドレスを有する少なくとも2つの第1のファイル呼び出し要求メッセージは、同じ第1のファイルディスパッチキューに加えられ、各第1のファイルディスパッチキューは、Kの第1のファイル呼び出し要求メッセージを含み、KおよびMの両方とも正の整数である。
例えば、本発明の本実施形態では、ファイルシステムは、6つの第1のファイル呼び出し要求メッセージを判定し、つまり、L=6である。1つの第1のファイルディスパッチキューのみ、つまり、サイズの小さいファイルのディスパッチキュー、M=1がある場合、6つの第1のファイル呼び出し要求メッセージのうちの3つの第1のファイル呼び出し要求メッセージにおける物理セクタ情報が、3つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続であり、残りの3つが不連続であることを示す。第6番目の第1のファイル呼び出し要求メッセージは、第1のファイルディスパッチキューにすべて配置され、物理セクタが連続するアドレスを有する3つの第1のファイル呼び出し要求メッセージが結合され、つまり、このケースでは、K=3である。物理セクタが不連続なアドレスを有する残りの3つの第1のファイル呼び出し要求メッセージは、一時的に処理されない。新しい第1のファイル呼び出し要求メッセージがある場合、物理セクタのアドレスが連続であるかどうかが再度判定される。連続である場合、結合が行われる、または不連続である場合、処理は依然として行われない。場合により、物理セクタのアドレスが連続であるかどうかを判定することによって、結合処理を行うかどうかが判定される。第1のファイル呼び出し要求情報は、呼び出された第1のファイルのサイズに従ってさらに結合され得る。例えば、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、2つの第1のファイルのサイズの和は、1つのデータブロック(block)を正確に構成し得、2つの第1のファイル呼び出し要求メッセージもまた結合され、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、対応する第1のファイルは、同じデータブロックにおける同じ物理セクタに書き込まれる。本発明はこれに限定されるものではない。
場合により、別の例では、ファイルシステムは、6つの第1のファイル呼び出し要求メッセージを判定し、つまり、L=6である。第1のファイルディスパッチキューが5つのディスパッチキューに分割され、つまり、サイズの小さいファイルの5つのディスパッチキューがあり、M=5である場合、6つの第1のファイル呼び出し要求メッセージのうちの3つの第1のファイル呼び出し要求メッセージにおける物理セクタ情報が、3つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続であり、残りの3つが不連続であることを示す。物理セクタが連続なアドレスを有する3つの第1のファイル呼び出し要求メッセージは、同じ第1のファイルディスパッチキューに配置される。例えば、3つの第1のファイル呼び出し要求メッセージは、第1番目の第1のファイルディスパッチキューに配置され、物理セクタが不連続なアドレスを有する残りの3つの第1のファイル呼び出し要求メッセージは、他の3つの第1のファイルディスパッチキューに配置され得、1つの残りの第1のファイルディスパッチキューは、一時的に空である。このケースでは、3つの第1のファイル呼び出し要求メッセージは、第1番目の第1のファイルディスパッチキューに存在し、つまり、K=3である。このケースでは、第1のファイルディスパッチキューにおける3つの第1のファイル呼び出し要求メッセージに対して結合処理が行われて、第1のファイルディスパッチキューの1つの呼び出し要求メッセージを取得し得る。結合処理は、1つの第1のファイル呼び出し要求メッセージをそれぞれ有する他の3つのディスパッチキューに対して最初行われず、他の3つのディスパッチキューは、別の第1のファイル呼び出し要求メッセージの割り当てを待機し続け得る。結合され得る複数の第1のファイル呼び出し要求メッセージがいくつかの第1のファイルディスパッチキューに存在する場合、第1番目の第1のファイルディスパッチキューのケースと同様に、同じ第1のファイルディスパッチキューにある複数の第1のファイル呼び出し要求メッセージが結合される。場合により、物理セクタのアドレスが連続であるかどうかを判定することによって、結合処理を行うかどうかが判定される。第1のファイル呼び出し要求情報は、呼び出された第1のファイルのサイズに従ってさらに結合され得る。例えば、2
つの第1のファイル呼び出し要求メッセージが書き込むように要求する、2つの第1のファイルのサイズの和は、1つのデータブロック(block)を正確に構成し得、2つの第1のファイル呼び出し要求メッセージもまた結合され、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、対応する第1のファイルは、同じデータブロックにおける同じ物理セクタに書き込まれる。本発明はこれに限定されるものではない。
場合により、別の例では、ファイルシステムは、6つの第1のファイル呼び出し要求メッセージを判定し、つまり、L=6である。3つの第1のファイルディスパッチキューがある、つまり、M=3である場合、6つの第1のファイル呼び出し要求メッセージのうちの3つの第1のファイル呼び出し要求メッセージにおける物理セクタ情報が、3つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続であり、残りの3つが不連続であることを示す。物理セクタが連続するアドレスを有する3つの第1のファイル呼び出し要求メッセージは、同じ第1のファイルディスパッチキューに配置され、例えば、3つの第1のファイル呼び出し要求メッセージは、第1の第1のファイルディスパッチキューに配置され、物理アドレスが不連続な残りの3つの第1のファイル呼び出し要求メッセージは、第1のファイル呼び出し要求メッセージのサイズに従って、もしくはランダムに、3つの第1のファイルディスパッチキューに割り当てられ得る、または第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの記憶アドレスの相関関係に従って、3つの第1のファイルディスパッチキューに割り当てられ得る、または3つの第1のファイルディスパッチキューにランダムに割り当てられ得る。次いで、物理セクタ情報が連続であり、かつ第1番目の第1のファイルディスパッチキューにおける3つの第1のファイル呼び出し要求メッセージに対して結合処理が行われて、第1のファイルディスパッチキューの1つの呼び出し要求メッセージを取得する。他の2つの第1のファイルディスパッチキューは、最初に処理され得ない、または結合されていない第1のファイル呼び出し要求メッセージが第1番目の第1のファイルディスパッチキューに依然として存在する場合、処理もまた一時的に行われない。結合され得る複数の第1のファイル呼び出し要求メッセージがいくつかの第1のファイルディスパッチキューに存在する場合、第1番目の第1のファイルディスパッチキューのケースと同様に、同じ第1のファイルディスパッチキューにある複数の第1のファイル呼び出し要求メッセージが結合される。場合により、物理セクタのアドレスが連続であるかどうかを判定することによって、結合処理を行うかどうかが判定される。第1のファイル呼び出し要求情報は、呼び出され
た第1のファイルのサイズに従ってさらに結合され得る。例えば、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、2つの第1のファイルのサイズの和は、1つのデータブロック(block)を正確に構成し得、2つの第1のファイル呼び出し要求メッセージもまた結合され、2つの第1のファイル呼び出し要求メッセージが書き込むように要求する、対応する第1のファイルは、同じデータブロックにおける同じ物理セクタに書き込まれる。本発明はこれに限定されるものではない。
場合により、割り当てモジュール220は、Lの第1のファイル呼び出し要求メッセージの異なるプロセスID(PID)に従って、ファイルシステムが受信した呼び出し要求メッセージをグループ化し、グループ化した呼び出し要求メッセージの第1のファイル呼び出し要求メッセージを第1のファイルディスパッチキューに記憶し得、第1のファイルディスパッチキューは、Mのディスパッチキューを含み得る。場合により、構造が、ファイルシステムに新しく加えられ、どの呼び出し要求メッセージが第1のファイル呼び出し要求メッセージであるかを判定するために使用される。あるいは、S110で第1のファイル呼び出し要求メッセージが判定される際、第1のファイル呼び出し要求メッセージが識別され得、第1のファイル呼び出し要求メッセージは、識別子を使用して区別され、第1のファイル呼び出し要求メッセージは、対応するMの第1のファイルディスパッチキューに割り当てられ、各第1のファイルディスパッチは、Kの第1のファイル呼び出し要求メッセージを対応して含む。
本発明の本実施形態では、Mの第1のファイルディスパッチキューのそれぞれについて、ファイルシステムの処理モジュール230は、各第1のファイルディスパッチキューに含まれるKの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得し得る。具体的には、Lの第1のファイル呼び出し要求メッセージは、Mの第1のファイルディスパッチキューに加えられる。各第1のファイルディスパッチキューについて、各第1のファイルディスパッチキューに含まれる少なくとも2つの第1のファイル呼び出し要求メッセージが連続する物理セクタ(bi_sector)アドレスを有する場合、呼び出す回数を減らすために、少なくとも2つの第1のファイル呼び出し要求メッセージに対して結合処理が行われ得、その結果、少なくとも2つの第1のファイル呼び出し要求メッセージは、1つの呼び出し要求メッセージ、つまり、第1のファイルディスパッチキューの呼び出し要求メッセージへと結合され得る。例えば、任意の第1のファイルディスパッチキューについて、第1のファイルディスパッチキューは、Kの第1のファイル呼び出し要求メッセージを含み、Kの第1のファイル呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに含まれる物理セクタ情報に従って処理されて、第1のファイルディスパッチキューの1つの呼び出し要求メッセージを生成し得、第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すために使用される。場合により、ファイルシステムは、第1のファイル呼び出し要求メッセージに対する削除処理をさらに行って、不要な呼び出し要求を削除する。このようにして、呼び出し回数がまた減らされ得る。
場合により、第1のファイルディスパッチキューが1つの第1のファイル呼び出し要求メッセージのみを含む場合、つまり、別の呼び出し要求メッセージがなく、別の呼び出し要求メッセージの物理セクタおよび呼び出し要求メッセージの物理セクタが連続するアドレスを有し、第1のファイル呼び出し要求メッセージは、一時的に処理されない場合もある。第1のファイルディスパッチキューに含まれる少なくとも2つの第1のファイル呼び出し要求メッセージの物理セクタのアドレスが連続する場合、次いで、結合処理が行われる。本発明はこれに限定されるものではない。
本発明の本実施形態では、ファイルシステムの処理モジュール230が、第1のファイルディスパッチキューに含まれるKの第1のファイル呼び出し要求メッセージに対して結合または削除の処理を行った後、呼び出しモジュール240は、第1のファイルディスパッチキューの取得した呼び出し要求メッセージに従って、対応する第1のファイルにアクセスし得る。具体的には、各第1のファイル呼び出し要求メッセージがアクセスパス情報を含み得ることから、第1のファイルディスパッチキューについて結合を行った後、各第1のファイルディスパッチキューの呼び出し要求メッセージは、対応するアクセスパス情報を依然として有する。したがって、アクセス処理は、アクセスパス情報に従って、第1のファイルに対して対応して行われ得る。場合により、第1のファイルディスパッチキューの呼び出し要求メッセージは、記憶媒体要求キュー(mmc_request)に送信され得、mmc_requestは、第1のファイルディスパッチキューの呼び出し要求メッセージを処理し、デバイスコントローラを設定し、デバイスコントローラは、データを生成し、送信するために主に使用される。データ送信が完了した後、現在の呼び出し要求メッセージが対応するディスパッチキューから削除され得、次の要求に対応するデータ送信が開始される。
したがって、本発明の本実施形態における、ファイルにアクセスするための装置は、サイズの小さいファイルの呼び出し要求メッセージを判定し、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューを割り当て、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができ、サイズの小さいファイルを呼び出す回数が減る。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。
場合により、一実施形態では、本発明の本実施形態におけるファイルにアクセスするための装置200は、
ファイルを記憶する物理セクタ上でNの第1のファイル記憶空間グループを判定するように構成された第2の判定モジュール250であって、Nの第1のファイル記憶空間グループは、第1のファイルを記憶するために使用される、第2の判定モジュール250
をさらに備える。
本発明の本実施形態では、具体的には、ファイルシステムは、サイズの小さいファイルのアクセスのための独立物理セクタを設定し得る。物理セクタは、複数の独立領域を含み、領域は、複数の第1のファイル記憶空間グループ(MF Group)を含み、領域のサイズは、タイムスロットアプリケーションに従って調整および最適化され得、領域に含まれるMF Groupの数は、要件に従って動的に調整され得る。場合により、複数のMF Groupは、サイズの小さいファイルを独立に記憶し、各MF Groupは、複数のデータベース(date block)を含み得、各date blockは、1つ以上のサイズの小さいファイルを記憶し得る。本発明はこれに限定されるものではない。
具体的には、第2の判定モジュール250は、システムがアイドル状態の時にディスクデフラグメンタプログラム(defragement daemon)を使用して、複数のMF Groupを結合および/または削除し得る。例えば、複数のMF Groupが結合されて、複数の第1のファイルが連続する物理セクタ上に記憶されることを確保し、その結果、eMMCの特徴がより良好に使用され得る。システムの稼働中、ファイルの削除動作のため、ファイルを記憶するために使用される一部のMF Groupにおける空間が余剰となる、つまり、MF Groupにおける大半の空間が削除予定リストに加えられる。これらのMF Groupは結合されて、少なくとも2つのMF Groupにおけるデータを結合し、1つ以上のMF Groupにおけるデータを記憶し得る。したがって、より多くの空間が解放され、空間利用が改善される。
場合により、一実施形態では、削除処理はまた、MF Groupに対して行われ得る。例えば、MF Groupに存在する一部のサイズの小さいファイルがサイズの大きいファイルに転じた場合、例えば、サイズの大きいファイルのサイズが4Mの範囲を超えた場合、ファイルのサイズが大きくなったMF Groupが見つけられ、識別され得る。次いで、削除予定リストを走査する際に、defragement daemonは、MF Groupに含まれる第1のファイルはすべて削除されたリストに加えられたことを見つけ、その結果、MF Groupにファイルが存在しない場合、つまり、MF Groupが空である場合に削除が行われ、MF Groupが削除されて、リソースを解放する。
場合により、一実施形態では、追加処理はまた、MF Groupに対して行われ得る。例えば、サイズの小さいファイルが新しく加えられる場合、例えば、サイズの大きいファイルがサイズの小さいファイルに転じた場合、defragement daemonは、余剰空間を有するMF Groupについて、複数のMF Groupをまず探索する。サイズの小さいファイルをMF Groupに記憶可能にし得る利用可能な記憶空間が存在する場合、新しく加えられたサイズの小さいファイルは、MF Groupに記憶される。余剰空間を有するMF Groupがない場合、defragement daemonは、新しいMF Groupを加え、新しいMF Groupは、サイズの小さいファイルと別の新しく加えられたサイズの小さいファイルとを記憶するために使用される。
本発明の本実施形態では、ファイルシステムの呼び出しモジュール240は、少なくとも1つの第1のファイルディスパッチキューの呼び出し要求メッセージに従って、アクセスおよび呼び出される必要がある第1のファイルのためのファイルを記憶するMF Groupを探索し得る。
本発明の本実施形態に係る、ファイルにアクセスするための装置200は、本発明の本実施形態における方法100を対応して行うことができ、ファイルにアクセスするための装置200のモジュールの上記および他の動作および/または機能は、図1および図2の方法の対応する手順を実装するために別々に使用されることを解されたい。簡潔にするために、ここでは細部を繰り返し説明しない。
したがって、本発明の本実施形態における、ファイルにアクセスするための装置は、サイズの小さいファイルの呼び出し要求メッセージを判定し、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューを割り当て、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができる。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。加えて、対応するダイナミック記憶領域は、サイズの小さいファイルにさらに割り当てられ得、異なるサイズの小さいファイルが記憶するために集められる。このようにして、記憶空間の無駄使いを減らすことができ、空間利用が改善される。
図5に示すように、本発明の一実施形態は、プロセッサ310と、メモリ320と、バスシステム330と、を備える、記憶システム300をさらに提供する。プロセッサ310とメモリ320とはバスシステム330を使用して互いに接続され、メモリ320は、命令を記憶するように構成され、プロセッサ310は、メモリ320に記憶された命令を実行するように構成される。メモリ320は、プログラムコードを含み、プロセッサ310は、メモリ320に記憶されたプログラムコードを呼び出して、以下の動作、すなわち、Lの第1のファイル呼び出し要求メッセージを判定するステップであって、Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、物理セクタ情報は、第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である、ステップと、物理セクタ情報に従って、Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージを別々に加えるステップであって、Mは、正の整数である、ステップと、Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得する、ステップであって、各第1のファイルディスパッチキューの呼び出し要求メッセージは、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である、ステップと、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスするステップと、を行い得る。
したがって、本発明の本実施形態における、記憶システムは、サイズの小さいファイルの呼び出し要求メッセージを判定し、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューを割り当て、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができる。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。加えて、対応するダイナミック記憶領域は、サイズの小さいファイルにさらに割り当てられ得、異なるサイズの小さいファイルが記憶するために集められる。このようにして、記憶空間の無駄使いを減らすことができ、空間利用が改善される。
本発明の本実施形態では、プロセッサ310は、中央演算装置(Central Processing Unit、略称「CPU」)であってもよいし、プロセッサ310は、さらなる別の汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または別のプログラマブルロジックデバイス、別個のゲートもしくはトランジスタロジックデバイス、別個のハードウェアコンポーネントなどであってもよいことを理解されたい。汎用プロセッサは、マイクロプロセッサであってもよいし、プロセッサは、任意の従来のプロセッサなどであってもよい。
メモリ320は、読み出し専用メモリおよびランダムアクセスメモリを含み得、プロセッサ310に命令およびデータを提供し得る。メモリ320の一部は、不揮発性ランダムアクセスメモリをさらに含み得る。例えば、メモリ320は、装置タイプ情報をさらに記憶し得る。
データバスに加えて、バスシステム330は、パワーバス、制御用バス、およびステータス信号用バスなどを含み得る。しかしながら、説明を明確にするために、図面では、様々なタイプのバスがすべてバスシステム330として記されている。
実装プロセスにおいて、上記の方法のステップは、プロセッサ310のハードウェアの集積ロジック回路またはソフトウェアの形態の命令を使用して行われ得る。本発明の各実施形態に関連して開示された方法のステップは、ハードウェアプロセッサによって直接実行され、完了するのであってもよいし、プロセッサのハードウェアとソフトウェアモジュールとの組み合わせを使用して実行され、完了するのであってもよい。ソフトウェアモジュールは、当技術分野において成熟した記憶媒体、例えば、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、エレクトリカリー・イレーサブル・プログラマブル・メモリ、またはレジスタに配置され得る。記憶媒体は、メモリ320に配置され、プロセッサ310は、メモリ320の情報を読み出し、プロセッサ310のハードウェアと併せて、上記の方法のステップを完了する。繰り返しを避けるため、ここでは細部を繰り返し説明しない。
場合により、一実施形態では、プロセッサ310は、メモリ320に記憶されたプログラムコードを呼び出して、以下の動作、すなわち、ファイルを記憶する物理セクタ上でNの第1のファイル記憶空間グループを判定するステップであって、Nの第1のファイル記憶空間グループは、第1のファイルを記憶するために使用され、Nは、正の整数であり、Nの第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、またはNの第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、少なくとも1つの第1のファイル記憶空間グループを解放する、またはNの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、Nの第1のファイル記憶空間グループの数を増やし、Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの呼び出し要求メッセージに従って、Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルにアクセスする、ステップを行い得る。
場合により、一実施形態では、プロセッサ310は、メモリ320に記憶されたプログラムコードを呼び出して、以下の動作、すなわち、物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加えるステップであって、少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの物理セクタのアドレスは、連続である、ステップを行い得る。
場合により、一実施形態では、各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、アクセスパス情報は、物理セクタの、各第1のファイル呼び出しメッセージに対応する第1のファイルにアクセスするために使用される、パスを示すために使用される。
場合により、一実施形態では、プロセッサ310は、メモリ320に記憶されたプログラムコードを呼び出して、以下の動作、すなわち、Lの第1のファイル情報ノードを判定するステップであって、Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を記憶するために使用される、ステップと、各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルのアクセスパス情報を判定するステップと、を行い得る。
場合により、一実施形態では、プロセッサ310は、メモリ320に記憶されたプログラムコードを呼び出して、以下の動作、すなわち、Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定するステップと、第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在しない場合、情報ノード連結リストに、第i番目の第1のファイル情報ノードを生成し、第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、ステップ、または第i番目の第1のファイル情報ノードが情報ノード連結リストに存在する場合、第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定するステップと、を行い得る。
したがって、本発明の本実施形態における、記憶システムは、サイズの小さいファイルの呼び出し要求メッセージを判定し、サイズの小さいファイルの呼び出し要求メッセージに、対応する第1のファイルディスパッチキューを割り当て、その結果、複数のサイズの小さいファイルの呼び出し要求メッセージに対して結合および/または削除の処理を行うことができる。このようにして、サイズの小さいファイルを呼び出す要求が増えるためにI/Oの回数が増え、過度のメモリリソースが占有されることを避けることができ、システムを呼び出す回数を減らすことができ、システムを呼び出す回数が減り、I/O要求のスループットが向上し、それによって、ファイルシステムの全体的なI/O効率が上がる。加えて、対応するダイナミック記憶領域は、サイズの小さいファイルにさらに割り当てられ得、異なるサイズの小さいファイルが記憶するために集められる。このようにして、記憶空間の無駄使いを減らすことができ、空間利用が改善される。
当業者であれば、本明細書で開示した各実施形態において説明した例と組み合わせて、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアとの組み合わせによって、ユニットおよびアルゴリズムステップを実施してよいことを承知しているはずである。機能をハードウェアで行うかソフトウェアで行うかは、技術的解決策の具体的なアプリケーションと設計制約条件とによって決まる。当業者は、異なる方法を使用して、それぞれの具体的なアプリケーションに対して、説明された機能を実施できるが、こうした実施が、本発明の範囲を超えるものであるとみなすべきではない。
当業者であれば、説明を簡便にする目的で、上記のシステム、装置およびユニットの詳細な動作プロセスについては、上記方法実施形態における対応するプロセスを参照できることを明確に理解するはずであり、細部を説明しない。
本出願において提供されるいくつかの実施形態においては、開示のシステム、装置、および方法を他のやり方で実装することもできることを理解されたい。例えば、説明された装置実施形態は単なる例にすぎない。例えば、ユニットの分割は単なる論理的機能分割に過ぎず、実際の実装に際しては他の分割も可能である。例えば、複数のユニットもしくはコンポーネントが組み合わされ、または統合されて別のシステムになる場合もあり、いくつかの特徴が無視されたり実行されなかったりする場合もある。加えて、表示された、または論じられた相互結合または直接結合または通信接続を、いくつかのインターフェースを使用して実現することもできる。装置間またはユニット間の間接結合または通信接続は、電子的形態、機械的形態、または他の形態として実現することができる。
別々の部品として記述されたユニットは物理的に分離している場合もそうでない場合もあり、ユニットとして表示された部品は、物理的ユニットである場合もそうでない場合もあり、一箇所に位置する場合もあり、複数のネットワークユニット上に分散される場合もある。ユニットの一部または全部を、各実施形態の解決策の目的を達成するための実際の必要に従って選択することもできる。
加えて、本発明の実施形態における機能ユニットが1つの処理ユニットへ統合される場合もあり、ユニットのそれぞれが物理的に独立して存在する場合もあり、または2つ以上のユニットが1つのユニットへ統合される場合もある。
機能がソフトウェア機能ユニットの形態で実現され、独立した製品として販売される場合、機能は、コンピュータ可読記憶媒体に記憶することができる。そうした理解に基づき、本発明の技術解決策を本質的に、または従来技術に寄与する部分を、または技術的な解決策の一部を、ソフトウェア製品の形態で実現することができる。ソフトウェア製品は記憶媒体に記憶されており、(パーソナルコンピュータ、サーバ、もしくはネットワーク機器などとすることができる)コンピュータデバイスに、本発明の各実施形態で記述されている方法のステップのすべてまたは一部を実行するよう命令するためのいくつかの命令を含む。上記記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読取り専用メモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、光ディスクといった、プログラムコードを記憶することができる任意の媒体を含む。
上記の説明は、単に本発明の具体的な実施方式に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明において開示された技術的範囲内にあり、当業者によって容易に想到される、あらゆる変形や置き換えは、本発明の保護範囲内に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に属する。
200 装置
210 第1の判定モジュール
220 割り当てモジュール
230 処理モジュール
240 呼び出しモジュール
250 第2の判定モジュール
300 記憶システム
310 プロセッサ
320 メモリ
330 バスシステム

Claims (17)

  1. ファイルにアクセスするための方法であって、
    Lの第1のファイル呼び出し要求メッセージを判定するステップであって、前記Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、前記第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、前記物理セクタ情報は、前記第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である、ステップと、
    前記物理セクタ情報に従って、前記Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、前記Lの第1のファイル呼び出し要求メッセージを別々に加えるステップであって、Mは、正の整数である、ステップと、
    前記Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得する、ステップであって、各第1のファイルディスパッチキューの前記呼び出し要求メッセージは、前記Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である、ステップと、
    各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスするステップと、
    を含み、
    前記第1のファイルを記憶する前記物理セクタ上でNの第1のファイル記憶空間グループを判定するステップであって、前記Nの第1のファイル記憶空間グループは、前記第1のファイルを記憶するために使用され、Nは、正の整数であり、
    前記第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、前記Nの少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、または
    前記第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、前記Nの少なくとも1つの第1のファイル記憶空間グループを解放する、または
    前記Nの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、前記Nの第1のファイル記憶空間グループの数を増やす、ステップ
    をさらに含み、
    各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスする、前記ステップは、
    前記Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスするステップ
    を含む、ファイルにアクセスするための方法。
  2. 前記物理セクタ情報に従って、前記Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、前記Lの第1のファイル呼び出し要求メッセージを別々に加える、前記ステップは、
    前記物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、前記Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加えるステップであって、前記少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する第1のファイルの物理セクタのアドレスは、連続である、ステップ
    を含む、請求項1に記載の方法。
  3. 各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、前記アクセスパス情報は、前記物理セクタの、各第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスするために使用される、パスを示すために使用される、請求項1または2に記載の方法。
  4. Lの第1のファイル呼び出し要求メッセージを判定する、前記ステップは、
    Lの第1のファイル情報ノードを判定するステップであって、前記Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、前記第1のファイルの前記アクセスパス情報を記憶するために使用される、ステップと、
    各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、前記第1のファイルの前記アクセスパス情報を判定するステップと、
    を含む、請求項3に記載の方法。
  5. Lの第1のファイル情報ノードを判定する、前記ステップは、
    前記Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定するステップと、
    前記第i番目の第1のファイル情報ノードが、前記情報ノード連結リストに存在しない場合、前記情報ノード連結リストに、前記第i番目の第1のファイル情報ノードを生成し、前記第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、ステップ、または
    前記第i番目の第1のファイル情報ノードが前記情報ノード連結リストに存在する場合、前記第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定するステップと、
    を含む、請求項4に記載の方法。
  6. ファイルにアクセスするための装置であって、
    Lの第1のファイル呼び出し要求メッセージを判定するように構成された第1の判定モジュールであって、前記Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、前記第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、前記物理セクタ情報は、前記第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数である、第1の判定モジュールと、
    前記物理セクタ情報に従って、前記Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、前記第1の判定モジュールが判定した前記Lの第1のファイル呼び出し要求メッセージを別々に加えるように構成された割り当てモジュールであって、Mは、正の整数である、割り当てモジュールと、
    前記割り当てモジュールが割り当てた前記Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得する、処理モジュールであって、各第1のファイルディスパッチキューの前記呼び出し要求メッセージは、前記Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数である、処理モジュールと、
    前記処理モジュールが取得した、各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスするように構成された呼び出しモジュールと、
    を備え
    前記装置は、
    前記ファイルを記憶する前記物理セクタ上でNの第1のファイル記憶空間グループを判定するように構成された第2の判定モジュールであって、前記Nの第1のファイル記憶空間グループは、前記第1のファイルを記憶するために使用され、
    前記第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、前記Nの少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、または
    前記第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、前記Nの少なくとも1つの第1のファイル記憶空間グループを解放する、または
    前記Nの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、前記Nの第1のファイル記憶空間グループの数を増やす、第2の判定モジュール
    をさらに備え、
    前記呼び出しモジュールは、
    前記Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスする
    ようにさらに構成される、ファイルにアクセスするための装置。
  7. 前記処理モジュールは、
    前記物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、前記Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加える
    ように特に構成され、前記少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの物理セクタのアドレスは、連続である、
    請求項6に記載の装置。
  8. 各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、前記アクセスパス情報は、前記物理セクタの、各第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスするために使用される、パスを示すために使用される、請求項6または7に記載の装置。
  9. 前記判定モジュールは、
    Lの第1のファイル情報ノードを判定し、前記Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、前記第1のファイルの前記アクセスパス情報を記憶するために使用され、
    各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、前記第1のファイルの前記アクセスパス情報を判定する
    ように特に構成される、請求項8に記載の装置。
  10. 前記判定モジュールは、
    前記Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定し、
    前記第i番目の第1のファイル情報ノードが、前記情報ノード連結リストに存在しない場合、前記情報ノード連結リストに、前記第i番目の第1のファイル情報ノードを生成し、前記第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、または
    前記第i番目の第1のファイル情報ノードが前記情報ノード連結リストに存在する場合、前記第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定する
    ように特に構成される、請求項9に記載の装置。
  11. 記憶システムであって、
    ファイルおよびプログラムを記憶するように構成されたメモリと、
    前記プログラムを実行するように構成されたプロセッサと、
    を備えて、
    Lの第1のファイル呼び出し要求メッセージを判定し、前記Lの第1のファイル呼び出し要求メッセージのそれぞれは、第1のファイルを呼び出すように要求するために使用され、前記第1のファイルのサイズは、閾値未満であり、各第1のファイル呼び出し要求メッセージは、物理セクタ情報を含み、前記物理セクタ情報は、前記第1のファイルを記憶する物理セクタのアドレスを含み、Lは、1よりも大きい整数であり、
    前記物理セクタ情報に従って、前記Lの第1のファイル呼び出し要求メッセージに対応するMの第1のファイルディスパッチキューに、前記Lの第1のファイル呼び出し要求メッセージを別々に加え、Mは、正の整数であり、
    前記Mの第1のファイルディスパッチキューのそれぞれに含まれる、Kの第1のファイル呼び出し要求メッセージを処理して、各第1のファイルディスパッチキューの呼び出し要求メッセージを取得し、各第1のファイルディスパッチキューの前記呼び出し要求メッセージは、前記Kの第1のファイル呼び出し要求メッセージに対応する第1のファイルを呼び出すように要求するために使用され、Kは、正の整数であり、
    各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスし、
    前記プロセッサは、
    前記ファイルを記憶する前記物理セクタ上でNの第1のファイル記憶空間グループを判定し、前記Nの第1のファイル記憶空間グループは、前記第1のファイルを記憶するために使用され、
    前記第1のファイル記憶空間グループのうちの少なくとも2つが、利用可能な記憶空間を有する場合、前記Nの少なくとも2つの第1のファイル記憶空間グループに含まれる第1のファイルを結合する、または
    前記第1のファイル記憶空間グループのうちの少なくとも1つがファイルを記憶していない場合、前記Nの少なくとも1つの第1のファイル記憶空間グループを解放する、または
    前記Nの第1のファイル記憶空間グループにはなんら利用可能な記憶空間がない場合、前記Nの第1のファイル記憶空間グループの数を増やし、
    前記Nの第1のファイル記憶空間グループから、各第1のファイルディスパッチキューの前記呼び出し要求メッセージに従って、前記Kの第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスする
    ようにさらに構成される、記憶システム。
  12. 前記プロセッサは、
    前記物理セクタ情報に従って、同じ第1のファイルディスパッチキューに、前記Lの第1のファイル呼び出し要求メッセージのうちの少なくとも2つを加える
    ように特に構成され、前記少なくとも2つの第1のファイル呼び出し要求メッセージが呼び出すように要求する、第1のファイルの物理セクタのアドレスは、連続である、
    請求項11に記載の記憶システム。
  13. 各第1のファイル呼び出し要求メッセージは、アクセスパス情報をさらに含み、前記アクセスパス情報は、前記物理セクタの、各第1のファイル呼び出し要求メッセージに対応する前記第1のファイルにアクセスするために使用される、パスを示すために使用される、請求項11または12に記載の記憶システム。
  14. 前記プロセッサは、
    Lの第1のファイル情報ノードを判定し、前記Lの第1のファイル情報ノードのそれぞれは、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、前記第1のファイルの前記アクセスパス情報を記憶するために使用され、
    各第1のファイル情報ノードに従って、各第1のファイル呼び出し要求メッセージが呼び出すように要求する、前記第1のファイルの前記アクセスパス情報を判定する
    ように特に構成される、請求項13に記載の記憶システム。
  15. 前記プロセッサは、
    前記Lの第1のファイル情報ノードの第i番目の第1のファイル情報ノードが、情報ノード連結リストに存在するかどうかを判定し、
    前記第i番目の第1のファイル情報ノードが、前記情報ノード連結リストに存在しない場合、前記情報ノード連結リストに、前記第i番目の第1のファイル情報ノードを生成し、前記第i番目の第1のファイル情報ノードに、第i番目の第1のファイルのアクセスパス情報を記憶する、または
    前記第i番目の第1のファイル情報ノードが前記情報ノード連結リストに存在する場合、前記第i番目の第1のファイル情報ノードに従って、第i番目の第1のファイルのアクセスパス情報を判定する
    ように特に構成される、請求項14に記載の記憶システム。
  16. 請求項1からのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムの記録されたコンピュータ可読記憶媒体。
  17. 請求項1からのいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
JP2017561340A 2015-05-27 2015-05-27 ファイルにアクセスするための方法および装置、ならびに記憶システム Active JP6584529B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/079894 WO2016187831A1 (zh) 2015-05-27 2015-05-27 存取文件的方法、装置和存储系统

Publications (2)

Publication Number Publication Date
JP2018515859A JP2018515859A (ja) 2018-06-14
JP6584529B2 true JP6584529B2 (ja) 2019-10-02

Family

ID=57393766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561340A Active JP6584529B2 (ja) 2015-05-27 2015-05-27 ファイルにアクセスするための方法および装置、ならびに記憶システム

Country Status (6)

Country Link
US (1) US10846265B2 (ja)
EP (1) EP3293625B1 (ja)
JP (1) JP6584529B2 (ja)
KR (1) KR102063281B1 (ja)
CN (1) CN106537321B (ja)
WO (1) WO2016187831A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107509085B (zh) * 2017-08-24 2019-12-24 山东浪潮商用系统有限公司 一种流媒体文件的存储方法及装置
CN112148683A (zh) * 2019-06-26 2020-12-29 中国移动通信集团江西有限公司 文件采集方法和装置
CN111176566B (zh) * 2019-12-25 2023-09-19 山东方寸微电子科技有限公司 一种支持queue命令的eMMC读写控制方法及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8829919D0 (en) * 1988-12-22 1989-02-15 Int Computer Limited File system
JP3851723B2 (ja) * 1998-04-30 2006-11-29 株式会社東芝 ディスク記憶装置及び同装置におけるセグメントキャッシュ制御方法
US6931501B1 (en) * 2001-10-26 2005-08-16 Adaptec, Inc. Method and apparatus for merging contiguous like commands
US7996903B2 (en) * 2006-07-07 2011-08-09 Webroot Software, Inc. Method and system for detecting and removing hidden pestware files
JP4331220B2 (ja) * 2007-03-07 2009-09-16 株式会社東芝 未使用物理領域自律管理機能を持つストレージ装置
JP5247192B2 (ja) * 2008-03-14 2013-07-24 三菱電機株式会社 周期更新データ管理システム
EP2422275B1 (en) * 2009-04-24 2018-04-11 Level 3 Communications, LLC Media resource storage and management
US20110035557A1 (en) * 2009-08-05 2011-02-10 Nokia Corporation Fragmentation reduction using virtual sectors for static data
US8578126B1 (en) * 2009-10-29 2013-11-05 Netapp, Inc. Mapping of logical start addresses to physical start addresses in a system having misalignment between logical and physical data blocks
US8768980B2 (en) 2009-11-02 2014-07-01 Stg Interactive S.A. Process for optimizing file storage systems
US9009388B2 (en) * 2010-11-30 2015-04-14 Red Hat, Inc. Performing discard commands on RAID storage devices
US20150143021A1 (en) * 2012-12-26 2015-05-21 Unisys Corporation Equalizing wear on storage devices through file system controls
US20140351485A1 (en) * 2013-05-23 2014-11-27 Spansion Llc Differential File System for Computer Memory
JP6095539B2 (ja) * 2013-09-20 2017-03-15 株式会社日立製作所 I/o処理制御装置及びi/o処理制御方法
CN104571931B (zh) 2013-10-10 2017-10-03 中国科学院声学研究所 基于系统资源的i/o请求合并调度系统与方法
CN104866428B (zh) * 2014-02-21 2018-08-31 联想(北京)有限公司 数据存取方法和数据存取装置
CN103914522A (zh) 2014-03-20 2014-07-09 电子科技大学 一种应用于云存储重复数据删除的数据块合并方法
CN104536959B (zh) 2014-10-16 2018-03-06 南京邮电大学 一种Hadoop存取海量小文件的优化方法
CN104571952B (zh) 2014-12-25 2017-08-01 华中科技大学 一种分开处理数据与元数据读写请求的方法
WO2017087655A1 (en) * 2015-11-17 2017-05-26 University Of Houston System Biorenewable blends of polylactide and acrylated epoxidized soybean oil compatibilized by a polylactide star polymer

Also Published As

Publication number Publication date
EP3293625A1 (en) 2018-03-14
CN106537321A (zh) 2017-03-22
JP2018515859A (ja) 2018-06-14
US10846265B2 (en) 2020-11-24
CN106537321B (zh) 2020-04-28
KR20180011255A (ko) 2018-01-31
US20180129672A1 (en) 2018-05-10
EP3293625A4 (en) 2018-05-23
WO2016187831A1 (zh) 2016-12-01
KR102063281B1 (ko) 2020-01-07
EP3293625B1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
CN110209490B (zh) 一种内存管理方法及相关设备
US10552936B2 (en) Solid state storage local image processing system and method
CN104462225B (zh) 一种数据读取的方法、装置及系统
JP2017021805A (ja) 不揮発性メモリ装置内でデータ属性基盤データ配置を利用可能にするインターフェイス提供方法及びコンピュータ装置
US9336153B2 (en) Computer system, cache management method, and computer
JP7467593B2 (ja) リソース割振り方法、記憶デバイス、および記憶システム
US9304946B2 (en) Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
JP6584529B2 (ja) ファイルにアクセスするための方法および装置、ならびに記憶システム
US8478755B2 (en) Sorting large data sets
US20240241644A1 (en) Storage device and storage system
US9772776B2 (en) Per-memory group swap device
CN113485643B (zh) 用于数据存取的方法及数据写入的控制器
CN110162395B (zh) 一种内存分配的方法及装置
US20150106884A1 (en) Memcached multi-tenancy offload
CN113076180B (zh) 上行数据通路的构建方法及数据处理系统
CN113076189B (zh) 具有多数据通路的数据处理系统及用多数据通路构建虚拟电子设备
KR20180133730A (ko) 스토리지 시스템 및 이의 동작 방법
CN113778688A (zh) 内存管理系统、内存管理方法、内存管理装置
CN113535597A (zh) 内存管理方法、内存管理单元和物联网设备
JP7337228B2 (ja) メモリシステムおよび制御方法
EP3586231A1 (en) Method and defragmentation module for defragmenting resources
CN110568991B (zh) 降低锁引起的io命令冲突的方法与存储设备
CN116955272A (zh) 文件存储方法和装置
CN118034932A (zh) 一种内存管理方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190903

R150 Certificate of patent or registration of utility model

Ref document number: 6584529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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