(57)【要約】      （修正有）【課題】ファイルシステムディレクトリツリーにおけるトランザクション処理の衝突率を低減するトランザクション処理方法、電子機器、記憶媒体及びコンピュータプログラム製品を提供する。【解決手段】トランザクション処理方法は、各々に１つの親ノード識別子のデータを含む複数のシャードを含む、分散ファイルシステムの命名空間に記憶されているファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信し、操作要求を目標シャードに関連付けられたトランザクション操作文に変換し、トランザクション操作文に基づいて前記目標シャードを処理する。【選択図】図３
2022003538.tif 000002
【特許請求の範囲】
【請求項１】
各々に１つの親ノード識別子のデータを含む複数のシャードを含む、分散ファイルシステムの命名空間に記憶されているファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信することと、
前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することと、
前記トランザクション操作文に基づいて前記目標シャードを処理することとを含む、トランザクション処理方法。
【請求項２】
前記命名空間は、セマンティクス層及び記憶層を含み、前記記憶層には、前記ファイルシステムディレクトリツリーが記憶され、
前記の前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することは、
前記セマンティクス層で、前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することを含み、
前記の前記トランザクション操作文に基づいて前記目標シャードを処理することは、
前記記憶層で、前記トランザクション操作文に基づいて前記目標シャードを処理することを含む、請求項１に記載の方法。
【請求項３】
前記操作要求は、
前記目標シャードを示す親ノード識別子と、前記親ノード識別子に対応する親ノードの子ノードの名称とを含む、請求項１に記載の方法。
【請求項４】
前記操作要求は、作成要求を含み、
前記の前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することは、
前記子ノードの名称に基づいて、前記子ノードのインデックス番号を生成することと、
属性識別子と前記子ノードのインデックス番号とを含む挿入トランザクション文を生成することとを含み、
ここで、前記の前記トランザクション操作文に基づいて前記目標シャードを処理することは、
前記挿入トランザクション文に基づいて、前記子ノードのデータを前記目標シャードに追加することを含む、請求項３に記載の方法。
【請求項５】
前記子ノードのインデックス番号を生成した後に、
前記親ノード識別子と前記子ノードの名称とを含む更新トランザクション文を生成することを更に含み、
ここで、前記の前記トランザクション操作文に基づいて前記目標シャードを処理することは、
前記更新トランザクション文に基づいて、前記目標シャード内に前記親ノードの属性情報を更新することを更に含む、請求項４に記載の方法。
【請求項６】
前記操作要求は、ルックアップ要求を含み、
前記の前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することは、
前記子ノードの名称に基づいて、前記子ノードのインデックス番号を取得することと、
属性識別子と前記子ノードのインデックス番号とを含むルックアップトランザクション文を生成することとを含み、
ここで、前記の前記トランザクション操作文に基づいて前記目標シャードを処理することは、
前記ルックアップトランザクション文に基づいて、前記目標シャード内でルックアップして前記子ノードのデータを得ることを含む、請求項３に記載の方法。
【請求項７】
前記操作要求は、書き換え要求を含み、
前記書き換え要求は、第１親ノード識別子、第１子ノードの名称及び第２子ノードの名称を含み、
前記の前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することは、
前記第１親ノード識別子、前記第１子ノードの名称及び前記第２子ノードの名称を含む追加・削除トランザクション文を生成することを含み、
ここで、前記の前記トランザクション操作文に基づいて前記目標シャードを処理することは、
前記追加・削除トランザクション文に基づいて、前記第１親ノード識別子が示す目標シャードから前記第１子ノードのデータを削除し、前記第１親ノード識別子が示す目標シャードに前記第２子ノードのデータを追加することを含む、請求項３に記載の方法。
【請求項８】
前記操作要求は、書き換え要求を含み、
前記書き換え要求は、第２親ノード識別子、第３子ノードの名称、第３親ノード識別子及び第４子ノードの名称を含み、
前記の前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することは、
前記第２親ノード識別子と前記第３子ノードの名称を含む削除トランザクション文と、前記第３親ノード識別子と前記第４子ノードの名称を含む挿入トランザクション文とを生成することを含み、
ここで、前記の前記トランザクション操作文に基づいて前記目標シャードを処理することは、
前記削除トランザクション文に基づいて、前記第２親ノード識別子が示す目標シャードから前記第３子ノードのデータを削除し、前記挿入トランザクション文に基づいて、前記第３親ノード識別子が示す目標シャードに前記第４子ノードのデータを追加することを含む、請求項３に記載の方法。
【請求項９】
各々に１つの親ノード識別子のデータを含む複数のシャードを含む、分散ファイルシステムの命名空間に記憶されているファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信する受信モジュールと、
前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換する変換モジュールと、
前記トランザクション操作文に基づいて前記目標シャードを処理する処理モジュールとを含む、トランザクション処理装置。
【請求項１０】
前記命名空間は、セマンティクス層及び記憶層を含み、前記記憶層には、前記ファイルシステムディレクトリツリーが記憶され、
前記変換モジュールは、更に、前記セマンティクス層で、前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換し、
前記処理モジュールは、更に、前記記憶層で、前記トランザクション操作文に基づいて前記目標シャードを処理する、請求項９に記載の装置。
【請求項１１】
前記操作要求は、
前記目標シャードを示す親ノード識別子と、前記親ノード識別子に対応する親ノードの子ノードの名称とを含む、請求項９に記載の装置。
【請求項１２】
前記操作要求は、作成要求を含み、
前記変換モジュールは、
前記子ノードの名称に基づいて、前記子ノードのインデックス番号を生成する第１生成ユニットと、
属性識別子と前記子ノードのインデックス番号とを含む挿入トランザクション文を生成する第２生成ユニットとを含み、
前記処理モジュールは、更に、前記挿入トランザクション文に基づいて、前記子ノードのデータを前記目標シャードに追加する、請求項１１に記載の装置。
【請求項１３】
前記変換モジュールは、前記親ノード識別子と前記子ノードの名称とを含む更新トランザクション文を生成する第３生成ユニットを更に含み、
前記処理モジュールは、更に、前記更新トランザクション文に基づいて、前記目標シャード内に前記親ノードの属性情報を更新する、請求項１２に記載の装置。
【請求項１４】
少なくとも１つのプロセッサと、及び
前記少なくとも１つのプロセッサと通信接続されたメモリを含み、
ここで、前記メモリには、前記少なくとも１つのプロセッサによって実行可能なコマンドが格納されており、前記コマンドが前記少なくとも１つのプロセッサによって実行されると、請求項１〜８のいずれか１項に記載の方法を前記少なくとも１つのプロセッサに実行可能にすることを特徴とする電子機器。
【請求項１５】
コンピュータコマンドが格納されている非一時的コンピュータ読み取り可能な記憶媒体であって、
前記コンピュータコマンドは、請求項１〜８のいずれか１項に記載の方法を前記コンピュータに実行させる、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項１６】
コンピュータコマンドが含まれるコンピュータプログラム製品であって、
前記コンピュータコマンドがプロセッサに実行されると、請求項１〜８のいずれか１項に記載の方法を実行する、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンピュータ技術分野に関し、特にクラウドサービス及びクラウドストレージ分野に関する。
【背景技術】
【０００２】
階層型命名空間などの命名空間は、分散ファイルシステムのコア構成要素であり、その中にファイルシステムディレクトリツリーが記憶される。ファイルシステムディレクトリツリーは、通常、階層構造で構成され、複数のインデックスノードを含む。各インデックスノードは、１つの親ノードを有し、複数の子ノードを有してよい。この場合、ファイルシステムディレクトリツリーにおけるノードの関係が複雑になるため、ファイルシステムディレクトリツリーでの現在の操作は、通常、クロスノードのトランザクション操作である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本開示は、トランザクション処理方法、装置、電子機器及び読み取り可能な記憶媒体を提供する。
【課題を解決するための手段】
【０００４】
本開示の１つの態様によれば、トランザクション処理方法を提供し、各々に１つの親ノード識別子のデータを含む複数のシャードを含む、分散ファイルシステムの命名空間に記憶されているファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信することと、前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換することと、前記トランザクション操作文に基づいて前記目標シャードを処理することとを含む。
【０００５】
本開示の別の態様によれば、トランザクション処理装置を提供し、各々に１つの親ノード識別子のデータを含む複数のシャードを含む、分散ファイルシステムの命名空間に記憶されているファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信する受信モジュールと、前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換する変換モジュールと、前記トランザクション操作文に基づいて前記目標シャードを処理する処理モジュールとを含む。
【０００６】
本開示の別の態様によれば、少なくとも１つのプロセッサと、及び前記少なくとも１つのプロセッサと通信接続されたメモリを含む電子機器を提供し、ここで、前記メモリには、前記少なくとも１つのプロセッサによって実行可能なコマンドが格納されており、前記コマンドが前記少なくとも１つのプロセッサによって実行されると、上記方法を前記少なくとも１つのプロセッサに実行可能にする。
【０００７】
本開示の別の態様によれば、コンピュータコマンドが格納されている非一時的コンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータコマンドは、上記方法を前記コンピュータに実行させる。
【発明の効果】
【０００８】
本願の技術によれば、現在のファイルシステムディレクトリツリーにおけるクロスノードのトランザクション操作によって衝突率が高いという問題を解決し、トランザクション処理の衝突率を低減させる。
【０００９】
このセクションに記載された内容は、本開示の実施例のポイントや重要な特徴を認識することを意図するものではなく、また、本開示の範囲を限定するために使用されるものでもないことを理解されたい。本開示の他の特徴は、以下の明細書から容易に理解される。
【００１０】
図面は、本構成をよりよく理解するためのものであり、本開示の限定にならない。
【図面の簡単な説明】
【００１１】
【図１】本願の実施例に係るファイルシステムディレクトリツリーの構造概略図である。
【図２】本願の実施例において図１のファイルシステムディレクトリツリーに対応するデータテーブルを示す図である。
【図３】本願の実施例に係るトランザクション処理方法のフローチャートである。
【図４】本願の実施例におけるトランザクション処理プロセスの概略図である。
【図５】本願の実施例に係るトランザクション処理装置の構造概略図である。
【図６】本願の実施例に係るトランザクション処理方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本願の例示的な実施例を説明し、理解することに寄与する本願の実施例の様々な詳細が含まれるが、それらは、単に例示的なものであると考えるべきである。よって、当業者にとって、ここに記載の実施例に対し、本願の範囲や趣旨から逸脱することなく様々な変更や修正を行うことができることを認識すべきである。同様に、明確及び簡潔のために、以下の記載では、既知の機能や構造の記載を省略している。
【００１３】
本願の明細書及び特許請求の範囲における「第１」、「第２」などの用語は、特定の順序又は前後順を記述するために使用されるのではなく、類似の目標を区別するために使用される。そのように使用されるデータは、本明細書に記載される本願の実施例が、例えば、本明細書に図示又は記載されるもの以外の順序でも実施されるように、適切に交換されることが理解されるべきである。更に、「含む」及び「有する」という用語ならびにそれらの任意の変形は、非排他的な包含を意図しており、例えば、一連の工程又はユニットを含むプロセス、方法、システム、製品又は機器は、必ずしも明確に列挙されたそれらの工程又はユニットに限定されるものではなく、明確に列挙されていないものや、それらのプロセス、方法、製品又は機器に固有の他の工程又はユニットを含んでもよい。本明細書及び特許請求の範囲において、「及び／又は」は、連結された対象の少なくとも１つを意味する。
【００１４】
クラウドサービス（ｃｌｏｕｄ  ｓｅｒｖｉｃｅ）は、インターネットに基づく関連サービスの追加、利用及び対話モードであり、通常、インターネットを介した動的で容易に拡張可能な、多くの場合仮想化されたリソースの提供に関わる。クラウドとは、ネットワークやインターネットの一種の比喩の言い方である。クラウドサービスとは、一般に、ネットワークを介して、オンデマンドで容易に拡張可能な方式で、所望のサービスを取得することを意味する。このようなサービスは、ＩＴやソフトウェア、インターネットに関するものであってもよいし、他のサービスであってもよい。
【００１５】
クラウドストレージ（ｃｌｏｕｄ  ｓｔｏｒａｇｅ）は、ネットワークでオンラインストレージモードであり、即ち、専用のサーバではなく、通常は第３者によってホストされる複数の仮想サーバにデータを格納することである。クラウドストレージの概念は、クラウドコンピューティングと同様である。クラウドコンピューティング（ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ）は、ネットワークを介して、柔軟に拡張可能な共有の物理的又は仮想リソースプールにアクセスし、サーバ、オペレーティングシステム、ネットワーク、ソフトウェア、アプリケーション及び記憶機器などを含むリソースを、オンデマンドで自己サービング的に展開及び管理することができる技術的アーキテクチャを指す。クラウドコンピューティング技術により、人工知能、ブロックチェーンなどの技術的なアプリケーション、モデルトレーニングに対して効率的で強力なデータ処理能力を提供することができる。
【００１６】
図１及び図２を参照する。図１は、本願の実施例に係るファイルシステムディレクトリツリーの構造概略図であり、図２は、図１のファイルシステムディレクトリツリーに対応するデータテーブルを示す図である。図１及び図２に示すように、本願の実施例におけるファイルシステムディレクトリツリーは、階層構造をなし、複数のインデックスノードを含み、各インデックスノードが有する属性情報は、ノードの種類ｔｙｐｅ、ノードのサイズｓｉｚｅ、ノードの状態変更日ｍｔｉｍｅ、ノード下の子供の数ｎｌｉｎｋなどを含むが、これらに限定されない。これらの属性情報は、実現に応じて適宜拡張可能である。各インデックスノードは、１つの親ノードを有し、子ノードを複数有してもよい。各インデックスノードには、唯一のインデックスｉｎｏｄｅ番号を有する。
【００１７】
図１に示したファイルシステムディレクトリツリーを例にとると、このファイルシステムディレクトリツリーは、１０個のインデックスノードを含み、それぞれａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｆｉｌｅ１及びｆｉｌｅ２である。ここで、ｂの親ノードは、ａであり、ｂの子ノードは、ｃとｄであり、ｂの兄弟ノードは、ｅであり、ａｔｔｒは、属性を表し、具体的には親ノードの属性を表し、ａｔｔｒノードは、対外的に単独ノードとして現れ、即ちａ／ｂに対するリストｌｉｓｔ操作結果は、ｃとｄのみとなる。なお、図１に示したファイルシステムディレクトリツリーは、一例であり、本願の実施例におけるファイルシステムディレクトリツリーを限定しない。
【００１８】
本願の実施例は、現在のファイルシステムディレクトリツリーにおけるクロスノードのトランザクション操作によって衝突率が高いという問題を解決するために、ファイルシステムディレクトリツリーに対し、親ノード識別子（ｐａｒｅｎｔ＿ｉｄ）に従ってデータのシャード化を行うことを提案し、これにより、ファイルシステムディレクトリツリーが、複数のシャードを含み、各シャードが、１つの親ノード識別子のデータを含み、即ち、同じ親ノード識別子のデータが１つのシャードにある。ここで、親ノード識別子は、例えば、親ノードのインデックス番号である。例えば、図１に示す親ノードｂを例にとると、インデックス番号２のデータは、１つのシャードにあり、即ち図１の点線枠のデータは、１つのシャードにある。これにより、現在のファイルシステムディレクトリツリーに対する操作をシャード内操作に転ずることができ、シャード内は同じ親ノード識別子のデータがあるため、シャード内操作の衝突率が低くなり、トランザクション処理の衝突率が低下する。
【００１９】
選択的に、本願の実施例において、シャードについては、１つのコピーグループを提供し、即ち、１つのコピーグループ内で複数コピーを用いてマルチサービスマシンでサービスを提供し、１つのサービスマシンが故障した場合に他のサービスマシンでサービスを提供することで、可用性と信頼性を向上させることができる。
【００２０】
図３を参照する。図３は、本願の実施例に係るトランザクション処理方法のフローチャートである。該方法は、電子機器に応用される。図３に示すように、該方法は、以下のステップを含む。
【００２１】
ステップ３１において、ファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信する。
【００２２】
本実施例において、ファイルシステムディレクトリツリーは、分散ファイルシステムの命名空間に記憶されている。該命名空間は、例えば階層型命名空間である。ファイルシステムディレクトリツリーは、複数のシャードを含んでもよい。各シャードは、１つの親ノード識別子のデータを含む。即ち、同じ親ノード識別子のデータは、１つのシャードにある。
【００２３】
選択的に、上記操作要求は、限定ではないが、作成（ｃｒｅａｔｅ）要求、ルックアップ（ｌｏｏｋｕｐ）要求、書き換え（ｒｅｎａｍｅ）要求などを含むが、それらに限定されない。
【００２４】
１つの具体的な例において、分散ファイルシステムは、複数のクライアントを含む。上記操作要求は、ユーザから任意のクライアントを介して送信されてもよい。
【００２５】
ステップ３２において、操作要求を目標シャードに関連付けられたトランザクション操作文に変換する。
【００２６】
本実施例において、操作要求は、ファイルシステムディレクトリツリーにおける目標シャードを対象としており、この目標シャードは、１つのシャード又は複数のシャードであってもよい。これに基づき、操作要求が対象とする目標シャードに応じて、操作要求を目標シャードに関連付けられたトランザクション操作文に変換する。
【００２７】
ステップ３３において、トランザクション操作文に基づいて目標シャードを処理する。
【００２８】
なお、トランザクション操作文が目標シャードに関連付けられているので、トランザクション操作文に基づいて、対応する目標シャードを処理すればよい。
【００２９】
本願の実施例に係るトランザクション処理方法は、各々に１つの親ノード識別子のデータを含む複数のシャードを含むファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信し、操作要求を目標シャードに関連付けられたトランザクション操作文に変換し、トランザクション操作文に基づいて目標シャードを処理することにより、現在のファイルシステムディレクトリツリーに対する操作をシャード内操作に変換することができ、シャード内は同じ親ノード識別子のデータがあるため、シャード内操作の衝突率が低くなり、トランザクション処理の衝突率が低くなる。
【００３０】
選択的に、ファイルシステムディレクトリツリーにおけるシャードの柔軟な調整及び拡張を可能にするために、本願の実施例における命名空間は、セマンティクス層及び記憶層に分割される。記憶層には、ファイルシステムディレクトリツリーが記憶される。記憶層は、トランザクション、及び二次インデックスをサポートする分散型非関係型データベースＮｏＳＱＬ（Ｎｏｔ  Ｏｎｌｙ  Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）／高性能データベースＮｅｗＳＱＬ（Ｎｅｗ  Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）と理解され得る。セマンティクス層自体は、状態を持たず、記憶層を基にセマンティクス論理を提供する。
【００３１】
即ち、本願の実施例における命名空間は、実質的に、ファイルシステムディレクトリツリーの記憶と操作にそれぞれ対応する記憶とセマンティクスの２つの機能を提供する。記憶とは、ファイルシステムディレクトリツリーの内容が失われないことを意味し、操作とは、ｃｒｅａｔｅ、ｒｍｄｉｒ、ｌｏｏｋｕｐ及びｒｅｎａｍｅなどのディレクトリツリー操作をサポートすることを意味する。
【００３２】
選択的に、命名空間にセマンティクス層及び記憶層を含む場合、上記の操作要求を目標シャードに関連付けられたトランザクション操作文に変換することは、具体的に、セマンティクス層で、操作要求を目標シャードに関連付けられたトランザクション操作文に変換し、上記のトランザクション操作文に基づいて目標シャードを処理することは、具体的に、記憶層で、トランザクション操作文に基づいて目標シャードを処理することである。このように、記憶層に、拡張性、可用性、信頼性などを提供させ、トランザクション処理をサポートさせ、セマンティクス層に、セマンティクス論理を提供させることによって、記憶及び操作を分離して、記憶層内のシャードの柔軟な調整及び拡張を実現する。
【００３３】
図４に示されるように、クライアントによって開始される操作要求に対して、セマンティクス層において、セマンティクスサービスを用いて記憶層の幾つかのトランザクション操作に分解し、記憶層において、記憶サービスを用いて、対応するトランザクション操作を実行する。
【００３４】
本願の実施例において、親ノード識別子に従ってファイルシステムディレクトリツリーに対してデータのシャード化を行い、親キー、つまり、親ノード識別子（ｐａｒｅｎｔ＿ｉｄ，ｎａｍｅ）及び対応する子ノードの名称を通して操作要求を開始してもよい。選択的に、操作要求は、目標シャードを示す親ノード識別子と、前記親ノード識別子に対応する親ノードの下の子ノードの名称とを含んでもよい。
【００３５】
以下、具体的なトランザクション処理プロセスを参照しながら、本願を詳細に説明する。
【００３６】
１）トランザクションの作成：即ち、ファイルシステムディレクトリツリーにおける目標シャードに対する操作要求は、作成（ｃｒｅａｔｅ）要求を含む。
【００３７】
この１）では、作成要求には、少なくとも、親ノード識別子と、前記親ノード識別子に対応する親ノードの下の子ノードの名称を含む。ここで、親ノード識別子は、目標シャードを示す。子ノードの名称は、この子ノードのデータを目標シャードに追加することを示す。
【００３８】
更に、上記作成要求を受信すると、子ノードの名称に基づいて、子ノードのインデックス番号を生成し、属性識別子と子ノードのインデックス番号とを含む挿入トランザクション文を生成してもよい。その後、生成された挿入トランザクション文に基づいて、この子ノードのデータを目標シャードに追加して、作成プロセスを完了する。
【００３９】
選択的に、本実施例において、子ノードのインデックス番号を生成した後に、更新トランザクション文を更に生成する。該更新トランザクション文は、対応する親ノードの属性情報の更新を指示する。該更新トランザクション文は、少なくとも親ノード識別子と子ノードの名称とを含む。その後、生成された更新トランザクション文に基づいて、目標シャード内に、対応する親ノードの属性情報を更新してもよい。
【００４０】
このように、親ノード識別子を用いることで、シャードを柔軟に拡張することができる。
【００４１】
例えば、図１に示すファイルシステムディレクトリツリーを例に挙げると、親ノードａの下にｂを作成するプロセスとして、以下を含む。Ｓ１において、クライアントがｃｒｅａｔｅ（１，ｂ）のような作成要求を開始する。Ｓ２において、セマンティクス層でｂのために唯一のｉｎｏｄｅ番号２を生成する。Ｓ３において、セマンティクス層でｉｎｓｅｒｔ（２，／ＡＴＴＲ）のような挿入トランザクション文を生成して記憶層に送信し、記憶サービスを通して、ｉｎｏｄｅ番号１が示す目標シャードにｂのデータを追加する。Ｓ４において、セマンティクス層でｉｎｓｅｒｔ＿ｗｉｔｈ＿ｕｐｄａｔｅ（１，ｂ）のような更新トランザクション文を生成して記憶層に送信し、記憶サービスを通して、目標シャード内に、親ノードの属性情報を更新する。この操作は、暗黙的に（１，／ＡＴＴＲ）のｎｌｉｎｋ属性を追加し、更に（１，／ＡＴＴＲ）のｍｔｉｍｅなどの属性を更新する。なお、Ｓ３とＳ４は、２つの別々の操作であるため、Ｓ３とＳ４は、並列に動作してもよい。
【００４２】
２）ルックアップトランザクション：即ち、ファイルシステムディレクトリツリーにおける目標シャードに対する操作要求は、ルックアップ（ｌｏｏｋｕｐ）要求を含む。
【００４３】
この２）では、ルックアップ要求には、少なくとも、親ノード識別子と、前記親ノード識別子に対応する親ノードの下の子ノードの名称を含む。ここで、親ノード識別子は、目標シャードを示す。子ノードの名称は、この子ノードのデータを目標シャードからルックアップすることを示す。
【００４４】
更に、上記ルックアップ要求を受信すると、子ノードの名称に基づいて、子ノードのインデックス番号を取得し、属性識別子と子ノードのインデックス番号とを含むルックアップトランザクション文を生成する。その後、生成されたルックアップトランザクション文に基づいて、目標シャード内でルックアップしてこの子ノードのデータを得て、ルックアッププロセスを完了する。このように、親ノード識別子を用いることにより、ルックアッププロセスを迅速に実現することができる。
【００４５】
例えば、図１に示すファイルシステムディレクトリツリーを例にとると、親ノードａの下でｂをルックアップするプロセスとして、以下を含む。Ｓ１において、クライアントがｌｏｏｋｕｐ（１，ｂ）のようなルックアップ要求を開始する。Ｓ２において、セマンティクス層でｇｅｔ（１，ｂ）のようなルックアップトランザクション文を生成して記憶層に送信し、記憶サービスを通して、ｂのｉｎｏｄｅ番号２を取得する。Ｓ３において、セマンティクス層でｇｅｔ（２，／ＡＴＴＲ）のようなルックアップトランザクション文を生成して記憶層に送信し、記憶サービスを通して、ｉｎｏｄｅ番号１が示す目標シャードから、ｂのデータ、例えば属性情報を取得する。Ｓ４において、ｂの属性情報をクライアントに返信する。
【００４６】
３）書き換え要求：即ち、ファイルシステムディレクトリツリーにおける目標シャードに対する操作要求は、書き換え（ｒｅｎａｍｅ）要求を含む。
【００４７】
ｒｅｎａｍｅ操作は、１つのインデックスノードをファイルシステムディレクトリツリーの中の別の位置に移動することを指す。例えば、ｒｅｎａｍｅ（ａ／ｂ、ａ／ａａ）は、ノードａ／ｂをａ／ａａに移動することである。この例は、同一の親ノード下の移動であり、クロスシャードのトランザクションに関わらず、単一シャード内で直接的に完了され得る。また、例えば、ｒｅｎａｍｅ（ａ／ｂ，ａ／ｅ／ｂｂ）は、異なる親ノード下での移動を示し、クロスシャードのトランザクションに関わる。
【００４８】
選択的に、この３）では、ファイルシステムディレクトリツリーにおける目標シャードに対する操作要求は、書き換え要求を含む。クロスシャードのトランザクションに関わらない場合、該書き換え要求は、第１親ノード識別子、第１子ノードの名称及び第２子ノードの名称を含んでもよい。ここで、第１親ノード識別子は、目標シャードを示す。第１子ノードの名称は、この子ノードのデータを目標シャードから削除することを示す。第２子ノードの名称は、この子ノードのデータを目標シャードに追加することを示す。
【００４９】
更に、上記書き換え要求を受信すると、第１親ノード識別子、第１子ノードの名称及び第２子ノードの名称を含む追加・削除トランザクション文を生成し、追加・削除トランザクション文に基づいて、第１親ノード識別子が示す目標シャードから第１子ノードのデータを削除し、第１親ノード識別子が示す目標シャードに第２子ノードのデータを追加してもよい。このように、親ノード識別子を用いることで、シャードを柔軟に調整することができる。
【００５０】
例えば、図１に示すファイルシステムディレクトリツリーを例にとると、親ノードａの下でｂを削除し、ａａを追加するプロセスは、以下を含む。Ｓ１において、クライアントがｒｅｎａｍｅ（１，ｂ，１，ａａ）のような書き換え要求を開始する。Ｓ２において、ｉｎｓｅｒｔ＿ｗｉｔｈ＿ｄｅｌｅｔｅ（１，ｂ，１，ａａ）のような追加・削除トランザクション文をセマンティクス層で生成し、記憶層に送信することで、記憶サービスを通して、ｉｎｏｄｅ番号１が示す目標シャードにおいて、ｂの削除及びａａの追加の操作を実現する。
【００５１】
選択的に、クロスシャードのトランザクションに関わる場合、該書き換え要求は、第２親ノード識別子、第３子ノードの名称、第３親ノード識別子及び第４子ノードの名称を含んでもよい。ここで、第２親ノード識別子、及び第３親ノード識別子は、目標シャードを示す。第３子ノードの名称は、この子ノードのデータを対応する目標シャードから削除することを示す。第４子ノードの名称は、この子ノードのデータを対応する目標シャードに追加することを示す。
【００５２】
更に、上記書き換え要求を受信すると、第２親ノード識別子と第３子ノードの名称を含む削除トランザクション文と、第３親ノード識別子と第４子ノードの名称を含む挿入トランザクション文とを生成し、この削除トランザクション文に基づいて、第２親ノード識別子が示す目標シャードから第３子ノードのデータを削除し、この挿入トランザクション文に基づいて、第３親ノード識別子が示す目標シャードに第４子ノードのデータを追加してもよい。このように親ノード識別子を用いることで、シャードを柔軟に調整することができる。
【００５３】
例えば、図１に示すファイルシステムディレクトリツリーを例にとると、親ノードａの下からｂを削除し、親ノードｅにａａを追加するプロセスは、以下を含む。Ｓ１において、クライアントがｒｅｎａｍｅ（１，ｂ，７，ｂｂ）のような書き換え要求を開始する。Ｓ２において、セマンティクス層でｄｅｌｅｔｅ（１，ｂ）のような削除トランザクション文を生成し、ｉｎｓｅｒｔ（７，ｂｂ）のような挿入トランザクション文を生成して、それらを記憶層に送信し、記憶サービスを通して、ｉｎｏｄｅ番号１が示す目標シャードではｂを削除する操作、ｉｎｏｄｅ番号７が示す目標シャードではｂｂを追加する操作を実現する。
【００５４】
図５を参照し、図５は、本願の実施例に係るトランザクション処理装置の構造概略図である。図５に示すように、該トランザクション処理装置５０は、各々に１つの親ノード識別子のデータを含む複数のシャードを含む、分散ファイルシステムの命名空間に記憶されているファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信する受信モジュール５１と、前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換する変換モジュール５２と、前記トランザクション操作文に基づいて前記目標シャードを処理する処理モジュール５３とを含む。
【００５５】
選択的に、前記命名空間は、セマンティクス層及び記憶層を含み、前記記憶層には、前記ファイルシステムディレクトリツリーが記憶される。前記変換モジュール５２は、更に、前記セマンティクス層で、前記操作要求を前記目標シャードに関連付けられたトランザクション操作文に変換する。前記処理モジュール５３は、更に、前記記憶層で、前記トランザクション操作文に基づいて前記目標シャードを処理する。
【００５６】
選択的に、前記操作要求は、前記目標シャードを示す親ノード識別子と、前記親ノード識別子に対応する親ノードの子ノードの名称とを含む。
【００５７】
選択的に、前記操作要求は、作成要求を含む。前記変換モジュール５２は、前記子ノードの名称に基づいて、前記子ノードのインデックス番号を生成する第１生成ユニットと、属性識別子と前記子ノードのインデックス番号とを含む挿入トランザクション文を生成する第２生成ユニットとを含む。前記処理モジュール５３は、更に、前記挿入トランザクション文に基づいて、前記子ノードのデータを前記目標シャードに追加する。
【００５８】
選択的に、前記変換モジュール５２は、前記親ノード識別子と前記子ノードの名称とを含む更新トランザクション文を生成する第３生成ユニットを更に含む。前記処理モジュール５３は、更に、前記更新トランザクション文に基づいて、前記目標シャード内に前記親ノードの属性情報を更新する。
【００５９】
選択的に、前記操作要求は、ルックアップ要求を含む。前記変換モジュール５２は、前記子ノードの名称に基づいて、前記子ノードのインデックス番号を取得する取得ユニットと、属性識別子と前記子ノードのインデックス番号とを含むルックアップトランザクション文を生成する第４生成ユニットとを含む。前記処理モジュール５３は、更に、前記ルックアップトランザクション文に基づいて、前記目標シャード内でルックアップして前記子ノードのデータを得る。
【００６０】
選択的に、前記操作要求は、書き換え要求を含む。前記書き換え要求は、第１親ノード識別子、第１子ノードの名称及び第２子ノードの名称を含む。前記変換モジュール５２は、
前記第１親ノード識別子、前記第１子ノードの名称及び前記第２子ノードの名称を含む追加・削除トランザクション文を生成する第５生成ユニットを含む。前記処理モジュール５３は、更に、前記追加・削除トランザクション文に基づいて、前記第１親ノード識別子が示す目標シャードから前記第１子ノードのデータを削除し、前記第１親ノード識別子が示す目標シャードに前記第２子ノードのデータを追加する。
【００６１】
選択的に、前記操作要求は、書き換え要求を含む。前記書き換え要求は、第２親ノード識別子、第３子ノードの名称、第３親ノード識別子及び第４子ノードの名称を含む。前記変換モジュール５２は、前記第２親ノード識別子と前記第３子ノードの名称を含む削除トランザクション文と、前記第３親ノード識別子と前記第４子ノードの名称を含む挿入トランザクション文とを生成する第６生成ユニットを含む。前記処理モジュール５３は、更に、前記削除トランザクション文に基づいて、前記第２親ノード識別子が示す目標シャードから前記第３子ノードのデータを削除し、前記挿入トランザクション文に基づいて、前記第３親ノード識別子が示す目標シャードに前記第４子ノードのデータを追加する。
【００６２】
なお、本願の実施例に係るトランザクション処理装置５０は、上記図３に示す方法実施例で実現される各プロセスを実現可能であり、同じ有益な技術効果を奏することもでき、重複を避けるために、ここでは繰り返して記載しない。
【００６３】
本願の実施例によれば、本願は、電子機器及び読み取り可能な記憶媒体を更に提供する。
【００６４】
図６は、本願の実施例のトランザクション処理方法に係る電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図される。電子機器はまた、パーソナルデジタルプロセシング、セルラー電話、スマートフォン、ウェアラブルデバイス、及び他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表してもよい。本明細書に示される構成要素、それらの接続及び関係、並びにそれらの機能は、単なる例であり、本明細書に記載及び／又は特許請求される本願の実現を限定することを意図しない。
【００６５】
図６に示すように、該電子機器は、１又は複数のプロセッサ６０１、メモリ６０２、及び高速インターフェースと低速インターフェースを含む、各構成要素を接続するためのインターフェースを含む。各構成要素は、異なるバスで相互に接続され、共通のマザーボード上に実装されてもよいし、必要に応じて他の形態で実装されてもよい。プロセッサは、インターフェースに結合されたディスプレイデバイスなどの外部入出力装置にＧＵＩのグラフィカル情報を表示するために、メモリ内又はメモリ上に記憶されたコマンドを含む、電子機器内で実行されるコマンドを処理する。他の実施形態では、複数のプロセッサ及び／又は複数のバスが、必要に応じて、複数のメモリ及び複数のメモリとともに使用され得る。同様に、複数の電子機器が接続され得、各機器が必要な動作の一部を提供するようにしてもよい（例えば、サーバアレイ、ブレードサーバの集合、マルチプロセッサシステムなどとしてもよい）。図６では、１つのプロセッサ６０１を例に挙げている。
【００６６】
メモリ６０２は、本願において提供される非一時的コンピュータ読み取り可能な記憶媒体である。ここで、前記メモリは、少なくとも１つのプロセッサによって実行されるコマンドが格納されている。それによって、前記少なくとも１つのプロセッサは、本願において提供されるトランザクション処理方法を実行する。本願の非一時的コンピュータ読み取り可能な記憶媒体は、本願において提供されるトランザクション処理方法をコンピュータに実行させるためのコンピュータコマンドを記憶する。
【００６７】
非一時的コンピュータ読み取り可能な記憶媒体としてのメモリ６０２は、本願の実施例におけるトランザクション処理方法に対応するプログラムコマンド／モジュール（例えば、図５に示す受信モジュール５１、変換モジュール５２及び処理モジュール５３）などの非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能プログラム及びモジュールなどを記憶するために使用され得る。プロセッサ６０１は、メモリ６０２に格納された非一時的ソフトウェアプログラム、コマンド及びモジュールを実行することにより、サーバの各種機能アプリケーションやデータ処理を実行し、即ち、上記方法の実施例におけるトランザクション処理方法を実現する。
【００６８】
メモリ６０２は、オペレーティングシステム、少なくとも１つの機能に必要なアプリケーションを記憶することができるプログラム記憶領域と、トランザクション処理に係る電子機器の使用に応じて作成されたデータなどを記憶することができるデータ記憶領域とを含む。また、メモリ６０２は、高速ランダムアクセスメモリを含んでもよく、また、少なくとも１つの磁気ディスクメモリデバイス、フラッシュメモリデバイス、又は他の非一時的ソリッドステートメモリデバイスなどの非一時的メモリを含んでもよい。一部の実施形態では、メモリ６０２は、選択的にで、プロセッサ６０１に対して遠隔に配置されたメモリを含む。これらの遠隔メモリは、ネットワークを介してトランザクション処理に係る電子機器に接続される。上記ネットワークの例としては、インターネット、イントラネット、ローカルエリアネットワーク、移動体通信ネットワーク、及びこれらの組み合わせが挙げられるが、これらに限定されない。
【００６９】
トランザクション処理方法に係る電子機器は、入力装置６０３と出力装置６０４とを更に含んでもよい。プロセッサ６０１、メモリ６０２、入力装置６０３及び出力装置６０４は、バス又は他の方式で接続され、図６では、バスを介して接続される例が示される。
【００７０】
タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、１つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置などの入力装置６０３は、入力された数字又は文字情報を受信し、トランザクション処理に係る電子機器のユーザ設定及び機能制御に関するキー信号入力を生じる。出力装置６０４は、ディスプレイ装置、補助照明装置（例えば、ＬＥＤ）、及び触覚フィードバック装置（例えば、振動モータ）などを含む。該表示装置は、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ディスプレイ、及びプラズマディスプレイを含むが、これらに限定されない。一部の実施形態では、表示装置は、タッチスクリーンであってもよい。
【００７１】
ここに記載するシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、及び／又はそれらの組み合わせにおいて実現される。これらの様々な実施形態は、記憶システム、少なくとも１つの入力装置、及び少なくとも１つの出力装置からデータ及びコマンドを受信し、該記憶システム、該少なくとも１つの入力装置、及び該少なくとも１つの出力装置にデータ及びコマンドを送信することができる専用又は汎用のプログラマブルプロセッサである少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行及び／又は解釈可能な１つ又は複数のコンピュータプログラムで実現することを含む。
【００７２】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる）は、プラグラマブルプロセッサの機械コマンドを含み、これらのコンピュータプログラムは、高レベルのプロセス及び／又はオブジェクト指向プログラミング言語、及び／又はアセンブリ／機械言語で実現される。本明細書で使用される場合、用語「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」は、機械読み取り可能な信号として機械コマンドを受信する機械読み取り可能な媒体を含む、プラグラマブルプロセッサに機械コマンド及び／又はデータを提供するための任意のコンピュータプログラム製品、デバイス、及び／又は装置（例えば、磁気ディスク、光学ディスク、メモリ、プログラム可能論理デバイス（ＰＬＤ））を指す。用語「機械読み取り可能な信号」は、機械コマンド及び／又はデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００７３】
ユーザとの対話を提供するために、本明細書に記載されたシステム及び技術は、ユーザに情報を表示するための表示装置（例えば、ＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタ）と、ユーザがコンピュータに入力を提供することができるキーボード及びポインティングデバイス（例えば、マウス又はトラックボール）とを有するコンピュータ上で実施される。他の種類の装置を使用して、ユーザとの対話を提供してもよい。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック）であってもよい。ユーザからの入力は、音入力、音声入力、又は触覚入力を含む任意の形態で受信される。
【００７４】
ここに記載のシステム及び技術は、バックエンド構成要素を含むコンピューティングシステム（例えば、データサーバとして）、又はミドルウェア構成要素を含むコンピューティングシステム（例えば、アプリケーションサーバ）、又はフロントエンド構成要素を含むコンピューティングシステム（例えば、ユーザが本明細書に記載のシステム及び技術の実施形態と相互作用するグラフィカルユーザインターフェース又はウェブブラウザを有するユーザコンピュータ）、又はそのようなバックエンド構成要素、ミドルウェア構成要素、又はフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実施される。システムの構成要素は、任意の形式又は媒体（例えば、通信ネットワーク）のデジタルデータ通信によって互いに接続される。通信ネットワークとしては、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどが挙げられる。
【００７５】
コンピュータシステムは、クライアント及びサーバを含む。クライアント及びサーバは、一般に、互いから離れており、通常、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ関係を有するコンピュータプログラムによって生成される。サーバは、分散システムのサーバ又はブロックチェーンを結合したサーバであってもよい。
【００７６】
本願の実施例の技術手段によれば、各々に１つの親ノード識別子のデータを含む複数のシャードを含むファイルシステムディレクトリツリーの中の目標シャードに対する操作要求を受信し、操作要求を目標シャードに関連付けられたトランザクション操作文に変換し、トランザクション操作文に基づいて目標シャードを処理する。これにより、現在のファイルシステムディレクトリツリーに対する操作をシャード内操作に変換することができ、シャード内は同じ親ノード識別子のデータがあるため、シャード内操作の衝突率が低くなり、トランザクション処理の衝突率が低くなる。
【００７７】
上記に示された様々な形態のフローが、ステップの順序変更、追加、又は削除のために使用されることが理解されるべきである。例えば、本願に記載された各ステップは、並列に実行されても、順次的に実行されても、異なる順序で実行されてもよく、本願に開示された技術的解決手段の所望の結果を実現できる限り、本明細書ではこれについて限定しない。
【００７８】
上述した具体的な実施形態は、本願の保護範囲への制限にならない。当業者にとって、設計の要求や他の要素によって様々な修正、組み合わせ、サブ組み合わせ及び置換を行うことができることは、明らかである。本願の趣旨や原則内に為した修正、均等置換及び改良などは、すべて本願の保護範囲に含まれるべきである。
【図１】
2022003538.tif 000003
【図２】
2022003538.tif 000004
【図３】
2022003538.tif 000005
【図４】
2022003538.tif 000006
【図５】
2022003538.tif 000007
【図６】
2022003538.tif 000008