JP2021144731A - ファイルディレクトリのトラバーサル方法、装置、設備、媒体、及びプログラム - Google Patents

ファイルディレクトリのトラバーサル方法、装置、設備、媒体、及びプログラム Download PDF

Info

Publication number
JP2021144731A
JP2021144731A JP2021089692A JP2021089692A JP2021144731A JP 2021144731 A JP2021144731 A JP 2021144731A JP 2021089692 A JP2021089692 A JP 2021089692A JP 2021089692 A JP2021089692 A JP 2021089692A JP 2021144731 A JP2021144731 A JP 2021144731A
Authority
JP
Japan
Prior art keywords
directory
terminal
traversal
entry
call
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
JP2021089692A
Other languages
English (en)
Other versions
JP7210642B2 (ja
Inventor
チェン,ペンフェイ
Pengfei Zheng
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021144731A publication Critical patent/JP2021144731A/ja
Application granted granted Critical
Publication of JP7210642B2 publication Critical patent/JP7210642B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • 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/172Caching, prefetching or hoarding of files
    • 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
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイルディレクトリのトラバーサル方法、装置、設備、媒体及びプログラムを提供する。【解決手段】方法は、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信することと、現在ディレクトリトラバーサル要求を解析することによって、ターゲットディレクトリにおいて端末を一意的に表すための端末のディレクトリ呼び出し識別子を決定することと、現在ディレクトリトラバーサル要求に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求しているディレクトリエントリを決定することと、ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを端末に送信することと、を含む。【効果】同じディレクトリに対する異なる端末のディレクトリトラバーサル要求を区別し、ファイルシステムにおけるディレクトリトラバーサル性能を最適化する。【選択図】図1

Description

本開示は、コンピュータ技術に関し、具体的にはファイルシステム処理技術及びクラウドコンピューティング分野に関し、特にファイルディレクトリのトラバーサル方法、装置、設備、媒体、及びプログラムに関する。
ネットワークファイルシステム(Network File System、NFS)プロトコルでは、ディレクトリトラバーサル操作は、端末とサーバの間で協調して実施される必要がある。スタンドアロンファイルシステムでも分散ファイルシステムでも、ディレクトリトラバーサル操作は高頻度で重要な操作であるため、ディレクトリトラバーサル性能はファイルシステムでは無視できない懸念事項である。
現在、一般的なディレクトリトラバーサルの実現には、スナップショット技術に基づくディレクトリトラバーサル、ディレクトリオフセットに基づくディレクトリトラバーサル、ファイルシステムプロトコルで要求されるcookie値とディレクトリエントリ名との間のマッピング関係に基づくディレクトリトラバーサルなどの技術案を含むが、採用されている技術的手段の制限により、これらの技術案によって達成されるディレクトリトラバーサル性能は理想的ではない。
本開示は、ファイルシステムにおけるディレクトリトラバーサル性能の最適化を実現するファイルディレクトリのトラバーサル方法、装置、設備、及び媒体を提供する。
本開示の一態様では、ファイルディレクトリのトラバーサル方法を提供し、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信することと、前記現在ディレクトリトラバーサル要求を解析することによって、前記端末のディレクトリ呼び出し識別子を決定し、ここで、前記ディレクトリ呼び出し識別子は、前記ターゲットディレクトリにおいて前記端末を一意的に表すために用いられることと、前記現在ディレクトリトラバーサル要求に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定することと、前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信することと、を含む。
本開示の別の態様では、ファイルディレクトリのトラバーサル装置を提供し、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信するために用いられる現在要求受信モジュールと、ディレクトリ呼び出し識別子決定モジュールであって、前記現在ディレクトリトラバーサル要求を解析することによって、前記端末のディレクトリ呼び出し識別子を決定するために用いられ、ここで、前記ディレクトリ呼び出し識別子は、前記ターゲットディレクトリにおいて前記端末を一意的に表すために用いられるディレクトリ呼び出し識別子決定モジュールと、前記現在ディレクトリトラバーサル要求に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定するために用いられるディレクトリエントリ決定モジュールと、前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信するために用いられるディレクトリエントリ送信モジュールと、を含む。
本開示の別の態様では、電子設備を提供し、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに通信接続されるメモリと、を備え、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサに本開示の実施形態のいずれかに記載のファイルディレクトリのトラバーサル方法を実行させる。
本開示の別の態様では、コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体を提供し、前記コンピュータ命令は、前記コンピュータに本開示の実施形態のいずれかに記載のファイルディレクトリのトラバーサル方法を実行させる。
本開示によれば、まず端末の現在ディレクトリトラバーサル要求を受信して端末のディレクトリ呼び出し識別子を決定することによって、同じディレクトリにおいて異なる端末に対するディレクトリトラバーサル要求の区別が実現され、次に端末のディレクトリ呼び出し識別子に基づいてその現在要求を満たすディレクトリエントリを端末に送信し、異なる端末の呼び出しディレクトリエントリの区別維持及び管理が実現され、さらにファイルシステムにおけるディレクトリトラバーサル性能を最適化するという効果が実現される。
なお、この部分に記載されている内容は、本開示の実施形態の肝心な又は重要な特徴を特定することを意図しておらず、本開示の範囲を限定するものでもない。本開示の他の特徴は、以下の説明を通じて容易に理解される。
図面は、本技術案をよりよく理解するために使用され、本開示を限定するものではない。
本開示の実施形態に係るファイルディレクトリのトラバーサル方法のフローチャートである。 本開示の実施形態に係る別のファイルディレクトリのトラバーサル方法のフローチャートである。 本開示の実施形態に係る別のファイルディレクトリのトラバーサル方法のフローチャートである。 本開示の実施形態に係るディレクトリエントリ識別子に基づいて端末が呼び出すように要求しているディレクトリエントリを決定する概略図である。 本開示の実施形態に係る別のファイルディレクトリのトラバーサル方法のフローチャートである。 本開示の実施形態に係るファイルディレクトリのトラバーサル装置の構造概略図である。 本開示の実施形態に係る電子設備のブロック図である。
以下、図面を組み合わせて本開示の例示的な実施形態を説明し、理解を容易にするためにその中には本開示の実施形態の様々な詳細事項が含まれており、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本開示の範囲及び精神から逸脱することなく、ここで説明される実施形態に対して様々な変更と修正を行うことができる。同様に、わかりやすくかつ簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
ファイルシステム内の任意のディレクトリの下にあるディレクトリエントリは、通常順番に配列され、任意のディレクトリエントリについて、そのディレクトリエントリ名又は当該ディレクトリエントリを一意的に識別できるその他の特徴情報に基づいてソートした結果は安定しているべきであり、すなわち本開示の実施形態に係る方法の適用条件は、以下の少なくとも1つを含んでもよく、ディレクトリトラバーサルの過程中に、ディレクトリエントリの呼び出し正確性及びトラバーサル操作の成功した実行を保証できる。具体的には、技術案が適用される条件は以下のとおりである。
1)ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生しない場合、任意のディレクトリにおいて各ディレクトリエントリ間の相対的な順序は変更されない。
2)ディレクトリトラバーサルの過程中に、新しいディレクトリエントリの挿入や古いディレクトリエントリの削除など、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生した場合、変更操作を伴わないディレクトリ領域のディレクトリエントリ間の相対的な順序は変更されない。
図1は、本開示の実施形態に係るファイルディレクトリのトラバーサル方法のフローチャートである。本開示の実施形態は、ファイルシステムでは、端末のディレクトリトラバーサル要求をどのように処理するかの場合に適用可能である。さらに、本開示の実施形態は、スタンドアロンファイルシステムにおけるディレクトリトラバーサルの実現にも、分散ファイルシステムにおけるディレクトリトラバーサルの実現にも適用可能である。本開示の実施形態に係る方法は、ソフトウェア及び/又はハードウェアを用いて実現されてもよく、コンピューティング機能を備えた任意の電子設備、例えばネットワークファイルシステムをサポートするサーバなどに統合され得るファイルディレクトリのトラバーサル装置によって実行され得る。分散ファイルシステムでは、本開示の実施形態の技術案を実行するための電子設備はノードであり得る。以下では、サーバを例にして、本開示の実施形態を例示的に説明するが、本開示の実施形態の技術案の実行主体を具体的に限定するものとして理解されるべきではない。
図1に示すように、本開示の実施形態に係るファイルディレクトリのトラバーサル方法は、以下を含み得る。
S101において、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信する。
S102において、現在ディレクトリトラバーサル要求を解析することによって、端末のディレクトリ呼び出し識別子を決定し、ここで、ディレクトリ呼び出し識別子は、ターゲットディレクトリにおいて端末を一意的に表すために用いられる。
具体的には、ユーザは、モバイル端末やタブレットコンピュータなどのファイルシステムアプリケーション(すなわちソフトウェアクライアント)がインストールされた端末を利用して、現在ディレクトリトラバーサル要求に基づいてターゲットディレクトリに対するディレクトリトラバーサル要求をトリガーし、かつサーバに送信し、サーバは、端末の現在ディレクトリトラバーサル要求を受信し、かつ現在ディレクトリトラバーサル要求を解析することによって、端末のディレクトリ呼び出し識別子を決定し、つまり端末が現在ディレクトリトラバーサル要求を送信するプロセスで、ディレクトリ呼び出し識別子を要求に持たせてサーバに送信し、これによりサーバが複数のディレクトリトラバーサル要求を受信した後、異なる端末を1つずつ区別することができる。
端末のディレクトリ呼び出し識別子は、ターゲットディレクトリにおいて端末を一意的に表すために用いられる。例えば、ファイルシステム内のターゲットディレクトリAをトラバーサルする必要がある端末が現在N個存在する場合、サーバは、ターゲットディレクトリAに対して、各端末に一意のディレクトリ呼び出し識別子を割り当て、端末の区別を実現する。ディレクトリ呼び出し識別子は、ファイルシステム内のターゲットディレクトリに対する端末の有効な呼び出し期間中に、サーバによって予め端末に送信されるものであり得る。ターゲットディレクトリは、ファイルシステム内の任意のディレクトリであり得る。
S103において、現在ディレクトリトラバーサル要求に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求しているディレクトリエントリを決定する。
端末から送信された現在ディレクトリトラバーサル要求には、端末のディレクトリ呼び出し識別子だけでなく、ディレクトリエントリに対応するターゲットディレクトリ、ディレクトリエントリ名、ディレクトリエントリ識別子及び呼び出すように要求しているディレクトリエントリの数など、現在呼び出すように要求しているディレクトリエントリ情報も含まれ得、したがって、サーバは、現在ディレクトリトラバーサル要求に基づいて、ファイルシステムのターゲットディレクトリから端末の現在呼び出し要求を満たすディレクトリエントリを決定することができる。
S104において、端末のディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを端末に送信する。
サーバは、各端末が呼び出すように要求しているディレクトリエントリを決定した後、ディレクトリ呼び出し識別子に基づいて各端末に区別してフィードバックできるので、異なる端末の呼び出しディレクトリエントリの区別維持及び管理を実現できる。各端末がターゲットディレクトリをトラバーサルした後、サーバは、サーバのローカル又はメモリに記憶されているディレクトリ呼び出し識別子と呼び出しディレクトリエントリとの間の呼び出しマッピング関係など、ディレクトリトラバーサルの過程中に当該端末に関するストレージデータをいつでも削除でき、サーバへの記憶容量の占有を解放し、同じディレクトリの下にあるディレクトリエントリに対する他の端末の呼び出しに影響しない。ここで、本開示の実施形態で言及されるトラバーサルの終了後に呼び出し関連データを削除できることは、端末がターゲットディレクトリに対するトラバーサル要求に基づいて、特定の有効期間内にターゲットディレクトリの下にあるディレクトリエントリに対する呼び出しプロセスが終了した後、サーバは関連呼び出しデータを削除でき、例えば、ターゲットディレクトリが比較的大きなディレクトリデータである場合、端末は当該ターゲットディレクトリに対するトラバーサルプロセスが終了するまでに、サーバにディレクトリトラバーサル要求を複数回送信する必要がある場合があり、呼び出しが終了した後、サーバは端末の関連呼び出しデータを削除し、ストレージリソースを解放することができる。
本開示の実施形態の技術案によれば、まず端末の現在ディレクトリトラバーサル要求を受信して端末のディレクトリ呼び出し識別子を決定することによって、同じディレクトリにおいて異なる端末に対するディレクトリトラバーサル要求の区別が実現され、次に端末のディレクトリ呼び出し識別子に基づいてその現在要求を満たすディレクトリエントリを端末に送信し、異なる端末の呼び出しディレクトリエントリの区別維持及び管理が実現され、同じディレクトリにおいて異なる端末に対するディレクトリエントリ呼び出しのきめ細かな管理が実現され、さらにファイルシステムにおけるディレクトリトラバーサル性能を最適化するという効果が実現され、従来の技術案では、サーバが同じディレクトリに対する端末のトラバーサル要求を区別しないので、異なる端末のディレクトリトラバーサル要求を処理するプロセスにおいて、維持する必要があるディレクトリ呼び出しデータの構造が複雑であり、サーバがサポートできるディレクトリトラバーサル性能が劣るという問題を解決する。
図2は、本開示の実施形態に係る別のファイルディレクトリのトラバーサル方法のフローチャートである。上述した技術案に基づいてさらに最適化及び拡張され、かつ上述した各選択可能な実施形態と組み合わせてもよい。図2に示すように、当該方法は、以下を含み得る。
S201において、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信する。
S202において、現在ディレクトリトラバーサル要求を解析することによって、端末のディレクトリ呼び出し識別子を決定し、ここで、ディレクトリ呼び出し識別子は、ターゲットディレクトリにおいて端末を一意的に表すために用いられる。
S203において、現在ディレクトリトラバーサル要求に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求しているディレクトリエントリを決定し、及び端末が現在呼び出すように要求しているディレクトリエントリのディレクトリエントリ識別子を決定し、ここで、ディレクトリエントリ識別子は、ターゲットディレクトリにおいてディレクトリエントリを一意的に表すために用いられる。
S204において、端末のディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子を端末に送信する。
本開示の実施形態では、各ディレクトリに対して、予め当該ディレクトリの下にある各ディレクトリエントリには、当該ディレクトリにおいてディレクトリエントリを一意的に特徴づけるために用いられるディレクトリエントリ識別子を割り当てる。したがって、端末が現在呼び出すように要求しているディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子の両方はいずれも決定されることができ、具体的には、ディレクトリエントリ及びディレクトリエントリ識別子の決定の前後順序は、本開示の実施形態では限定されない。ディレクトリエントリ識別子の決定は、各端末が現在呼び出すように要求しているディレクトリエントリ情報をサーバが記録、特定することを容易にすることができる。例示的には、ディレクトリトラバーサルのたびに、サーバは、各端末に対して、ディレクトリ呼び出し識別子、ディレクトリエントリ識別子及び端末が呼び出すように要求しているディレクトリエントリのマッピング関係を確立することができ、現在ターゲットディレクトリに対する端末の次のディレクトリトラバーサル要求を受信した後、端末に送信された履歴ディレクトリエントリ識別子に基づいて、端末が既に要求したディレクトリエントリを迅速に決定することができ、当該次のディレクトリトラバーサル要求に対応するディレクトリエントリを決定することもでき、そして端末に送信し、すなわちターゲットディレクトリの下にある各ディレクトリエントリにディレクトリエントリ識別子を割り当てることによって、端末が呼び出すように要求しているディレクトリエントリを効率的に決定するための基礎を築くことができ、サーバによってサポートされるディレクトリトラバーサル性能を最適化するのに役立つ。また、各端末に対して、ターゲットディレクトリの下にある各ディレクトリエントリにディレクトリエントリ識別子を割り当て、ディレクトリエントリ識別子に基づいて各ディレクトリエントリを管理及び特定し、端末を区別せずにディレクトリエントリ名に基づいてディレクトリエントリを管理及び特定する場合に比べて、サーバでは比較的少ない記憶容量を利用してディレクトリ呼び出しの関連データを維持することができる。
また、端末にとっては、ディレクトリエントリを受信すると同時に、ディレクトリエントリ識別子を受信することにより、端末が現在呼び出すように要求しているディレクトリエントリを容易に記録することにも役立つ。
さらに、本開示の実施形態は、同じディレクトリにおいて異なる端末のディレクトリトラバーサル要求を区別するので、ディレクトリエントリ呼び出しのきめ細かな管理が実現され、同じディレクトリに対する多数の端末のトラバーサル要求を区別して管理しない場合に比べて、複数の端末を同時に対象とする複雑な構造のディレクトリトラバーサルデータを維持する必要がなく、すなわちディレクトリエントリ呼び出しのきめ細かな管理により、ディレクトリトラバーサルの過程中にサーバが維持する必要があるデータの構造を簡略化し、比較的多くの記憶容量リソースを消費して複雑なディレクトリ呼び出しデータを記憶する必要がなく、同時に、異なる端末に対するディレクトリ呼び出しデータは完全な呼び出しが終わった後にいつでも削除することができ、サーバの記憶容量リソースへの占有を解放する。
本開示の実施形態の技術案によれば、まず端末の現在ディレクトリトラバーサル要求を受信して端末のディレクトリ呼び出し識別子を決定することによって、同じディレクトリにおいて異なる端末に対するディレクトリトラバーサル要求の区別が実現され、次に端末が現在呼び出すように要求しているディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子を決定し、かつ決定されたディレクトリエントリ及びディレクトリエントリ識別子を共に端末に送信し、異なる端末の呼び出しディレクトリエントリの区別維持及び管理が実現され、同じディレクトリにおいて異なる端末に対するディレクトリエントリ呼び出しのきめ細かな管理が実現され、さらにファイルシステムにおけるディレクトリトラバーサル性能を最適化するという効果が実現され、従来の技術案では、サーバが同じディレクトリに対する端末のトラバーサル要求を区別しないので、異なる端末のディレクトリトラバーサル要求を処理するプロセスにおいて、維持する必要があるディレクトリ呼び出しデータの構造が複雑であり、サーバがサポートできるディレクトリトラバーサル性能が劣るという問題を解決し、同時に、ディレクトリエントリ識別子の決定は、端末が呼び出すように要求しているディレクトリエントリをサーバが容易に特定することに役立つだけでなく、既に要求したディレクトリエントリを端末が容易に記録することにも役立つ。
上述した技術案に加えて、選択的に、端末のディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子を端末に送信することは、ディレクトリ呼び出し識別子及びディレクトリエントリのディレクトリエントリ識別子に基づいて、ディレクトリエントリの呼び出しマーク値を生成し、ここで、呼び出しマーク値のデータ形式はファイルシステムプロトコルに関連していることと、決定されたディレクトリエントリ及びディレクトリエントリの呼び出しマーク値を端末に送信することと、を含む。
すなわち、呼び出しマーク値は、異なるファイルシステムプロトコルに対して異なるデータ形式を使用することができ、本開示の実施形態は特に限定するものではなく、例えば現在一般的に使用されているネットワークファイルシステムプロトコル(Network File System、NFS)に対して、当該呼び出しマーク値はすなわちcookie値を参照することができる。呼び出しマーク値の生成数は端末が現在呼び出すように要求しているディレクトリエントリの数と同じであり、つまり決定されたディレクトリエントリ識別子の数と同じである。ディレクトリ呼び出し識別子及びディレクトリエントリ識別子はそれぞれプリセットビット数を占めるデータであってもよく、ディレクトリ呼び出し識別子及びディレクトリエントリ識別子の具体的なビット数の値については、適応的に設定することができる。
呼び出しマーク値がcookie値であることを例にして、2進カウントで、cookie値は64ビット(bit)のデータであってもよく、端末のディレクトリ呼び出し識別子をNビット(bit)データとして予め設定すれば、ディレクトリエントリのディレクトリエントリ識別子は(64−N)ビット(bit)のデータである。N値が決定されると、単一のディレクトリの下にあるディレクトリエントリの数は264−N個を超えてはならず、単一のサーバによってサポートされる同時ディレクトリトラバーサル要求パスの数は2N個を超えず、すなわち単一のサーバによってサポートされる同じディレクトリの下にあるディレクトリ呼び出し識別子の数は2N個を超えない。例えば、Nの値が16の場合、単一のサーバによってサポートされる同時ディレクトリトラバーサル要求パスの数は最大で216(すなわち65535)個であり、単一のディレクトリの下にあるディレクトリエントリの数は最大で248(すなわち281474976710655)個であり、これらの数字の値は既存の各種のファイルシステムがサポートできる最大ディレクトリエントリ数を遥かに超えており、そのため、適切なN値は本開示の実施形態の技術案がいずれのファイルシステムにも広く応用できることを保証できる。
ディレクトリ呼び出し識別子がSlotIDで表され、ディレクトリエントリ識別子がSequenceIDで表されると仮定すると、cookie値のデータ構造の構成は次のように表され得る。
Figure 2021144731
さらに、メモリの制限など、端末に記憶容量の制限があることを考慮すると、毎回のディレクトリトラバーサルの過程中に、サーバが端末に送信したディレクトリエントリは、端末が全て受信するとは限らず、ディレクトリエントリの一部を破棄するという現象があり得る。例えば、現在ディレクトリトラバーサルの過程中に、端末がサーバに20個のディレクトリエントリを要求し、サーバは最終的に20個のディレクトリエントリを端末に送信することができ、端末の記憶容量が十分でない場合、端末が受信に成功したディレクトリエントリの数は20未満であり、例えば端末が受信に成功したディレクトリエントリの数は15個である可能性があるため、端末が要求したディレクトリエントリの完全性を保証するために、サーバは端末の次回のディレクトリトラバーサルの過程中に、端末が受信に成功しなかったディレクトリエントリを端末に再度送信する必要がある。
したがって、本開示の実施形態では、ディレクトリエントリのディレクトリエントリ識別子は、現在ディレクトリトラバーサルの過程中に受信に成功したディレクトリエントリを端末がマークするためにも用いられ、同じディレクトリに対する次回のディレクトリトラバーサルの過程中に、端末は、受信に成功したディレクトリエントリのディレクトリエントリ識別子をディレクトリトラバーサル要求に運ぶことができ、これにより、サーバは、端末が受信に成功したディレクトリエントリ及び当該次回の呼び出しの過程中にどのディレクトリエントリを端末に送信する必要があるかを正確に判断することができる。通常、ディレクトリエントリの記憶と呼び出しは順番に行われ、端末は受信に成功したディレクトリエントリのディレクトリエントリ識別子を記録し、また順番に記録し、最後に受信に成功したディレクトリエントリ識別子は最後に記録される。したがって、端末の現在ディレクトリトラバーサル要求には、現在ターゲットディレクトリに対する前回のディレクトリトラバーサルの過程中に端末が受信に成功した最後のディレクトリエントリの履歴ディレクトリエントリ識別子を含むことができ、これにより、サーバは現在ディレクトリトラバーサルの過程中に端末が要求する一つ目のディレクトリエントリを正確に特定し、あるいは、現在ターゲットディレクトリに対する端末の次のディレクトリトラバーサル要求には、現在呼び出しの過程中に端末が受信に成功した最後のディレクトリエントリのディレクトリエントリ識別子を含むことができ、これにより、サーバは次回のディレクトリトラバーサルの過程中に端末が要求する一つ目のディレクトリエントリを正確に特定する。
上述した技術案に基づいて、図3は、本開示の実施形態に係る別のファイルディレクトリのトラバーサル方法のフローチャートであり、上述した各選択可能な実施形態と組み合わせてもよく、かつ、具体的にはディレクトリエントリの順番呼び出し、及びディレクトリエントリ識別子に基づいて端末が現在呼び出すように要求しているディレクトリエントリを決定することを例にして、本開示の実施形態を例示的に説明する。図3に示すように、当該方法は、以下を含み得る。
S301において、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信する。
S302において、現在ディレクトリトラバーサル要求を解析することによって、端末のディレクトリ呼び出し識別子を決定し、ここで、ディレクトリ呼び出し識別子は、ターゲットディレクトリにおいて端末を一意的に表すために用いられる。
S303において、現在ディレクトリトラバーサル要求に含まれている履歴ディレクトリエントリ識別子に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求している一つ目のディレクトリエントリのディレクトリエントリ識別子を決定する。
ここで、現在ディレクトリトラバーサル要求に含まれている履歴ディレクトリエントリ識別子とは、現在ターゲットディレクトリに対する前回のディレクトリトラバーサルの過程中に端末が受信に成功した最後のディレクトリエントリのディレクトリエントリ識別子である。サーバは現在ターゲットディレクトリにおいてディレクトリエントリの順序に従って、当該履歴ディレクトリエントリ識別子に対応する次のディレクトリエントリ識別子を、現在呼び出すように要求している一つ目のディレクトリエントリのディレクトリエントリ識別子とすることができる。
S304において、一つ目のディレクトリエントリのディレクトリエントリ識別子に基づいて、端末が現在呼び出すように要求しているディレクトリエントリとして予め設定された数のディレクトリエントリを順次決定する。
ここで、予め設定された数の値は、端末の現在ディレクトリトラバーサル要求に依存することができる。一つ目のディレクトリエントリのディレクトリエントリ識別子に基づいて端末が現在呼び出すように要求しているディレクトリエントリを決定するプロセスにおいて、端末が呼び出すように要求しているディレクトリエントリのディレクトリエントリ識別子もそれに伴って決定される。
S305において、端末のディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子を端末に送信する。
本開示の実施形態の技術案によれば、まず端末の現在ディレクトリトラバーサル要求を受信して端末のディレクトリ呼び出し識別子を決定することによって、同じディレクトリにおいて異なる端末に対するディレクトリトラバーサル要求の区別が実現され、次に現在ディレクトリトラバーサル要求に含まれている履歴ディレクトリエントリ識別子に基づいて、端末が呼び出すように要求しているディレクトリエントリ及びディレクトリエントリ識別子を決定し、端末が要求しているディレクトリエントリを効率的かつ正確に決定することが実現され、同じディレクトリにおいて異なる端末に対するディレクトリエントリ呼び出しのきめ細かな管理が実現され、さらにファイルシステムにおけるディレクトリトラバーサル性能を最適化するという効果が実現される。
さらに、従来の技術案におけるスナップショット技術に基づくディレクトリトラバーサルの技術案と比較して、本開示の実施形態は複雑なスナップショット技術に全く関係しないため、端末のディレクトリトラバーサル操作をより容易に実現することができ、同時に技術実現に対するサーバの維持コストを低減することもでき、従来の技術案におけるディレクトリオフセットに基づくディレクトリトラバーサルの技術案と比較して、本開示の実施形態はオフセットに基づいてディレクトリエントリを検索する必要がなく、ファイルシステムにファイルを追加又は削除しても、ディレクトリオフセットの更新に注目する必要がなく、ディレクトリオフセットなどの構造データを正確に維持するためのオーバヘッドを減らすことができると同時に、ファイルエントリが変更された場合、例えばファイルを追加したり削除したりすると、ディレクトリオフセットが適時に更新されないので、依然として古いディレクトリオフセットで後続のディレクトリエントリを決定し、さらにディレクトリエントリの呼び出し重複又は呼び出し漏れの問題が発生することを回避することもでき、従来の技術案ではファイルシステムプロトコルで要求されるcookie値とディレクトリエントリ名との間のマッピング関係に基づくディレクトリトラバーサルの技術案と比較して、本開示の実施形態は、同じディレクトリに対する異なる端末のトラバーサル要求を区別することによって、各端末に対してディレクトリエントリ識別子とディレクトリエントリとの間のマッピング関係をそれぞれ維持し、維持が必要なデータ構造がシンプルであり、サーバの記憶リソースに対する占有が比較的少なく、しかも各端末に対する完全なディレクトリトラバーサル操作が終わった後、いつでも当該端末に対するディレクトリ呼び出しに関連するデータを削除し、サーバの記憶リソースを解放することができる。
図4は、本開示の実施形態に係るディレクトリエントリ識別子に基づいて端末が呼び出すように要求しているディレクトリエントリを決定する概略図である。図4に示すように、ターゲットディレクトリに対する呼び出しの過程中に、端末1にディレクトリ呼び出し識別子1を割り当て、端末1がターゲットディレクトリに対して呼び出すように要求している一つ目のディレクトリエントリが所在する位置はすなわちディレクトリエントリの現在位置であり、呼び出すように要求している最後のディレクトリエントリが所在する位置はすなわちディレクトリエントリの終了位置であり、同様に、ターゲットディレクトリに対する現在呼び出しの過程中に、端末2にディレクトリ呼び出し識別子2を割り当て、端末2がターゲットディレクトリに対して呼び出すように要求している一つ目のディレクトリエントリが所在する位置はすなわちディレクトリエントリの現在位置であり、呼び出すように要求している最後のディレクトリエントリが所在する位置はすなわちディレクトリエントリの終了位置である。
上述した技術案に加えて、好ましくは、ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを端末に送信する前に、又は決定されたディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子を端末する前に、本開示の実施形態に係る方法は、端末のメモリ値などの端末の記憶容量情報に基づいて、現在ディレクトリトラバーサルの過程中に端末に送信されたディレクトリエントリの数を決定することをさらに含み得る。すなわち端末には記憶容量の制限があり、毎回のディレクトリトラバーサルの過程中に、サーバが送信したディレクトリエントリを全て受信できない場合には、サーバは端末の記憶容量情報に基づいて、端末が受信に成功できるディレクトリエントリの数を予め決定し、ディレクトリエントリの数に合わせて送信することによって、ディレクトリエントリの重複送信を減らし、システムの帯域幅リソースに対する浪費を減らすことができる。
図5は、本開示の実施形態に係る別のファイルディレクトリのトラバーサル方法のフローチャートであり、上述した技術案に基づいてさらに最適化及び拡張され、かつ上述した各選択可能な実施形態と組み合わせてもよい。図5に示すように、当該方法は、以下を含み得る。
S401において、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信する。
S402において、現在ディレクトリトラバーサル要求を解析することによって、端末のディレクトリ呼び出し識別子を決定し、ここで、ディレクトリ呼び出し識別子は、ターゲットディレクトリにおいて端末を一意的に表すために用いられる。
S403において、ディレクトリ呼び出し識別子に基づいて、ターゲットディレクトリに対する端末のディレクトリプリフェッチキャッシュを特定する。
S404において、現在ディレクトリトラバーサル要求に基づいて、ディレクトリプリフェッチキャッシュから端末が現在呼び出すように要求しているディレクトリエントリを抽出する。
S405において、端末のディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを端末に送信する。
任意のターゲットディレクトリにおいて、異なる端末に対して、本開示の実施形態は、各端末にディレクトリプリフェッチキャッシュを設定することができる。ディレクトリプリフェッチキャッシュは、ターゲットディレクトリに対して、予め各端末に一定数のディレクトリエントリを記憶するために用いられ、又はターゲットディレクトリに対する次回のディレクトリトラバーサルの過程中に各端末が要求するディレクトリエントリを予測するために用いられる。一般に、毎回のディレクトリトラバーサルの過程中に、サーバが記憶媒体又はファイルシステムからディレクトリエントリを読み取る操作は時間のかかる操作であるため、ディレクトリエントリのキャッシュプリフェッチポリシーにより、ディレクトリエントリの読み取りの遅延時間を効果的に低減することができ、かつ、ディレクトリプリフェッチキャッシュの区分設定により、各端末のキャッシュ領域を迅速に特定することができ、端末が要求するディレクトリエントリの抽出効率を向上させることができる。
例示的には、ターゲットディレクトリにおいて、各端末に対するディレクトリプリフェッチキャッシュにおいて、プリフェッチされたディレクトリエントリは、同様に一意のディレクトリエントリ識別子に対応し、サーバは端末の現在ディレクトリトラバーサル要求に含まれている履歴ディレクトリエントリ識別子に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求している一つ目のディレクトリエントリのディレクトリエントリ識別子を決定することができ、その後、一つ目のディレクトリエントリのディレクトリエントリ識別子に基づいて、端末が現在呼び出すように要求しているディレクトリエントリとして、ディレクトリプリフェッチキャッシュから予め設定された数のディレクトリエントリを順次決定する。
ディレクトリプリフェッチキャッシュにおいて、各端末のディレクトリエントリをキャッシュするタイミングは、以下を含み得る。
1)サーバはファイルシステムから新しいディレクトリエントリを取得するたびに、必要なディレクトリエントリを取得する以外、一定数(具体的な値は適応可能に設定)のディレクトリエントリを多く抽出してもよく、多く抽出したディレクトリエントリをキャッシュに格納し、後続の要求に使用する。
2)ディレクトリプリフェッチキャッシュにキャッシュされているディレクトリエントリの数が設定された閾値(具体的な値は適応可能に設定)を下回った後、端末のディレクトリトラバーサル要求を受信する前に、ディレクトリエントリの取得操作を事前に開始し、かつ取得したディレクトリエントリをキャッシュに格納することができる。端末のディレクトリトラバーサル要求を受信した後、直ちにディレクトリプリフェッチキャッシュから所望のディレクトリエントリを抽出して端末に返すことができ、ユーザにとって、知覚される操作遅延性を低下させることができる。
具体的には、ディレクトリプリフェッチキャッシュ内のディレクトリエントリの数が、端末の現在トラバーサル要求を満たすのに十分でない場合、サーバは、端末の現在トラバーサル要求を満たすために、記憶媒体又はファイルシステムからディレクトリエントリを取得する必要がある。また、毎回のディレクトリトラバーサルの過程中に、ディレクトリプリフェッチキャッシュから履歴ディレクトリトラバーサルの過程中に端末が要求したディレクトリエントリを削除し、キャッシュ空間を解放することができる。
本開示の実施形態の技術案によれば、まず端末の現在ディレクトリトラバーサル要求を受信して端末のディレクトリ呼び出し識別子を決定することによって、同じディレクトリにおいて異なる端末に対するディレクトリトラバーサル要求の区別が実現され、次にディレクトリ呼び出し識別子に基づいて、ターゲットディレクトリに対する端末のディレクトリプリフェッチキャッシュを迅速に特定し、かつディレクトリプリフェッチキャッシュから端末が現在呼び出すように要求しているディレクトリエントリを抽出し、端末が要求したディレクトリエントリの抽出効率が向上し、ディレクトリトラバーサルの過程中の時間遅延効果が減少され、ディレクトリトラバーサルの応答効率が向上し、さらにファイルシステムにおけるディレクトリトラバーサル性能を最適化するという効果が実現される。
上述した技術案に加えて、選択的に、端末の現在ディレクトリトラバーサル要求を受信する前に、本開示の実施形態に係る方法は、さらに、ターゲットディレクトリに対する端末の初回のディレクトリトラバーサル要求を受信することと、ターゲットディレクトリにおいて利用可能なディレクトリ呼び出し識別子が存在すると決定した場合、端末に割り当て、ここで、初回のディレクトリトラバーサル要求には設定マークが含まれていることと、を含み得、具体的には、当該設定マークの形式はファイルシステムプロトコルに依存することができ、例えば当該設定マークは、ターゲットディレクトリに対する端末の初回トラバーサル呼び出しを特徴づけるために予め合意された特別なcookie値であり得る。同じディレクトリに対して、当該ディレクトリにおいて割り当てられたディレクトリ呼び出し識別子の数は限られており、かつ異なる端末に割り当てられたディレクトリ呼び出し識別子は重複しない。したがって、サーバは、ターゲットディレクトリに対する端末の初回のディレクトリトラバーサル要求を受信した後、ターゲットディレクトリにおいて、利用可能なディレクトリ呼び出し識別子、すなわち割り当てられていない残りのディレクトリ呼び出し識別子が現在存在するか否かを決定する必要があり、存在する場合に割り当て、存在しない場合、特定のエラーコードを端末に返すことができ、割り当て可能なディレクトリ呼び出し識別子が存在するまで、初回のディレクトリトラバーサル要求を送ることを端末に再度試行させることができ、当然のことながら、端末が要求を終了することもできる。
さらに、本開示の実施形態に係る方法は、さらに、現在ディレクトリトラバーサル要求の受信時刻を開始時点とし、予め設定された時間内に端末の次のディレクトリトラバーサル要求が受信されない場合、端末とディレクトリ呼び出し識別子とのバインディング関係をクリアすることを含み得る。
具体的には、サーバは、端末の現在ディレクトリトラバーサル要求を受信した後、計時を開始することができ、予め設定された時間内に端末の次のディレクトリトラバーサル要求が受信されない場合、すなわち現在の端末が非アクティブであると考えられ、当該端末に対するディレクトリ呼び出し関連データ、例えばキャッシュデータ、端末とディレクトリ呼び出し識別子とのバインディング関係などをクリアすることができ、バインディング解除されたディレクトリ呼び出し識別子は利用可能な状態としてマークすることができ、すなわち他の端末に割り当てて使用することができる。これにより、サーバの記憶容量リソースを節約し、各ディレクトリの下にあるディレクトリ呼び出し識別子の利用可能性を高めることができる。
例示的には、以下では、呼び出しマーク値がcookie値であり、すなわち端末の毎回のディレクトリトラバーサルの過程中に、サーバが端末にディレクトリエントリを送信すると同時に、各ディレクトリエントリに対応するcookie値を送信することを例にして、本開示の実施形態を例示的に説明するが、本開示の実施形態を具体的に限定するものと理解されるべきではない。端末のディレクトリトラバーサルプロセスは以下のように実現される。
1)端末は、ターゲットディレクトリに対する初回のディレクトリトラバーサル要求をサーバに開始し、当該要求には、現在要求が初回要求であることを示すための、合意された特別なcookie値が含まれている。
2)サーバは、端末の初回のディレクトリトラバーサル要求を受信した後、ターゲットディレクトリにおいて利用可能なディレクトリ呼び出し識別子SlotIDが存在するか否かを検査し、存在すれば、端末にディレクトリ呼び出し識別子SlotIDを割り当て、存在しなければ、特定のエラーコードを返し、操作1)を端末に再試行させる。
3)サーバは、ファイルシステムから端末が現在必要とする予め設定された数のディレクトリエントリを読み取る。具体的には、ターゲットディレクトリに対する端末のディレクトリプリフェッチキャッシュから端末が必要とするディレクトリエントリを抽出することができ、ディレクトリプリフェッチキャッシュ内のディレクトリエントリは、端末のために予めキャッシュされたディレクトリエントリである。同時に、端末が現在要求している1つ目のディレクトリエントリのディレクトリエントリ識別子SequenceID、及び端末が現在要求している最後のディレクトリエントリのディレクトリエントリ識別子SequenceIDを決定することができる。ディレクトリエントリ識別子SequenceID及びディレクトリ呼び出し識別子SlotIDを用いてエンコードして各ディレクトリエントリに対するcookie値を得る。サーバは、取得したディレクトリエントリ及びディレクトリエントリに対応するcookie値を、一括して端末に送信することができる。当然のことながら、サーバが端末に送信するデータには、変更時間、作成時間、アクセス時間、名称などの各ディレクトリエントリの属性情報も含まれている。
4)端末は、サーバから送信されたデータを受信し、ディレクトリエントリ、cookie値、及び他のディレクトリエントリ属性情報を保存する。端末にメモリやその他の制限が存在する可能性があるため、端末が保存しているディレクトリエントリの数は、サーバが実際に返したディレクトリエントリの数よりも少ない可能性がある。
5)端末は、保存された最後のディレクトリエントリに終了マークが運ばれているか否かを検査し、終了マークが運ばれていれば、ターゲットディレクトリに対するトラバーサルが完了したことを示し、トラバーサルプロセスを終了することができ、そうでなければ、次のディレクトリトラバーサル要求を送信し続ける。当該次のディレクトリトラバーサル要求には現在保存している最後のcookie値が含まれている。
6)サーバは、端末のディレクトリトラバーサル要求を再度受信し、要求に含まれているcookie値からディレクトリ呼び出し識別子SlotIDを抽出し、端末に対応するディレクトリプリフェッチキャッシュに特定し、かつcookie値から抽出したディレクトリエントリ識別子SequenceIDに基づいて、端末が現在要求しているディレクトリエントリを順次決定するとともに、当該ディレクトリエントリ識別子SequenceIDよりも前のディレクトリエントリキャッシュを全て廃棄することができる。ここで、キャッシュ内のディレクトリエントリの数が、端末が現在必要とするディレクトリエントリの数を満たせず、ディレクトリトラバーサルが完了していなければ、キャッシュ内の既存のディレクトリエントリを除いて、サーバは、ファイルシステムから補完すべき残りのディレクトリエントリを取得し続ける。具体的には、ディレクトリエントリ識別子SequenceID、ディレクトリエントリ名又はファイルシステムに必要なディレクトリエントリを特定可能なその他の特定情報に基づいて、ファイルシステムから十分な数のディレクトリエントリを取得することができる。
7)サーバは、ファイルシステムから取得したディレクトリエントリを端末に対応するディレクトリプリフェッチキャッシュに埋め込み、埋め込みと同時に、各ディレクトリエントリには依然としてディレクトリエントリ識別子SequenceIDが割り当てられている。端末が現在要求している最後のディレクトリエントリのディレクトリエントリ識別子SequenceIDを決定する。現在までに、ディレクトリトラバーサルが完了した場合、サーバは端末が現在要求している最後のディレクトリエントリが所在する位置をディレクトリトラバーサル終了位置としてマークし、かつ終了マークを設定することができる。
8)サーバは、ディレクトリエントリ、ディレクトリエントリのcookie値及びディレクトリエントリ属性情報などのデータを端末に返す。端末は最後に保存したディレクトリエントリから終了マークを検出し、ディレクトリトラバーサル要求の送信を終了し、ディレクトリトラバーサルプロセス全体を終了する。
なお、同じディレクトリに対して、ディレクトリエントリ識別子SequenceIDの割り当て方式及びディレクトリ呼び出し識別子SlotIDの割り当て方式は実際の状況に応じて調整することができ、技術案実現の正確性に影響を及ぼさず、以下の条件を満たすだけでよい。
1)同じディレクトリにおいて、同じ端末からのディレクトリトラバーサル要求に対して、各ディレクトリエントリのSequenceIDは一意である。
2)同じディレクトリにおいて、利用可能なディレクトリ呼び出し識別子SlotID値は重複しない。
本開示の実施形態の技術案によれば、同じディレクトリに対する異なる端末のトラバーサル要求を区別することによって、比較的少ない記憶リソースを使用してcookie値とディレクトリエントリとの間のマッピング関係を確立することができ、適切なディレクトリエントリプリフェッチポリシーと組み合わせて、高性能、低リソース消費のディレクトリトラバーサル操作が達成される。
図6は、本開示の実施形態に係るファイルディレクトリのトラバーサル装置の構造概略図であり、本開示の実施形態は、ファイルシステムでは、端末のディレクトリトラバーサル要求をどのように処理するかの場合に適用可能である。本開示の実施形態に係る装置は、ソフトウェア及び/又はハードウェアを用いて実現されてもよく、コンピューティング機能を備えた任意の電子設備、例えばネットワークファイルシステムをサポートするサーバなどに統合され得る。
図6に示すように、本開示の実施形態に係るファイルディレクトリのトラバーサル装置500は、ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信するために用いられる現在要求受信モジュール501と、現在ディレクトリトラバーサル要求を解析することによって、端末のディレクトリ呼び出し識別子を決定するために用いられ、ここで、ディレクトリ呼び出し識別子は、ターゲットディレクトリにおいて端末を一意的に表すために用いられるディレクトリ呼び出し識別子決定モジュール502と、現在ディレクトリトラバーサル要求に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求しているディレクトリエントリを決定するために用いられるディレクトリエントリ決定モジュール503と、ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを端末に送信するために用いられるディレクトリエントリ送信モジュール504と、を含み得る。
選択的に、ディレクトリエントリ決定モジュール503は、さらに、端末が現在呼び出すように要求しているディレクトリエントリのディレクトリエントリ識別子を決定するために用いられ、ここで、ディレクトリエントリ識別子は、ターゲットディレクトリにおいてディレクトリエントリを一意的に表すために用いられる。
ディレクトリエントリ送信モジュール504は、具体的には、ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及びディレクトリエントリのディレクトリエントリ識別子を端末に送信するために用いられる。
選択的に、ディレクトリエントリ識別子は、さらに、現在ディレクトリトラバーサルの過程中に受信に成功したディレクトリエントリを端末がマークするために用いられ、現在ディレクトリトラバーサル要求には、ターゲットディレクトリに対する前回のディレクトリトラバーサルの過程中に端末が受信に成功した最後のディレクトリエントリの履歴ディレクトリエントリ識別子が含まれる。
選択的に、ディレクトリエントリ送信モジュール504は、呼び出しマーク値生成ユニットであって、ディレクトリ呼び出し識別子及びディレクトリエントリのディレクトリエントリ識別子に基づいて、ディレクトリエントリの呼び出しマーク値を生成するために用いられ、ここで、呼び出しマーク値のデータ形式はファイルシステムプロトコルに関連している呼び出しマーク値生成ユニットと、決定されたディレクトリエントリ及びディレクトリエントリの呼び出しマーク値を端末に送信するために用いられるディレクトリエントリ送信ユニットと、を含む。
選択的に、ディレクトリエントリ決定モジュール503は、現在ディレクトリトラバーサル要求に含まれている履歴ディレクトリエントリ識別子に基づいて、ターゲットディレクトリにおいて端末が現在呼び出すように要求している一つ目のディレクトリエントリのディレクトリエントリ識別子を決定するために用いられる一つ目のディレクトリエントリ識別子決定ユニットと、一つ目のディレクトリエントリのディレクトリエントリ識別子に基づいて、端末が現在呼び出すように要求しているディレクトリエントリとして予め設定された数のディレクトリエントリを順次決定するために用いられるディレクトリエントリ決定ユニットと、を含む。
選択的に、ディレクトリエントリ決定モジュール503は、ディレクトリ呼び出し識別子に基づいて、ターゲットディレクトリに対する端末のディレクトリプリフェッチキャッシュを特定するために用いられるプリフェッチキャッシュ決定ユニットと、現在ディレクトリトラバーサル要求に基づいて、ディレクトリプリフェッチキャッシュから端末が現在呼び出すように要求しているディレクトリエントリを抽出するために用いられるディレクトリエントリ抽出ユニットと、を含む。
選択的に、本開示の実施形態に係る装置は、さらに、端末の現在ディレクトリトラバーサル要求を受信する操作を現在要求受信モジュール501が実行する前に、ターゲットディレクトリに対する端末の初回のディレクトリトラバーサル要求を受信するために用いられる開始要求受信モジュールと、ディレクトリ呼び出し識別子割り当てモジュールであって、ターゲットディレクトリにおいて利用可能なディレクトリ呼び出し識別子が存在すると決定した場合、端末に割り当てるために用いられ、ここで、初回のディレクトリトラバーサル要求には設定マークが含まれているディレクトリ呼び出し識別子割り当てモジュールと、を含む。
選択的に、本開示の実施形態に係る装置は、さらに、ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを端末に送信する操作をディレクトリエントリ送信モジュール504が実行する前に、端末の記憶容量情報に基づいて、現在ディレクトリトラバーサルの過程中に端末に送信されたディレクトリエントリの数を決定するために用いられる送信数決定モジュールを含む。
選択的に、本開示の実施形態に係る装置は、さらに、現在ディレクトリトラバーサル要求の受信時刻を開始時点とし、予め設定された時間内に端末の次のディレクトリトラバーサル要求が受信されない場合、端末とディレクトリ呼び出し識別子とのバインディング関係をクリアするために用いられるバインディング関係クリアモジュールを含む。
選択的に、本開示の実施形態に係る装置の動作が適用される条件は、ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生しない場合、任意のディレクトリにおいて各ディレクトリエントリ間の相対的な順序は変更されないこと、ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生した場合、変更操作を伴わないディレクトリ領域のディレクトリエントリ間の相対的な順序は変更されないことのうちの少なくとも1つを含む。
本開示の実施形態に係るファイルディレクトリのトラバーサル装置500は、本開示の実施形態に係るファイルディレクトリのトラバーサル方法のいずれかを実行でき、方法を実行するための機能モジュール及び有益な効果を備えている。本開示の装置の実施形態に詳細に記載されていない内容は、本開示の任意の方法の実施形態に記載されているものを参照することができる。
本開示の実施形態によれば、本開示の実施形態は、電子設備及び可読記憶媒体をさらに提供する。
図7に示すように、図7は、本開示の実施形態に係るファイルディレクトリのトラバーサル方法を実現するための電子設備のブロック図である。電子設備は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子設備は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の類似するコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実施形態の実現を制限することを意図したものではない。
図7に示すように、当該電子設備は、1つ又は複数のプロセッサ601と、メモリ602と、高速インタフェース及び低速インタフェースを含む各コンポーネントを接続するためのインタフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に応じて他の方式で取り付けることができる。プロセッサは、電子設備内で実行される命令を処理することができ、当該命令は、外部入力/出力装置(例えば、インタフェースに結合されたディスプレイデバイスなど)にグラフィカルユーザインタフェース(Graphical User Interface、GUI)の図形情報をディスプレイするためにメモリ内又はメモリに記憶されている命令を含む。他の実施方式では、必要に応じて、複数のプロセッサ及び/又は複数のバスを、複数のメモリと一緒に使用することができる。同様に、複数の電子設備を接続することができ、各電子設備は、一部の必要な操作を提供し、例えば、サーバアレイ、1グループのブレードサーバ、又はマルチプロセッサシステムとする。図7では、1つのプロセッサ601を例とする。
メモリ602は、本開示の実施形態により提供される非一時的なコンピュータ可読記憶媒体である。その中で、メモリには、少なくとも1つのプロセッサによって実行可能な命令が記憶され、少なくとも1つのプロセッサが本開示の実施形態により提供されるファイルディレクトリのトラバーサル方法を実行するようにする。本開示の実施形態の非一時的なコンピュータ可読記憶媒体には、コンピュータに本開示の実施形態により提供されるファイルディレクトリのトラバーサル方法を実行させるためのコンピュータ命令が記憶されている。
メモリ602は、非一時的なコンピュータ可読記憶媒体として、本開示の実施形態におけるファイルディレクトリのトラバーサル方法に対応するプログラム命令/モジュール、例えば、図6に示す現在要求受信モジュール501、ディレクトリ呼び出し識別子決定モジュール502、ディレクトリエントリ決定モジュール503、及びディレクトリエントリ送信モジュール504のような、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶するために用いられることができる。プロセッサ601は、メモリ602に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、電子設備の様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施形態におけるファイルディレクトリのトラバーサル方法を実現する。
メモリ602は、ストレージプログラムエリアとストレージデータエリアとを含むことができ、その中で、ストレージプログラムエリアは、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータエリアは、電子設備の使用によって作成されたデータなどを記憶することができる。また、メモリ602は、高速ランダムアクセスメモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施形態では、メモリ602は、プロセッサ601に対して遠隔に設定されたメモリを選択的に含むことができ、これらの遠隔メモリは、ネットワークを介して本実施形態に係るファイルディレクトリのトラバーサル方法を実現するための電子設備に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定されない。
本開示の実施形態に係るファイルディレクトリのトラバーサル方法を実現するための電子設備は、入力装置603と出力装置604とをさらに含むことができる。プロセッサ601、メモリ602、入力装置603、及び出力装置604は、バス又は他の方式を介して接続することができ、図7では、バスを介して接続することを例とする。
入力装置603は、入力された数字又は文字情報を受信し、本実施形態に係るファイルディレクトリのトラバーサル方法を実現するための電子設備のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置604は、ディスプレイデバイス、発光ダイオード(Light Emitting Diode、LED)などの補助照明装置、及び振動モータなどの触覚フィードバックデバイスなどを含むことができる。当該ディスプレイデバイスは、液晶ディスプレイ(Liquid Crystal Display、LCD)、LEDディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定されない。いくつかの実施形態で、ディスプレイデバイスは、タッチスクリーンであってもよい。
本明細書で説明されるシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、専用又は汎用のプログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれるこれらのコンピューティングプログラムは、プログラマブルプロセッサの機械命令を含むことができ、高レベルのプロセス及び/又は対象指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することができる。本明細書に使用されるような、「機械可読媒体」及び「コンピュータ可読媒体」の用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意のコンピュータプログラム製品、設備、及び/又は装置、例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device、PLD)を指し、機械可読信号である機械命令を受信する機械可読媒体を含む。「機械可読信号」の用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
ユーザとのインタラクションを提供するために、コンピュータ上で、ここで説明されているシステム及び技術を実施することができ、当該コンピュータは、陰極線管(Cathode Ray Tube、CRT)又はLCDモニタなどのユーザに情報を表示するためのディスプレイ装置と、マウス又はトラックボールなどのキーボード及びポインティングデバイスとを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態のセンシングフィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであってもよく、音響入力と、音声入力と、触覚入力とを含む任意の形態でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(Local Area Network、LAN)と、ワイドエリアネットワーク(Wide Area Network、WAN)と、インターネットと、ブロックチェーンネットワークとを含む。
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント−サーバの関係を有するコンピュータプログラムによって、クライアントとサーバとの関係が生成される。
本開示の実施形態の技術案によれば、まず端末の現在ディレクトリトラバーサル要求を受信して端末のディレクトリ呼び出し識別子を決定することによって、同じディレクトリにおいて異なる端末に対するディレクトリトラバーサル要求の区別が実現され、次に端末のディレクトリ呼び出し識別子に基づいてその現在要求を満たすディレクトリエントリを端末に送信し、異なる端末の呼び出しディレクトリエントリの区別維持及び管理が実現され、さらにファイルシステムにおけるディレクトリトラバーサル性能を最適化するという効果が実現される。
上記に示される様々な形態のフローを使用して、ステップを並べ替え、追加、又は削除することができる。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定しない。
上記の具体的な実施方式は、本開示の保護範囲を制限するものではない。当業者は、設計要件と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。本開示の精神と原則内で行われる任意の修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれるべきである。

Claims (23)

  1. ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信することと、
    前記現在ディレクトリトラバーサル要求を解析することによって、ターゲットディレクトリにおいて前記端末を一意的に表すための前記端末のディレクトリ呼び出し識別子を決定することと、
    前記現在ディレクトリトラバーサル要求に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定することと、
    前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信することと、を含む、
    ファイルディレクトリのトラバーサル方法。
  2. 前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定する過程において、
    前記方法は、前記端末が現在呼び出すように要求しているディレクトリエントリのディレクトリエントリ識別子を決定することをさらに含み、
    前記ディレクトリエントリ識別子は、前記ターゲットディレクトリにおいて前記ディレクトリエントリを一意的に表すことに用いられており、
    前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信することは、前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及び前記ディレクトリエントリのディレクトリエントリ識別子を前記端末に送信することを含む、
    請求項1に記載のファイルディレクトリのトラバーサル方法。
  3. 前記ディレクトリエントリ識別子は、現在ディレクトリトラバーサルの過程中に受信に成功したディレクトリエントリを前記端末がマークすることにさらに用いられており、
    前記現在ディレクトリトラバーサル要求には、前記ターゲットディレクトリに対する前回のディレクトリトラバーサルの過程中に前記端末が受信に成功した最後のディレクトリエントリの履歴ディレクトリエントリ識別子が含まれている、
    請求項2に記載のファイルディレクトリのトラバーサル方法。
  4. 前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及び前記ディレクトリエントリのディレクトリエントリ識別子を前記端末に送信することは、
    前記ディレクトリ呼び出し識別子及び前記ディレクトリエントリのディレクトリエントリ識別子に基づいて、前記ディレクトリエントリの呼び出しマーク値を生成することと、
    決定されたディレクトリエントリ及び前記ディレクトリエントリの呼び出しマーク値を前記端末に送信することと、を含み、
    前記呼び出しマーク値のデータ形式は、ファイルシステムプロトコルに関連している、
    請求項2に記載のファイルディレクトリのトラバーサル方法。
  5. 前記現在ディレクトリトラバーサル要求に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定することは、
    前記現在ディレクトリトラバーサル要求に含まれている前記履歴ディレクトリエントリ識別子に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求している一つ目のディレクトリエントリのディレクトリエントリ識別子を決定することと、
    前記一つ目のディレクトリエントリのディレクトリエントリ識別子に基づいて、前記端末が現在呼び出すように要求しているディレクトリエントリとして予め設定された数のディレクトリエントリを順次決定することと、を含む、
    請求項3に記載のファイルディレクトリのトラバーサル方法。
  6. 前記現在ディレクトリトラバーサル要求に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定することは、
    前記ディレクトリ呼び出し識別子に基づいて、前記ターゲットディレクトリに対する前記端末のディレクトリプリフェッチキャッシュを特定することと、
    前記現在ディレクトリトラバーサル要求に基づいて、前記ディレクトリプリフェッチキャッシュから前記端末が現在呼び出すように要求しているディレクトリエントリを抽出することと、を含む、
    請求項1に記載のファイルディレクトリのトラバーサル方法。
  7. 端末の現在ディレクトリトラバーサル要求を受信する前に、前記方法は、
    前記ターゲットディレクトリに対する前記端末の初回のディレクトリトラバーサル要求を受信することと、
    前記ターゲットディレクトリにおいて利用可能なディレクトリ呼び出し識別子が存在すると決定した場合、前記端末に割り当てることと、をさらに含む、
    前記初回のディレクトリトラバーサル要求には、設定マークが含まれている、
    請求項1に記載のファイルディレクトリのトラバーサル方法。
  8. 前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信する前に、前記方法は、
    前記端末の記憶容量情報に基づいて、現在ディレクトリトラバーサルの過程中に前記端末に送信されたディレクトリエントリの数を決定することをさらに含む、
    請求項1に記載のファイルディレクトリのトラバーサル方法。
  9. 前記方法は、
    前記現在ディレクトリトラバーサル要求の受信時刻を開始時点とし、予め設定された時間内に前記端末の次のディレクトリトラバーサル要求が受信されない場合、前記端末と前記ディレクトリ呼び出し識別子とのバインディング関係をクリアすることをさらに含む、
    請求項1に記載のファイルディレクトリのトラバーサル方法。
  10. 前記方法の適用条件は、
    ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生しない場合、前記任意のディレクトリにおいて各ディレクトリエントリ間の相対的な順序が変更されないこと、及び、
    ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生した場合、変更操作を伴わないディレクトリ領域のディレクトリエントリ間の相対的な順序が変更されないこと、のうちの少なくとも1つを含む、
    請求項1〜9のいずれか一項に記載のファイルディレクトリのトラバーサル方法。
  11. ターゲットディレクトリに対する端末の現在ディレクトリトラバーサル要求を受信する現在要求受信モジュールと、
    前記現在ディレクトリトラバーサル要求を解析することによって、前記ターゲットディレクトリにおいて前記端末を一意的に表すための前記端末のディレクトリ呼び出し識別子を決定するディレクトリ呼び出し識別子決定モジュールと、
    前記現在ディレクトリトラバーサル要求に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求しているディレクトリエントリを決定するディレクトリエントリ決定モジュールと、
    前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信するディレクトリエントリ送信モジュールと、を備える、
    ファイルディレクトリのトラバーサル装置。
  12. 前記ディレクトリエントリ決定モジュールは、前記端末が現在呼び出すように要求しているディレクトリエントリのディレクトリエントリ識別子を決定することにさらに用いられており、
    前記ディレクトリエントリ識別子は、前記ターゲットディレクトリにおいて前記ディレクトリエントリを一意的に表すことに用いられており、
    前記ディレクトリエントリ送信モジュールは、前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリ及び前記ディレクトリエントリのディレクトリエントリ識別子を前記端末に送信することに用いられている、
    請求項11に記載のファイルディレクトリのトラバーサル装置。
  13. 前記ディレクトリエントリ識別子は、現在ディレクトリトラバーサルの過程中に受信に成功したディレクトリエントリを前記端末がマークすることにさらに用いられており、
    前記現在ディレクトリトラバーサル要求には、前記ターゲットディレクトリに対する前回のディレクトリトラバーサルの過程中に前記端末が受信に成功した最後のディレクトリエントリの履歴ディレクトリエントリ識別子が含まれている、
    請求項12に記載のファイルディレクトリのトラバーサル装置。
  14. 前記ディレクトリエントリ送信モジュールは、
    前記ディレクトリ呼び出し識別子及び前記ディレクトリエントリのディレクトリエントリ識別子に基づいて、前記ディレクトリエントリの呼び出しマーク値を生成する呼び出しマーク値生成ユニットと、
    決定されたディレクトリエントリ及び前記ディレクトリエントリの呼び出しマーク値を前記端末に送信するディレクトリエントリ送信ユニットと、を備え、
    前記呼び出しマーク値のデータ形式は、ファイルシステムプロトコルに関連している、
    請求項12に記載のファイルディレクトリのトラバーサル装置。
  15. 前記ディレクトリエントリ決定モジュールは、
    前記現在ディレクトリトラバーサル要求に含まれている履歴ディレクトリエントリ識別子に基づいて、前記ターゲットディレクトリにおいて前記端末が現在呼び出すように要求している一つ目のディレクトリエントリのディレクトリエントリ識別子を決定する一つ目のディレクトリエントリ識別子決定ユニットと、
    前記一つ目のディレクトリエントリのディレクトリエントリ識別子に基づいて、前記端末が現在呼び出すように要求しているディレクトリエントリとして予め設定された数のディレクトリエントリを順次決定するディレクトリエントリ決定ユニットと、を備える、
    請求項13に記載のファイルディレクトリのトラバーサル装置。
  16. 前記ディレクトリエントリ決定モジュールは、
    前記ディレクトリ呼び出し識別子に基づいて、前記ターゲットディレクトリに対する前記端末のディレクトリプリフェッチキャッシュを特定するプリフェッチキャッシュ決定ユニットと、
    前記現在ディレクトリトラバーサル要求に基づいて、前記ディレクトリプリフェッチキャッシュから前記端末が現在呼び出すように要求しているディレクトリエントリを抽出するディレクトリエントリ抽出ユニットと、を備える、
    請求項11に記載のファイルディレクトリのトラバーサル装置。
  17. 前記装置は、
    前記現在要求受信モジュールが端末の現在ディレクトリトラバーサル要求を受信する操作が実行される前に、前記ターゲットディレクトリに対する前記端末の初回のディレクトリトラバーサル要求を受信する開始要求受信モジュールと、
    前記ターゲットディレクトリにおいて利用可能なディレクトリ呼び出し識別子が存在すると決定した場合、前記端末に割り当てるディレクトリ呼び出し識別子割り当てモジュールと、をさらに備え、
    前記初回のディレクトリトラバーサル要求には、設定マークが含まれている含まれている、
    請求項11に記載のファイルディレクトリのトラバーサル装置。
  18. 前記装置は、
    前記ディレクトリエントリ送信モジュールが前記ディレクトリ呼び出し識別子に基づいて、決定されたディレクトリエントリを前記端末に送信する操作が実行される前に、前記端末の記憶容量情報に基づいて、現在ディレクトリトラバーサルの過程中に前記端末に送信されたディレクトリエントリの数を決定する送信数決定モジュールをさらに備える、
    請求項11に記載のファイルディレクトリのトラバーサル装置。
  19. 前記装置は、
    前記現在ディレクトリトラバーサル要求の受信時刻を開始時点とし、予め設定された時間内に前記端末の次のディレクトリトラバーサル要求が受信されない場合、前記端末と前記ディレクトリ呼び出し識別子とのバインディング関係をクリアするバインディング関係クリアモジュールをさらに備える、
    請求項11に記載のファイルディレクトリのトラバーサル装置。
  20. 前記装置の動作適用条件は、
    ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生しない場合、前記任意のディレクトリにおいて各ディレクトリエントリ間の相対的な順序が変更されないこと、及び、
    ディレクトリトラバーサルの過程中に、ファイルシステムの任意のディレクトリにおいてディレクトリエントリの変更操作が発生した場合、変更操作を伴わないディレクトリ領域のディレクトリエントリ間の相対的な順序が変更されないこと、のうちの少なくとも1つを含む、
    請求項11〜19のいずれか一項に記載のファイルディレクトリのトラバーサル装置。
  21. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに通信接続されるメモリと、を備え、
    前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサに請求項1〜10のいずれか一項に記載のファイルディレクトリのトラバーサル方法を実行させる、
    電子設備。
  22. コンピュータに請求項1〜10のいずれか一項に記載のファイルディレクトリのトラバーサル方法を実行させる命令が記憶されている非一時的なコンピュータ可読記憶媒体。
  23. コンピュータにおいてプロセッサにより実行されると、請求項1〜10のいずれか一項に記載のファイルディレクトリのトラバーサル方法を実現することを特徴とするプログラム。
JP2021089692A 2020-06-12 2021-05-28 ファイルディレクトリのトラバーサル方法、装置、設備、媒体、及びプログラム Active JP7210642B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010538085.4 2020-06-12
CN202010538085.4A CN111737204B (zh) 2020-06-12 2020-06-12 文件目录遍历方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
JP2021144731A true JP2021144731A (ja) 2021-09-24
JP7210642B2 JP7210642B2 (ja) 2023-01-23

Family

ID=72649048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021089692A Active JP7210642B2 (ja) 2020-06-12 2021-05-28 ファイルディレクトリのトラバーサル方法、装置、設備、媒体、及びプログラム

Country Status (5)

Country Link
US (1) US11799961B2 (ja)
EP (1) EP3842955A3 (ja)
JP (1) JP7210642B2 (ja)
KR (1) KR20210040864A (ja)
CN (1) CN111737204B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760853B (zh) * 2021-08-16 2024-02-20 联想凌拓科技有限公司 一种目录处理方法、服务器以及存储介质
CN114003562B (zh) * 2021-12-29 2022-03-22 苏州浪潮智能科技有限公司 一种目录遍历方法、装置、设备及可读存储介质
CN115658619B (zh) * 2022-11-17 2023-03-28 北京星辰天合科技股份有限公司 进程的处理方法、装置、处理器及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080027946A1 (en) * 2004-06-24 2008-01-31 Symbian Software Limited File Management in a Computing Device
US20080162511A1 (en) * 2006-12-30 2008-07-03 Theobald Dietmar C Computer file system traversal
US20110145307A1 (en) * 2009-12-16 2011-06-16 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
US8671086B2 (en) * 2011-03-03 2014-03-11 Hewlett-Packard Development Company, L.P. Prefetching content of a directory by executing a directory access command

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178457B1 (en) * 1998-09-17 2001-01-23 Unisys Corporation Method and system for controlling and tracking client access to server software
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US6772202B2 (en) * 2001-11-28 2004-08-03 Gamespy Industries, Inc. Queuing system, method and computer program product for network data transfer
US7437438B2 (en) 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
CA2497525A1 (en) 2002-09-03 2004-03-18 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US20040044799A1 (en) * 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US7328217B2 (en) 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US8141100B2 (en) * 2006-12-20 2012-03-20 International Business Machines Corporation Identifying attribute propagation for multi-tier processing
CN101344881A (zh) 2007-07-09 2009-01-14 中国科学院大气物理研究所 海量文件型数据的索引生成方法及装置和搜索系统
CN101409614B (zh) * 2007-10-12 2011-04-13 华为技术有限公司 一种数据同步方法、系统和设备
JP4506840B2 (ja) * 2008-01-21 2010-07-21 ソニー株式会社 情報処理装置、情報処理方法、およびコンピュータプログラム
CN102164161B (zh) * 2011-01-10 2013-12-04 清华大学 一种对并行文件系统进行文件布局提取的方法和装置
CN103036948B (zh) * 2012-11-21 2015-12-02 北京航空航天大学 网络文件处理方法、执行节点、软件即服务SaaS平台
US9128944B2 (en) * 2013-02-13 2015-09-08 Edgecast Networks, Inc. File system enabling fast purges and file access
CN103501339B (zh) * 2013-09-30 2017-06-20 华为技术有限公司 元数据处理方法及元数据服务器
US9460179B1 (en) * 2014-01-14 2016-10-04 Google Inc. Systems and methods for providing adaptive visualization of synchronization of multiple files
US10264071B2 (en) * 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
CN107562757B (zh) * 2016-07-01 2021-08-10 阿里巴巴集团控股有限公司 基于分布式文件系统的查询、访问方法、装置及系统
CN108021472B (zh) 2017-11-28 2021-02-02 厦门市美亚柏科信息股份有限公司 ReFS文件系统的格式化恢复方法及存储介质
CN109241021A (zh) * 2018-09-04 2019-01-18 郑州云海信息技术有限公司 一种文件查询方法、装置、设备及计算机可读存储介质
CN109947719B (zh) 2019-03-21 2022-10-11 昆山九华电子设备厂 一种提高集群在目录下读取目录项效率的方法
CN110765094B (zh) 2019-10-24 2020-08-11 重庆紫光华山智安科技有限公司 文件创建方法、装置、系统及存储介质
CN110928498B (zh) * 2019-11-15 2023-11-10 浙江大华技术股份有限公司 一种目录遍历的方法、装置、设备和存储介质
CN111209159A (zh) * 2019-12-31 2020-05-29 中国建设银行股份有限公司 一种信息处理方法、装置、设备及存储介质
CN111198848B (zh) * 2020-01-03 2022-06-24 南京领行科技股份有限公司 一种分布式文件访问方法、系统、服务器和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080027946A1 (en) * 2004-06-24 2008-01-31 Symbian Software Limited File Management in a Computing Device
US20080162511A1 (en) * 2006-12-30 2008-07-03 Theobald Dietmar C Computer file system traversal
US20110145307A1 (en) * 2009-12-16 2011-06-16 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
US8671086B2 (en) * 2011-03-03 2014-03-11 Hewlett-Packard Development Company, L.P. Prefetching content of a directory by executing a directory access command

Also Published As

Publication number Publication date
EP3842955A2 (en) 2021-06-30
CN111737204A (zh) 2020-10-02
KR20210040864A (ko) 2021-04-14
US11799961B2 (en) 2023-10-24
JP7210642B2 (ja) 2023-01-23
CN111737204B (zh) 2024-03-19
US20210211499A1 (en) 2021-07-08
EP3842955A3 (en) 2021-09-08

Similar Documents

Publication Publication Date Title
CN111327720B (zh) 一种网络地址转换方法、装置、网关设备及存储介质
JP7210642B2 (ja) ファイルディレクトリのトラバーサル方法、装置、設備、媒体、及びプログラム
CN107533507B (zh) 管理存储装置中的数据的方法和系统
CN102782670B (zh) 存储器高速缓存数据中心
JP7236498B2 (ja) ファイルリソースの処理方法、装置、設備、媒体、及びプログラム
CN109656956B (zh) 一种实现业务系统数据集中式缓存的方法及装置
CN112153167B (zh) 网际互连协议管理方法、装置、电子设备及存储介质
CN111273872A (zh) 一种数据迁移方法、装置、设备和介质
WO2022111313A1 (zh) 一种请求处理方法及微服务系统
CN111737361B (zh) 区块链处理方法、装置、设备和存储介质
KR102546577B1 (ko) 미니 프로그램 데이터 처리 방법 및 장치
CN110737392B (zh) 管理存储系统中的地址的方法、设备和计算机可读存储介质
CN112583904A (zh) 文件上传方法、装置、设备以及存储介质
US11080239B2 (en) Key value store using generation markers
CN111259060A (zh) 数据查询的方法及装置
CN111737362B (zh) 区块链处理方法、装置、设备和存储介质
CN113742131A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN113051244B (zh) 数据访问方法和装置、数据获取方法和装置
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
CN113138943A (zh) 一种处理请求的方法和装置
JP2014203329A (ja) ストレージシステム、ノード装置及びデータ管理方法
KR102586892B1 (ko) 데이터 마이닝 시스템, 방법, 장치, 전자 기기 및 저장 매체
JP2013206233A (ja) メッセージ通信方法,メッセージ通信プログラムおよびコンピュータノード
CN117370295A (zh) 一种文件拷贝方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230111

R150 Certificate of patent or registration of utility model

Ref document number: 7210642

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150