JP6880131B2 - データ処理用の方法、装置及びシステム - Google Patents

データ処理用の方法、装置及びシステム Download PDF

Info

Publication number
JP6880131B2
JP6880131B2 JP2019161974A JP2019161974A JP6880131B2 JP 6880131 B2 JP6880131 B2 JP 6880131B2 JP 2019161974 A JP2019161974 A JP 2019161974A JP 2019161974 A JP2019161974 A JP 2019161974A JP 6880131 B2 JP6880131 B2 JP 6880131B2
Authority
JP
Japan
Prior art keywords
node
time interval
binary tree
value
access request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019161974A
Other languages
English (en)
Other versions
JP2020102189A (ja
Inventor
ソン,シュアンヤン
ニウ,シャンフイ
リ,リー
リャン,リンジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2020102189A publication Critical patent/JP2020102189A/ja
Application granted granted Critical
Publication of JP6880131B2 publication Critical patent/JP6880131B2/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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • 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
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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]
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

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

Description

本願の実施形態は、コンピュータ技術の分野に関し、具体的には、データ処理用の方法、装置及びシステムに関する。
ファイルシステムは、コンピュータ分野のデータストレージ形式として、あらゆる分野のコンピュータアプリケーションシステムで長い間使用されてきたが、データボリュームの爆発的な増加に伴い、コンピュータクラスタに基づく分散ファイルシステムが出現した。このような大規模な分散ファイルシステムの設計では、ファイルシステム全体のメタ情報を管理するために別個のメタデータ処理ノードが必要であり、ファイルまたはディレクトリの数が十億ひいては百億級に達すると、メタデータノードの負荷がシステムの最大のボトルネックになる。既存の負荷分散方法は、各メタデータサーバが担当するサブディレクトリ数を固定配置することから、ハッシュテーブルを介してマッピングを行うことまで、すべて負荷分散を行うために効果的な方法である。また、オープンソースの分散ファイルシステムでは、動的サブツリーパーティショニングの方法も提案されている。これは、ファイルシステム内の各ディレクトリのアクセス負荷を監視することにより、各メタデータサーバが担当するサブディレクトリツリーを動的に調整する方法である。
これらの方法は絶え間ない実践を通じて発展してきたが、それぞれに独自の欠陥と適用範囲がある。そのうち、静的配置の方法は、データアクセスの位置が固定のシナリオには適せず、異常な状況への対応も比較的に欠如している。ハッシュテーブルマッピングの方法は、データの分布が固定であるシナリオ、または環境が頻繁に変化するシナリオには適しない。また、動的パーティショニングの方法は、システムの負荷のみを監視し、行ったパーティショニングと遷移の決定は必ずしも正確であるとは限らず、システムの負荷レベルを完全に描き出すことはできない。
本願の実施形態は、データ処理用の方法、装置及びシステムを提供する。
第1の側面においては、本願の実施形態は、クライアント側に応用されるデータ処理用の方法を提供する。当該方法は、アクセス要求の受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定することと、管理サーバ側から予め設定された完全二分木を取得することであって、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられることと、第1の時間間隔に従って完全二分木からターゲットパスを選択することと、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信することとを含む。
幾つかの実施形態においては、第1の時間間隔に従って完全二分木からターゲットパスを選択することは、完全二分木の中のノードに対して、第1の時間間隔が当該ノードの値よりも小さい場合、当該ノードの所定の側の子ノードをターゲットノードとして決定することと、決定されたターゲットノードからターゲットパスを構成することとを含む。
幾つかの実施形態においては、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信することは、予め設定されたコンシステントハッシュリングを使用して、ターゲットパスのリーフノードがマッピングするターゲットメタデータサーバを決定することと、アクセス要求をターゲットメタデータサーバに送信することとを含む。
第2の側面においては、本願の実施形態は、メタデータサーバ側に応用されるデータ処理用の方法を提供する。当該方法は、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定することであって、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられることと、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定することと、アクセス要求に従ってアクセス結果を照会し、アクセス結果をクライアント側に送信することと、完全二分木の中のノードの値の変更量を管理サーバ側に送信することとを含む。
幾つかの実施形態においては、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定することは、第2の時間間隔の第1の重み付値を、ターゲットパス上のノードの値の減少量として確定することであって、ここで、第1の重み付値は、第2の時間間隔と所定の第1の重みとの積であることと、第2の時間間隔の第2の重み付値は、ターゲットパスの対称パス上のノードの値の増加量として確定することであって、ここで、第2の重み付値は、第2の時間間隔と所定の第2の重みの積であることとを含む。
第3の側面においては、本願の実施形態は、管理サーバに応用されるデータ処理用の方法を提供する。当該方法は、少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って完全二分木を更新することであって、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられることと、クライアント側によって送信された、完全二分木を取得する要求の受信に応答して、完全二分木をクライアント側に送信することとを含む。
第4の側面においては、本願の実施形態は、クライアント側に応用されるデータ処理用の装置を提供する。当該装置は、アクセス要求の受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定するように配置されている第1の計時ユニットと、管理サーバ側から予め設定された完全二分木を取得する取得ユニットであって、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されている取得ユニットと、第1の時間間隔に従って完全二分木からターゲットパスを選択するように配置されている選択ユニットと、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信するように配置されている第1の送信ユニットとを含む。
幾つかの実施形態においては、選択ユニットは、完全二分木の中のノードに対して、第1の時間間隔が当該ノードの値よりも小さい場合、当該ノードの所定の側の子ノードをターゲットノードとして決定し、決定されたターゲットノードからターゲットパスを構成するように更に配置されている。
幾つかの実施形態においては、第1の送信ユニットは、予め設定されたコンシステントハッシュリングを使用して、ターゲットパスのリーフノードがマッピングするターゲットメタデータサーバを決定し、アクセス要求をターゲットメタデータサーバに送信するように更に配置されている。
第5の側面においては、本願の実施形態は、メタデータサーバ側に応用されるデータ処理用の装置を提供する。当該装置は、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定する第2の計時ユニットであって、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されている第2の計時ユニットと、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定するように配置されている確定ユニットと、アクセス要求に従ってアクセス結果を照会し、アクセス結果をクライアント側に送信するように配置されている第2の送信ユニットと、完全二分木の中のノードの値の変更量を管理サーバ側に送信するように配置されている第3の送信ユニットとを含む。
幾つかの実施形態においては、確定ユニットは、第2の時間間隔の第1の重み付値を、ターゲットパス上のノードの値の減少量として確定し、ここで、第1の重み付値は、第2の時間間隔と所定の第1の重みとの積であり、第2の時間間隔の第2の重み付値は、ターゲットパスの対称パス上のノードの値の増加量として確定し、ここで、第2の重み付値は、第2の時間間隔と所定の第2の重みの積であるように更に配置されている。
第6の側面においては、本願の実施形態は、管理サーバに応用されるデータ処理用の装置を提供する。当該装置は、少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って完全二分木を更新し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されている更新ユニットと、クライアント側によって送信された、完全二分木を取得する要求の受信に応答して、完全二分木をクライアント側に送信するように配置されているダウンロードユニットとを含む。
第7の側面においては、本願の実施形態は、データ処理用のシステムを提供する。当該システムは、アクセス要求の受信に応答し、今回のアクセス要求と前回のアクセス要求の第1の時間間隔を確定し、管理サーバ側から予め設定された完全二分木を取得し、第1の時間間隔に従って完全二分木からターゲットパスを選択し、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されているクライアント側と、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、今回のアクセス要求と前回のアクセス要求の第2の時間間隔を確定し、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定し、アクセス要求のアクセス結果をクライアント側に送信し、完全二分木の中のノードの値の変更量を管理サーバ側に送信するように配置されている少なくとも1つのメタデータサーバ側と、少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って完全二分木を更新し、クライアント側によって送信された、完全二分木を取得する要求の受信に応答して、完全二分木をクライアント側に送信するように配置されている管理サーバとを含む。
第8の側面においては、本願の実施形態は、1つ又は複数のプロセッサと、1つ又は複数のプログラムが記憶されている記憶装置とを含む電子設備を提供する。当該1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行される場合、第1の側面、第2の側面、及び第3の側面の中のいずれか1つの実施形態に記載の方法を前記1つ又は複数のプロセッサに実現させる。
第9の側面においては、本願の実施形態は、コンピュータプログラムが記憶されているコンピュータ読み取り可能メディアを提供する。当該プログラムがプロセッサにより実行される場合、第1の側面、第2の側面、及び第3の側面の中のいずれか1つの実施形態に記載の方法を実現させる。
本願の実施形態によるデータ処理用の方法、装置及びシステムは、自主的にメタデータサーバのアクセス負荷を学習し、実際のアプリケーションシナリオと組み合わせて動的負荷分散を実現することができ、メタデータアクセスのコア指示QPS(Query Per Second、1秒あたりのクエリ数)に基づくことによって、大規模な分散ファイルシステムのリアルタイムの負荷状況を完全に描き出すことを追求することができ、よって各々のアクセス要求に応答する適切なメタデータサーバを選び出すことができる。
以下の図面による非限定的な実施形態についての詳細な説明を読み、参照することにより、本願の他の特徴、目的及び利点がより明らかになる。
図1は、本願の1つの実施形態がその中で適用できる例示的なシステム構成図である。 図2は、本願によるデータ処理用の方法の、クライアント側に応用される一つの実施形態のフローチャート図である。 図3は、本願による完全二分木の構造の模式図である。 図4は、本願によるデータ処理用の方法の、メタデータサーバ側に応用される一つの実施形態のフローチャート図である。 図5は、本願によるデータ処理用の方法の、管理サーバ側に応用される一つの実施形態のフローチャート図である。 図6は、本願によるデータ処理用の方法の1つの応用シナリオの模式図である。 図7は、本願によるデータ処理用の装置の、クライアント側に応用される1つの実施形態の構造模式図である。 図8は、本願によるデータ処理用の装置の、メタデータサーバ側に応用される1つの実施形態の構造模式図である。 図9は、本願によるデータ処理用の装置の、管理サーバ側に応用される1つの実施形態の構造模式図である。 図10は、本願の実施形態の設備を実現するのに適するコンピュータシステムの構造模式図である。
以下、図面と実施形態を参照しながら、本願を詳細に説明する。ここで記載される具体的な実施形態は、関連の発明を解釈するのみに用いられ、当該発明に対する限定ではないことは理解される。なお、説明の便宜上、図面には、関連の発明に関わる部分のみを示す。
なお、矛盾が生じない限り、本願における実施形態及び実施形態における特徴は互いに組み合わせることができるものとする。以下、図面を参照しながら、実施形態を併せて本願を詳しく説明する。
図1は、本願のデータ処理用の方法またはデータ処理用の装置を応用できる実施形態の例示的なシステム構造100を示す。
図1に示すように、システム構成100は、クライアント側101、管理サーバ側102、メタデータサーバ側103を含んでも良い。ネットワークは、クライアント側101、管理サーバ側102、メタデータサーバ側103との間の通信リンクの媒体を提供するのに用いられる。ネットワーク104は、例えば、有線、無線通信リンク又は光ファイバケーブルなどのような、各種の接続種類を含むことができる。
ユーザは、クライアント側101を使用してネットワークを介して管理サーバ側102、メタデータサーバ側103と対話し、メッセージなどを送受信することができる。クライアント側101には、例えば、データベース管理系アプリケーション、ウェブブラウザアプリケーション、買い物系アプリケーション、検索系アプリケーション、インスタントメッセージングツール、電子メールクライアント、ソーシャルプラットフォームソフトウェア、等のような各種の通信クライアントアプリケーションがインストールされていても良い。クライアント側101は、ユーザからのアクセス要求を受信した後、管理サーバ側102から、メタデータサーバ側103の負荷情報を記録するための完全二分木を取得することができる。そして、完全二分木に基づいてメタデータサーバを選び出す。さらに、アクセス要求を選び出されたメタデータサーバ側103に送信する。
クライアント側101は、ハードウェアであっても良く、ソフトウェアであっても良い。クライアント側101がハードウェアである場合は、ディスプレイスクリーンを有し、ファイルアクセスをサポートする各種の電子設備であっても良く、スマートフォン、タブレット、電子ブックリーダ、MP3(Moving Picture Experts Group Audio Layer III、ムービング・ピクチャ・エクスパーツ・グループオーディオレイヤー3)プレーヤ、MP4(Moving Picture Experts Group Audio Layer IV、ムービング・ピクチャ・エクスパーツ・グループオーディオレイヤー4)プレーヤ、ラップトップポータブルコンピュータ及びデスクトップコンピュータ等を含むが、これらに限定されない。クライアント側101がソフトウェアである場合は、上述した列挙した電子設備にインストールされても良い。それは、複数のソフトウェアまたはソフトウェアモジュールとして実現されても良く(例えば、分散式サービスを提供するために用いられる)、単独のソフトウェアまたはソフトウェアモジュールとして実現されても良い。ここでは、具体的な限定をしない。
管理サーバ側102は、メタデータサーバ側の負荷情報をメンテナンスするサーバであってもよい。管理サーバ102は、メタデータサーバ側によって報告された負荷状態情報(たとえば、アクセス時間間隔)に従って完全二分木を生成し、そして完全二分木をクライアント側101に送信することができる。
メタデータサーバ側103は、分散ファイルシステム全体のメタデータの管理に責任を負い、クライアント101からのアクセス要求を受信すると、メタデータを返し、さらにアクセス時間間隔に従って、完全二分木の中のノードの値の変更量を確定する。そして変更量を管理サーバ側102に送信し、管理サーバ側102は、受信した変更量に基づいて完全二分木を更新する。
なお、クライアント側101、管理サーバ側102、メタデータサーバ側103は、ハードウェアであっても良く、ソフトウェアであっても良い。クライアント側101、管理サーバ側102、メタデータサーバ側103がハードウェアである場合は、複数のサーバから構成される分散式サーバクラスタ/分散式設備クラスタとして実現されても良いし、単独のサーバ/単独の設備として実現されても良い。クライアント側101、管理サーバ側102、メタデータサーバ側103がソフトウェアである場合は、複数のソフトウェアまたはソフトウェアモジュールとして実現されても良いし(例えば、分散式サービスを提供するために用いられる複数のソフトウェアまたはソフトウェアモジュール)、単独のソフトウェアまたはソフトウェアモジュールとして実現されても良い。ここでは具体的な限定をしない。
なお、本願の実施形態によるデータ処理用の方法は、クライアント側101によって実行されても良く、管理サーバ側102、メタデータサーバ側103によって実行されても良い。相応的には、データ処理用の装置は、クライアント側101に設置されても良く、管理サーバ側102、メタデータサーバ側103の中に設置されても良い。ここでは具体的な限定をしない。
図1のクライアント側、管理サーバ側、メタデータサーバ側の数は、ただ単に例示的なものであると理解すべきである。実現の必要性に従って、任意の数のクライアント側、管理サーバ側、メタデータサーバ側を有しても良い。
図2は、本願によるデータ処理用の方法の、クライアント側に応用される一つの実施形態のフローチャート200を示す。当該データ処理用の方法は、ステップ201、ステップ202、ステップ203及びステップ204を含む。
ステップ201においては、アクセス要求の受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定する。
本願の実施形態において、データ処理用の方法の実行主体(例えば、図1に示すクライアント側)は、ファイルシステムにアクセスするためのユーザのアクセス要求を受信することができ、アクセス要求は、ファイル名、変更時間、ファイルサイズなどの情報を含むことができる。あらゆるファイルシステムの中のデータは、データとメタデータに分けられる。データは、通常のファイルの実際のデータを指し、メタデータは、アクセス権限、ファイル所有者、ファイルデータブロックの分布情報など、ファイルの特性を記述するために使用されるシステムデータを指す。クラスタファイルシステムでは、分布情報は、ファイルがディスク上における位置と、ディスクがクラスタの中における位置とを含む。ファイルを操作するには、ユーザはまずファイルのメタデータを取得する必要があり、それによってファイルの位置を特定し、ファイルの中身または関連プロパティを得ることができる。アクセス要求を受信すると、クライアント側はアクセス要求を受信した時間を記録する。2つの隣接するアクセス要求の時間間隔を第1の時間間隔とする。
ステップ202においては、管理サーバ側から予め設定された完全二分木を取得する。
本実施形態では、クライアント側がメタデータベースにアクセスしたい場合、管理サーバから完全二分木を取得する必要があり、当該完全二分木は、メタデータサーバ側の負荷モデルである。先に完全二分木のバージョン情報を取得しても良く、当該バージョンがローカルに格納された完全二分木のバージョンと同じであることをクライアント側が検出した場合は、更新をダウンロードする必要はなく、バージョンが異なる場合は、最新バージョンの完全二分木をダウンロードする。クライアント側によってバージョン情報を報告し、管理サーバによってクライアント側のバージョンが最新バージョンであるかどうかを判断し、最新バージョンでない場合は最新バージョンをクライアントに送信するようにしても良い。
メタデータサーバへのアクセスは具体的データの転送を行わないため、単一の要求の負荷は主に要求の速度、つまりQPS(Query Per Second、1秒あたりのクエリ数)に集中する。負荷モデルの構築はこの指標に基づいて実現されており、隣接する2回の要求間の間隔の大きさによって決定を行う。具体的な負荷モデルは、仮想ノードの数(2のべき乗)に基づいて完全二分木を構築し、仮想ノードはすべて最下位のリーフノードにあり、各非リーフノードは2回の隣接するリクエスト間の間隔を記録するために使用される。図3に示すように、N1〜N7は通常のノードであり、非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連する。V1〜V8はリーフノードであり、仮想ノードを表すために用いられる。仮想ノードの数は2のべき乗であり、このようにすると、完全二分木を構築できる。
クライアント側はバージョン管理を使用して、最新の負荷モデル、つまり最新の完全二分木を取得するように確実に保証する。
ステップ203においては、第1の時間間隔に従って完全二分木からターゲットパスを選択する。
本実施形態において、各ノードの初期化時の値は1であり、ルートノードから決定を行う。具体的な決定方法は、以下のようなものであっても良い:現在の要求と前回の要求との間隔(つまり、第1の時間間隔)を比較し、値がノードの値より小さい場合は、左のノードに移動して下の子ノードの検索を続行し、そうでない場合は、右のノードに移動して下の子ノードの検索を続行し、リーフノードに到達するまで行い、そして具体的なのメタデータサーバにマッピングする。メタデータサーバがクライアント側の要求を受信した後、要求の費やした時間間隔を記録し、二分木のノードの値を逆の方向に沿って更新し、各ノードの値から費やした時間間隔の一定の比率(比率が配置可能)を減算し、さらにルートノードから開始して対称パスへ向かうすべてのノードの値を増加させ、増加値は別の比率に従って配置される。図3に示すような、8つの仮想ノードを持つ完全二分木を例として説明する:
決定プロセス(クライアント側で実行):N1からN7は非リーフノードであり、最初のアクセス間隔は0、N1の値は1、左側のノードN2にアクセスし、その値は1であり、続けてN4にアクセスし、最終的に仮想ノードV1を得る。
更新プロセス(メタデータサーバ側で実行):V1に対応するメタデータサーバが要求を処理するための時間間隔はgであり、順次に上に向かって、N4、N2、N1ノードの値からw1*gを減算し(w1は配置の比率)、そしてルートノードから開始して、対称パスすなわちN1−>N3−>N7の各ノードの値をw2*gだけ増加させる(w2は配置の比率)。
本実施形態の幾つかの選択可能な実施形態では、第1の時間間隔に従って完全二分木からターゲットパスを選択することは、完全二分木の中のノードに対して、第1の時間間隔が当該ノードの値よりも小さい場合、当該ノードの所定の側の子ノードをターゲットノードとして決定することと、決定されたターゲットノードからターゲットパスを構成することとを含む。所定の側は左側であっても良く、右側であっても良い。システム内において特定の側に統一さえすれば良い。
選択可能的に、2つの子ノードの中から大きな値を持つノードをターゲットノードとして選択し、ターゲットパスを形成しても良い。この時、時間間隔に従ってリーフノードの値を更新しても良い。
ステップ204においては、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信する。
本実施形態において、予めに約定したマッピング関係に基づいて、仮想ノードをメタデータサーバにマッピングしても良く、たとえば、仮想ノードの数を、メタデータサーバの数で割る時の余りを計算し、得られた値をターゲットメタデータサーバの番号とする。そして、アクセス要求を計算されたメタデータサーバ側に送信する。
本実施形態の幾つかの選択可能な実施形態では、アクセス要求をターゲットパスのリーフノードに対応するメタデータサーバに送信することは、予め設定されたコンシステントハッシュリングを使用して、ターゲットパスのリーフノードがマッピングするターゲットメタデータサーバを確定することと、アクセス要求をターゲットメタデータサーバに送信することとを含む。分散システムの負荷分散の問題を解決する場合、hash(ハッシュ)アルゴリズムを使用して、要求の固定的な部分を同じサーバに落ち着くようにさせ、これによって各サーバが要求の一部分を固定的に処理するようになり(さらにこれらの要求の情報をメンテナンスする)、負荷分散の働きをする。ただし、通常の余りhash(例えば、ユーザID%サーバのマシン台数)アルゴリズムはスケーラブル性が非常に悪く、サーバマシンを追加またはオフラインにする場合、ユーザIDとサーバとのマッピング関係の大部分は無効になる。コンシステントハッシュは、ハッシュハッシュリングを用いてそれに対する改善を行った。
図4は、本願によるデータ処理用の方法の、メタデータサーバ側に応用される一つの実施形態のフローチャート400を示す。当該データ処理用の方法は、ステップ401、ステップ402、ステップ403及びステップ404を含む。
ステップ401においては、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定する。
本願の実施形態において、データ処理用の方法の実行主体(例えば、図1に示すメタデータサーバ側)は、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスを受信することができる。ここでの完全二分木は、ステップ201〜204に含まれる完全二分木である。メタデータサーバ側は、毎回のアクセス要求を受信した時間を記録し、隣接する2回のアクセス要求の間の時間間隔を2番目の時間間隔として確定する。第2の時間間隔と第1の時間間隔は、メタデータサーバ側で受信したアクセス要求の時間間隔なのか、クライアント側で受信したアクセス要求の時間間隔なのかを区別するための時間間隔の名前だけであり、それらの間には互いに関係はない。1つのメタデータサーバ側は、複数のクライアント側からのアクセス要求を受信でき、クライアント側の区別をせずに、アクセスされる時間間隔を統計する。
ステップ402においては、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定する。
本実施形態では、メタデータサーバがクライアント側の要求を受信した後、要求の費やした時間間隔を記録し、二分木のノードの値を逆の方向に沿って更新する。ターゲットパス上のノードの値を更新することに加えて、ターゲットパスの対称パス上のノードの値も更新できる。例えば、ターゲットパス上の各ノードの値から費やした時間間隔の一定の比率(比率が配置可能)を減算し、さらにルートノードから開始して対称パスへ向かうすべてのノードの値を増加させ、増加値は別の比率に従って配置される。対称パスは、ルートノードを対称の中心とするミラー対称パスである。図3に示すように、ターゲットパスがN1、N2、N4、V1であると、対称パスはN1、N3、N7、V8である。こうする目的は、各メタデータサーバの単位時間あたりの訪問回数をより均衡にさせるためである。
ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定することは、第2の時間間隔の第1の重み付値を、ターゲットパス上のノードの値の減少量として確定し、ここで、第1の重み付値は、第2の時間間隔と所定の第1の重みとの積であることと、第2の時間間隔の第2の重み付値は、ターゲットパスの対称パス上のノードの値の増加量として確定し、ここで、第2の重み付値は、第2の時間間隔と所定の第2の重みの積であることとを含む。図3に示すような、8つの仮想ノードを持つ完全二分木を例として説明する:
決定プロセス(クライアント側で実行):N1からN7は非リーフノードであり、最初のアクセス間隔は0、N1の値は1、左側のノードN2にアクセスし、その値は1であり、続けてN4にアクセスし、最終的に仮想ノードV1を得る。
更新プロセス(メタデータサーバ側で実行):V1に対応するメタデータサーバが要求を処理するための時間間隔はgであり、順次に上に向かって、N4、N2、N1ノードの値からw1*gを減算し(w1は配置の比率)、そしてルートノードから開始して、対称パスすなわちN1−>N3−>N7の各ノードの値をw2*gだけ増加させる(w2は配置の比率)。W1とw2は、メタデータサーバ側の処理能力に応じて配置でき、異なるメタデータサーバ側はそれぞれ異なるw1とw2を採用しても良く、同じw1とw2を採用しても良い。
ステップ403においては、アクセス要求に従ってアクセス結果を照会し、アクセス結果をクライアント側に送信する。
本実施形態では、アクセス結果は、アクセス要求によって指示されたファイルのメタデータである。アクセスの結果をクライアント側に返す。
ステップ404においては、完全二分木の中のノードの値の変更量を管理サーバ側に送信する。
本実施形態では、各メタデータサーバ側は、アクセス要求を受信した後、完全二分木の中のノードの値の変更量を更新し、そして変更量を管理サーバ側に送信する。管理サーバは、完全二分木のメンテナンスを行う。所定の形式に従って、たとえば、ノードN1、N2、N4:−0.2、ノードN1、N3、N7:+0.4のような形式で、ノードと変更量の間の対応関係を送信することができる。
選択可能的に、メタデータサーバ側によって完全二分木の値を直接的に更新しても良く、そのために、メタデータサーバ側は、管理サーバから最新の完全二分木を取得する必要がある。更新後、管理サーバに戻す。
図5は、本願によるデータ処理用の方法の、管理サーバ側に応用される一つの実施形態のフローチャート500を示す。当該データ処理用の方法は、ステップ501及びステップ502を含む。
ステップ501においては、少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って完全二分木を更新する。
本願の実施形態において、データ処理用の方法の実行主体(例えば、図1に示す管理サーバ側)は、少なくとも1つのメタデータサーバ側から完全二分木内のノードの値の変更量を受信し、そして受信したノードの値の変更量に従って完全二分木を更新する。
たとえば、元の完全二分木のノード値はすべて1であり、あるメタデータサーバ側によって送信された変更量:ノードN1、N2、N4:−0.2、ノードN1、N3、N7:+0.4を受信したあと、完全二分木のノード値は、N1:1.2、N2:0.8、N3:1.4、N4:0.8、N5:1、N6:1、N7:1.4に更新される。他のメタデータサーバ側によって送信された変更量を受信すると、前回更新されたノードの値に基づいてさらに更新を行うことができる。
ステップ502においては、クライアント側によって送信された、完全二分木を取得する要求の受信に応答して、完全二分木をクライアント側に送信する。
本実施形態では、クライアント側がメタデータベースにアクセスしたい場合、管理サーバから完全二分木を取得する必要がある。管理サーバ側がクライアント側によって送信された、完全二分木を取得する要求を受信したとき、先に完全二分木のバージョン情報を送信して良く、クライアント側によって更新を行うか否かを判断する。クライアント側によってバージョン情報を送信しても良く、管理サーバによって最新バージョンをクライアントに送信する必要があるか否かを判断する。
図6は、本実施形態によるデータ処理用の方法の応用シナリオの1つの模式図である。図6の応用シナリオにおいては、ユーザはクライアント側を介してアクセス要求を送信し、クライアント側は管理サーバから完全二分木の最新バージョンをダウンロードする。次に、クライアント側は、最近の2回受信したアクセス要求の時間間隔に従って完全二分木からターゲットパスを検索し、ターゲットパスのリーフノードに対応するメタデータサーバをターゲットメタデータサーバとして確定する。クライアント側は、アクセス要求とターゲットパスの両方をメタデータサーバ側に送信する。メタデータサーバ側は、アクセス要求を受信すると時間を記録し、前回受信したアクセス時間と比較して時間間隔を確定する。そして、時間間隔に従って完全二分木のノードの値の変化量とアクセス結果を確定する。最後に、アクセスの結果をクライアント側に返し、完全二分木のノードの値の変更量を管理サーバに返す。管理サーバは、受信した完全二分木のノードの値の変化量に従って二分木を更新する。
本願の前記の実施形態によって提供される方法は、メタデータアクセスのコア指標QPSに基づいて負荷モデル(つまり、完全二分木)を構築し、当該モデルにはトレーニングプロセスがなく、現在のメタデータサーバの全体システムの負荷レベルを表すためにのみ使用され、実現が容易である。各々のメタデータサーバ側はファイルシステムディレクトリツリー全体に対して処理を行うため、サブディレクトリ数の分割や動的遷移の問題はなく、メタデータのセキュリティを確実に保証し、メタデータサーバの設計の安定性を向上させる。仮想ノードとコンシステントハッシュリングを導入することにより、メタデータサーバを追加するまたはオフラインにすることはシステム全体にほとんど影響を与えず、システムは具体的な業務と負荷レベルに従って適切に拡張できる。
図7に示すように、前記各図面に示される方法の実現として、本願は、データ処理用の装置の、クライアント側に応用される1つの実施形態を提供する。当該装置の実施形態は、図2に示される方法の実施形態に対応し、当該装置は、具体的に各種の電子デバイスに応用することができる。
図7に示すように、本実施形態のデータ処理用の装置700は、第1の計時ユニット701、取得ユニット702、選択ユニット703、及び第1の送信ユニット704を含む。なお、第1の計時ユニット701は、アクセス要求の受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定するように配置されており、取得ユニット702は、管理サーバ側から予め設定された完全二分木を取得し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されており、選択ユニット703は、第1の時間間隔に従って完全二分木からターゲットパスを選択するように配置されており、第1の送信ユニット704は、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信するように配置されている。
本実施形態において、データ処理用の装置700の第1の計時ユニット701、取得ユニット702、選択ユニット703、及び第1の送信ユニット704の具体的な処理は、図2の対応する実施形態の中のステップ201、ステップ202、ステップ203及びステップ204を参考にすることができる。
本実施形態の幾つかの選択可能な実施形態では、選択ユニット703は、完全二分木の中のノードに対して、第1の時間間隔が当該ノードの値よりも小さい場合、当該ノードの所定の側の子ノードをターゲットノードとして決定し、決定されたターゲットノードからターゲットパスを構成するように更に配置されている。
本実施形態の幾つかの選択可能な実施形態では、第1の送信ユニット704は、予め設定されたコンシステントハッシュリングを使用して、ターゲットパスのリーフノードがマッピングするターゲットメタデータサーバを確定し、アクセス要求をターゲットメタデータサーバに送信するように更に配置されている。
図8に示すように、前記各図面に示される方法の実現として、本願は、データ処理用の装置の、メタデータサーバ側に応用される1つの実施形態を提供する。当該装置の実施形態は、図4に示される方法の実施形態に対応し、当該装置は、具体的に各種の電子デバイスに応用することができる。
図8に示すように、本実施形態のデータ処理用の装置800は、第2の計時ユニット801、確定ユニット802、第2の送信ユニット803及び第3の送信ユニット804を含む。なお、第2の計時ユニット801は、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されており、確定ユニット802は、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定するように配置されており、第2の送信ユニット803は、アクセス要求に従ってアクセス結果を照会し、アクセス結果をクライアント側に送信するように配置されており、第3の送信ユニット804は、完全二分木の中のノードの値の変更量を管理サーバ側に送信するように配置されている。
本実施形態において、データ処理用の装置800の第2の計時ユニット801、確定ユニット802、第2の送信ユニット803及び第3の送信ユニット804の具体的な処理は、図4の対応する実施形態の中のステップ401、ステップ402、ステップ403及びステップ404を参考にすることができる。
本実施形態の幾つかの選択可能な実施形態では、確定ユニット802は、第2の時間間隔の第1の重み付値を、ターゲットパス上のノードの値の減少量として確定し、ここで、第1の重み付値は、第2の時間間隔と所定の第1の重みとの積であり、第2の時間間隔の第2の重み付値は、ターゲットパスの対称パス上のノードの値の増加量として確定し、ここで、第2の重み付値は、第2の時間間隔と所定の第2の重みの積であるように更に配置されている。
図9に示すように、前記各図面に示される方法の実現として、本願は、データ処理用の装置の、管理サーバ側に応用される1つの実施形態を提供する。当該装置の実施形態は、図5に示される方法の実施形態に対応し、当該装置は、具体的に各種の電子デバイスに応用することができる。
図9に示すように、本実施形態のデータ処理用の装置900は、更新ユニット901及びダウンロードユニット902を含む。なお、更新ユニット901は、少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って完全二分木を更新し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されており、ダウンロードユニット902は、クライアント側によって送信された、完全二分木を取得する要求の受信に応答して、完全二分木をクライアント側に送信するように配置されている。
本実施形態において、データ処理用の装置900の更新ユニット901及びダウンロードユニット902の具体的な処理は、図5の対応する実施形態の中のステップ501及びステップ502を参考にすることができる。
図10は、本願の実施形態の電子設備(例えば、図1に示す電子設備)を実現するのに適するコンピュータシステム1000の構造模式図である。図10に示されている設備は、ただ一つの例示に過ぎず、本願の実施形態の機能及び使用範囲に如何なる制限も与えない。
図10に示すように、コンピュータシステム1000は、中央処理装置(CPU)1001を備え、リードオンリーメモリ(ROM)1002に記憶されているプログラムまたは記憶部1008からランダムアクセスメモリ(RAM)1003にロードされたプログラムに従って各種の適切な動作と処理を実行することができる。RAM1003に、システム1000の操作に必要な各種のプログラムとデータが更に記憶されている。CPU1001、ROM1002とRAM1003は、バス1004を通じて互いに接続する。入力/出力(I/O)インターフェース1005もバス1004に接続されている。
キーボード、マウス等を含む入力部1006、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)等及びスピーカー等を含む出力部1007、ハードディスク等を含む記憶部1008、及び例えばLANカード、モデム等を含むネットワークインターフェースカードの通信部1009は、I/Oインターフェース1005に接続される。通信部1009は、例えば、インターネット等のネットワークを通じて通信処理を実行する。ドライバ1010も必要に応じてI/Oインターフェース1005に接続される。例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等のようなリムーバブルメディア1011は、必要に応じてドライバ1010にインストールされることにより、そこから読み出されるコンピュータプログラムは、必要に応じて記憶部1008にインストールされる。
特に、本願の実施形態により、前記の文章でフローチャート図を参照しながら記述したプロセスは、コンピュータソフトウェアプログラムとして実現することができる。例えば、本願の実施形態は、コンピュータプログラム製品を含み、それは、コンピュータの読み取り可能なメディアに記載されているコンピュータプログラムを含む。当該コンピュータプログラムは、フローチャート図の示す方法を実行するのに用いられるプログラムコードを含む。このような実施形態において、当該コンピュータプログラムは、通信部1009を通じてネットワークからダウンロードされてインストールされても良く、及び/またはリムーバブルメディア1011からインストールされても良い。当該コンピュータプログラムは、中央処理装置(CPU)1001に実行されるとき、本願の方法の中で限定される前記の機能を実行する。なお、本願で説明するコンピュータの読み取り可能なメディアは、コンピュータの読み取り可能な信号メディアまたはコンピュータの読み取り可能な記憶メディアまたは両者の任意の組合せであっても良い。コンピュータの読み取り可能な記憶メディアは、例えば、電、磁、光、電磁、赤外線、或いは半導体のシステム、装置または設備、またはこれらの任意の組合せであっても良いが、これらに限定されない。コンピュータの読み取り可能な記憶メディアのより具体的例は、一つまたは複数のリード線を有する電気接続、ポータブルコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルROM(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリーメモリ(CD−ROM)、光記憶装置、磁気記憶装置、またはこれらの任意の適切な組み合わせを含むが、これらに限定されない。本願において、コンピュータの読み取り可能な記憶メディアは、命令実行システム、装置、設備またはその組み合わせに使用されるプログラムを含むまたは記憶する如何なる有形メディアであっても良い。本願において、コンピュータの読み取り可能な信号メディアは、ベースバンドの中または搬送波の一部分として伝播するデータ信号を含み、その中でコンピュータの読み取り可能なプログラムコードが記載されている。このような伝播するデータ信号は、多種類の形式を採用することができ、電磁信号、光信号またはその任意の適切な組み合わせを含むが、これらに限定されない。コンピュータの読み取り可能な信号メディアは、さらにコンピュータの読み取り可能な記憶メディア以外の任意のコンピュータの読み取り可能なメディアであっても良く、当該コンピュータの読み取り可能なメディアは、命令実行システム、装置、デバイスまたはその組み合わせに使用されるプログラムを送信し、伝播し、または転送することができる。コンピュータの読み取り可能なメディアに含まれるプログラムコードは、あらゆる適切なメディアを使って転送することができ、無線、電線、光ファイバ、RF等またはその任意の適切な組み合わせを含むが、これらに限定されない。
一つまたは複数のプログラミング言語またはその組み合わせを使って、本願の操作の実行に用いられるコンピュータプログラムコードを作成しても良い。前記プログラミング言語は、例えばJava(登録商標)、Smalltalk、C++等のようなオブジェクト指向のプログラミング言語を含み、さらに例えば「C」言語または類似のプログラミング言語のような手続き型プログラミング言語を含む。プログラムコードは、完全にユーザコンピュータ上で実行されても良く、部分的にユーザコンピュータ上で実行されても良く、一つの独立したソフトウェアパッケージとして実行されても良く、一部分がユーザコンピュータ上で実行され一部分がリモートコンピュータ上で実行されても良く、或いは完全にリモートコンピュータまたはサーバ上で実行されても良い。リモートコンピュータに関わる場面において、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを通じてユーザコンピュータに接続されても良いし、または外部コンピュータ(例えばインターネットサービスプロバイダーを利用してインターネットを通じて接続する)に接続されても良い。
添付図面の中のフローチャート図とブロック図は、本願による各種実施形態のシステム、方法とコンピュータプログラム製品の実現可能なアーキテクチャ、機能と操作を示す。この点において、フローチャート図またはブロック図の中の各ブロックは、一つのモジュール、プログラムセグメント、或いはコードの一部分を代表することができ、当該モジュール、プログラムセグメント、或いはコードの一部分は、一つまたは複数の、規定のロジック機能の実現に用いられる実行可能な命令を含む。幾つかの代替の実現において、ブロックの中で提示した機能は、添付図面の中で提示した順序と異なる順序で発生する可能性があると注意されたい。例えば、二つの接続するように表示されているブロックは、実際において基本的に並列に実行されても良く、場合によっては反対の順序で実行されても良く、何れも関わる機能によって定まる。フローチャート図及び/またはブロック図の中の各ブロック、及びフローチャート図及び/またはブロック図の中のブロックの組合せは、規定の機能または操作を実行する専用なハードウェアに基づくシステムで実現しても良く、専用なハードウェアとコンピュータ命令の組み合わせで実現しても良い。
本願の実施形態に関わって記述されているユニットは、ソフトウェアの方式によって実現しても良く、ハードウェアの方式によって実現しても良い。記述されているユニットは、プロセッサの中に設置されても良く、例えば、第1の計時ユニット、取得ユニット、選択ユニット、及び第1の送信ユニットを含むプロセッサというように記述しても良い。なお、これらユニットの名称は、場合によっては、当該ユニット自身への限定を構成せず、例えば、第1の計時ユニットは、「アクセス要求の受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定するユニット」と記述されても良い。
一方、本願は、コンピュータの読み取り可能なメディアを更に提供し、当該コンピュータの読み取り可能なメディアは、前記実施形態の中で記述された装置に含まれても良く、当該装置に取り付けられずに単独的に存在しても良い。前記コンピュータの読み取り可能なメディアは、一つまたは複数のプログラムを記載しており、前記一つまたは複数のプログラムが当該装置に実行されると、当該装置は、アクセス要求の受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定し、管理サーバ側から予め設定された完全二分木を取得し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられ、第1の時間間隔に従って完全二分木からターゲットパスを選択し、アクセス要求とターゲットパスを、ターゲットパスのリーフノードに対応するメタデータサーバに送信する。または当該装置は、クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられ、ターゲットパスと第2の時間間隔に従って、完全二分木の中のノードの値の変更量を確定し、アクセス要求に従ってアクセス結果を照会し、アクセス結果をクライアント側に送信し、完全二分木の中のノードの値の変更量を管理サーバ側に送信する。または当該装置は、少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って完全二分木を更新し、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられ、クライアント側によって送信された、完全二分木を取得する要求の受信に応答して、完全二分木をクライアント側に送信する。
前記記述は、本願の望ましい実施形態及び使用する技術原理に対する説明に過ぎない。当業者は、本願の関わる発明の範囲は、前記技術特徴の特定の組み合わせからなる技術案に限定されることがなく、本発明の精神から逸脱しない限り、前記技術特徴または同等の特徴の任意の組み合わせからなる技術案もカバーすべきであると理解すべきである。例えば、前記特徴と本願で公開した(但し、これらに限定されない)類似の機能を有する技術特徴とを相互入れ替えして形成した技術案である。

Claims (15)

  1. クライアント側に応用されるデータ処理用の方法であって、
    アクセス要求の受信に応答し、前記アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定することと、
    管理サーバ側から予め設定された完全二分木を取得することであって、ここで、前記完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられることと、
    前記第1の時間間隔に従って前記完全二分木からターゲットパスを選択することと、
    前記アクセス要求と前記ターゲットパスを、前記ターゲットパスのリーフノードに対応するメタデータサーバに送信することと
    を含む、データ処理用の方法。
  2. 前記の、前記第1の時間間隔に従って前記完全二分木からターゲットパスを選択することは、
    前記完全二分木の中のノードに対して、前記第1の時間間隔が当該ノードの値よりも小さい場合、当該ノードの所定の側の子ノードをターゲットノードとして決定することと、
    決定されたターゲットノードからターゲットパスを構成することと
    を含む、請求項1に記載の方法。
  3. 前記の、前記アクセス要求を、前記ターゲットパスのリーフノードに対応するメタデータサーバに送信することは、
    予め設定されたコンシステントハッシュリングを使用して、前記ターゲットパスのリーフノードがマッピングするターゲットメタデータサーバを確定することと、
    前記アクセス要求を前記ターゲットメタデータサーバに送信することと
    を含む、請求項1に記載の方法。
  4. メタデータサーバ側に応用されるデータ処理用の方法であって、
    クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、前記アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定することであって、ここで、前記完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられることと、
    前記ターゲットパスと前記第2の時間間隔に従って、前記完全二分木の中のノードの値の変更量を確定することと、
    前記アクセス要求に従ってアクセス結果を照会し、前記アクセス結果を前記クライアント側に送信することと、
    前記完全二分木の中のノードの値の変更量を管理サーバ側に送信することと
    を含む、データ処理用の方法。
  5. 前記の、前記ターゲットパスと前記第2の時間間隔に従って、前記完全二分木の中のノードの値の変更量を確定することは、
    前記第2の時間間隔の第1の重み付値を、前記ターゲットパス上のノードの値の減少量として確定することであって、ここで、前記第1の重み付値は、前記第2の時間間隔と所定の第1の重みとの積であることと、
    前記第2の時間間隔の第2の重み付値は、前記ターゲットパスの対称パス上のノードの値の増加量として確定することであって、ここで、前記第2の重み付値は、第2の時間間隔と所定の第2の重みの積であることと
    を含む、請求項4に記載の方法。
  6. 管理サーバ側に応用されるデータ処理用の方法であって、
    少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って前記完全二分木を更新することであって、ここで、前記完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられることと、
    クライアント側によって送信された、前記完全二分木を取得する要求の受信に応答して、前記完全二分木を前記クライアント側に送信することと
    を含む、データ処理用の方法。
  7. クライアント側に応用されるデータ処理用の装置であって、
    アクセス要求の受信に応答し、前記アクセス要求と前回のアクセス要求との間の時間間隔を第1の時間間隔として確定するように配置されている第1の計時ユニットと、
    管理サーバ側から予め設定された完全二分木を取得する取得ユニットであって、ここで、完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されている取得ユニットと、
    前記第1の時間間隔に従って前記完全二分木からターゲットパスを選択するように配置されている選択ユニットと、
    前記アクセス要求と前記ターゲットパスを、前記ターゲットパスのリーフノードに対応するメタデータサーバに送信するように配置されている第1の送信ユニットと
    を含む、データ処理用の装置。
  8. 前記選択ユニットは、
    前記完全二分木の中のノードに対して、前記第1の時間間隔が当該ノードの値よりも小さい場合、当該ノードの所定の側の子ノードをターゲットノードとして決定し、
    決定されたターゲットノードからターゲットパスを構成するように更に配置されている請求項7に記載の装置。
  9. 前記第1の送信ユニットは、
    予め設定されたコンシステントハッシュリングを使用して、前記ターゲットパスのリーフノードがマッピングするターゲットメタデータサーバを確定し、
    前記アクセス要求を前記ターゲットメタデータサーバに送信するように更に配置されている請求項7に記載の装置。
  10. メタデータサーバ側に応用されるデータ処理用の装置であって、
    クライアント側によって送信されたアクセス要求と完全二分木の中のターゲットパスの受信に応答し、前記アクセス要求と前回のアクセス要求との間の時間間隔を第2の時間間隔として確定する第2の計時ユニットであって、ここで、前記完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されている第2の計時ユニットと、
    前記ターゲットパスと前記第2の時間間隔に従って、前記完全二分木の中のノードの値の変更量を確定するように配置されている確定ユニットと、
    前記アクセス要求に従ってアクセス結果を照会し、前記アクセス結果を前記クライアント側に送信するように配置されている第2の送信ユニットと、
    前記完全二分木の中のノードの値の変更量を管理サーバ側に送信するように配置されている第3の送信ユニットと
    を含む、データ処理用の装置。
  11. 前記確定ユニットは、
    前記第2の時間間隔の第1の重み付値を、前記ターゲットパス上のノードの値の減少量として確定し、ここで、前記第1の重み付値は、前記第2の時間間隔と所定の第1の重みとの積であり、
    前記第2の時間間隔の第2の重み付値は、前記ターゲットパスの対称パス上のノードの値の増加量として確定し、ここで、前記第2の重み付値は、前記第2の時間間隔と所定の第2の重みの積であるように更に配置されていることを特徴とする請求項10に記載の装置。
  12. 管理サーバ側に応用されるデータ処理用の装置であって、
    少なくとも1つのメタデータサーバ側によって送信された完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って前記完全二分木を更新する更新ユニットであって、ここで、前記完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されている更新ユニットと、
    クライアント側によって送信された、前記完全二分木を取得する要求の受信に応答して、前記完全二分木を前記クライアント側に送信するように配置されているダウンロードユニットと
    を含む、データ処理用の装置。
  13. アクセス要求の受信に応答し、今回のアクセス要求と前回のアクセス要求の第1の時間間隔を確定し、管理サーバ側から予め設定された完全二分木を取得し、前記第1の時間間隔に従って前記完全二分木からターゲットパスを選択し、前記アクセス要求と前記ターゲットパスを、前記ターゲットパスのリーフノードに対応するメタデータサーバに送信するクライアント側であって、ここで、前記完全二分木の非リーフノードの値は、メタデータサーバが受信した直近の2回のアクセス要求の時間間隔に関連し、リーフノードは、分散システムの中のメタデータサーバに対応する仮想ノードを表すために用いられるように配置されているクライアント側と、
    クライアント側によって送信されたアクセス要求と前記完全二分木の中のターゲットパスの受信に応答し、今回のアクセス要求と前回のアクセス要求の第2の時間間隔を確定し、前記ターゲットパスと前記第2の時間間隔に従って、前記完全二分木の中のノードの値の変更量を確定し、前記アクセス要求のアクセス結果を前記クライアント側に送信し、前記完全二分木の中のノードの値の変更量を管理サーバ側に送信するように配置されている少なくとも1つのメタデータサーバ側と、
    少なくとも1つのメタデータサーバ側によって送信された前記完全二分木内のノードの値の変更量の受信に応答して、受信したノードの値の変更量に従って前記完全二分木を更新し、クライアント側によって送信された、前記完全二分木を取得する要求の受信に応答して、前記完全二分木をクライアント側に送信するように配置されている管理サーバと
    を含む、データ処理用のシステム。
  14. 1つ又は複数のプロセッサと、
    1つ又は複数のプログラムが記憶されている記憶装置とを含む電子設備であって、
    当該1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行される場合、請求項1〜6のいずれか1つの方法を前記1つ又は複数のプロセッサに実現させる、電子設備。
  15. コンピュータプログラムが記憶されているコンピュータ読み取り可能なメディアであって、
    当該プログラムがプロセッサにより実行される場合、請求項1〜6のいずれか1つの方法を実現させる、コンピュータ読み取り可能なメディア。
JP2019161974A 2018-12-21 2019-09-05 データ処理用の方法、装置及びシステム Active JP6880131B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811574618.3A CN109600447B (zh) 2018-12-21 2018-12-21 用于处理数据的方法、装置和系统
CN201811574618.3 2018-12-21

Publications (2)

Publication Number Publication Date
JP2020102189A JP2020102189A (ja) 2020-07-02
JP6880131B2 true JP6880131B2 (ja) 2021-06-02

Family

ID=65963435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019161974A Active JP6880131B2 (ja) 2018-12-21 2019-09-05 データ処理用の方法、装置及びシステム

Country Status (4)

Country Link
US (2) US11064053B2 (ja)
JP (1) JP6880131B2 (ja)
KR (1) KR102338208B1 (ja)
CN (1) CN109600447B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311833B (zh) * 2019-08-01 2023-11-07 北京京东尚科信息技术有限公司 数据更新方法和装置
CN112738149B (zh) * 2019-10-29 2023-04-25 贵州白山云科技股份有限公司 数据传输系统和方法
TWI739418B (zh) * 2020-05-08 2021-09-11 瑞昱半導體股份有限公司 執行內容通道產生的裝置及方法
CN112732757B (zh) * 2020-12-30 2023-07-25 北京奇艺世纪科技有限公司 一种降级数据的处理方法、系统、装置、设备及存储介质
JP7142733B2 (ja) * 2021-01-05 2022-09-27 イー インク コーポレイション 電気光学ディスプレイを生産するプロセス
CN112684988A (zh) * 2021-01-11 2021-04-20 北京同有飞骥科技股份有限公司 基于分布式存储的QoS方法及系统
CN113204726A (zh) * 2021-07-07 2021-08-03 苏州浪潮智能科技有限公司 一种bs架构页面响应时间优化方法、装置、设备及介质
CN113590348B (zh) * 2021-07-26 2024-05-17 京东科技控股股份有限公司 基于树状结构的参数传递方法、装置、设备及介质
CN113726749B (zh) * 2021-08-13 2023-04-28 山西鑫博睿科技有限公司 基于大数据和智慧安防的数据管理系统
CN114116534B (zh) * 2022-01-27 2022-05-06 广东省新一代通信与网络创新研究院 一种提高处理器缓存命中率的方法及装置
CN114691690A (zh) * 2022-03-31 2022-07-01 烽台科技(北京)有限公司 一种数据同步方法、装置、计算机设备及介质
CN118245443B (zh) * 2024-05-27 2024-08-13 中协通通信技术有限公司 一种基于人工智能的档案管理方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
JP3964909B2 (ja) * 2003-04-14 2007-08-22 富士通株式会社 サーバ割当制御方法
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US8266092B2 (en) * 2008-07-10 2012-09-11 Palo Alto Research Center Incorporated Methods and systems for target value path identification
US8775579B2 (en) * 2010-01-13 2014-07-08 Htc Corporation Method for addressing management object in management tree and associated device management system
JP5526015B2 (ja) * 2010-12-22 2014-06-18 株式会社日立製作所 ゲートウェイシステム、ゲートウェイ装置、負荷分散方法
JP5803408B2 (ja) * 2011-08-11 2015-11-04 富士通株式会社 通信方法及び情報処理システム
KR101415179B1 (ko) * 2013-01-29 2014-07-04 주식회사 이파피루스 페이지 로딩 시스템 및 그 방법
KR101580202B1 (ko) * 2014-05-19 2015-12-24 고려대학교 산학협력단 대규모 데이터를 위한 서포트 벡터 머신 이진 트리 구조 갱신 장치 및 방법
CN105068758B (zh) * 2015-07-23 2018-06-19 清华大学 面向并行数据采集的分布式文件系统数据i/o优化方法
CN106909557B (zh) * 2015-12-23 2020-06-16 中国电信股份有限公司 内存集群的存储方法及装置、内存集群的读取方法及装置
CN106953893A (zh) * 2017-02-15 2017-07-14 北京百度网讯科技有限公司 云存储系统间的数据迁移

Also Published As

Publication number Publication date
US11064053B2 (en) 2021-07-13
CN109600447B (zh) 2021-08-10
JP2020102189A (ja) 2020-07-02
US20200396317A1 (en) 2020-12-17
US20200204652A1 (en) 2020-06-25
KR20200079169A (ko) 2020-07-02
US11277498B2 (en) 2022-03-15
CN109600447A (zh) 2019-04-09
KR102338208B1 (ko) 2021-12-13

Similar Documents

Publication Publication Date Title
JP6880131B2 (ja) データ処理用の方法、装置及びシステム
US10785322B2 (en) Server side data cache system
CN106372136B (zh) 分布式缓存系统、方法及存储介质
EP2608075B1 (en) Dynamic hierarchical bloom filters for network data routing
US9436719B2 (en) Updating an inverted index in a real time fashion
CN102770849B (zh) 当应用基于用户的安全性时优化数据高速缓存
US20120124062A1 (en) Application Transfer Protocol
US20150006608A1 (en) Networked solutions integration using a cloud business object broker
CN109471838B (zh) 目录文档的操作方法、装置、电子设备、可读存储介质
US10579597B1 (en) Data-tiering service with multiple cold tier quality of service levels
EP2778968A1 (en) Mobile telecommunication device remote access to cloud-based or virtualized database systems
US20220237505A1 (en) Using container information to select containers for executing models
US10242102B2 (en) Network crawling prioritization
CN104937581A (zh) 横跨多个计算装置提供对信息的接入
US20220147487A1 (en) Indexing documents in a nested hierarchy of directories
US11893015B2 (en) Optimizing query performance in virtual database
EP2765517A2 (en) Data stream splitting for low-latency data access
US10114864B1 (en) List element query support and processing
US20080163238A1 (en) Dynamic load balancing architecture
JP5203253B2 (ja) タプル蓄積・検索システム、タプル蓄積・検索方法、タプル装置及びタプル分配装置
CN116820354B (zh) 数据存储方法、数据存储装置和数据存储系统
CN116010677B (zh) 空间索引方法、装置及其电子设备
CN112883009B (zh) 用于处理数据的方法和装置
CN110889040B (zh) 用于推送信息的方法和装置
US11100115B1 (en) Infrastructure and method for generating search results

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210430

R150 Certificate of patent or registration of utility model

Ref document number: 6880131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150