JP2022058752A - ファイル移動方法及び装置、電子機器並びに媒体 - Google Patents

ファイル移動方法及び装置、電子機器並びに媒体 Download PDF

Info

Publication number
JP2022058752A
JP2022058752A JP2022009873A JP2022009873A JP2022058752A JP 2022058752 A JP2022058752 A JP 2022058752A JP 2022009873 A JP2022009873 A JP 2022009873A JP 2022009873 A JP2022009873 A JP 2022009873A JP 2022058752 A JP2022058752 A JP 2022058752A
Authority
JP
Japan
Prior art keywords
node
source
target
route
response
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
JP2022009873A
Other languages
English (en)
Other versions
JP7368515B2 (ja
Inventor
ヨーンチアン・ヤーン
Yongqiang Yang
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 JP2022058752A publication Critical patent/JP2022058752A/ja
Application granted granted Critical
Publication of JP7368515B2 publication Critical patent/JP7368515B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of 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/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/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
    • 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
    • G06F16/134Distributed indices
    • 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/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • 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/188Virtual file systems
    • G06F16/192Implementing virtual folder structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】ファイル移動方法、装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム製品を提供する。【解決手段】ファイル移動方法は、ファイル移動要求を受信したことに応答して、要求に対応する第1移動操作に対応するソース経路及びターゲット経路を取得し、第1移動操作に対応するソース経路とターゲット経路が存在するかどうかを確定し、第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を、第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路と比較し、比較結果に基づいて、当該第1移動操作を実行するかどうかを確定する。【選択図】図5

Description

本開示はクラウドコンピューティング分野に関し、特にクラウドストレージ技術分野に関し、具体的にはファイル移動方法、装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム製品に関する。
クラウドコンピューティング(cloud computing)とは、ネットワークを通じてフレキシブルで拡張可能な共有物理又は仮想資源プールにアクセスすることを指し、資源はサーバー、オペレーティングシステム、ネットワーク、ソフトウェア、アプリと記憶設備などを含むことができ、そして需要に応じて、セルフサービスの方式で資源を配置し管理する技術体系である。クラウドコンピューティング技術により、人工知能、ブロックチェーンなどの技術応用、モデルトレーニングに高効率かつ強大なデータ処理能力を提供できる。
ディレクトリ構造はファイルシステムによく見られ、例えばディレクトリを利用してツリー構造を形成し、各種のファイル、フォルダなどを分類整理するのを助ける。ファイル移動は、リネーム(rename)とも呼ばれ、ファイル/ディレクトリの移動は、ファイルシステムにおいてサポートされる標準操作の一つである。しかし、完全に並行した移動操作は、ディレクトリツリーにおいてループを生成する可能性がある。
ディレクトリツリー内のループの発生を回避するために、一般に、グローバルロッキング機構を使用することができ、すなわち、全てのリネーム操作は、並行操作の発生を防止するために、キューイングロッキング順で実行される。しかし、グローバルロック機構ですべてのリネーム操作をキューイングして順番に実行させ、効率が低い。
本開示は、ファイル移動方法、装置、電子機器、コンピュータ可読記憶媒体、及びコンピュータプログラム製品を提供する。
本開示の一態様によれば、ファイル移動要求を受信したことに応答して、前記要求に対応する実行すべき移動操作である第1移動操作に対応するソース経路及びターゲット経路を取得することと、前記第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、実行中の移動操作である第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較することと、比較結果に基づいて、前記第1移動操作を実行するかどうかを確定することとを含むファイル移動方法を提供する。
本開示の別の態様によれば、ファイル移動要求を受信したことに応答して、前記要求に対応する実行すべき移動操作である第1移動操作に対応するソース経路及びターゲット経路を取得するように構成される取得ユニットと、前記第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、実行中の移動操作である第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較するように構成される比較ユニットと、比較結果に基づいて、前記第1移動操作を実行するかどうかを確定するように構成される確定ユニットとを含むファイル移動装置を提供する。
本開示の別の態様によれば、少なくとも一つのプロセッサと、少なくとも一つのプロセッサに通信接続されたメモリとを含み、メモリには、少なくとも一つのプロセッサによって実行可能な命令が記憶され、当該命令は少なくとも一つのプロセッサによって実行されることにより、少なくとも一つのプロセッサに本開示に記載のファイル移動方法を実行させることができる電子機器を提供する。
本開示の別の態様によれば、コンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体であって、当該コンピュータ命令はコンピュータに本開示に記載のファイル移動方法を実行させるために用いられるコンピュータ可読記憶媒体を提供する。
本開示の別の態様によれば、プロセッサによって実行されると、本開示に記載のファイル移動方法を実現するコンピュータプログラムを含むコンピュータプログラム製品を提供する。
本開示の一つ又は複数の実施例によれば、実行すべき移動操作と実行中の移動操作とを経路比較することによって、「逆方向」操作がループを生成する可能性を回避し、ほとんどのシーンでファイル移動を実行する並行程度を大幅に向上させ、実行効率を向上させる。
理解すべきことは、この部分に説明される内容は、本開示の実施例の要点又は重要な特徴を識別することを意図しておらず、本開示の保護範囲を限定するためのものではないことである。本開示の他の特徴は、以下の明細書によって理解されやすくなる。
図面は、実施例を例示的に示し、明細書の一部を構成し、明細書の文字による説明とともに、実施例の例示的な実施形態を説明するために用いられる。図示の実施例は例示の目的のみであり、特許請求の範囲を限定するものではない。すべての図面において、同一の符号は、類似しているが必ずしも同じとは限らない要素を指す。
本開示の実施例による、本明細書で説明される様々な方法を実施することができる例示的なシステムを示す概略図である。 5つのノードを有するディレクトリツリー構造を示す概略図である。 図2に示すディレクトリツリー構造をファイル移動した後の概略図である。 図2に示すディレクトリツリー構造をファイル移動した後の他の概略図である。 本開示の実施例によるファイル移動方法を示すフローチャートである。 7つのノードを有する別のディレクトリツリー構造を示す概略図である。 本開示の実施例による第1移動操作に対応する経路と第2移動操作に対応する経路とを比較するフローチャートである。 本開示の実施例による第1移動操作に対応する経路と第2移動操作に対応する経路とを比較する他のフローチャートである。 図5に示すファイル移動方法を更に示すフローチャートである。 図6に示すディレクトリツリー構造をファイル移動した後の概略図である。 図5に示すファイル移動方法を更に示すフローチャートである。 本開示の例示的な実施例によるファイル移動方法を示すフローチャートである。 本開示の実施例によるファイル移動装置を示す構成ブロック図である。及び 本開示の実施例を実現するために使用できる例示的な電子機器を示す構成ブロック図である。
以下、図面に合わせて本開示の例示的な実施形態を説明して、それに含まれる本開示の実施例における様々な詳細が理解を助けるためので、それらは単なる例示的なものと考えられるべきである。したがって、当業者であれば、本開示の範囲から逸脱することなく、本明細書で説明された実施例に対して様々な変更及び修正を行うことができることを認識すべきである。同様に、明瞭と簡潔のために、以下の説明では公知の機能及び構造についての説明を省略する。
本開示では、特に明記しない限り、様々な要素を説明するための「第1」、「第2」などの用語の使用は、これらの要素の位置関係、シーケンス関係、又は重要性関係を限定することを意図していない。このような用語は、ある要素を別の要素と区別するためにのみ使用される。いくつかの例では、第1要素と第2要素は、この要素の同じ例を指すことができ、場合によっては、コンテキストの説明に基づいて、異なる例を指してもよい。
本開示の様々な例の説明で使用される用語は、特定の例を説明することのみを目的としており、限定することを意図していない。コンテキストにおいて別途に明確に示されていない限り、特に要素の数を限定しないならば、この要素は一つであってもよいし、複数であってもよい。また、本開示で使用される用語「及び/又は」は、リストされた項目のいずれか一つ及び全ての可能な組み合わせをカバーする。
以下、図面を参照して本開示の実施例について詳細に説明する。
図1は、本開示の実施例による、本明細書に記載された様々な方法及び装置を、その中で実施することができる例示的なシステム100の概略図である。図1を参照すると、このシステム100は、一つ又は複数のクライアントデバイス101、102、103、104、105と106、サーバ120、及び一つ又は複数のクライアントデバイスをサーバ120に結合する一つ又は複数の通信ネットワーク110を含む。クライアントデバイス101、102、103、104、105、106は、一つ又は複数のアプリケーションを実行するように構成することができる。
本開示の実施例では、サーバ120は、画像パディング方法を実行可能にする一つ又は複数のサービス又はソフトウェアアプリケーションを実行することができる。
いくつかの実施例では、サーバ120は、非仮想環境及び仮想環境を含むことができる他のサービス又はソフトウェアアプリケーションも提供することができる。いくつかの実施例では、これらのサービスは、webベースのサービス又はクラウドサービスとして提供することができ、例えば、ソフトウェア・アズ・ア・サービス(SaaS)モデルでクライアントデバイス101、102、103、104、105、及び/又は106のユーザに提供される。
図1に示す構成では、サーバ120は、サーバ120により実行される機能を実現する一つ又は複数のモジュールを含むことができる。これらのモジュールは、一つ又は複数のプロセッサで実行できるソフトウェアモジュール、ハードウェアモジュール、又はそれらの組み合わせを含むことができる。クライアントデバイス101、102、103、104、105及び/又は106を操作するユーザは、これらのモジュールが提供するサービスを利用するために、一つ又は複数のクライアントアプリケーションを用いてサーバ120とやり取りをすることができる。様々な異なるシステム構成が可能であり、システム100とは異なってもよいことを理解されたい。したがって、図1は、本明細書に記載された様々な方法を実施するためのシステムの一例であり、制限することを意図していない。
クライアントデバイス101、102、103、104、105、及び/又は106は、ファイル移動要求などを取得するために使用され得る。クライアントデバイスは、クライアントデバイスのユーザがクライアントデバイスとのやり取りを可能にするインタフェースを提供することができる。クライアントデバイスは、このインタフェースを介してユーザに情報を出力することもできる。図1では6つのクライアントデバイスしか図示していないが、当業者であれば理解できるように、本開示はいかなる数のクライアントデバイスに対応できる。
クライアントデバイス101、102、103、104、105及び/又は106は、携帯型ハンドヘルドデバイス、汎用コンピュータ(例えばパーソナルコンピュータやノートパソコン)、ワークステーションコンピュータ、ウェアラブルデバイス、ゲームシステム、シンクライアント、各種のメッセージングデバイス、センサ、又はその他の検知デバイスなどの様々なタイプのコンピューティングデバイスを含んでもよい。これらのコンピューティングデバイスは、Microsoft Windows、Apple iOS、類UNIX(登録商標)オペレーティングシステム、Linux(登録商標)又は類Linuxオペレーティングシステム(例えばGoogle Chrome OS)などの様々なタイプ及びバージョンのソフトウェアアプリケーションやオペレーティングシステムを実行したり、Microsoft Windows Mobile OS、iOS、Windows Phone、Androidなどの各種のモバイルオペレーティングシステムを含んだりすることができる。携帯用ハンドヘルドデバイスには、携帯電話、スマートフォン、タブレット、パーソナルデジタルアシスタント(PDA)などを含んでもよい。ウェアラブルデバイスは、ヘッドマウントディスプレイ及びほかのデバイスを含んでもよい。ゲームシステムは、様々なハンドヘルド型のゲームデバイス、インターネット対応のゲームデバイスなどを含んでもよい。クライアント装置は、インターネットInternet関連アプリケーション、通信アプリケーション(電子メールアプリケーションなど)、ショートメッセージサービス(SMS)アプリケーションなど、さまざまなアプリケーションを実行でき、さまざまな通信プロトコルを使用できる。
ネットワーク110は、当業者に知られている任意のタイプのネットワークであってもよく、それは、データ通信をサポートするために、複数の利用可能なプロトコルのいずれか一つ(TCP/IP、SNA、IPX等を含むがこれらに限定されない)を使用することができる。例として、一つ又は複数のネットワーク110は、ローカルエリアネットワーク(LAN)、イーサネットベースのネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(例えば、Bluetooth、WIFI)、及び/又はこれら及び/又はその他のネットワークの任意の組み合わせであってもよい。
サーバ120は、一つ又は複数の汎用コンピュータ、専用サーバコンピュータ(例えば、PC(パーソナルコンピュータ)サーバ、UNIXサーバ、ミッドレンジサーバ)、ブレードサーバ、大型コンピュータ、サーバクラスタ、又はその他の適切な配置及び/又は組み合わせを含んでもよい。サーバ120は、仮想オペレーティングシステムを実行する一つ又は複数の仮想マシン、又は仮想化に関わる他のコンピューティングアーキテクチャ(例えば、サーバの仮想記憶装置を維持するために仮想化された論理記憶デバイスの一つ又は複数のフレキシブルプール)を含んでもよい。様々な実施例において、サーバ120は、以下に説明する機能を提供する一つ又は複数のサービス又はソフトウェアアプリケーションを実行することができる。
サーバ120内の計算ユニットは、上述した任意のオペレーティングシステム及び任意の商用サーバオペレーティングシステムを含む一つ又は複数のオペレーティングシステムを実行することができる。サーバ120は、HTTPサーバ、FTPサーバ、CGIサーバ、JAVA(登録商標)サーバ、データベースサーバなど、様々な追加的なサーバアプリケーション及び/又は中間層アプリケーションのいずれか一つを実行することもできる。
いくつかの実施形態では、サーバ120は、クライアント装置101、102、103、104、105及び106のユーザから受信したデータフィード及び/又はイベントの更新を分析及び統合するための一つ又は複数のアプリケーションを含んでもよい。サーバ120は、クライアントデバイス101、102、103、104、105及び106の一つ又は複数のディスプレイデバイスを介してデータフィード及び/又はリアルタイムイベントを表示する一つ又は複数のアプリケーションを含むこともできる。
いくつかの実施形態では、サーバ120は、アドホックシステムのサーバであってもよいし、ブロックチェーンを組み込んだサーバであってもよい。サーバ120は、クラウドサーバでもよいし、人工知能技術を備えたスマートクラウドコンピューティングサーバやスマートクラウドホストでもよい。クラウドサーバはクラウドコンピューティングサービスシステム中のホスト製品であり、従来の物理ホストと仮想専用サーバ(VPS、Virtual Private Server)サービス中に存在する管理難度が大きく、業務拡張性が弱いという欠陥を解決する。
システム100は、一つ又は複数のデータベース130を含むこともできる。いくつかの実施例では、これらのデータベースはデータやその他の情報を記憶するために使用できる。例えば、データベース130内の一つ又は複数は、経路などの情報を記憶するために使用されることができる。データベース130は、さまざまな位置に配置することができる。例えば、サーバ120が使用するデータベースは、サーバ120のローカルにあってもよいし、サーバ120から離れて、ネットワーク又は専用の接続を介してサーバ120と通信してもよい。データベース130は、さまざまなタイプであってもよい。いくつかの実施例では、サーバ120が使用するデータベースは、リレーショナルデータベースなどのデータベースであってもよい。これらのデータベースのうちの一つ又は複数は、命令に応じてデータベースとデータベースからのデータを記憶、更新、検索できる。
いくつかの実施例では、データベース130のうちの一つ又は複数は、アプリケーションによって使用され、アプリケーションのデータを記憶することもできる。アプリケーションで使用されるデータベースは、キー値リポジトリ、対象リポジトリ、ファイルシステムでサポートされる汎用リポジトリなど、様々なタイプのデータベースであってもよい。
図1のシステム100は、本開示に基づいて説明した様々な方法及び装置を応用することができるように、様々な方法で構成し操作することができる。
図2は5つのノードを有するディレクトリツリー構造を示しており、このディレクトリツリー構造は、パラメータrename(1/22,1/21/22)の移動操作を経て、図3に示すようなディレクトリツリー構造を得ることができる。一方、完全に並行の移動操作は、ディレクトリツリー内でループを生成する可能性があり、例えば、パラメータがrename(1/21,1/22/32/21)及びrename(1/22,1/21/31/22)の移動操作の並行実行は、図4に示すようなディレクトリツリー構造を形成することがある。このとき、1ノード以外の図4の他のノードはアクセスできないため、データのアクセス不可及びループ形成の問題を引き起こす。
しかし、すべての並行移動操作がループを形成するわけではない。ファイル移動操作のパラメータは、入方向と出方向に分けることができ、入方向はターゲット経路に対応し、出方向はソース経路に対応する。一般に、「双方向」の移動操作のみがループを形成する可能性がある。「双方向」操作は、異なるファイル移動操作のパラメータの入方向と出方向が逆関係にあることを意味する。これにより、実行すべき移動操作のパラメータと、実行中の移動操作の対応するパラメータとを比較して、「双方向」の移動操作を回避することができ、ループの形成を更に防止することができる。
したがって、本開示の実施例によって、ファイル移動方法500を提供し、図5に示すように、ファイル移動要求を受信したことに応答して、当該要求に対応する実行すべき移動操作である第1移動操作に対応するソース経路及びターゲット経路を取得すること(ステップ510)と、第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、実行中の移動操作である第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較すること(ステップ520)と、比較結果に基づいて、第1移動操作を実行するかどうかを確定すること(ステップ530)とを含む。
本開示の実施例によるファイル移動方法は、実行すべき移動操作と実行中の移動操作とを経路比較することによって、「逆方向」操作がループを生成する可能性を回避し、ほとんどのシーンでファイル移動の実行の並行程度を大幅に向上させ、実行効率を向上させる。
いくつかの例では、ファイル移動操作は、リネーム操作とも呼ばれ、当該ファイルは、ディレクトリファイルなども含むことができる。ファイルシステムは、ローカルファイルシステム、分散式ファイルシステムなどとすることができ、例えば、HDFS、XFS、EXT2/3/4などを含むがそれらに限定されるものではない。
いくつかの例では、第1移動操作のパラメータに基づいてそのソース経路及びターゲット経路を確定することができる。一般に、ファイルシステムのメタデータは、共有の分散式メモリに記憶することができる。ファイル移動要求のパラメータは、当該ファイルシステムを使用するアプリケーションによって発行することができ、ファイルシステムサービスは、当該アプリケーションのパラメータを受信する。例として、ファイル移動要求は、クライアントにおいて当該アプリケーションを使用するユーザの関連操作によってトリガされてもよく、例えば、ファイルをドラッグすること、関連命令をタイプすることなどである。
いくつかのファイルシステムのファイル移動操作のパラメータは、ソース経路とターゲット経路という2つのパラメータを含むことができる。図6に示すように、例えばrename(1/21、1/22/32/21)は、ファイルノード21をノード1からノード32に移動させることである。また、いくつかのファイルシステムのファイル移動操作のパラメータは、ソース経路親ディレクトリノード(inode)、元ファイル名、ターゲット経路親ディレクトリノード及び宛先ファイル名という4つのパラメータを含んでもよく、すなわち、rename(source_parent_inode,name,dest_parent_inode,name)である。4つのパラメータの場合、その前の2つのパラメータはソース経路情報として表すことができ、3番目のパラメータはターゲット経路情報として表すことができる。図6に示すように、例えば、rename(1、21、32、21)というファイル移動パラメータが存在する場合、同様にファイルノード21をノード1からノード32に移動させることを示す。
もちろん、ファイル移動操作の他のパラメータ形式も可能であり、ここでは限定するものではない。
第1移動操作に対応するソース経路とターゲット経路の両方が存在すると確定された後、当該第1移動操作と第2移動操作とが「双方向」操作を構成する可能性があるかどうかを判断できる。
したがって、いくつかの実施例によれば、図7に示されるように、ステップ520は、第1移動操作に対応するソース経路における、移動すべきファイルノードを表すソースノードを確定すること(ステップ710)と、第2移動操作に対応するターゲット経路における、移動すべきファイルノードの移動後の親ノードを表すターゲットノードを確定すること(ステップ720)と、当該ソースノードと、当該ターゲットノードとを比較すること(ステップ730)とを含んでもよい。いくつかの実施例によれば、ステップ530は、当該ソースノードが当該ターゲットノードの親ノード又は祖先ノードであることに応答して、第1移動操作を実行しないことを含んでもよい。すなわち、当該第1移動操作は、第2移動操作と「双方向」操作を構成する可能性がある。
いくつかの例では、引き続き図6を参照して、並行して実行される2つのファイル移動操作があると仮定する。すなわちrename1(1、21、32、21)及びrename2(1、22、31、22)であり、ここでは、rename1は第2移動操作であり、rename2は第1移動操作である。rename2のソース経路とターゲット経路の両方が存在すると確定した後、rename2に対応するソース経路におけるソースノードである1を確定し、rename1に対応するターゲット経路におけるターゲットノード32を確定する。ノード1がノード32の祖先ノードであると判断し、rename2がrename1と「双方向」操作を構成する可能性がある場合に、rename2を実行しない。
いくつかの例では、図8に示すように、ステップ520は、第1移動操作に対応するターゲット経路における、移動すべきファイルノードの移動後の親ノードを表すターゲットノードを確定すること(ステップ810)と、第2移動操作に対応するソース経路における、移動すべきファイルノードを表すソースノードを確定すること(ステップ820)と、当該ターゲットノードと、当該ソースノードとを比較すること(ステップ830)とを含んでもよい。いくつかの実施例によれば、ステップ530は、前記ターゲットノードが前記ソースノードの子ノード又は子孫ノードであることに応答して、前記第1移動操作を実行しないことを含んでもよい。
いくつかの例では、引き続き図6を参照して、並行して実行される2つのファイル移動操作があると仮定する。すなわちrename1(1、21、32、21)及びrename2(1、22、31、22)であり、ここでは、rename1は第2移動操作であり、rename2は第1移動操作である。rename2のソース経路とターゲット経路の両方が存在すると確認した後、rename2に対応するターゲット経路におけるターゲットノードが31であると確定し、rename1に対応するソース経路におけるソースノードが1であると確定する。ノード31がノード1の子孫ノードであると判断し、rename2がrename1と「双方向」操作を構成する可能性がある場合に、rename2を実行しない。
いくつかの実施例では、第1移動操作に対応するターゲット経路におけるターゲットノードを、第2移動操作に対応するソース経路におけるソースノードと比較する操作と、第1移動操作に対応するソース経路におけるソースノードを、第2移動操作に対応するターゲット経路におけるターゲットノードと比較する操作とをいずれも実行してもよく、これにより、上述の両方の条件が満たされたときに当該第1移動操作を実行せず、ここでは限定しない。
いくつかの実施例では、図9に示すように、方法500は、前記第1移動操作を実行しないと確定したことに応答して、前記第1移動操作が存在するスレッドを第1記憶領域に格納すること(ステップ910)と、第2移動操作の実行が既に完了したかどうかを判断すること(ステップ920)と、第2移動操作の実行が既に完了したことに応答して、前記第1移動操作が存在するスレッドを第1記憶領域から除去すること(ステップ930)とを更に含んでもよい。
いくつかの例では、第1移動操作が存在するスレッドを第1記憶領域から除去した後、当該第1移動操作を実行するかどうかを再確定するために、第1移動操作に対応するソース経路及びターゲット経路が存在するかどうかを再確定することができる。
いくつかの例では、引き続き図6を参照すると、上述の実施例では、rename2を実行しないと確定した場合、rename2が存在するスレッド(又はプロセス)を第1キャッシュ領域に格納して、rename1の実行が完了した後に、当該rename2が実行可能であるかどうかを再判定することができる。rename1の実行が完了すると、ノード21/31は、図10に示すように、32ノードの下に移動する。
いくつかの実施例によれば、第1記憶領域は、キュー、スタックなどであってもよい。第1移動操作をキャッシュするために使用することができる他の領域も可能であり、ローカル記憶領域、クラウド記憶領域などを含むが、これらに限定されないことを理解されたい。
いくつかの実施例によれば、第2移動操作のソース経路及びターゲット経路における対応する経路は、比較のために第2記憶領域に格納されてもよく、第2移動操作の実行が完了したことに応答して、第2記憶領域における対応する経路が削除される。すなわち、第2移動操作の対応する経路は、他の並行して実行される移動操作と比較するために、第2記憶領域にマークされてもよい。そして、当該第2移動操作の実行が完了した後に、当該第2記憶領域においてそのマークを削除する。
例として、前記第1移動操作を実行すると確定した場合には、その対応するソース経路を第2記憶領域に格納してマークし、当該移動操作は第2移動操作に移行する。並行して実行する別の第1移動操作は、そのターゲット経路を、マークされたソース経路と比較して、当該別の第1移動操作を実行するかどうかを確定する。
対応的に、その対応するターゲット経路を第2記憶領域に格納してマークしてもよく、当該移動操作は第2移動操作、すなわち実行中の移動操作に移行する。並行して実行する別の第1移動操作(実行すべき移動操作)のソース経路を、このマークされたターゲット経路と比較し、当該別の第1移動操作を実行するかどうかを確定する。
従って、図11に示すように、方法500は、前記第1移動操作を実行すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を第2記憶領域に格納すること(ステップ1110)と、第1移動操作に対応するソース経路とターゲット経路が重複しているかどうかを確定すること(ステップ1120)と、第1移動操作に対応するソース経路とターゲット経路が重複していないことに応答して、第1移動操作を実行すること(ステップ1130)と、前記第1移動操作の実行が既に完了したことに応答して、第2記憶領域におけるソース経路及びターゲット経路のうちの少なくとも一方を除去すること(ステップ1140)とを更に含む。
前記移動すべき移動操作を実行すると確定した場合には、そのソース経路とターゲット経路とが重複しているかどうかを確定し、すなわち、そのターゲット経路とソース経路とを比較することによって、当該移動操作自体がループを形成する可能性があるかどうかを確定する。
いくつかの例では、ソース経路及びターゲット経路が重複していることは、ソース経路とターゲット経路のうちの一方の経路には、ルートノードを除く他のノードは、いずれも他方の経路に含まれることを指す。
いくつかの例では、前記第1移動操作を実行する前に、第2記憶領域に格納されていない経路を、第2記憶領域に格納されている経路と再び比較して、第1移動操作に対応するソース経路及びターゲット経路が重複しているかどうかを確定することができる。比較過程は、第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を、第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較する上述のプロセスのとおりであり、ここでは説明を省略する。
引き続き図10を参照すると、rename2(1、22、31、22)が実行可能かどうかを再判断する。そのパラメータ情報に基づいて、rename2のソース経路は1/22として表すことができ、ターゲット経路は1/22/32/21/31として表すことができ、ソース経路とターゲット経路は重複しており、rename2を実行しない。
図12は、本開示の例示的な実施例によるファイル移動方法のフローチャートである。図12に示すように、ファイル移動要求を受信すると(ステップ1201)、第1移動操作に対応するソース経路とターゲット経路を確定し(ステップ1202)、第1移動操作に対応するソース経路とターゲット経路の両方が存在するかどうかを確定する(ステップ1203)。両方が存在すると確定した場合には(ステップ1203、「はい」)、第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較し(ステップ1204)、比較結果に応じて前記第1移動操作を実行するかどうかを判断する(ステップ1205)。前記第1移動操作を実行しないと判断した場合(ステップ1205、「いいえ」)、第1移動操作が存在するスレッドを第1記憶領域に格納し(ステップ1206)、前記第2移動操作の実行が完了したかどうかを判断する(ステップ1207)。前記第2移動操作の実行が完了した後(ステップ1207、「はい」)、第1移動操作が存在するスレッドを、第1記憶領域から除去した(ステップ1208)、更に、そのソース経路及びターゲット経路が存在するかどうかを判断する。前記第1移動操作を実行すると判断した場合(ステップ1205、「はい」)、第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を第2記憶領域に格納し(ステップ1209)、続いてそのソース経路及びターゲット経路が重複しているかどうかを確定する(ステップ1210)。そのソース経路とターゲット経路とが重複していない場合には(ステップ1210、「いいえ」)、前記第1移動操作を実行する(ステップ1211)。前記第1移動操作の実行が完了した後、第2記憶領域におけるそのソース経路及びターゲット経路のうちの前記少なくとも一方を除去する(ステップ1212)。
いくつかの実施例によれば、第1移動操作に対応するソース経路及びターゲット経路のうちの前記少なくとも一方をマークすることと、第2移動操作の実行が既に完了したことに応答して、このマークに基づいて第1移動操作を第1記憶領域から除去することとを更に含んでもよい。
例示的には、第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を記憶してマークしてもよい。第2移動操作の実行が完了すると、前記マークによって、完了した移動操作と「逆」関係にある第1移動操作に通知することで、それを前記第1記憶領域から除去する。
いくつかの実施例によれば、第2移動操作の実行が完了したかどうかを判断することは、所定時間ごとに第2記憶領域を読み出して、第2移動操作の実行が既に完了したかどうかを判断することを含む。
例示的には、第1記憶領域に格納された第1移動操作が存在するスレッドは、所定時間ごとに第2記憶領域を読み出して、「逆」関係にある移動操作の実行が完了したかどうかを主動的に取得することができる。
本開示の実施例によれば、ファイル移動装置1300を更に提供し、図13に示すように、ファイル移動要求を受信したことに応答して、前記要求に対応する実行すべき移動操作である第1移動操作に対応するソース経路及びターゲット経路を取得するように構成される取得ユニット1310と、前記第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、実行中の移動操作である第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較するように構成される比較ユニット1320と、比較結果に基づいて、前記第1移動操作を実行するかどうかを確定するように構成される確定ユニット1330とを含む。
ここで、ファイル移動装置1300の上記各ユニット1310~1330の動作は、上述したステップ510~530の動作とそれぞれ同様であるので、ここでは説明を省略する。
本開示の例示的な実施例によれば、少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサに通信接続されたメモリとを含み、前記メモリには、前記少なくとも一つのプロセッサによって実行可能な命令が記憶され、前記命令は前記少なくとも一つのプロセッサによって実行されることにより、前記少なくとも一つのプロセッサに、以上に記載のファイル移動方法を実行させることができる電子機器を更に提供する。
本開示の例示的な実施例によれば、コンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体であって、前記コンピュータ命令は前記コンピュータに以上に記載のファイル移動方法を実行させるために用いられるコンピュータ可読記憶媒体を又は提供する。
本開示の例示的な実施例によれば、プロセッサによって実行されると、以上に記載のファイル移動方法を実現するコンピュータプログラムを含むコンピュータプログラム製品を又は提供する。
図14を参照すると、ここでは、本開示の様々な態様に適用可能なハードウェア装置の一例である、本開示のサーバ又はクライアントとして利用可能な電子機器1400の構成ブロック図について説明する。電子機器は、様々な形態のデジタル電子コンピュータ機器、例えば、ラップトップ型コンピュータ、デスクトップ型コンピュータ、ステージ、個人用デジタル補助装置、サーバ、ブレードサーバ、大型コンピュータ、その他の適切なコンピュータを示す。電子機器は更に、様々な形態の移動装置、例えば、個人デジタル処理、携帯電話、スマートフォン、着用可能な装置とその他の類似する計算装置を示してよい。本明細書に示される部品、これらの接続関係及びこれらの機能は例示的なものに過ぎず、本明細書に説明した及び/又は請求した本開示の実現を制限しない。
図14に示すように、機器1400は、計算ユニット1401を含み、それはリードオンリーメモリ(ROM)1402に記憶されるプログラムまた記憶ユニット1408からランダムアクセスメモリ(RAM)1403にロードされるプログラムによって、種々の適当な操作と処理を実行することができる。RAM 1403において、更に機器1400を操作するために必要な様々なプログラムとデータを記憶してよい。計算ユニット1401、ROM 1402及びRAM 1403はバス1404によって互いに接続される。入力/出力(I/O)インターフェース1405もバス1404に接続される。
機器1400における複数の部品はI/Oインターフェース1405に接続され、複数の部品は、入力ユニット1406、出力ユニット1407、記憶ユニット1408及び通信ユニット1409を含む。出力ユニット1406は、機器1400に情報を入力することが可能な任意のタイプの装置であってもよく、入力ユニット1406は、入力された数字又は文字情報を受信し、電子機器のユーザ設定及び/又は機能制御に関するキー信号入力を生成することができ、かつマウス、キーボード、タッチスクリーン、トラックボード、トラックボール、操作レバー、マイク及び/又はリモコンを含んでもよいが、これらに限定されない。出力ユニット1407は、情報を提示することが可能な任意のタイプの装置であってもよく、ディスプレイ、スピーカ、ビデオ/オーディオ出力端末、バイブレータ、及び/又はプリンタを含んでもよいが、これらに限定されない。記憶ユニット1408は磁気ディスク、光ディスクを含んでもよいが、これらに限定されない。通信ユニットト1409は、機器1400が例えば、インターネットであるコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して他の装置と情報/データを交換することを可能にし、モデム、ネットワークカード、赤外線通信装置、無線通信送受信機、及び/又はチップセット、例えば、ブルートゥース(登録商標)装置、1302.11装置、WiFi装置、WiMax装置、セルラー通信装置及び/又は類似物を含んでもよいが、これらに限定されない。
計算ユニット1401は処理及び計算能力を有する様々な汎用及び/又は専用の処理コンポーネントであってもよい。計算ユニット1401の例には、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、様々な専用人工知能(AI)計算チップ、様々な機械学習モデルアルゴリズムを実行する計算ユニット、デジタル信号プロセッサ(DSP)、及び任意の適当なプロセッサ、コントローラ、マイクロコントローラなどが含まれるがこれらに限定されないことである。計算ユニット1401は上記内容で説明した各方法と処理、例えば方法500を実行する。例えば、いくつかの実施例において、方法500はコンピュータソフトウェアプログラムとして実現してよく、機械可読媒体、例えば、記憶ユニット1408に有形に含まれる。一部の実施例において、コンピュータプログラムの一部又は全てはROM 1402及び/又は通信ユニット1409を経由して機器1400にロード及び/又はインストールされてよい。コンピュータプログラムがRAM 1403にロードされて計算ユニット1401によって実行される場合、以上で説明される方法500の一つ又は複数のステップを実行することできる。代替的に、別の実施例において、計算ユニット1401は他のいかなる適切な方式で(例えば、ファームウェアにより)方法500を実行するように構成されてよい。
本明細書で上述したシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、ロードプログラマブル論理デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせにおいて実現することができる。これらの様々な実施形態は、一つ又は複数のコンピュータプログラムに実施され、この一つ又は複数のコンピュータプログラムは少なくとも一つのプログラマブルプロセッサを含むプログラマブルシステムで実行し及び/又は解釈してもよく、このプログラマブルプロセッサは専用又は汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも一つの入力装置、少なくとも一つの出力装置からデータと命令を受信し、データと命令をこの記憶システム、この少なくとも一つの入力装置、この少なくとも一つの出力装置に送信してよいこと、を含んでもよい。
本開示の方法を実施するためのプログラムコードは、一つ又は複数のプログラミング言語の任意の組み合わせを用いて作成することができる。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供することができ、これによって、プログラムコードがプロセッサ又はコントローラによって実行されると、フローチャート及び/又はブロック図で規定された機能/操作が実行される。プログラムコードは完全に機械上で実行されても、部分的に機械で実行されても、独立ソフトウェアパッケージとして部分的に機械で実行されかつ部分的に遠隔機械上で実行されても、又は、完全に遠隔機械又はサーバー上で実行されてもよい。
本開示のコンテストにおいて、機械可読媒体は、命令実行システム、装置、また機器が使用するプログラム又は命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含むか記憶することができる有形の媒体であってもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子的、磁気的、光学的、電磁的、赤外線的、又は半導体システム、装置や機器、又は上記の内容の任意の適当な組み合わせを含んでもよいが、これらに限定されない。機械可読記憶媒体のより具体的な例は、一つ又は複数のワイヤに基づく電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶機器、磁気記憶機器、また上記の内容の任意の適当な組み合わせを含んでもよい。
ユーザとのインタラクションを提供するために、ここで述べたシステム及び技術をコンピュータ上で実行することができる。このコンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(Cathode Ray Tube、陰極線管)又はLCD(LiquidCrystal Crystal Display、液晶表示装置)モニタ)と、キーボードやポインティング装置を有し、ユーザはこのキーボードやポインティング装置(例えば、マウスやトラックボール)によって入力をコンピュータに提供することができる。他の種類の装置は、又は、ユーザとのインタラクションを提供するために利用することができる。例えば、ユーザに提供されるフィードバックは、任意の形のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよい。しかも、ユーザからの入力を、任意の形(ボイス入力、音声入力、触覚入力を含む)で受け付けてもよい。
ここで述べたシステムや技術は、バックステージ部材を含む計算システム(例えば、データサーバとして)や、ミドルウェア部材を含む計算システム(例えば、アプリケーションサーバ)や、フロントエンド部材を含む計算システム(例えば、グラフィカルユーザインタフェースやウェブブラウザを有するユーザコンピュータ、ユーザが、そのグラフィカルユーザインタフェースやウェブブラウザを通じて、それらのシステムや技術の実施形態とのインタラクティブを実現できる)、あるいは、それらのバックステージ部材、ミドルウェア部材、あるいはフロントエンド部材の任意の組み合わせからなる計算システムには実施されてもよい。システムの部材は、任意の形式や媒体のデジタルデータ通信(例えば、通信ネットワーク)により相互に接続されてもよい。通信ネットワークとしては、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットを含む。
コンピュータシステムは、クライアント側とサーバを含んでもよい。クライアント側とサーバは、一般的に相互に遠く離れ、通常、通信ネットワークを介してインタラクションを行う。互にクライアント側-サーバという関係を有するコンピュータプログラムを対応するコンピュータで運転することによってクライアント側とサーバの関係を生成する。
理解すべきことは、前述した様々な形態のフローを利用して、改めて順位付け、ステップを増加又削除してよいことである。例えば、本開示に記載された各ステップは、並列的に実行してもよいし、順次実行してもよいし、異なる順序で実行させてもよいし、本開示に開示された技術案が所望する結果を実現できれば、本文はこれに限定されないことである。
本開示の実施形態又は例は図面を参照して説明されたが、上記の方法、システム、及び装置は単なる例示的な実施形態又は例であり、本発明の範囲はこれらの実施形態又は例によって制限されるものではなく、授権後の特許請求の範囲及びその均等範囲のみによって限定されることを理解されたい。実施例又は例の様々な要素は省略されてもよく、又はそれらの均等要素によって代替されてもよい。また、各ステップは、本開示で説明した順序とは異なる順序で実行されてもよい。更に、実施形態又は例の様々な要素は、様々な方法で組み合わせられてもよい。重要なのは、技術の進化に伴い、ここで説明される多くの要素は、本開示の後に現れる同等の要素に置き換えることができるということである。

Claims (19)

  1. ファイル移動方法であって、
    ファイル移動要求を受信したことに応答して、前記要求に対応する実行すべき移動操作である第1移動操作に対応するソース経路及びターゲット経路を取得することと、
    前記第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、実行中の移動操作である第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較することと、
    比較結果に基づいて、前記第1移動操作を実行するかどうかを確定することとを含むファイル移動方法。
  2. 前記第1移動操作を実行しないと確定したことに応答して、前記第1移動操作が存在するスレッドを第1記憶領域に格納することと、
    前記第2移動操作の実行が既に完了したことに応答して、前記第1移動操作が存在するスレッドを前記第1記憶領域から除去することとを更に含む請求項1に記載の方法。
  3. 前記対応する経路は、第2記憶領域に格納され、前記第2移動操作の実行が既に完了したことに応答して、前記第2記憶領域における前記対応する経路は削除され、
    前記方法は、
    前記第1移動操作を実行すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を前記第2記憶領域に格納することと、
    前記第1移動操作に対応するソース経路とターゲット経路が重複しているかどうかを確定することと、
    前記第1移動操作に対応するソース経路とターゲット経路が重複していないことに応答して、前記第1移動操作を実行することと、
    前記第1移動操作の実行が既に完了したことに応答して、前記第2記憶領域における前記ソース経路及びターゲット経路のうちの前記少なくとも一方を除去することとを更に含む請求項1又は2に記載の方法。
  4. 前記の前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較することは、
    前記第1移動操作に対応するソース経路における、移動すべきファイルノードを表すソースノードを確定することと、
    前記第2移動操作に対応するターゲット経路における、移動すべきファイルノードの移動後の親ノードを表すターゲットノードを確定することと、
    前記ソースノードと、前記ターゲットノードとを比較することとを含む請求項1に記載の方法。
  5. 比較結果に基づいて、前記第1移動操作を実行するかどうかを確定することは、
    前記ソースノードが前記ターゲットノードの親ノード又は祖先ノードであることに応答して、前記第1移動操作を実行しないことを含む請求項4に記載の方法。
  6. 前記の前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較することは、
    前記第1移動操作に対応するターゲット経路における、移動すべきファイルノードの移動後の親ノードを表すターゲットノードを確定することと、
    前記第2移動操作に対応するソース経路における、移動すべきファイルノードを表すソースノードを確定することと、
    前記ターゲットノードと、前記ソースノードとを比較することとを含む請求項1又は4に記載の方法。
  7. 比較結果に基づいて、前記実行すべき移動操作を実行するかどうかを確定することは、
    前記ターゲットノードが前記ソースノードの子ノード又は子孫ノードであることに応答して、前記第1移動操作を実行しないことを含む請求項6に記載の方法。
  8. 前記第1移動操作に対応するソース経路及びターゲット経路のうちの前記少なくとも一方をマークすることと、
    前記第2移動操作の実行が既に完了したことに応答して、前記マークに基づいて前記第1移動操作を前記第1記憶領域から除去することとを更に含む請求項3に記載の方法。
  9. 前記第1記憶領域は、キュー、スタックからなるグループのうちの少なくとも一つを含む請求項1に記載の方法。
  10. ファイル移動装置であって、
    ファイル移動要求を受信したことに応答して、前記要求に対応する実行すべき移動操作である第1移動操作に対応するソース経路及びターゲット経路を取得するように構成される取得ユニットと、
    前記第1移動操作に対応するソース経路及びターゲット経路の両方が存在すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方と、実行中の移動操作である第2移動操作に対応するソース経路及びターゲット経路のうちの対応する経路とを比較するように構成される比較ユニットと、
    比較結果に基づいて、前記第1移動操作を実行するかどうかを確定するように構成される確定ユニットとを含むファイル移動装置。
  11. 前記第1移動操作を実行しないと確定したことに応答して、前記第1移動操作が存在するスレッドを第1記憶領域に格納するユニットと、
    前記第2移動操作の実行が既に完了したことに応答して、前記第1移動操作が存在するスレッドを前記第1記憶領域から除去するユニットとを更に含む請求項10に記載の装置。
  12. 前記対応する経路は、第2記憶領域に格納され、前記第2移動操作の実行が既に完了したことに応答して、前記第2記憶領域における前記対応する経路は削除され、
    前記装置は、
    前記第1移動操作を実行すると確定したことに応答して、前記第1移動操作に対応するソース経路及びターゲット経路のうちの少なくとも一方を前記第2記憶領域に格納するユニットと、
    前記第1移動操作に対応するソース経路とターゲット経路が重複しているかどうかを確定するユニットと、
    前記第1移動操作に対応するソース経路とターゲット経路が重複していないことに応答して、前記第1移動操作を実行するユニットと、
    前記第1移動操作の実行が既に完了したことに応答して、前記第2記憶領域における前記ソース経路及びターゲット経路のうちの前記少なくとも一方を除去するユニットとを更に含む請求項10又は11に記載の装置。
  13. 前記比較ユニットは、
    前記第1移動操作に対応するソース経路における、移動すべきファイルノードを表すソースノードを確定するユニットと、
    前記第2移動操作に対応するターゲット経路における、移動すべきファイルノードの移動後の親ノードを表すターゲットノードを確定するユニットと、
    前記ソースノードと、前記ターゲットノードとを比較するユニットとを含む請求項10に記載の装置。
  14. 前記第2確定ユニットは、
    前記ソースノードが前記ターゲットノードの親ノード又は祖先ノードであることに応答して、前記第1移動操作を実行しないユニットを含む請求項13に記載の装置。
  15. 前記比較ユニットは、
    前記第1移動操作に対応するターゲット経路における、移動すべきファイルノードの移動後の親ノードを表すターゲットノードを確定するユニットと、
    前記第2移動操作に対応するソース経路における、移動すべきファイルノードを表すソースノードを確定するユニットと、
    前記ターゲットノードと、前記ソースノードとを比較するユニットとを含む請求項10又は13に記載の装置。
  16. 前記第2確定ユニットは、
    前記ターゲットノードが前記ソースノードの子ノード又は子孫ノードであることに応答して、前記第1移動操作を実行しないユニットを含む請求項15に記載の装置。
  17. 電子機器であって、
    少なくとも一つのプロセッサと、
    前記少なくとも一つのプロセッサに通信接続されたメモリとを含み、
    前記メモリには、前記少なくとも一つのプロセッサによって実行可能な命令が記憶され、前記命令は前記少なくとも一つのプロセッサによって実行されることにより、前記少なくとも一つのプロセッサに請求項1~9のいずれか一項に記載の方法を実行させることができる電子機器。
  18. コンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体であって、前記コンピュータ命令は前記コンピュータに請求項1~9のいずれか一項に記載の方法を実行させるために用いられるコンピュータ可読記憶媒体。
  19. プロセッサによって実行されると、請求項1~9のいずれか一項に記載の方法を実現するコンピュータプログラムを含むコンピュータプログラム製品。
JP2022009873A 2021-04-22 2022-01-26 ファイル移動方法及び装置、電子機器並びに媒体 Active JP7368515B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110437229.1A CN113126928B (zh) 2021-04-22 2021-04-22 文件移动方法及装置、电子设备和介质
CN202110437229.1 2021-04-22

Publications (2)

Publication Number Publication Date
JP2022058752A true JP2022058752A (ja) 2022-04-12
JP7368515B2 JP7368515B2 (ja) 2023-10-24

Family

ID=76779481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022009873A Active JP7368515B2 (ja) 2021-04-22 2022-01-26 ファイル移動方法及び装置、電子機器並びに媒体

Country Status (5)

Country Link
US (1) US12019592B2 (ja)
EP (1) EP3995973A3 (ja)
JP (1) JP7368515B2 (ja)
KR (1) KR20220011193A (ja)
CN (1) CN113126928B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114679468B (zh) * 2022-05-25 2022-08-19 天津联想协同科技有限公司 文件传输方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039988A (ja) * 2008-08-08 2010-02-18 Hitachi Electronics Service Co Ltd ファイル管理方法、装置及びプログラム
JP2020184192A (ja) * 2019-05-08 2020-11-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5335737B2 (ja) * 2010-07-23 2013-11-06 レノボ・シンガポール・プライベート・リミテッド 動作環境の変更が可能なコンピュータ
US9858288B2 (en) * 2012-08-03 2018-01-02 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
TWI502384B (zh) * 2013-02-19 2015-10-01 Acer Inc 檔案追蹤方法及其所適用之網路通訊裝置
CN103942269B (zh) * 2014-03-26 2017-05-31 北京京东尚科信息技术有限公司 对文件系统进行操作的方法和装置
CN104166607B (zh) * 2014-09-04 2017-12-19 北京国双科技有限公司 用于备份数据库的数据处理方法及装置
CN105446789A (zh) * 2015-11-23 2016-03-30 上海斐讯数据通信技术有限公司 一种内置应用程序到安卓系统的方法及装置
US11379418B2 (en) * 2016-12-29 2022-07-05 Dropbox, Inc. File system warnings for moves of shared content items
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US10936541B2 (en) * 2018-08-29 2021-03-02 Red Hat, Inc. Preserving symbolic links and paths in a file system using an intermediate file system structure
CN110445837A (zh) * 2019-07-05 2019-11-12 视联动力信息技术股份有限公司 高并发集群系统及搭建方法、高并发请求处理方法及装置
CN112286876A (zh) * 2020-10-29 2021-01-29 深圳Tcl新技术有限公司 日志文件抓取方法、设备及计算机可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039988A (ja) * 2008-08-08 2010-02-18 Hitachi Electronics Service Co Ltd ファイル管理方法、装置及びプログラム
JP2020184192A (ja) * 2019-05-08 2020-11-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
工藤 正人 外: "資源共有を考慮したネットワーク資源管理基盤の検討", 電子情報通信学会技術研究報告, vol. 103, no. 577, JPN6023008854, 16 January 2004 (2004-01-16), JP, pages 103 - 108, ISSN: 0005102269 *
櫻庭 祐一, 現場で使える[最新]JAVA SE 7/8速攻入門, vol. 初版, JPN6023008853, 25 December 2015 (2015-12-25), JP, pages 55 - 57, ISSN: 0005102268 *
高安 美佐子, 学生・技術者のための ビッグデータ解析入門, vol. 第1版, JPN6023008852, 10 June 2014 (2014-06-10), JP, pages 12 - 13, ISSN: 0005102270 *

Also Published As

Publication number Publication date
US20220179832A1 (en) 2022-06-09
US12019592B2 (en) 2024-06-25
EP3995973A2 (en) 2022-05-11
KR20220011193A (ko) 2022-01-27
EP3995973A3 (en) 2022-07-20
CN113126928A (zh) 2021-07-16
JP7368515B2 (ja) 2023-10-24
CN113126928B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
US11138030B2 (en) Executing code referenced from a microservice registry
US8903943B2 (en) Integrating cloud applications and remote jobs
US20160197995A1 (en) Providing storage service to tenant in cloud storage environment
US11019156B1 (en) Automatic discovery and registration of service applications for files introduced to a user interface
JP2019522846A (ja) データベースプロビジョニングのためのリソース配分
US20230004606A1 (en) Data retrieval system and method
US10712913B2 (en) Event-based architecture for expand-collapse operations
US11212175B2 (en) Configuration management for cloud storage system and method
US20220318647A1 (en) Single framework for both streaming and on-demand inference
US11531526B1 (en) Creating portable serverless applications
JP2021511572A (ja) システム全体の制御とデータ探索の自動化を可能にするための視覚的および実行テンプレートの推奨
US10698722B2 (en) Virtual machine migration across cloud computing providers
US11599449B2 (en) Framework for UI automation based on graph recognition technology and related methods
US20220391748A1 (en) Method and system for application programming interface based container service for supporting multiple machine learning applications
JP2022058752A (ja) ファイル移動方法及び装置、電子機器並びに媒体
US11494184B1 (en) Creation of transportability container files for serverless applications
US11082520B2 (en) Process broker for executing web services in a system of engagement and system of record environments
US9690570B2 (en) Complex computer environment installation
CN109074357B (zh) 动态地管理服务的不同版本
US10552001B1 (en) Window switching for networked computing sessions
US10642580B1 (en) Simplifying and reusing visual programming graphs
US20220382601A1 (en) Configuration map based sharding for containers in a machine learning serving infrastructure
US11513833B1 (en) Event listener interface for container-based execution of serverless functions
US10678515B1 (en) Simplifying and reusing visual programming graphs
US20240118937A1 (en) Cloud-based resource throttling prediction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231012

R150 Certificate of patent or registration of utility model

Ref document number: 7368515

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150