JP2019502202A - 分散記憶システムをアップグレードするための方法および装置 - Google Patents

分散記憶システムをアップグレードするための方法および装置 Download PDF

Info

Publication number
JP2019502202A
JP2019502202A JP2018529541A JP2018529541A JP2019502202A JP 2019502202 A JP2019502202 A JP 2019502202A JP 2018529541 A JP2018529541 A JP 2018529541A JP 2018529541 A JP2018529541 A JP 2018529541A JP 2019502202 A JP2019502202 A JP 2019502202A
Authority
JP
Japan
Prior art keywords
data server
feedback information
upgrade
data
state
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
JP2018529541A
Other languages
English (en)
Other versions
JP6763580B2 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2019502202A publication Critical patent/JP2019502202A/ja
Application granted granted Critical
Publication of JP6763580B2 publication Critical patent/JP6763580B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本開示の実施形態は、分散記憶システムをアップグレードするための方法および装置を提供しており、本開示は、分散コンピュータ技術の分野に関する。本開示では、クライアントが、同じ書き込み対象データに関する書き込み要求を複数のデータサーバへ同時に送信し、次いで、書き込み対象データが幾つのデータサーバへ成功裏に書き込まれているかが解析され、成功した書き込みの数が所定の数より多いかどうかが判定され、その判定結果に従って、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報または第2フィードバック情報が送信される。次いで、受信される第1フィードバック情報または第2フィードバック情報に従って、データサーバは、自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定する。データサーバの状態に基づいて、アップグレード制御サーバがローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知してよい。従って、高水準サービスを停止する必要なしにクライアントに対するシステムのより短い応答時間が保証されることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。

Description

[関連出願の相互参照]
本開示は、2015年12月31日に出願された「METHOD AND APPARATUS FOR UPGRADING DISTRIBUTED STORAGE SYSTEM」と題する中国特許出願第201511034171.7号、および2016年12月19日に出願された「METHOD AND APPARATUS FOR UPGRADING DISTRIBUTED STORAGE SYSTEM」と題する国際特許出願第PCT/CN16/110722号に基づく優先権を主張するものである。これらの出願は両方とも、全体が参照により本明細書に組み込まれる。
本開示は、分散コンピュータ技術の分野、特に分散記憶システムをアップグレードするための方法および装置に関する。
高可用性分散記憶システムが、高可用性サービスを構築するための基盤となっている。分散記憶システムは、分散データサーバで構成され、高信頼性データおよび高可用性アクセスを提供する。高信頼性は、データ冗長マルチバックアップコードまたは消去コードにより実装され、高可用性は、迅速な例外処理およびフェイルオーバにより実装される。分散記憶システムのバージョンアップグレードを実行するには、当該システムのそれぞれのデータサーバが再起動されてバージョンアップデートを完了する必要がある。
現行のシステムでは、以下の解決策を用いて分散記憶システムのアップグレードが実行され得る。
第1解決策では、高水準サービスが無効となり、分散記憶システム全体が停止する。次いで、分散記憶システムの全てのデータサーバが再起動およびアップグレードされる。全てのデータサーバがアップグレードを完了した後、高水準サービスが再開する。しかしながら、この解決策では、全ての高水準サービスが利用不可能となり、こうした非可用性が長期間にわたって続くため、高可用性を必要とするサービスには適用可能でない。
第2解決策では、高水準サービスが停止するのではなく、むしろそれぞれのデータサーバがローリング方式で再起動される。クライアントが複数のデータサーバ(データサーバの数は、バックアップを必要とするデータサーバのデフォルト数である)に対して書き込み要求を送信して、当該データサーバに書き込み対象データを書き込む。要求が失敗すると、クライアントは、当該データサーバの残りで再試行してクライアントのアクセスを確保する。しかしながら、この解決策では、クライアントがデータサーバのリカバリを待ってから再試行した場合に、この再試行手段がサーバの応答時間に大きな影響を及ぼすことになる。なぜなら、データサーバの再起動リカバリには通常何秒もの時間を必要とし、リアルタイム性の高いデータアクセスに10〜100msの遅れが生じるからである。
第3の解決策では、高水準サービスが停止するのではなく、むしろそれぞれのデータサーバがローリング方式で再起動される。クライアントが複数のデータサーバ(当該複数のデータサーバの数は、バックアップを必要とするデータサーバのデフォルト数である)に対して書き込み要求を送信して、当該データサーバに書き込み対象データを書き込む。要求が失敗すると、クライアントは、失敗したデータサーバを無視して再試行することでクライアントのアクセスを確保する。しかしながら、この解決策では、たとえダウンしているデータサーバをクライアントが一時的に無視したとしても、分散記憶システムがこれらのデータサーバのローリングアップグレードを継続する。分散記憶システム内のデータサーバがあまりにも急速にローリング方式で再起動された場合、クライアントが1つのデータサーバにだけ成功した書き込みを実行することで1つのデータサーバだけが成功した書き込みを有することになる場合、および、このデータサーバのディスクまたは機械がローリング再起動中に損傷を受けた場合は、クライアントの書き込み対象データが他のデータサーバに書き込まれていないのでユーザデータが失われる。たとえローリング再起動時間が延長されても、長時間のローリング中に分散記憶システムの大きなクラスタで予期せぬディスクおよび機械の例外が生じる。従って、1つのデータサーバだけがクライアントのデータの成功した書き込みを有するといった状況が存続し、ユーザデータの消失という大きな危険をもたらす。故に、この解決策では、待ち時間の問題は解消されるが、データの信頼性は低い。
前述の問題を考慮して、分散記憶システムをアップグレードするための方法、および、それに対応する、分散記憶システムをアップグレードするための装置を提供することでこれらの問題を克服するか、または少なくとも部分的に解消するために、本開示の実施形態が紹介される。
前述の問題を解消すべく、本開示は、クライアントに適用される、分散記憶システムをアップグレードするための方法を開示する。当該方法は、複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信するステップと、当該複数のデータサーバの各々により返される応答を受信するステップと、当該応答に基づいて、成功した書き込みの数が所定の数より多いかどうかを判定するステップと、成功した書き込みの数が所定の数より多い場合に、成功した書き込みで応答するそれぞれのデータサーバに対して第1フィードバック情報を送信するステップと、成功した書き込みの数が所定の数より多くない場合に、成功した書き込みで応答するそれぞれのデータサーバに対して第2フィードバック情報を送信するステップとを備える。ここで、第1フィードバック情報または第2フィードバック情報は、データサーバが自らの状態を判定するために使用され、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、データサーバの状態は、アップグレード制御サーバがデータサーバに、アップグレード動作を実行するようローリング方式で通知するために使用される。
本開示は更に、データサーバに適用される、分散記憶システムをアップグレードするための方法を開示する。当該方法は、クライアントから送信される第1フィードバック情報または第2フィードバック情報を受信するステップを備える。ここで、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される。データサーバがアップグレードされなかった場合は、第1フィードバック情報または第2フィードバック情報に従って当該データサーバの状態を判定する。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、当該状態は、アップグレード制御サーバがローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知するために使用される。
本開示は更に、アップグレード制御サーバに適用される、分散記憶システムをアップグレードするための方法を開示する。当該方法は、複数のデータサーバのデータサーバごとに状態を取得するステップであって、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、それぞれのデータサーバは一方の状態を有し、データサーバの状態は、第1フィードバック情報または第2フィードバック情報に従って判定され、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、取得するステップと、アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知するステップであって、この通知に従って当該データサーバはアップグレード動作を実行する、通知するステップとを備える。
本開示は更に、クライアントに適用される、分散記憶システムをアップグレードするための装置を開示する。当該装置は、複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信するように構成される要求送信モジュールと、当該データサーバの各々により返される応答を受信すること、および、当該応答に基づいて、成功した書き込みの数が所定の数より多いかどうかを判定することを行うように構成される判定モジュールと、成功した書き込みの数が所定の数より多い場合に、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報を送信するように構成される第1フィードバックモジュールと、成功した書き込みの数が所定の数より多くない場合に、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信するように構成される第2フィードバックモジュールとを備える。ここで、第1フィードバック情報または第2フィードバック情報は、データサーバが自らの状態を判定するために使用され、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、データサーバの状態は、アップグレード制御サーバがデータサーバに、アップグレード動作を実行するようローリング方式で通知するために使用される。
本開示は更に、データサーバに適用される、分散記憶システムをアップグレードするための装置を開示する。当該装置は、クライアントから送信される第1フィードバック情報または第2フィードバック情報を受信するように構成されるフィードバック情報受信モジュールであって、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、フィードバック情報受信モジュールと、データサーバがアップグレードされなかった場合に、第1フィードバック情報または第2フィードバック情報に従ってデータサーバの状態を判定するように構成される状態判定モジュールであって、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、当該状態は、アップグレード制御サーバがローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知するために使用される、状態判定モジュールとを備える。
本開示は更に、アップグレード制御サーバに適用される、分散記憶システムをアップグレードするための装置を開示する。当該装置は、複数のデータサーバのデータサーバごとに状態を取得するように構成される状態取得モジュールであって、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、それぞれのデータサーバは一方の状態を有し、データサーバの状態は、第1フィードバック情報または第2フィードバック情報に従って判定され、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、状態取得モジュールと、アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知するように構成されるアップグレード通知モジュールであって、この通知に従って当該データサーバはアップグレード動作を実行する、アップグレード通知モジュールとを備える。本開示の実施形態には以下の利点がある。
本開示の実施形態において、分散記憶システムがアップグレード手続きを開始した後、分散記憶システムへアクセスしているそれぞれのクライアントは、同じ書き込み対象データに関する書き込み要求を複数のデータサーバへ同時に送信する。それぞれのクライアントは次いで、書き込み対象データが幾つのデータサーバへ成功裏に書き込まれているかを解析し、成功した書き込みの数が所定の数より多いかどうかを判定し、その判定結果に従って、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報または第2フィードバック情報を送信する。受信される第1フィードバック情報または第2フィードバック情報に従って、データサーバは、自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定する。次いで、データサーバの状態に従って、アップグレード制御サーバはローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知してよい。前述のプロセスにより、本開示の実施形態において、アップグレード制御サーバが、ローリング方式でアップグレードするようデータサーバを制御する場合は、高水準サービスが停止する必要はない。なぜなら、クライアントがデータサーバの状態を制御し、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証されるからである。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。
本開示の幾つかの実施形態に係る、クライアント側で分散記憶システムをアップグレードするための方法を示すフロー図である。
本開示の幾つかの実施形態に係る、クライアント側で分散記憶システムをアップグレードするための方法を示すフロー図である。
本開示の幾つかの実施形態に係る、アップグレード制御サーバ側で分散記憶システムをアップグレードするための方法を示すフロー図である。
本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための方法を示すフロー図である。
本開示の幾つかの実施形態に係る、クライアント側で分散記憶システムをアップグレードするための装置のブロック図である。
本開示の幾つかの実施形態に係る、クライアント側で分散記憶システムをアップグレードするための装置のブロック図である。
本開示の幾つかの実施形態に係る、データサーバ側で分散記憶システムをアップグレードするための装置のブロック図である。
本開示の幾つかの実施形態に係る、アップグレード制御サーバ側で分散記憶システムをアップグレードするための装置のブロック図である。
本開示の幾つかの実施形態に係る、分散記憶システムのアーキテクチャを示している。
上述した本開示の目的、特徴および利点をより明瞭で理解し易くするために、本開示は、添付図および具体的な実装と併せて更に詳しく後述される。
開示される実施形態の核となる着想のうち1つは、分散記憶システムのデータサーバおよびアップグレード制御サーバに対する創造的変更が為されるというものであり、データサーバへアクセスしているクライアントに対して新たな実行論理が提供されるというものでもある。分散記憶システムがアップグレード手続きを開始した後、分散記憶システムへアクセスしているそれぞれのクライアントは、同じ書き込み対象データに関する書き込み要求を複数のデータサーバへ同時に送信する。次いで、書き込み対象データが成功裏に書き込まれたデータサーバの数が解析される。成功した書き込みの数が所定の数より多いかどうかが判定される。この判定に従って、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報または第2フィードバック情報が送信される。受信される第1フィードバック情報または第2フィードバック情報に従って、データサーバは、自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定する。次いで、データサーバの状態に従って、アップグレード制御サーバはローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知してよい。前述のプロセスにより、アップグレード制御サーバが、ローリング方式でアップグレードするようアップグレード可能な状態にあるデータサーバを制御する場合は、高水準サービスが停止する必要はない。なぜなら、クライアントがデータサーバの状態を制御し、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証されるからである。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。更に、このプロセスは、サービスが影響を受けないように保証しつつ、アップグレード中の機械の予期せぬ例外を許容できる。
後述される本開示の実施形態は、クライアントに適用されてよい。
図1は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための方法を示すフロー図である。具体的に言うと、当該方法は以下のステップを含んでよい。
ステップ110:複数のデータサーバに対して書き込み対象データに関する書き込み要求を伝送する。一実施形態では、書き込み要求ごとに書き込み対象データが同じである。
本開示のこの実施形態において、クライアント(A)が分散記憶システムのアップグレード中にデータA1をデータサーバへ書き込もうとする場合は、クライアントAが複数のデータサーバに対してデータA1に関する書き込み要求を送信する。
本開示のこの実施形態では、複数のデータサーバの数Rが、例えば10に予め設定されてよい。本開示で具体的な数Rが限定されることはない。
次いで、クライアントAは、R個のデータサーバに対して書き込み対象データに関する書き込み要求を送信し、次いで、ステップ120へと進んでよい。
実際の適用においては、まず、クライアントAが分散記憶システムのスケジューリングサーバに対してR個の書き込み要求を送信してよいことが理解され得る。次いで、スケジューリングサーバは、どのR個のデータサーバに当該R個の書き込み要求が割り当てられるかを制御する。
異なるクライアントがR個のデータサーバに対して自らの書き込み対象データに関する書き込み要求を送信する場合は、R個のデータサーバがそれぞれ同じであってもよいし、異なっていてもよいことに留意すべきである。
本開示の別の実施形態において、当該方法は、ステップ110の前にステップ101および102を更に含む。
ステップ101:データサーバへアクセスするときに当該データサーバにより送信される第2アップグレード通知を受信する。
ステップ102:第2アップグレード通知に従って、アップグレード準備状態へと移行する。
本開示のこの実施形態では、まず、分散記憶システムのアップグレード制御サーバが、それぞれのデータサーバにアップグレード準備状態への移行を通知する。次いで、それぞれのデータサーバは、クライアントがアップグレード準備状態へと移行するよう、データサーバへアクセスしているクライアントに対して第2アップグレード通知を送信してよい。
それに応じて、アップグレード準備状態へと移行しているデータサーバにクライアントAがアクセスした後、当該データサーバは、第2アップグレード通知をクライアントに返す。第2アップグレード通知を受信した後、クライアントは、第2アップグレード通知に従ってアップグレード準備状態へと移行する。
本開示のこの実施形態において、クライアントがブラウザのウェブページを介してデータサーバにアクセスする場合は、ブラウザにより開かれたウェブページを介して、アップグレードスクリプトがブラウザに送信されてよい。当該スクリプトを受信した後、ブラウザは、クライアントがアップグレード準備状態へと移行するよう当該スクリプトを実行してよい。クライアントがモバイルアプリケーション(例えばALIPAYアプリケーション)を介してデータサーバにアクセスする場合は、当該アプリケーションにアップグレード処理論理が予め追加されてよい。アップグレード処理論理は、クライアントがアップグレード準備状態へと移行するよう、アプリケーションが第2アップグレード通知を受信した後に有効となる。もちろん、本開示で具体的なやり方が限定されることはない。
クライアントがアップグレード準備状態へと移行するとき、クライアントにより実行される、本開示の一実施形態におけるステップ110、120、130および140等のステップへとフローが移行してよい。
ステップ120:データサーバの各々により返される書き込み応答を受信し、当該応答に従って、成功した書き込みの数が所定の数より多いかどうかを判定する。成功した書き込みの数が所定の数より多い場合は、ステップ130へと移行する。成功した書き込みの数が所定の数より多くない場合は、ステップ140へと移行する。
本開示のこの実施形態において、正常な状況下で、それぞれのデータサーバは、クライアントにより送信される、同じ書き込み対象データに関する書き込み要求を受信した後、相応してクライアントへ応答を返す。もちろん、アップグレード中の特定のデータサーバまたはダウンしている特定のデータサーバがクライアントに応答を返すことはない。
本開示のこの実施形態において、クライアントは、R個のデータサーバに対して書き込み対象データA1に関する書き込み要求を送信した後、受信される応答を定期的にチェックしてよい。例えば、特定の1つまたは複数のデータサーバの1つまたは複数の応答が受信されたかどうかが定期的にチェックされる。指定された期間内に特定の1つまたは複数のデータサーバの1つまたは複数の応答が受信されなかった場合、このことは、書き込み対象データA1が特定の1つまたは複数のデータサーバへ成功裏に書き込まれていないことを示す。指定された期間内に特定の1つまたは複数のデータサーバの1つまたは複数の応答が受信された場合は、当該応答が成功した書き込み応答であるのか、失敗した書き込み応答であるのかが判定されてよい。
応答が成功した書き込み応答であれば、このことは、当該成功した書き込み応答に対応するデータサーバが書き込み対象データA1を成功裏にバックアップしたこと、すなわち成功裏に書き込んだことを示す。応答が失敗した書き込み応答であれば、当該失敗した書き込み応答に対応するデータサーバが書き込み対象データA1をバックアップするのに失敗したこと、すなわち書き込むのに失敗したことを示す。
R個のデータサーバの応答については、MがNより大きいかどうかをクライアントAが定期的にチェックすることに留意すべきである(パラメータMおよびNについては、本明細書で更に説明される)。期間は例えば1ms(マイクロ秒)である。もちろん、期間は必要に従って決定されてよく、本開示により限定されることはない。次いで、前述の決定に基づいて、データサーバに対する書き込み対象データA1の成功した書き込みの数が算出されてよい。
本開示のこの実施形態では、成功した書き込みの所定の数が予め設定されてよい。所定の数は、成功した書き込みの必要最低限の数であり、クライアントの書き込み対象データのバックアップに成功したデータサーバの数と理解されてもよい。所定の数は例えばNである。ここで、N<Rであり、NおよびRは両方とも正の整数である。実際には、デフォルト設定によりN=3およびR=10であってよい。もちろん、NおよびRの値は実際の必要に従って設定されてよく、本開示で限定されることはない。
次いで、クライアントAが現在のR個のデータサーバに対して書き込み対象データA1に関する書き込み要求を送信した後、M個のデータサーバが成功した書き込み応答を返す場合は、M>Nかどうかが判定される。M>Nならば、フローがステップ130へと移行する。M≦Nならば、フローがステップ140へと移行する。M≧0であり、Mは整数である。
実際の適用においては、データサーバがラック上に設置される。次いで、ディザスタリカバリ・バックアップの効果を更に高めるために、R個のデータサーバが異なるラック上に設置されてよい。R個のデータサーバは、全て異なるラック上に設置されるのが最適である。
ステップ130:成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報を送信する。
クライアントの書き込み要求が成功裏に受信され得ること、および、内部の書き込み対象データがバックアップされ得ることから、M個のデータサーバが利用可能であると言える。次いで、クライアントは、M個のデータサーバに対して第1フィードバックメッセージを送信してよい。第1フィードバックメッセージは、例えばOKメッセージであってよく、OKメッセージは、データサーバに対してそれが自らの状態をアップグレード可能なものに設定できることを知らせる。
実際のところ、本開示の図2では、データサーバが第1フィードバックメッセージに従って自らの状態をアップグレード可能なものに設定する方法が詳しく説明されている。
ステップ140:成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信する。
第1フィードバック情報または第2フィードバック情報は、データサーバが自らの状態を判定するために使用される。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれる。データサーバの状態は、アップグレード制御サーバがデータサーバに、アップグレード動作を実行するようローリング方式で通知するために使用される。
M≦Nならば、M個のデータサーバが利用可能となるので、クライアントは、M個のデータサーバに対して第2フィードバックメッセージを送信してよい。第2フィードバックメッセージは、例えばHOLDハートビートメッセージであってよく、HOLDメッセージは、データサーバに対してそれが自らの状態をアップグレード不可能なものに設定できることを知らせる。 実際のところ、本開示の図2では、データサーバが第2フィードバックメッセージに従って自らの状態をアップグレード不可能なものに設定する方法が詳しく説明されている。
M<Nという状況については、Mが少なくともNと等しいことが保証されるまで、クライアントが書き込み要求を新たなデータサーバへ再び送信することに留意すべきである。
分散記憶システム内のアップグレードされなかったそれぞれのデータサーバについては、データサーバは、データサーバが第1フィードバック情報または第2フィードバック情報を受信するときに、第1フィードバック情報または第2フィードバック情報に従って自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定してよい。アップグレード可能な状態は例えばOKであり、アップグレード不可能な状態は例えばHOLDである。例えば、特定のデータサーバが第2フィードバック情報を受信する場合は、データサーバが自らの状態をアップグレード不可能なものに設定してよい。特定のデータサーバが第1フィードバック情報を受信する場合は、データサーバが自らの状態をアップグレード可能なものに設定してよい。
もちろん、実際の適用においては、高水準サービスが停止するのではなく、データサーバが継続的にアップグレードされるので、前述のR個のデータサーバが、アップグレードを完了するデータサーバを含んでもよい。次いで、アップグレードされたデータサーバについては、データサーバにより受信される任意の前述のフィードバック情報が更に処理されることはなく、データサーバはアップグレードされた状態のままである。
本開示の図2では、受信される第1フィードバック情報または第2フィードバック情報に従ってデータサーバが自らの状態を判定する方法の具体的なプロセスが詳しく説明されている。
更に、それぞれのデータサーバの状態は、アップグレード制御サーバがデータサーバに、アップグレード動作を実行するようローリング方式で通知するために使用されてよい。本開示の図3では、アップグレード制御サーバがデータサーバに、アップグレード動作を実行するようローリング方式で通知する方法の具体的なプロセスが説明されている。
本開示の別の実施形態において、ステップ140は、サブステップ141〜144を含む。
サブステップ141:成功した書き込みの数が所定の数と等しい場合は、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信する。
例えば、前述のクライアントAは、R個のデータサーバに対して書き込み対象データA1を初めて送信する。次いで、モニタリングされた成功した書き込み応答の数がM=Nであれば、成功した書き込みを有するM個のデータサーバに対して第2フィードバック情報が直接送信され得る。
サブステップ142:成功した書き込みの数が所定の数より少なければ、当該複数のデータサーバ以外の少なくとも1つのデータサーバに対して書き込み対象データに関する書き込み要求を送信する。
サブステップ143:当該少なくとも1つのデータサーバにより返される応答を受信し、当該応答に従って、成功した書き込みの現在の数が成功した書き込みの以前の数と組み合わせて所定の数と等しくなるかどうかを判定する。成功した書き込みの現在の数が所定の数と等しい場合は、フローがサブステップ144へと移行する。成功した書き込みの現在の数が所定の数より少なければ、フローがサブステップ142へと移行する。
サブステップ144:成功した書き込みの数が所定の数と等しい場合は、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信する。
クライアントAがR個のデータサーバに対して書き込み対象データA1を初めて送信するサブステップ142〜144については、モニタリングされた成功した応答の数がM<Nであれば、少なくとも(N−M)個のデータサーバに対して書き込み要求が改めて送信される。次いで(N−M)個のデータサーバの応答が受信され、(N−M)個のデータサーバにより返される成功した書き込み応答の数が、R個のデータサーバの成功した書き込み応答の以前の数に追加されてMとなる。この時点でM=Nならば、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報が送信される。この時点でMの値は変化するが、Mがこの時点で依然としてNより小さければ、少なくとも(N−M)個のデータサーバに対して書き込み要求が再び送信される。このプロセスはM=Nとなるまで継続し、次いで、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報が送信される。
更に、R=10であり、N=5であり、かつ、クライアントAが10個のデータサーバに対して書き込み対象データA1を初めて送信する場合は、モニタリングされた成功した書き込み応答の数がM=3であれば、少なくとも(5−3=2)個のデータサーバに対して書き込み要求が改めて送信される。2つのデータサーバの成功した書き込み応答の数が更にモニタリングされ、一方の成功した書き込み応答だけが受信されたことが分かり、次いで、予め記録されている3に1が追加されてM=4となる。次いで、少なくとも(5−4=1)個のデータサーバに対して書き込み要求が改めて送信される。前述のやり方で、モニタリングおよび判定が更に実行される。M=N=5ならば、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報が送信される。実際の適用において、M<Nならば、前述のプロセスにおいて第2フィードバックメッセージは、書き込み要求が送信されるたびに、成功した書き込みを有するデータサーバに対して直接送信されてよく、M=Nになるまで待ってからまとめて送信しなくてもよい。
もちろん、実際の適用においては、データサーバの応答が定期的にチェックされるので、指定された期間T、例えば3*TにおいてM<Nであると更に判定された場合は、少なくとも(N−M)個のデータサーバに対して書き込み要求が改めて送信される。MおよびNに関するそのような判定は、周期ごとに為される。一般的には、複数の周期の後にM=Nであると判定され得る。応答時間は一般的に短く、クライアントの応答遅延に大きな影響を及ぼすことはない。ユーザの観点からすれば、前述の状況における応答遅延は、再起動を待っている際の応答遅延よりもはるかに短いことが分かる。
このように、複数のデータベースにおけるクライアントのバックアップ対象データの成功したバックアップが、アップロードサービスの通常使用に影響を及ぼすことなく保証される。
本開示の別の実施形態において、当該方法は、ステップ140の後にステップ150を更に含む。
ステップ150:新たな書き込み対象データが現れた場合は、以前に成功した書き込みがあったデータサーバを含む複数のデータサーバが対象として使用され、ステップ120へと移行する。
M=Nという状況については、成功した書き込みを有するそれぞれのデータサーバに対してクライアントがHOLDハートビート情報を返すので、これらのデータサーバが自らをアップグレード不可能な状態、例えばHOLD状態に設定することが理解され得る。これらのデータサーバにおけるクライアントの制限をより簡便に取り除くべく、本開示のこの実施形態において、クライアントはその後、以前のR個のデータサーバに対して新たな書き込み対象データに関する書き込み要求を送信する。
例えば、クライアントAの書き込み対象データA1については、10個のデータサーバU1、U2・・・U10に対して書き込み要求が予め送信され、M=Nと判定される。次いで、クライアントAの書き込み対象データA2については、10個のデータサーバU1、U2・・・U10に対して書き込み要求が更に送信されてよく、ステップ120での判定する段階が継続する。
サブステップ142については、R個のデータサーバが、成功した書き込みを有するM個のデータサーバを含むこと、次いで、失敗した書き込みを有するデータサーバから残り(R−M個)のデータサーバが選択されることが理解され得る。例えば、R=10かつN=3であり、クライアントAの書き込み対象データA1については、10個のデータサーバU1、U2・・・U10に対して書き込み要求が初めて送信され、U1およびU2だけが成功した書き込みを有し、次いで、U11およびU12に対して2度目の書き込み要求が送信され、U11が成功した書き込みを有する。次いで、クライアントの書き込み対象データA2については、10個のデータサーバU1、U2、U11、U4、U5・・・U10が選択されてよく、当該10個のデータサーバに対して書き込み要求が送信されるが、もちろん、U1、U2、U11および他のデータサーバから成る10個のデータサーバが選択されてもよい。
次いで、クライアントAの書き込み対象データA2の成功した書き込みの数がM>Nであれば、成功した書き込みを有するそれぞれのデータサーバに対してOKメッセージが送信されてよく、データサーバは、OKメッセージに従って自らの状態をアップグレード可能に変更するかどうかを判定してよい。
このように、M<Nという状況では、クライアントが書き込み対象データを同じR個のデータサーバへ再び書き込んで、当該データサーバの状態をアクティブにアップデートしてよい。その結果、当該データサーバがアップグレード不可能な状態にある時間が短縮され得る。
本開示の別の実施形態において、第1フィードバック情報および第2フィードバック情報は、クライアント識別子を含む。
例えば、クライアントAについては、第1フィードバック情報または第2フィードバック情報をサーバへ送信するとき、第1フィードバック情報および第2フィードバック情報の両方がクライアント識別子「クライアントA」を含む。
次いで、データサーバが自らの状態を判定するために第1フィードバック情報または第2フィードバック情報が使用されることは、第2フィードバック情報を受信した後に、データサーバが、第2フィードバック情報内のクライアント識別子をアップグレード不可能なリストに書き込むこと、および、自らの状態をアップグレード不可能なものとしてマーキングすることを行うために、第2フィードバック情報が使用されることを含む。
本開示のこの実施形態では、アップグレード不可能なリストがデータサーバ側で設定される。クライアントAを例として用いると、クライアントAの第2フィードバック情報を受信した後、データサーバは、自らの状態をアップグレード不可能な状態に設定して、クライアントAをアップグレード不可能なリストに書き込む。
データサーバが第1フィードバック情報を受信した後、第1フィードバック情報は、データサーバが、第1フィードバック情報内のクライアント識別子をアップグレード不可能なリストから削除すること、および、アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを行うために使用される。
本開示のこの実施形態では、このステップが実行された後、成功した書き込みを有するそれぞれのデータサーバに対してクライアントAが第2フィードバック情報を送信し、新たな書き込み対象データが出現し、成功した書き込みを有する以前のデータサーバを含む複数のデータサーバが対象として使用される。次いで、クライアントAにより送信される第2フィードバックメッセージを受信するデータサーバはその後、クライアントAにより送信されるメッセージを受信する。次いで、データサーバにより更に受信されるクライアントAのメッセージが第1フィードバックメッセージであれば、クライアントAの記録がアップグレード不可能なリストから削除されてよい。
もちろん、実際の適用においては、データサーバが特定のクライアントの第1フィードバックメッセージを受信し、対応するクライアント識別子は、アップグレード不可能なリストに記録されなくてもよい。その場合は、削除プロセスが実行される必要はない。
次いで、アップグレード不可能なリストが空であるとデータサーバが判定すれば、データサーバは、自らの状態をアップグレード可能なものに設定する。
もちろん、本開示のこの実施形態において、クライアントは、データサーバにより送信される、アップグレード準備状態を終了するようにとの終了通知を更に受信し、当該終了通知に従ってアップグレード準備状態を終了してよい。次いで、クライアントは、通常の要求送信論理に従って書き込み要求をデータサーバへ送信する。
本開示のこの実施形態では、本開示における分散記憶システムをアップグレードするための方法がクライアント側から導入され、それぞれのクライアントが、同じ書き込み対象データに関する書き込み要求を複数のデータサーバへ同時に送信し、次いで、幾つのデータサーバが成功した書き込みを有しているかが解析され、成功した書き込みの数が所定の数より多いかどうかが判定され、その判定結果に従って、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報または第2フィードバック情報が送信される。 データサーバが第1フィードバック情報を受信した後、第1フィードバック情報は、データサーバが、第1フィードバック情報内のクライアント識別子をアップグレード不可能なリストから削除すること、および、アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを行うために使用される。従って、本開示の実施形態において、アップグレード制御サーバが、ローリング方式でアップグレードするようデータサーバを制御する場合は、高水準サービスが停止する必要はない。なぜなら、クライアントがデータサーバの状態を制御し、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証されるからである。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。
本開示のこの実施形態は、分散記憶システムのデータサーバ側に適用される。
図2は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための方法を示すフロー図である。具体的に言うと、当該方法は以下のステップを含んでよい。
ステップ210:クライアントから送信される第1フィードバック情報または第2フィードバック情報を受信する。ここで、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される。
図1におけるクライアント側の説明を参照すると、クライアントがR個のデータサーバに対して書き込み対象データA1に関する書き込み要求を送信した後、成功した書き込みの数Mが所定の数Nより大きければ、M個のデータサーバに対して第1フィードバックメッセージが送信される。MがNと等しい場合は、M個のデータサーバに対して第2フィードバックメッセージが送信される。M<Nならば、当該複数のデータサーバ以外の少なくとも1つのデータサーバに対して書き込み対象データA1に関する書き込み要求が送信される。次いで、当該少なくとも1つのデータサーバにより返される応答が受信され、当該応答に従って、全ての成功した書き込みの現在の数Mが成功した書き込みの以前の数と組み合わせて所定の数Nと等しくなるかどうかが判定される。M=Nならば、M個のデータサーバに対して第2フィードバック情報が送信される。クライアントが第1フィードバック情報および第2フィードバック情報を返す具体的なプロセスについては、図1の説明が参照されてよく、本明細書で再び説明されることはない。
関連して言うと、分散記憶システム内のそれぞれのデータサーバは、それぞれのクライアントにより返されるOKメッセージ等の第1フィードバック情報を受信してよい。または、それぞれのクライアントにより返されるHOLDメッセージ等の第2フィードバックメッセージが受信されてもよい。
一実施形態において、当該方法は、ステップ210の前に以下のステップを更に含む。
ステップ201:アップグレード制御サーバにより送信される第1アップグレード通知を受信する。
ステップ202:第1アップグレード通知に従ってアップグレード準備状態へと移行すること、および、クライアントがアップグレード準備状態へと移行するよう、クライアントのアクセス要求を受信した後に第2アップグレード通知をクライアントへ送信することを行う。
本開示のこの実施形態では、まず、分散記憶システムのアップグレード制御サーバが第1アップグレード通知をそれぞれのデータサーバへ送信する。それに応じて、それぞれのデータサーバは、第1アップグレード通知を受信し、次いで、第1アップグレード通知に従ってアップグレード準備状態へと移行する。
次いで、アップグレード準備状態に移行するデータサーバへのアクセスについては、特定のクライアントのアクセス要求が受信された後に、第2アップグレード通知がクライアントに返される。クライアントは次いで、第2アップグレード通知に従ってアップグレード準備状態へと移行する。
データサーバがアップグレード準備状態へと移行するときには、データサーバにより実行される、本開示のこの実施形態におけるステップ210および220等のステップへとフローが移行してよい。
ステップ220:データサーバがアップグレードされなかった場合は、第1フィードバック情報または第2フィードバック情報に従ってデータサーバの状態を判定する。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれる。
当該状態は、アップグレード制御サーバがローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知するために使用される。
実際の適用においては、全てのデータサーバがアップグレード準備状態へと移行したばかりであれば、それぞれのデータサーバがアップグレードされることはない。しかしながら、幾つかのデータサーバが継続的にアップグレードされているときには、これらのデータサーバがアップグレードされた状態にある。例えば、成功裏にアップグレードされたデータサーバが自らの状態をDONEに設定する。この時点で、成功裏にアップグレードされたデータサーバは、第1フィードバック情報または第2フィードバック情報も受信する。しかしながら、データサーバが第1フィードバック情報または第2フィードバック情報を更に処理することはなく、アップグレードされた状態のままである。
アップグレードされていない状態にあるデータサーバだけが、第1フィードバック情報または第2フィードバック情報に従ってデータサーバ自らの状態を判定する。
分散クラスタ内のアップグレードされなかったそれぞれのデータサーバについては、データサーバは、データサーバが第1フィードバック情報または第2フィードバック情報を受信するときに、第1フィードバック情報または第2フィードバック情報に従って自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定してよいことが理解され得る。アップグレード可能な状態は例えばOKであり、アップグレード不可能な状態は例えばHOLDである。例えば、特定のデータサーバが第2フィードバック情報を受信する場合は、データサーバが自らの状態をアップグレード不可能なものに設定してよい。特定のデータサーバが第1フィードバック情報を受信する場合は、データサーバが自らの状態をアップグレード可能なものに設定してよい。
本開示の別の実施形態において、第1フィードバック情報および第2フィードバック情報は、クライアント識別子を含む。次いで、ステップ220は、図1のステップ150に基づいてサブステップ221および222を含んでよい。
サブステップ221:第2フィードバック情報を受信すると、第2フィードバック情報内のクライアント識別子をアップグレード不可能なリストに書き込んで、自らの状態をアップグレード不可能なものとしてマーキングする。
本開示のこの実施形態では、アップグレード不可能なリストがそれぞれのデータサーバに予め設定され、HOLDメッセージを送信するクライアントの識別子等の情報を記録するのに使用される。
例えば、クライアントAが複数のデータサーバに対して書き込み対象データA1に関する書き込み要求を送信する。ここで、データサーバU1、U2、U3は成功した書き込みを有する。M=Nならば、クライアントがM個の対応するデータサーバに対してHOLDメッセージを送信する。HOLDメッセージは、HOLD命令およびクライアント識別子を含む。次いで、M個のデータサーバは、HOLDメッセージを受信するとクライアントAをアップグレード不可能なリストに記録する。もちろん、相応して現在時刻が記録されてよい。
例えば、クライアントBが複数のデータサーバに対して書き込み対象データB1に関する書き込み要求を送信する。ここで、複数のデータサーバにはデータサーバU1も含まれ、M=Nである。次いで、データサーバU1のアップグレード不可能なリストがクライアントBを更に記録する。もちろん、現在時刻も記録されてよい。
表1には、データサーバU1のアップグレード不可能なリストの記録の例が示されている。
同じクライアントにより再び送信されるHOLDメッセージについては、アップグレード不可能なリストは、クライアントに対応するクライアント識別子を1つだけ記録してもよいし、クライアントに対応するクライアント識別子を複数記録してもよい。実際の適用において、同じクライアントにより異なる時刻に送信されるHOLDメッセージについては、クライアント識別子が1つだけ記録されてよく、次いで、それぞれの時刻が時刻フィールドに記録される。
HOLDメッセージが受信された後、データサーバ自らの状態は、HOLD状態へと更に変更され、データサーバがアップグレード不可能であることを示す。
一実施形態において、当該方法は、サブステップ221の後にサブステップB21を更に含む。
サブステップB21:アップグレード不可能なリスト内のクライアント識別子については、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかったかどうかを判定し、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかった場合に、クライアント識別子をアップグレード不可能なリストから削除する。
本開示のこの実施形態では、期間T1が予め設定されてよく、アップグレード不可能なリスト内のクライアント識別子に対応するクライアントについては、クライアントにより送信されるHOLDメッセージをデータサーバが所定の数の期間内に再び受信していない場合は、アップグレード不可能なリスト内のクライアント識別子の記録が削除される。
例えば、前述のデータサーバU1の表1については、クライアントAのHOLDメッセージが3*T1という時間内に受信されなかった場合に、表1内のクライアントAの記録が削除される。
このステップにより、データサーバがアップグレード不可能な状態へ移行した後、アップグレード不可能な状態にずっと留まるのを防ぐことができる。
サブステップ222:第1フィードバック情報を受信すると、第1フィードバック情報内のクライアント識別子をアップグレード不可能なリストから削除し、アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングする。
例えば、クライアントAにより送信されるOKメッセージを前述のデータサーバU1が再び受信し、次いで、クライアントAの記録が表1から削除される。データサーバが表1内の全ての記録を削除した後に表1が空であれば、データサーバは、自らの状態をアップグレード可能なものに設定する。
本開示の別の実施形態におけるサブステップ222は、サブステップB11〜B14を含む。
サブステップB11:アップグレード不可能なリストが第1フィードバック情報内のクライアント識別子を含むかどうかを判定し、含む場合はサブステップB12へと移行する。
サブステップB12:クライアント識別子をアップグレード不可能なリストから削除する。
1つのデータサーバが使用を目的として異なるクライアントへ割り当てられてよいので、異なるクライアントの第1フィードバック情報が受信されてよい。次いで、受信される特定のクライアントの第1フィードバック情報に基づいて、アップグレード不可能なリストが第1フィードバック情報のクライアント識別子を含むかどうかが判定される。アップグレード不可能なリストが第1フィードバック情報のクライアント識別子を含む場合は、アップグレード不可能なリストからクライアント識別子が削除される。アップグレード不可能なリストが第1フィードバック情報のクライアント識別子を含まない場合は、その後の動作が実行されなくてもよい。
例えば、前述のデータサーバU1については、クライアントAにより改めて送信される、クライアント識別子を含むOKメッセージが受信された場合は、表1内のクライアント識別子とのマッチングに当該クライアント識別子が使用されてよい。クライアントAが存在することが分かった場合は、次いで、クライアントAの記録が消去される。クライアントCにより送信されるOKメッセージが受信されて、クライアントCが表1に記録されていないことが分かった場合は、何の動作も実行されない。
前述のステップにより、データサーバが簡単な論理で自らのアップグレード状態を管理するのが容易になる。
サブステップB13:アップグレード不可能なリストが空であるかどうかを判定し、空であればサブステップB14へと移行する。アップグレード不可能なリストが空でない場合は、データサーバが自らの状態をアップグレード不可能なものに維持する。
サブステップB14:自らの状態をアップグレード可能なものとしてマーキングする。
アップグレード不可能なリストが空でない場合は、データサーバが自らの状態をアップグレード不可能なものとして維持する。
例えば、前述の例において、データサーバU1は、まずクライアントAにより送信されるOKメッセージを受信し、クライアントAの記録を消去し、表1がまだ空ではないと判定する。従って、データサーバU1はHOLD状態のままである。次いで、クライアントBのOKメッセージが受信された場合は、表1内のクライアントBの記録がサブステップ221で削除され、この時点で表1が空であると判定される。次いで、データサーバU1は、自らのHOLD状態をOK状態に変更し、データサーバU1がアップグレード可能であることを示す。
次いで、それぞれのデータサーバの状態に従って、アップグレード制御サーバはローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知してよい。アップグレード制御サーバがそれぞれのデータサーバのアップグレードを具体的に制御するプロセスについては、図3の説明が参照されてよい。
もちろん、本開示のこの実施形態において、データサーバは、アップグレード制御サーバにより送信される、アップグレード準備状態を終了するようにとの終了通知を更に受信し、当該終了通知に従ってアップグレード準備状態を終了してよい。一方で、データサーバは、クライアントがアップグレード準備状態を終了するよう、当該終了通知に従って終了通知をクライアントへ送信してよい。次いで、データサーバは、通常の処理論理に従ってクライアントの書き込み要求を処理する。
本開示のこの実施形態では、本開示における分散記憶システムをアップグレードするための方法がデータサーバ側で導入される。クライアントにより送信される、受信される第1フィードバック情報または第2フィードバック情報に従って、データサーバは、自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定する。第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後、成功した書き込みの数と所定の数とを比較した結果に従って取得され、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、当該状態は、アップグレード制御サーバがローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知するために使用される。従って、クライアントがデータサーバの状態を制御することにより、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証される。アップグレード制御サーバが、ローリング方式でアップグレードするようそれぞれのデータサーバを制御する場合は、高水準サービスが停止する必要はない。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。
図3は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための方法を示すフロー図である。具体的に言うと、当該方法は以下のステップを含んでよい。
ステップ310:それぞれのデータサーバの状態を取得する。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、それぞれのデータサーバは一方の状態を有する。データサーバの状態は、第1フィードバック情報または第2フィードバック情報に従って判定され、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される。
図1および図2の説明を参照すると、分散記憶システム内のそれぞれのデータサーバは、クライアントによりフィードバックされる第1フィードバックメッセージおよび/または第2フィードバックメッセージに従って自らの状態を判定してよい。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれる。
それぞれのデータサーバは、同時に一方の状態だけを有し得る。例えば、特定のデータサーバがアップグレード可能な状態にある場合は、当該データサーバが他の状態を有することはできない。他の状況についても同じことが当てはまり、本明細書で再び説明されることはない。
次いで、本開示のこの実施形態では、アップグレード制御サーバがそれぞれのデータサーバの状態を取得できる。
アップグレード制御サーバがデータサーバの状態を取得するための具体的な取得方法は多数あり得るが、本開示で限定されることはない。
ステップ320:アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知する。この通知に従って、当該データサーバはアップグレード動作を実行する。
本開示のこの実施形態では、それぞれのデータサーバがクライアントのフィードバック情報に従って自らの状態を設定するので、アップグレード制御サーバが、アップグレード動作を実行するようアップグレード可能な状態にあるデータサーバをローリング方式で制御してよい。
例えば、アップグレード可能なデータサーバの群が毎回選択され、データサーバのこの群がアップグレード動作を実行するよう通知される。データサーバのこの群は、アップグレード通知を受信した後に再起動およびアップグレードされてよい。
本開示の別の実施形態において、ステップ320は、サブステップ321および322を含む。
サブステップ321:毎回アップグレード可能な状態にある少なくとも1つのデータサーバを選択し、アップグレード可能な状態にある当該少なくとも1つのデータサーバに、アップグレード動作を実行するよう通知する。
例えば、アップグレード可能な状態にあるデータサーバには、U1、U2、U3、U10、U11・・・U20等が含まれる。次いで、アップグレード制御サーバが、K個のデータサーバ、例えば3つのデータサーバを毎回そこから選択し、当該データサーバに、アップグレード動作を実行するよう通知してよい。Kは0より大きい整数である。もちろん、Kは実際の必要に従って設定されてよく、本開示により限定されることはない。
サブステップ322:アップグレード可能な状態にある少なくとも1つのデータサーバがアップグレード動作を完全に終了しているかどうかをモニタリングし、終了している場合はサブステップ321へと移行する。
例えば、アップグレード制御サーバは、前述のデータサーバU1、U2およびU3に、アップグレード動作を実行するよう通知し、次いで、データサーバU1、U2およびU3は、再起動およびアップグレードされる。データサーバが成功裏にアップグレードされた後、当該データサーバは自らの状態をアップグレードされた状態、例えばDONEに変更し得る。
次いで、アップグレード制御サーバは、これらのデータサーバの状態がDONEであるかどうかをモニタリングしてよく、DONEであればアップグレードは成功である。
もちろん、実際の適用においては、1つまたは複数のデータサーバが、データサーバのこの群のアップグレード中にアップグレードに失敗することもある。アップグレード制御サーバは次いで、データサーバがアップグレードに成功したのか、またはアップグレードに失敗したのかをモニタリングする。実際の適用において、機械の再起動に失敗した、または再起動後のシステムバージョンが変わらないといった状況が起きた場合は、アップグレードに失敗したと判定されてよい。
アップグレード動作を終了する前述のステップがアップグレードの成功およびアップグレードの失敗を両方とも含んでよいことに留意すべきである。アップグレード動作を完全に終了するステップは、全てのデータサーバが成功裏にアップグレードされること、および、幾つかのデータサーバだけが成功裏にアップグレードされた場合に残りのデータサーバがアップグレードに失敗することを伴う。
U1、U2およびU3の状態が全てDONEであれば、次回に備えてアップグレード可能な状態にある少なくとも1つのデータサーバを選択すること、および、アップグレード可能な状態にある当該少なくとも1つのデータサーバに、アップグレード動作を実行するよう通知することを行うステップへとフローが移行する。
アップグレード制御サーバにより通知される全てのデータサーバがアップグレード動作を完全に終了していることをアップグレード制御サーバがモニタリングした場合は、アップグレード制御サーバは、データサーバの次の群をアップグレード可能な状態にあるデータサーバからアップグレードのためにローリング方式で選択してよい。
このようにして、極度に頻繁なローリングが回避され、データの消失という危険が低下する。
本開示の別の実施形態において、当該方法は、データサーバがアップグレード動作を実行した後に以下のステップを更に含む。
サブステップ323:任意のデータサーバのアップグレード動作の結果がアップグレードの失敗であることがモニタリングされた場合は、当該データサーバをアップグレードブラックリストに追加し、当該データサーバのアップグレードを中断する。
特定のデータサーバがアップグレードに失敗した場合は、アップグレード制御サーバが当該データサーバをアップグレードブラックリストに追加し、当該データサーバのアップグレードを中断する。これらのデータサーバは次いで、オフラインになるのを待つか、または手動での修理を待つ。
一実施形態において、本開示のこの実施形態における複数のデータサーバは、少なくとも2つのラック上に設置されてよい。実際の適用においては、もちろん、分散記憶システム内の様々なデータサーバが複数のラック上に設置されてよく、1つのラックは、1つのデータサーバ・サブクラスタ用である。
更に、ステップ320はサブステップC11を含む。
サブステップC11:毎回アップグレード可能な状態にあるデータサーバを最も多く有するラックを選択し、当該ラック内のデータサーバに、アップグレード動作を実行するよう通知する。この通知に従って、当該ラック内のそれぞれのデータサーバは、自らの状態をチェックする。データサーバがアップグレード可能な状態にある場合は、当該データサーバが再起動およびアップグレードされる。データサーバがアップグレード不可能な状態またはアップグレード終了状態にある場合は、当該データサーバが再起動およびアップグレードを拒否する。
本開示のこの実施形態では、データサーバがラック上に設置され、データサーバの群が1つのラック上に設置される。しかしながら、多数のクライアントについては、異なるラックの異なるデータサーバにアクセスしてよい。それぞれのラックがアップグレード可能な状態にあるデータサーバを有してもよいし、アップグレード不可能な状態にあるデータサーバを有してもよいし、アップグレードを終了するデータサーバを有してもよい。
アップグレード制御サーバがアップグレード通知を送信しやすくすべく、本開示のこの実施形態では、ラック単位でアップグレード通知が送信される。例えば、ラックのIPセグメントは、200.200.200.***であり、本開示のこの実施形態におけるアップグレード制御サーバは、200.200.200.***に関する通知を1つ生成すること、および、当該ラックのそれぞれのデータサーバが当該通知を受信できるよう、当該通知を当該ラックにブロードキャストすることを行う必要がある。
次いで、ラック内のデータサーバが前述のアップグレード通知を受信した後、データサーバはまず、自らの状態がOKであるかどうかを判定する。状態がOKであれば、データサーバは、再起動およびアップグレードされる。代わりに状態がHOLDまたはDONEであれば、データサーバは、再起動およびアップグレードを拒否する。
本開示のこの実施形態では、アップグレードを迅速に終了すべく、OK状態にあるデータサーバを最も多く有するラックが選択され、当該ラックに対してアップグレード通知が送信される。
例えば、アップグレード可能な状態にあるデータサーバには、U1、U2、U3、U10、U11・・・U20等が含まれる。次いで、K個のデータサーバ、例えば3つのデータサーバが毎回そこから選択されてよく、これらは、アップグレード動作を実行するよう通知される。
一実施形態において、当該方法は、サブステップC11の後にサブステップC12を更に含む。
サブステップC12:ラック内のデータサーバがアップグレード動作を完全に終了しているかどうかをモニタリングし、終了している場合はアップグレード通知サブモジュールへと移行する。
次いで、ラック内のアップグレード可能な状態にあるデータサーバのアップグレード動作が全て終了していることがモニタリングされた場合は、次のラックが選択されてよく、次のラックのデータサーバに対してアップグレード通知が送信される。この周期は、全てのデータサーバがアップグレードを終了するまで繰り返す。
前述のプロセスにより、アップグレードに失敗したデータサーバを除く全てのデータサーバがアップグレードを終了していることをアップグレード制御サーバがモニタリングした場合、アップグレード制御サーバは、それぞれのデータサーバにアップグレード準備状態を終了するよう通知し、通常の処理論理に戻ってよい。次いで、それぞれのデータサーバは、当該データサーバへアクセスしているクライアントにアップグレード準備状態を終了するよう通知する。次いで、クライアントは、通常の処理論理に戻る。ステップ310および320が実行される必要はない。
本開示のこの実施形態では、本開示における分散記憶システムをアップグレードするための方法がアップグレード制御サーバ側で導入される。アップグレード制御サーバが、ローリング方式でアップグレードするようデータサーバを制御する場合は、高水準サービスが停止する必要はない。なぜなら、クライアントがデータサーバの状態を制御し、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証されるからである。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。更に、当該方法は、サービスが影響を受けないように保証しつつ、アップグレード中の機械の予期せぬ例外を許容できる。加えて、大量のデータを移行する必要なしに迅速なアップグレードが実現される。
図4は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための方法を示すフロー図である。具体的に言うと、当該方法は以下のステップを含んでよい。
ステップ410:クライアントが、同じ書き込み対象データに関する複数のデータサーバに対して書き込み要求を送信する。
ステップ412:クライアントは、データサーバの各々により返される応答を受信し、当該応答に従って、成功した書き込みの数が所定の数より多いかどうかを判定する。成功した書き込みの数が所定の数より多い場合は、ステップ414へと移行する。成功した書き込みの数が所定の数より多くない場合は、ステップ416へと移行する。
ステップ414:クライアントは、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報を送信する。
ステップ416:クライアントは、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信する。
本開示の別の実施形態において、第1フィードバック情報および第2フィードバック情報は、クライアント識別子を含む。成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信するステップの後、当該方法は更に以下のステップを含む。
ステップ417(図示せず):新たな書き込み対象データが現れた場合は、以前に成功した書き込みがあったデータサーバを含む当該複数のデータサーバが対象として使用され、当該複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求が送信される。
ステップ418:データサーバは、クライアントにより送信される第1フィードバック情報または第2フィードバック情報を受信する。
ステップ420:データサーバがアップグレードされていない状況では、第1フィードバック情報または第2フィードバック情報に従ってデータサーバの状態を判定する。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれる。
一実施形態において、ステップ420は、ステップ417に基づいてサブステップD11〜D16を含む。
サブステップD11:第2フィードバック情報を受信すると、第2フィードバック情報内のクライアント識別子をアップグレード不可能なリストに書き込んで、自らの状態をアップグレード不可能なものとしてマーキングする。
サブステップD12:アップグレード不可能なリスト内のクライアント識別子については、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかったかどうかを判定する。対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかった場合は、サブステップD13へと移行する。対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信された場合は、アップグレード不可能な状態が維持される。
サブステップD13:クライアント識別子をアップグレード不可能なリストから削除する。サブステップD15へと移行する。
サブステップD14:アップグレード不可能なリストが第1フィードバック情報内のクライアント識別子を含むかどうかを判定し、含む場合はサブステップD13へと移行する。アップグレード不可能なリストが第1フィードバック情報内のクライアント識別子を含まない場合は、フローがサブステップD15へと移行する。
サブステップD15:アップグレード不可能なリストが空であるかどうかを判定し、空であればサブステップD16へと移行する。
サブステップD16:自らの状態をアップグレード可能なものとしてマーキングする。
ステップ422:アップグレード制御サーバがそれぞれのデータサーバの状態を取得する。
ステップ424:アップグレード制御サーバは、アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知する。
ステップ426:この通知に従って、データサーバは、アップグレード動作を実行する。
もちろん、この実施形態において、クライアント側のステップの原理については、図1の説明が参照されてよく、データサーバ側のステップの原理については、図2の説明が参照されてよく、アップグレード制御サーバ側のステップの原理については、図3の説明が参照されてよい。本明細書でこの説明が再び提供されることはない。
本開示のこの実施形態では、本開示における分散記憶システムをアップグレードするための方法が、クライアント、データサーバおよびアップグレード制御サーバを含む3つの側面で導入される。 分散記憶システムへアクセスしているクライアントについては、それぞれのクライアントが、同じ書き込み対象データに関する書き込み要求を複数のデータサーバへ同時に送信し、次いで、幾つのデータサーバが成功した書き込みを有しているかが解析され、成功した書き込みの数が所定の数より多いかどうかが判定され、その判定結果に従って、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報または第2フィードバック情報が送信される。受信される第1フィードバック情報または第2フィードバック情報に従って、データサーバは、自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定する。アップグレード制御サーバは、アップグレード動作を実行するようアップグレード可能な状態にあるデータサーバをローリング方式で制御してよい。前述のプロセスにより、アップグレード制御サーバが、ローリング方式でアップグレードするようアップグレード可能な状態にあるデータサーバを制御する場合は、高水準サービスが停止する必要はない。なぜなら、クライアントがデータサーバの状態を制御し、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証されるからである。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。更に、当該方法は、サービスが影響を受けないように保証しつつ、アップグレード中の機械の予期せぬ例外を許容できる。
図5は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための装置のブロック図である。具体的に言うと、当該装置は、要求送信モジュール510、判定モジュール520、第1フィードバックモジュール530および第2フィードバックモジュール540を含んでよい。
要求送信モジュール510は、複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信するように構成される。
要求送信モジュール510に加えて、本開示の別の実施形態における当該装置は、データサーバへアクセスするときに当該データサーバにより送信される第2アップグレード通知を受信するように構成される第2アップグレード通知受信モジュールと、第2アップグレード通知に従ってアップグレード準備状態へと移行するように構成される第2アップグレード準備モジュールとを更に備える。
判定モジュール520は、当該データサーバの各々により返される応答を受信すること、および、当該応答に基づいて、成功した書き込みの数が所定の数より多いかどうかを判定することを行うように構成される。
第1フィードバックモジュール530は、成功した書き込みの数が所定の数より多い場合に、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報を送信するように構成される。
第2フィードバックモジュール540は、成功した書き込みの数が所定の数より多くない場合に、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信するように構成される。ここで、第1フィードバック情報または第2フィードバック情報は、データサーバが自らの状態を判定するために使用され、当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、データサーバの状態は、アップグレード制御サーバがデータサーバに、アップグレード動作を実行するようローリング方式で通知するために使用される。
本開示の別の実施形態において、第2フィードバックモジュール540は、成功した書き込みの現在の数が所定の数と等しい場合に、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信するように構成される第2フィードバック情報送信サブモジュールと、成功した書き込みの数が所定の数より少ない場合に、当該複数のデータサーバ以外の少なくとも1つのデータサーバに対して書き込み対象データに関する書き込み要求を送信するように構成される書き込み要求送信サブモジュールと、当該少なくとも1つのデータサーバにより返される応答を受信し、当該応答に従って、成功した書き込みの現在の数が成功した書き込みの以前の数と組み合わせて所定の数と等しくなるかどうかを判定すること、成功した書き込みの現在の数が所定の数と等しい場合に、第2フィードバック情報送信サブモジュールへと移行すること、第2フィードバック情報内のクライアント識別子をアップグレード不可能なリストに書き込んで、自らの状態をアップグレード不可能なものとしてマーキングすることを行うように構成される判定サブモジュールとを備える。
データサーバが第1フィードバック情報を受信した後、第1フィードバック情報は、データサーバが、第1フィードバック情報内のクライアント識別子をアップグレード不可能なリストから削除すること、および、アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを行うために使用される。
図6は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための装置のブロック図である。具体的に言うと、当該装置は、フィードバック情報受信モジュール610および状態判定モジュール620を含んでよい。
フィードバック情報受信モジュール610は、クライアントから送信される第1フィードバック情報または第2フィードバック情報を受信するように構成される。ここで、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される。
フィードバック情報受信モジュール610に加えて、本開示の別の実施形態における当該装置は、アップグレード制御サーバにより送信される第1アップグレード通知を受信するように構成される第1アップグレード通知受信モジュールと、第1アップグレード通知に従ってアップグレード準備状態へと移行すること、および、クライアントがアップグレード準備状態へと移行するよう、クライアントのアクセス要求を受信した後に第2アップグレード通知をクライアントへ送信することを行うように構成される第1アップグレード準備モジュールとを更に備える。
状態判定モジュール620は、データサーバがアップグレードされていない状況において、第1フィードバック情報または第2フィードバック情報に従ってデータサーバの状態を判定するように構成される。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、当該状態は、アップグレード制御サーバがローリング方式で、データサーバを選択し、当該データサーバに、アップグレード動作を実行するよう通知するために使用される。
本開示の別の実施形態において、状態判定モジュール620は、アップグレード可能な判定サブモジュールおよびアップグレード不可能な状態判定サブモジュールを備える。
アップグレード可能な判定サブモジュールは、第1フィードバック情報を受信すると、第1フィードバック情報内のクライアント識別子をアップグレード不可能なリストから削除すること、および、アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを行うように構成される。
一実施形態において、アップグレード可能な判定サブモジュールは、アップグレード不可能なリストが第1フィードバック情報内のクライアント識別子を含むかどうかを判定すること、および、含む場合は第1削除サブモジュールへと移行することを行うように構成されるクライアント識別子判定サブモジュールであって、当該第1削除サブモジュールは、クライアント識別子をアップグレード不可能なリストから削除するように構成される、クライアント識別子判定サブモジュールと、アップグレード不可能なリストが空であるかどうかを判定すること、および、空であればアップグレード可能なマーキングサブモジュールへと移行することを行うように構成されるアップグレード不可能なリスト判定サブモジュールであって、当該アップグレード可能なマーキングサブモジュールは、自らの状態をアップグレード可能なものとしてマーキングするように更に構成される、アップグレード不可能なリスト判定サブモジュールとを備える。
アップグレード不可能な状態判定サブモジュールは、第2フィードバック情報を受信すると第2フィードバック情報内のクライアント識別子をアップグレード不可能なリストに書き込むこと、および、自らの状態をアップグレード不可能なものとしてマーキングすることを行うように構成される。
アップグレード不可能な状態判定サブモジュールに加えて、本開示の別の実施形態における当該装置は、アップグレード不可能なリスト内のクライアント識別子について、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかったかどうかを判定すること、および、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかった場合に、第2削除サブモジュールへと移行することを行うように構成される時間判定サブモジュールであって、当該第2削除サブモジュールは、クライアント識別子をアップグレード不可能なリストから削除するように構成される、時間判定サブモジュールを更に備える。
図7は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするための装置のブロック図である。具体的に言うと、当該装置は状態取得モジュール710およびアップグレード通知モジュール720を含んでよい。
状態取得モジュール710は、データサーバごとに状態を取得するように構成される。当該状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、それぞれのデータサーバは一方の状態を有する。データサーバの状態は、第1フィードバック情報または第2フィードバック情報に従って判定され、第1フィードバック情報または第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される。
状態取得モジュール710に加えて、本開示の別の実施形態における当該装置は、それぞれのデータサーバがアップグレード準備状態へと移行するよう、第1アップグレード通知をそれぞれのデータサーバへ送信するように構成されるアップグレード通知送信モジュールを更に備える。それぞれのデータサーバは、クライアントがアップグレード準備状態へと移行するよう、クライアントのアクセス要求を受信した後に第2アップグレード通知をクライアントへ送信する。
アップグレード通知モジュール720は、アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知するように構成される。この通知に従って、当該データサーバはアップグレード動作を実行する。
本開示の別の実施形態において、アップグレード通知モジュールは、毎回アップグレード可能な状態にある少なくとも1つのデータサーバを選択すること、および、アップグレード可能な状態にある当該少なくとも1つのデータサーバに、アップグレード動作を実行するよう通知することを行うように構成される第1選択サブモジュールと、アップグレード可能な状態にある当該少なくとも1つのデータサーバがアップグレード動作を完全に終了しているかどうかをモニタリングすること、および、終了している場合は第1選択サブモジュールへと移行することを行うように構成される第1モニタリングサブモジュールとを備える。
第1モニタリングサブモジュールに次いで、本開示の別の実施形態における当該装置は、任意のデータサーバのアップグレード動作の結果がアップグレードの失敗であることがモニタリングされた場合に、データサーバをアップグレードブラックリストに追加すること、および、データサーバのアップグレードを中断することを行うように構成される中断サブモジュールを更に備える。
本開示の別の実施形態において、データサーバは、少なくとも2つのラック上に設置される。次いで、アップグレード通知モジュール720は、毎回アップグレード可能な状態にあるデータサーバを最も多く有するラックを選択すること、および、当該ラック内のデータサーバに、アップグレード動作を実行するよう通知することを行うように構成されるアップグレード通知サブモジュールを備える。この通知に従って、当該ラック内のそれぞれのデータサーバは、自らの状態をチェックする。データサーバがアップグレード可能な状態にある場合は、当該データサーバが再起動およびアップグレードされる。データサーバがアップグレード不可能な状態またはアップグレード終了状態にある場合は、当該データサーバが再起動およびアップグレードを拒否する。
アップグレード通知サブモジュールに加えて、本開示の別の実施形態における当該装置は、ラック内のデータサーバがアップグレード動作を完全に終了しているかどうかをモニタリングすること、および、終了している場合はアップグレード通知サブモジュールへと移行することを行うように構成されるモニタリングサブモジュールを更に備える。
図8および図8Aを参照されたい。これらの図は、本開示の幾つかの実施形態に係る、分散記憶システムをアップグレードするためのシステムのブロック図である。具体的に言うと、当該システムは、以下のモジュール、すなわちクライアント810、データサーバ820およびアップグレード制御サーバ830を含んでよい。
図8Aは、一実施形態における分散記憶システムのアーキテクチャを示す概略図である。本開示のこの実施形態において、それぞれのクライアント810は、分散記憶システム内のR個のデータサーバ820に対して書き込み要求を送信してよく、アップグレード制御サーバ830は、全てのデータサーバのアップグレードプロセスを制御する。
図8は、クライアント810、データサーバ820およびアップグレード制御サーバ830間の接続関係を示している。
クライアント810は、複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信するように構成される要求送信モジュール811と、当該データサーバの各々により返される応答を受信すること、および、当該応答に基づいて、成功した書き込みの数が所定の数より多いかどうかを判定することを行うように構成される判定モジュール812と、成功した書き込みの数が所定の数より多い場合に、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報を送信するように構成される第1フィードバックモジュール813と、成功した書き込みの数が所定の数より多くない場合に、成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信するように構成される第2フィードバックモジュール814とを備える。
データサーバ820は、クライアントの書き込み要求を受信すること、および、当該クライアントに応答を返すことを行うように構成されるデータ記憶モジュール821と、当該クライアントにより送信される第1フィードバック情報または第2フィードバック情報を受信するように構成されるフィードバック情報受信モジュール822と、データサーバ自らがアップグレードされなかった場合に、第1フィードバック情報または第2フィードバック情報に従ってデータサーバ自らの状態を判定するように構成される状態判定モジュール823と、アップグレード制御サーバの通知に従ってアップグレード動作を実行するように構成されるアップグレードモジュール824とを備える。
アップグレード制御サーバ830は、それぞれのデータサーバの状態を取得するように構成される状態取得モジュール831と、アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知するように構成されるアップグレード通知モジュール832とを備える。
本開示のこの実施形態において、クライアントのモジュールについては、図5の説明が参照されてよい。データサーバのモジュールについては、図6の説明が参照されてよい。アップグレード制御サーバのモジュールについては、図7の説明が参照されてよい。これらの構成要素により実行される方法は、前述の図で説明される方法と同様であり、本明細書で再び説明されることはない。
本開示のこの実施形態では、本開示における分散記憶システムをアップグレードするための方法が、クライアント、データサーバおよびアップグレード制御サーバを含む3つの側面で導入される。 分散記憶システムへアクセスしているクライアントについては、それぞれのクライアントが、同じ書き込み対象データに関する書き込み要求を複数のデータサーバへ同時に送信し、次いで、幾つのデータサーバが成功した書き込みを有しているかが解析され、成功した書き込みの数が所定の数より多いかどうかが判定され、その判定結果に従って、成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報または第2フィードバック情報が送信される。受信される第1フィードバック情報または第2フィードバック情報に従って、データサーバは、自らがアップグレード可能な状態にあるのか、アップグレード不可能な状態にあるのかを判定する。アップグレード制御サーバは、アップグレード動作を実行するようアップグレード可能な状態にあるデータサーバをローリング方式で制御してよい。前述のプロセスにより、アップグレード制御サーバが、ローリング方式でアップグレードするようアップグレード可能な状態にあるデータサーバを制御する場合は、高水準サービスが停止する必要はない。なぜなら、クライアントがデータサーバの状態を制御し、任意のクライアントの書き込み対象データがバックアップのために少なくとも所定の数のデータサーバへ書き込まれることが保証されるからである。更には、分散記憶システムからクライアントへのより短い応答時間が保証され得ることで、データの信頼性が高まり、ユーザデータの損失という危険が著しく低下する。更に、当該方法は、サービスが影響を受けないように保証しつつ、アップグレード中の機械の予期せぬ例外を許容できる。
装置の実施形態は、方法の実施形態と同様なので、比較的簡潔に説明される。関連する部分については、方法の実施形態の説明の部分が参照されてよい。
本明細書内の実施形態は、それぞれの実施形態が他の実施形態とは異なる部分を強調する形で漸次説明される。相互参照により、当該実施形態の同一の部分または同様の部分が取得されてよい。
当業者であれは、本開示の実施形態が方法、装置またはコンピュータプログラム製品として提供され得ることを理解するはずである。従って、本開示の実施形態は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態、またはソフトウェアとハードウェアとを組み合わせた実施形態として実装されてよい。更に、本開示の実施形態は、内部にコンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(これらに限定されるわけではないが、磁気ディスクメモリ、CD‐ROM、光学メモリ等が含まれる)上で実装されるコンピュータプログラム製品の形を取ってよい。
典型的な構成において、コンピュータデバイスは、1つまたは複数のプロセッサ(CPU)、入出力インタフェース、ネットワークインタフェースおよびメモリを含む。メモリには、リードオンリメモリ(ROM)またはフラッシュメモリ(FLASH RAM)といった、非永続的メモリ、ランダムアクセスメモリ(RAM)および/または不揮発性メモリ等の形を取った非一時的コンピュータ可読媒体が含まれてよい。メモリは、コンピュータ可読媒体の例である。コンピュータ可読媒体には、任意の方法または技術により情報の記憶を実現できる永続的および非永続的な移動可能媒体並びに移動不可能媒体が含まれる。情報は、コンピュータ可読命令、データ構造、プログラムのモジュール、または他のデータであってよい。コンピュータの記憶媒体の例としては、これらに限定されるわけではないが、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)もしくは他の種類のランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、リードオンリ・コンパクトディスク・リードオンリメモリ(CD‐ROM)、デジタル多用途ディスク(DVD)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、コンピューティングデバイスによりアクセス可能な情報を記憶するために使用され得る任意の他の非伝送媒体が挙げられる。本明細書における定義を考慮すると、コンピュータ可読媒体に、変調されたデータ信号および搬送波等の非持続的コンピュータ可読媒体(一時的媒体)は含まれない。
本開示の実施形態は、本開示の実施形態の方法、端末デバイス(システム)およびコンピュータプログラム製品に係るフロー図および/またはブロック図を参照しながら説明される。フロー図および/またはブロック図におけるそれぞれのフローおよび/またはそれぞれのブロック、並びに、フロー図および/またはブロック図におけるフロー同士および/またはブロック同士の組み合わせがコンピュータプログラム命令により実装され得ることを理解すべきである。これらのコンピュータプログラム命令は、機械を生成すべく、汎用コンピュータ、専用コンピュータ、組込みプロセッサ、または任意の他のプログラマブルデータ処理端末デバイスのプロセッサに対して提供されてよい。その結果、任意の他のプログラマブルデータ処理端末デバイスのコンピュータまたはプロセッサにより実行される命令は、フロー図における1つもしくは複数のプロセス、および/または、ブロック図における1つもしくは複数のブロックで指定された機能を実装するための装置を生成する。
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理端末デバイスに特定のやり方で動作するよう指示できるコンピュータ可読メモリに記憶されてもよい。その結果、コンピュータ可読メモリに記憶される命令は、フロー図の1つもしくは複数のフロー、および/または、ブロック図の1つもしくは複数のブロックで指定された機能を実装する命令手段を含む製造品を生産する。
これらのコンピュータプログラム命令は、コンピュータまたは任意の他のプログラマブルデータ処理端末デバイス上にロードされてもよい。その結果、一連の動作ステップがコンピュータまたは任意の他のプログラマブル端末デバイス上で実行されることにより、コンピュータ実装プロセスが生成される。従って、コンピュータまたは任意の他のプログラマブル端末デバイス上で実行される命令は、フロー図における1つもしくは複数のプロセス、および/または、ブロック図における1つもしくは複数のブロックで指定された機能を実装するためのステップを提供する。
本開示の様々な実施形態が説明されてきたが、ひとたび基本的な創造的概念を説明しておけば、当業者はこれらの実施形態の他の変形例および改良例を作ることができる。従って、添付の請求項は、当該実施形態、並びに、本開示の範囲内に入る全ての変形例および改良例を含むものとして解釈されるように意図されている。
最後に、本願における第1および第2といった関係用語は、単に1つのエンティティまたは動作を別のエンティティまたは動作と区別するために使用されているに過ぎず、これらのエンティティまたは動作がこうした実際の関係または順序を持つ必要があるわけでもなければ、それを持つと示唆しているわけでもないことを更に留意すべきである。更に「含む(include)」、「含む(comprise)」という用語、またはこれらの他の変形語は、非排他的な包含物をカバーするように意図されている。その結果、一連の要素を含むプロセス、方法、物品または端末デバイスは、当該要素を含むだけではなく、明記されていない他の要素も含むか、または、当該プロセス、当該方法、当該物品もしくは当該端末デバイスに本来備わっている要素を更に含む。「1つの・・・を含む(including one・・・)」という記述により更なる制限なく定義される要素は、当該要素を含むプロセス、方法、物品または端末デバイスにおける追加的な同一要素の存在を除外するものではない。
本開示で提供される、分散記憶システムをアップグレードするための方法、分散記憶装置をアップグレードするための装置、および分散記憶装置をアップグレードするためのシステムが以上に詳しく紹介された。本明細書には、具体的な例を参照しながら本開示の原理および実装が記載されている。上記の実施形態の説明は、単に本開示の方法および本質的な着想を理解する手助けをするために提供されているに過ぎない。当業者であれば、本開示の着想に従って具体的な実装および実施形態に対する変更を加えることができる。上記を考慮すると、本明細書の内容は本開示を限定するものと解釈されるべきではない。

Claims (32)

  1. クライアントに適用可能な、分散記憶システムをアップグレードするための方法であって、
    複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信するステップと、
    前記複数のデータサーバの各々により返される応答を受信するステップと、
    前記応答に基づいて、成功した書き込みの数が所定の数より多いかどうかを判定するステップと、
    前記成功した書き込みの前記数が前記所定の数より多い場合に、成功した書き込みで応答するそれぞれのデータサーバに対して第1フィードバック情報を送信するステップと、
    前記成功した書き込みの前記数が前記所定の数より多くない場合に、成功した書き込みで応答するそれぞれのデータサーバに対して第2フィードバック情報を送信するステップと
    を備え、
    前記第1フィードバック情報または前記第2フィードバック情報は、前記データサーバが自らの状態を判定するために使用され、前記状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、データサーバの前記状態は、アップグレード制御サーバが前記データサーバに、アップグレード動作を実行するようローリング方式で通知するために使用される、方法。
  2. 前記成功した書き込みの前記数が前記所定の数より多くない場合に、前記成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を前記送信するステップであって、前記第2フィードバック情報は、前記データサーバが自らの状態をアップグレード不可能と判定するために使用される、前記送信するステップは、
    前記成功した書き込みの前記数が前記所定の数と等しい場合に、前記成功した書き込みを有するそれぞれのデータサーバに対して前記第2フィードバック情報を送信するステップと、
    前記成功した書き込みの前記数が前記所定の数より少ない場合に、前記複数のデータサーバ以外の少なくとも1つのデータサーバに対して前記書き込み対象データに関する書き込み要求を送信するステップと、
    前記少なくとも1つのデータサーバにより返される応答を受信し、前記応答に従って、成功した書き込みの現在の数が前記成功した書き込みの以前の数と組み合わせて前記所定の数と等しくなるかどうかを判定するステップと、
    前記成功した書き込みの前記現在の数が前記所定の数と等しい場合に、前記成功した書き込みを有するそれぞれのデータサーバに対して前記第2フィードバック情報を送信するステップと
    を含む、請求項1に記載の方法。
  3. 前記成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を前記送信するステップの後に、
    新たな書き込み対象データが現れた場合に、以前に前記成功した書き込みがあった前記データサーバを含む前記複数のデータサーバを対象として使用するステップと、
    前記複数のデータサーバに対して前記同じ書き込み対象データに関する書き込み要求を送信するステップと
    を更に備える、請求項1または2に記載の方法。
  4. 前記第1フィードバック情報および前記第2フィードバック情報は、クライアント識別子を含み、次いで、前記第1フィードバック情報または前記第2フィードバック情報は、前記データサーバが自らの状態を判定するために使用され、
    前記第2フィードバック情報を受信して前記データサーバの前記状態をアップグレード不可能なものとしてマーキングした後、前記データサーバが前記第2フィードバック情報内の前記クライアント識別子をアップグレード不可能なリストへ書き込むために、前記第2フィードバック情報を使用するステップを備え、
    前記データサーバが前記第1フィードバック情報を受信した後、前記第1フィードバック情報は、前記データサーバが、前記第1フィードバック情報内の前記クライアント識別子を前記アップグレード不可能なリストから削除すること、および、前記アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを行うために使用される、請求項3に記載の方法。
  5. 複数のデータサーバに対して前記同じ書き込み対象データに関する書き込み要求を前記送信するステップの前に、
    データサーバへアクセスするときに前記データサーバにより送信される第2アップグレード通知を受信するステップと、
    前記第2アップグレード通知に従ってアップグレード準備状態へと移行するステップと
    を更に備える、請求項1に記載の方法。
  6. データサーバに適用される、分散記憶システムをアップグレードするための方法であって、
    クライアントから送信される第1フィードバック情報または第2フィードバック情報を受信するステップであって、前記第1フィードバック情報または前記第2フィードバック情報は、前記クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、受信するステップと、
    データサーバがアップグレードされなかった場合に、前記第1フィードバック情報または前記第2フィードバック情報に従って前記データサーバの状態を判定するステップであって、前記状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、前記状態は、アップグレード制御サーバがローリング方式で、前記データサーバを選択し、前記データサーバに、アップグレード動作を実行するよう通知するために使用される、判定するステップと
    を備える方法。
  7. 前記第1フィードバック情報および前記第2フィードバック情報は、クライアント識別子を含み、次いで、前記データサーバがアップグレードされていない状況において、前記第1フィードバック情報または前記第2フィードバック情報に従って前記データサーバの状態を前記判定するステップは、
    前記第2フィードバック情報を受信すると、前記第2フィードバック情報内の前記クライアント識別子をアップグレード不可能なリストに書き込むこと、および、自らの状態をアップグレード不可能なものとしてマーキングすることを行うステップと、
    前記第1フィードバック情報を受信すると前記第1フィードバック情報内の前記クライアント識別子を前記アップグレード不可能なリストから削除すること、および、前記アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを行うステップと
    を含む、請求項6に記載の方法。
  8. 前記第1フィードバック情報内の前記クライアント識別子を前記アップグレード不可能なリストから削除すること、および、前記アップグレード不可能なリストが空であると判定した後に自らの状態をアップグレード可能なものとしてマーキングすることを前記行うステップは、
    前記アップグレード不可能なリストが前記第1フィードバック情報内の前記クライアント識別子を含むかどうかを判定するステップと、
    前記アップグレード不可能なリストが前記第1フィードバック情報内の前記クライアント識別子を含む場合に、前記クライアント識別子を前記アップグレード不可能なリストから削除するステップと、
    前記アップグレード不可能なリストが空であるかどうかを判定するステップと、
    前記アップグレード不可能なリストが空であれば、自らの状態をアップグレード可能なものとしてマーキングするステップと
    を含む、請求項7に記載の方法。
  9. 前記第2フィードバック情報を受信すると、前記第2フィードバック情報内の前記クライアント識別子をアップグレード不可能なリストに書き込むこと、および、自らの状態をアップグレード不可能なものとしてマーキングすることを前記行うステップの後に、
    前記アップグレード不可能なリスト内のクライアント識別子について、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかったかどうかを判定すること、前記対応するクライアントの前記第2フィードバックメッセージが前記所定の数の期間内に受信されなかった場合に、前記クライアント識別子を前記アップグレード不可能なリストから削除することを行うステップ
    を更に備える、請求項7に記載の方法。
  10. クライアントにより送信される第1フィードバック情報または第2フィードバック情報を前記受信するステップの前に、
    前記アップグレード制御サーバにより送信される第1アップグレード通知を受信するステップと、
    前記第1アップグレード通知に従ってアップグレード準備状態へと移行すること、および、前記クライアントが前記アップグレード準備状態へと移行するよう、前記クライアントのアクセス要求を受信した後に第2アップグレード通知を前記クライアントへ送信することを行うステップと
    を更に備える、請求項6に記載の方法。
  11. アップグレード制御サーバに適用される、分散記憶システムをアップグレードするための方法であって、
    複数のデータサーバのデータサーバごとに状態を取得するステップであって、前記状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、それぞれのデータサーバは一方の状態を有し、前記データサーバの前記状態は、第1フィードバック情報または第2フィードバック情報に従って判定され、前記第1フィードバック情報または前記第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、取得するステップと、
    アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知するステップであって、前記データサーバは、前記通知に従って前記アップグレード動作を実行する、通知するステップと
    を備える方法。
  12. アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で前記通知するステップは、
    毎回アップグレード可能な状態にある少なくとも1つのデータサーバを選択すること、および、前記アップグレード可能な状態にある前記少なくとも1つのデータサーバに、前記アップグレード動作を実行するよう通知することを行うステップと、
    前記アップグレード可能な状態にある前記少なくとも1つのデータサーバが前記アップグレード動作を完全に終了しているかどうかをモニタリングするステップと、
    前記アップグレード可能な状態にある前記少なくとも1つのデータサーバが前記アップグレード動作を完全に終了している場合に、次回に備えてアップグレード可能な状態にある少なくとも1つのデータサーバを選択すること、および、前記アップグレード可能な状態にある前記少なくとも1つのデータサーバに、前記アップグレード動作を実行するよう通知することを行うステップと
    を含む、請求項11に記載の方法。
  13. 任意のデータサーバの前記アップグレード動作の結果がアップグレードの失敗であることがモニタリングされた場合に、前記データサーバをアップグレードブラックリストに追加すること、および、前記データサーバのアップグレードを中断することを行うステップ
    を更に備える、請求項12に記載の方法。
  14. 前記データサーバは、少なくとも2つのラック上に設置され、アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で前記通知するステップは、
    毎回アップグレード可能な状態にある前記データサーバを最も多く有するラックを選択すること、および、前記ラック内の前記データサーバに、アップグレード動作を実行するよう通知することを行うステップであって、前記ラック内のそれぞれのデータサーバは、前記通知に従って自らの状態をチェックする、行うステップと、
    データサーバがアップグレード可能な状態にある場合に、前記データサーバを再起動およびアップグレードするステップと、
    データサーバがアップグレード不可能な状態またはアップグレード終了状態にある場合に、前記データサーバの再起動およびアップグレードを拒否するステップと
    を含む、請求項11から13の何れか一項に記載の方法。
  15. 毎回アップグレード可能な状態にある前記データサーバを最も多く有するラックを選択すること、および、前記ラック内の前記データサーバに、アップグレード動作を実行するよう通知することを前記行うステップの後に、
    前記ラック内の全ての前記データサーバが前記アップグレード動作を終了しているかどうかをモニタリングするステップと、
    前記ラック内の全ての前記データサーバが前記アップグレード動作を終了している場合に、次回に備えてアップグレード可能な状態にある前記データサーバを最も多く有するラックを選択すること、および、前記ラック内の前記データサーバに、アップグレード動作を実行するよう通知することを行うステップと
    を更に備える、請求項14に記載の方法。
  16. データサーバごとに前記状態を取得する前に、
    それぞれのデータサーバがアップグレード準備状態へと移行するよう、かつ、前記クライアントのアクセス要求を受信した後にそれぞれのデータサーバが第2アップグレード通知を前記クライアントへ送信することで、前記クライアントが前記アップグレード準備状態へと移行するよう、第1アップグレード通知をそれぞれのデータサーバに送信するステップ
    を更に備える、請求項11に記載の方法。
  17. クライアントに適用される、分散記憶システムをアップグレードするための装置であって、
    複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信する要求送信モジュールと、
    前記複数のデータサーバの各々により返される応答を受信すること、および、前記応答に基づいて、成功した書き込みの数が所定の数より多いかどうかを判定することを行う判定モジュールと、
    前記成功した書き込みの前記数が前記所定の数より多い場合に、前記成功した書き込みを有するそれぞれのデータサーバに対して第1フィードバック情報を送信する第1フィードバックモジュールと、
    前記成功した書き込みの前記数が前記所定の数より多くない場合に、前記成功した書き込みを有するそれぞれのデータサーバに対して第2フィードバック情報を送信する第2フィードバックモジュールと
    を備え、
    前記第1フィードバック情報または前記第2フィードバック情報は、前記データサーバが自らの状態を判定するために使用され、前記状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、前記データサーバの前記状態は、アップグレード制御サーバが前記データサーバに、アップグレード動作を実行するようローリング方式で通知するために使用される、装置。
  18. 前記第2フィードバックモジュールは、
    前記成功した書き込みの現在の数が前記所定の数と等しい場合に、前記成功した書き込みを有するそれぞれのデータサーバに対して前記第2フィードバック情報を送信する第2フィードバック情報送信サブモジュールと、
    前記成功した書き込みの前記数が前記所定の数より少ない場合に、前記複数のデータサーバ以外の少なくとも1つのデータサーバに対して前記書き込み対象データに関する書き込み要求を送信する書き込み要求送信サブモジュールと、
    前記少なくとも1つのデータサーバにより返される応答を受信すること、および、前記応答に従って、前記成功した書き込みの前記現在の数が前記成功した書き込みの以前の数と組み合わせて前記所定の数と等しくなるかどうかを判定すること、および、前記成功した書き込みの前記現在の数が前記所定の数と等しい場合に、前記第2フィードバック情報送信サブモジュールへと移行することを行う判定サブモジュールと
    を含む、請求項17に記載の装置。
  19. 前記第2フィードバックモジュールに次いで、
    以前に前記成功した書き込みがあった前記データサーバを含む前記複数のデータサーバを対象として使用すること、および、新たな書き込み対象データが現れた場合は前記要求送信モジュールへと移行することを行う、新たな書き込み対象データの送信モジュール
    を更に備える、請求項17または18に記載の装置。
  20. 前記第1フィードバック情報および前記第2フィードバック情報は、クライアント識別子を含み、次いで、前記第1フィードバック情報または前記第2フィードバック情報は、前記データサーバが自らの状態を判定するために使用され、
    前記第2フィードバック情報を受信した後に、前記データサーバが、前記第2フィードバック情報内の前記クライアント識別子をアップグレード不可能なリストに書き込むこと、および、前記データサーバの状態をアップグレード不可能なものとしてマーキングすることを行うために、前記第2フィードバック情報を使用することと、
    前記データサーバが前記第1フィードバック情報を受信した後に前記データサーバが、前記第1フィードバック情報内の前記クライアント識別子を前記アップグレード不可能なリストから削除するために、前記第1フィードバック情報を使用すること、および、前記アップグレード不可能なリストが空であると判定した後に前記データサーバの状態をアップグレード可能なものとしてマーキングすることを行うことと
    を備える、請求項19に記載の装置。
  21. 複数のデータサーバに対して前記同じ書き込み対象データに関する書き込み要求を前記送信するステップの前に、
    データサーバへアクセスするときに前記データサーバにより送信される第2アップグレード通知を受信する第2アップグレード通知受信モジュールと、
    前記第2アップグレード通知に従ってアップグレード準備状態へと移行する第2アップグレード準備モジュールと
    を更に備える、請求項17に記載の装置。
  22. データサーバに適用される、分散記憶システムをアップグレードするための装置であって、
    クライアントから送信される第1フィードバック情報または第2フィードバック情報を受信するフィードバック情報受信モジュールであって、前記第1フィードバック情報または前記第2フィードバック情報は、前記クライアントが複数のデータサーバに対して同じ書き込みデータに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、フィードバック情報受信モジュールと、
    前記データサーバがアップグレードされなかった場合に、前記第1フィードバック情報または前記第2フィードバック情報に従って前記データサーバの状態を判定する状態判定モジュールであって、前記状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、前記状態は、アップグレード制御サーバがローリング方式で、前記データサーバを選択し、前記データサーバに、アップグレード動作を実行するよう通知するために使用される、状態判定モジュールと
    を備える装置。
  23. 前記状態判定モジュールは、
    前記第2フィードバック情報内のクライアント識別子をアップグレード不可能なリストに書き込むこと、および、前記第2フィードバック情報を受信すると、前記データサーバの状態をアップグレード不可能なものとしてマーキングすることを行うアップグレード不可能な状態判定サブモジュールと、
    前記第1フィードバック情報を受信すると、前記第1フィードバック情報内の前記クライアント識別子を前記アップグレード不可能なリストから削除すること、および、前記アップグレード不可能なリストが空であると判定した後に、前記データサーバの状態をアップグレード可能なものとしてマーキングすることを行うアップグレード可能な判定サブモジュールと
    を含む、請求項22に記載の装置。
  24. 前記アップグレード可能な判定サブモジュールは、
    前記アップグレード不可能なリストが前記第1フィードバック情報内の前記クライアント識別子を含むかどうかを判定すること、および、含む場合は第1削除サブモジュールへと移行することを行うクライアント識別子判定サブモジュールであって、前記第1削除サブモジュールは、前記クライアント識別子を前記アップグレード不可能なリストから削除する、クライアント識別子判定サブモジュールと、
    前記アップグレード不可能なリストが空であるかどうかを判定すること、および、空であればアップグレード可能なマーキングサブモジュールへと移行することを行うアップグレード不可能なリスト判定サブモジュールであって、前記アップグレード可能なマーキングサブモジュールは、前記データサーバの状態をアップグレード可能なものとしてマーキングする、アップグレード不可能なリスト判定サブモジュールと
    を含む、請求項23に記載の装置。
  25. 前記アップグレード不可能な状態判定サブモジュールに次いで、
    前記アップグレード不可能なリスト内のクライアント識別子について、対応するクライアントの第2フィードバックメッセージが所定の数の期間内に受信されなかったかどうかを判定すること、および、前記対応するクライアントの前記第2フィードバックメッセージが前記所定の数の期間内に受信されなかった場合に、第2削除サブモジュールへと移行することを行う時間判定サブモジュールであって、
    前記第2削除サブモジュールは、前記クライアント識別子を前記アップグレード不可能なリストから削除する、時間判定サブモジュール
    を更に備える、請求項23に記載の装置。
  26. 前記フィードバック情報受信モジュールより前に、
    前記アップグレード制御サーバにより送信される第1アップグレード通知を受信する第1アップグレード通知受信モジュールと、
    前記第1アップグレード通知に従ってアップグレード準備状態へと移行すること、および、前記クライアントが前記アップグレード準備状態へと移行するよう、前記クライアントのアクセス要求を受信した後に第2アップグレード通知を前記クライアントへ送信することを行う第1アップグレード準備モジュールと
    を更に備える、請求項22に記載の装置。
  27. アップグレード制御サーバに適用される、分散記憶システムをアップグレードするための装置であって、
    複数のデータサーバのそれぞれのデータサーバの状態を取得する状態取得モジュールであって、前記状態にはアップグレード可能な状態およびアップグレード不可能な状態が含まれ、それぞれのデータサーバは一方の状態を有し、前記データサーバの前記状態は、第1フィードバック情報または第2フィードバック情報に従って判定され、前記第1フィードバック情報または前記第2フィードバック情報は、クライアントが複数のデータサーバに対して同じ書き込み対象データに関する書き込み要求を送信した後に、成功した書き込みの数と所定の数とを比較した結果に従って取得される、状態取得モジュールと、
    アップグレード可能な状態にある少なくとも1つのデータサーバに、アップグレード動作を実行するようローリング方式で通知するアップグレード通知モジュールであって、前記データサーバは、前記通知に従って前記アップグレード動作を実行する、アップグレード通知モジュールと
    を備える装置。
  28. 前記アップグレード通知モジュールは、
    毎回アップグレード可能な状態にある少なくとも1つのデータサーバを選択すること、および、前記アップグレード可能な状態にある前記少なくとも1つのデータサーバに、前記アップグレード動作を実行するよう通知することを行う第1選択サブモジュールと、
    前記アップグレード可能な状態にある前記少なくとも1つのデータサーバが前記アップグレード動作を完全に終了しているかどうかをモニタリングすること、および、終了している場合は前記第1選択サブモジュールへと移行することを行う第1モニタリングサブモジュールと
    を含む、請求項27に記載の装置。
  29. 任意のデータサーバの前記アップグレード動作の結果がアップグレードの失敗であることがモニタリングされた場合に、前記データサーバをアップグレードブラックリストに追加すること、および、前記データサーバのアップグレードを中断することを行う中断サブモジュール
    を更に備える、請求項28に記載の装置。
  30. 前記データサーバは、少なくとも2つのラック上に設置され、前記アップグレード通知モジュールは、
    毎回アップグレード可能な状態にある前記データサーバを最も多く有するラックを選択すること、および、前記ラック内の前記データサーバに、アップグレード動作を実行するよう通知することを行うことであって、前記ラック内のそれぞれのデータサーバは、前記通知に従って自らの状態をチェックする、行うこととと、データサーバがアップグレード可能な状態にある場合に、前記データサーバを再起動およびアップグレードすることと、データサーバがアップグレード不可能な状態またはアップグレード終了状態にある場合に、前記データサーバの再起動およびアップデートを拒否することとを行うアップグレード通知サブモジュール
    を含む、請求項27から29の何れか一項に記載の装置。
  31. 前記アップグレード通知サブモジュールに次いで、
    前記ラック内の前記データサーバが前記アップグレード動作を完全に終了しているかどうかをモニタリングすること、および、終了している場合は前記アップグレード通知サブモジュールへと移行することを行う第2モニタリングサブモジュール
    を更に備える、請求項30に記載の装置。
  32. 前記状態取得モジュールの前に、
    それぞれのデータサーバがアップグレード準備状態へと移行するように、かつ、前記クライアントのアクセス要求を受信した後にそれぞれのデータサーバが第2アップグレード通知を前記クライアントへ送信することで、前記クライアントが前記アップグレード準備状態へと移行するよう、第1アップグレード通知をそれぞれのデータサーバに送信するアップグレード通知送信モジュール
    を更に備える、請求項27に記載の装置。
JP2018529541A 2015-12-31 2016-12-19 分散記憶システムをアップグレードするための方法および装置 Active JP6763580B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201511034171.7 2015-12-31
CN201511034171.7A CN106936622B (zh) 2015-12-31 2015-12-31 一种分布式存储系统升级方法和装置
PCT/CN2016/110722 WO2017114213A1 (zh) 2015-12-31 2016-12-19 一种分布式存储系统升级方法和装置

Publications (2)

Publication Number Publication Date
JP2019502202A true JP2019502202A (ja) 2019-01-24
JP6763580B2 JP6763580B2 (ja) 2020-09-30

Family

ID=59225662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018529541A Active JP6763580B2 (ja) 2015-12-31 2016-12-19 分散記憶システムをアップグレードするための方法および装置

Country Status (5)

Country Link
US (1) US10884623B2 (ja)
EP (1) EP3399692B1 (ja)
JP (1) JP6763580B2 (ja)
CN (1) CN106936622B (ja)
WO (1) WO2017114213A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525410B (zh) 2017-09-20 2021-05-18 华为技术有限公司 分布式存储系统升级管理的方法、装置及分布式存储系统
CN108037950B (zh) * 2017-12-27 2021-08-24 福建中金在线信息科技有限公司 一种信息删除方法、装置、电子设备及可读存储介质
CN108259578B (zh) * 2017-12-29 2021-07-16 北京元心科技有限公司 集群节点的升级方法及装置
WO2020010521A1 (zh) * 2018-07-10 2020-01-16 深圳前海达闼云端智能科技有限公司 一种定位方法、定位装置、定位系统及可读存储介质
CN111061357B (zh) * 2019-12-13 2021-09-03 北京奇艺世纪科技有限公司 节能方法、装置、电子设备及存储介质
CN111277626B (zh) * 2020-01-07 2023-08-22 平安科技(深圳)有限公司 服务器升级方法、装置、电子设备及介质
CN111277633B (zh) * 2020-01-13 2022-02-01 北京奇艺世纪科技有限公司 一种请求处理方法、服务器、电子设备及存储介质
CN113391759B (zh) * 2020-03-13 2024-04-09 华为云计算技术有限公司 一种通信方法和设备
CN112084065B (zh) * 2020-08-24 2024-02-20 贵州易鲸捷信息技术有限公司 一种基于EsgynDB数据库的滚动重启的方法
CN114014116A (zh) * 2021-10-19 2022-02-08 日立楼宇技术(广州)有限公司 一种电梯主控程序分段升级方法、系统、装置及存储介质
CN113945246B (zh) * 2021-12-21 2022-03-11 深圳市聚能优电科技有限公司 储能的温湿度采集方法、系统、设备及存储介质
CN114866585A (zh) * 2022-04-24 2022-08-05 深圳市元征科技股份有限公司 远程升级方法、装置、系统及设备端接头
CN114785831B (zh) * 2022-04-25 2023-06-13 北京兴竹同智信息技术股份有限公司 用于绿通车辆检测的检测算法升级方法及绿通检测系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001255795A1 (en) * 2000-05-02 2001-11-12 Sun Microsystems, Inc. Cluster configuration repository
US7103650B1 (en) 2000-09-26 2006-09-05 Microsoft Corporation Client computer configuration based on server computer update
WO2003017055A2 (en) 2001-08-15 2003-02-27 Visa International Service Association Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US7165250B2 (en) 2002-01-15 2007-01-16 International Business Machines Corporation System and method for priority based application server updates
US7149508B2 (en) 2003-02-05 2006-12-12 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
US7386114B1 (en) 2004-01-08 2008-06-10 Shortel, Inc. Distributed session-based data
US8171466B2 (en) 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US20080005733A1 (en) 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software
CN101132573A (zh) * 2006-08-23 2008-02-27 中兴通讯股份有限公司 一种终端批量升级的实现方法
US8195824B2 (en) 2009-10-28 2012-06-05 Samsung Electronics Co., Ltd User service profile-based plug-in update method and apparatus for internet protocol television service
US8108734B2 (en) * 2009-11-02 2012-01-31 International Business Machines Corporation Intelligent rolling upgrade for data storage systems
KR20110068098A (ko) 2009-12-15 2011-06-22 삼성전자주식회사 가입자 댁내 장치의 소프트웨어 업그레이드 방법 및 장치
CN102118258A (zh) * 2009-12-31 2011-07-06 中兴通讯股份有限公司 吉比特无源光网络终端升级中异常情况的保护方法及系统
US8103903B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
CN101901275A (zh) * 2010-08-23 2010-12-01 华中科技大学 一种分布式存储系统及其方法
US8447894B2 (en) * 2011-01-05 2013-05-21 Alibaba Group Holding Limited Upgrading an elastic computing cloud system
CN103095742B (zh) * 2011-10-28 2016-04-27 中国移动通信集团公司 用于p2p系统的节点加入方法及相应的p2p系统
BR112014012772A8 (pt) 2011-12-01 2017-06-20 Tencent Tech Shenzhen Co Ltd método e sistema para aprimorar software
KR101624626B1 (ko) 2011-12-09 2016-05-26 구글 테크놀로지 홀딩스 엘엘씨 실패 이벤트에 응답하여 펌웨어 업데이트 요청을 트리거하기 위한 장비 및 방법들
CN102694860A (zh) 2012-05-25 2012-09-26 北京邦诺存储科技有限公司 一种云存储的数据处理方法、设备及系统
US20140007092A1 (en) 2012-06-30 2014-01-02 Microsoft Corporation Automatic transfer of workload configuration
US9379954B2 (en) 2013-03-15 2016-06-28 Chef Software Inc. Configuration management for a resource with prerequisites
US8621062B1 (en) 2013-03-15 2013-12-31 Opscode, Inc. Push signaling to run jobs on available servers
US20180241617A1 (en) * 2017-02-22 2018-08-23 Microsoft Technology Licensing, Llc System upgrade management in distributed computing systems

Also Published As

Publication number Publication date
US10884623B2 (en) 2021-01-05
EP3399692A1 (en) 2018-11-07
EP3399692A4 (en) 2019-06-05
JP6763580B2 (ja) 2020-09-30
EP3399692B1 (en) 2021-11-24
US20200264777A1 (en) 2020-08-20
WO2017114213A1 (zh) 2017-07-06
CN106936622B (zh) 2020-01-31
CN106936622A (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
JP6763580B2 (ja) 分散記憶システムをアップグレードするための方法および装置
CN106856489B (zh) 一种分布式存储系统的服务节点切换方法和装置
JP6756924B2 (ja) ブロックチェーンを基にしたコンセンサス方法およびデバイス
US10178184B2 (en) System and method for session handling in a multitenant application server environment
US10915412B2 (en) System and method for live migration of a virtual machine
EP2816467B1 (en) Method and device for checkpoint and restart of container state
US11271814B2 (en) Online capacity-expanding and online capacity-reducing methods and apparatuses for distributed consensus system
JP6859340B2 (ja) グローバル情報を取得、処理および更新するための装置、システムおよび方法
US20120084317A1 (en) Complex event processing apparatus and complex event processing method
US10038593B2 (en) Method and system for recovering virtual network
CN110888889A (zh) 一种数据信息更新方法、装置及设备
US20070226333A1 (en) Integrated heartbeat monitoring and failover handling for high availability
US9424301B2 (en) System and method for negotiated takeover of storage objects
WO2019020081A1 (zh) 分布式系统及其故障恢复方法、装置、产品和存储介质
CN111049928B (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
WO2017028375A1 (zh) 一种版本升级方法及系统
US11500812B2 (en) Intermediate file processing method, client, server, and system
CN107018159B (zh) 业务请求处理方法及装置、和业务请求方法及装置
CN111342986B (zh) 分布式节点管理方法及装置、分布式系统、存储介质
US10992770B2 (en) Method and system for managing network service
US10514991B2 (en) Failover device ports
WO2019178839A1 (zh) 为分布式应用创建一致性快照的方法、装置和分布式系统
JP7429792B2 (ja) データ伝送方法、端末及びコンピュータ読み取り可能な記憶媒体
US10855521B2 (en) Efficient replacement of clients running large scale applications
TWI740885B (zh) 分布式儲存系統的服務節點切換方法及裝置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200904

R150 Certificate of patent or registration of utility model

Ref document number: 6763580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250