JPWO2013153646A1 - 計算機システム、データ配置管理方法及びプログラム - Google Patents

計算機システム、データ配置管理方法及びプログラム Download PDF

Info

Publication number
JPWO2013153646A1
JPWO2013153646A1 JP2014509979A JP2014509979A JPWO2013153646A1 JP WO2013153646 A1 JPWO2013153646 A1 JP WO2013153646A1 JP 2014509979 A JP2014509979 A JP 2014509979A JP 2014509979 A JP2014509979 A JP 2014509979A JP WO2013153646 A1 JPWO2013153646 A1 JP WO2013153646A1
Authority
JP
Japan
Prior art keywords
computers
computer
server
performance
memory
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
JP2014509979A
Other languages
English (en)
Other versions
JP5964950B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2013153646A1 publication Critical patent/JPWO2013153646A1/ja
Application granted granted Critical
Publication of JP5964950B2 publication Critical patent/JP5964950B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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

Abstract

クラウドコンピューティングにおいて、計算機間の性能差を考慮して、KVSの構成を自動的に設定する計算機システムを実現する。ネットワークを介して複数の計算機が接続され、各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、各計算機は計算機の性能を管理する性能管理情報を保持し、データベースを構成する各計算機には、マスタデータ及び他の計算機のマスタデータの複製データが配置され、計算機システムは、性能管理情報を更新する性能情報管理部と、性能管理情報に基づいて、第1の計算機が管理するマスタデータの第1の管理範囲、及び、前記第1の計算機が管理するマスタデータの複製データを保持する第2の計算機を決定するクラスタ構成管理部と、を備える。

Description

本発明は、複数の計算機から構成される分散データベースに関する。特に、自動的に分散データベースを構築するための設定処理に関する。
近年、Webを用いたアプリケーションを実行する計算システムにおいてデータ量が爆発的に増大しており、複数の計算機にデータを分散させることによって、データへのアクセス性能を向上させるシステムが様々知られている。例えば、RDBMS(Relational DataBase Management System)では、データを所定の範囲毎に分割し、分割されたデータを複数の計算機に配置することによって、システム全体のアクセス性能を向上させる方法が知られている(例えば、特許文献1参照)。
特許文献1には、ネットワーク上の複数のコンピュータに配置されたデータベースに格納された各データの更新処理を、ネットワーク上で唯一のオリジナルサイトでのみ実行し、他のレプリカサイトにおいては、オリジナルサイトで実行された更新結果を受信して、自己が保有するレプリカデータに反映すること発明が記載されている。これによって、ネットワーク上の複数のコンピュータが利用するデータの同一性を保持することができる。
また、キャッシュサーバ等に用いられるシステムとして、データの識別子であるキーと、データ値(バリュー)とから構成されるキャッシュデータを所定の分散方法にしたがって、複数の計算機システムに配置するKVS(Key Value Store)等のNoSQL(Not only SQL)データベースが知られている。
KVSでは、データに高速にアクセス可能な揮発性の記憶媒体、例えばメモリに、データを格納する構成、データ格納の永続性に優れる不揮発性の記録媒体、例えばSSD(Sorid State Disk)やHDD等に、データを格納する構成、又は、前述したものを併用する構成等の種々の構成がとられている。
併用する構成では、高速アクセス性重視や格納性重視等の種々の運用方針によって、複数台の計算機のメモリを統合して構成されるメモリストア及び1台以上の計算機の不揮発性記憶媒体から構成されるディスクストアのバランスを種々変更可能となっている。
メモリストア及びディスクストアには、データ(バリュー)と、データの識別子(キー)とをペアとしたデータが格納される。
また、KVSでは、複数のサーバからクラスタを構成して、そのクラスタに含まれるサーバにデータを分散して配置することによって並列処理を実現している。具体的には、サーバが管理するデータの範囲である管理範囲(例えば、キーレンジ)毎に、各サーバにデータが格納される。各サーバは、担当する管理範囲に含まれるデータのマスタとして処理を実行する。すなわち、所定のキーを含む読み出し要求に対して、そのキーが含まれる管理範囲のデータを担当するサーバが、キーに対応するデータを読み出すこととなる。
したがって、KVSでは、スケールアウトによって並列処理の性能を向上させることができる。
KVSでは、データの信頼性を確保するために、クラスタを構成するサーバが他のサーバが管理するデータの複製データを格納する構成を採るものが知られている。すなわち、各サーバは、所定の管理範囲に含まれるデータを管理するマスタであると同時に、他のサーバが管理するデータの複製データを保持するスレーブでもある。これによって、サーバに障害が発生した場合であっても、その障害サーバがマスタとして管理するデータを、スレーブである他のサーバが、自己が保持する複製データをマスタデータとすることによって処理を継続することができる。
なお、以下、マスタであるサーバをマスタサーバと記載し、スレーブであるサーバをスレーブサーバとも記載する。
前述したようにKVSを構成するサーバには、管理サーバのような特別なサーバが存在しないため単一点障害が存在しない。すなわち、任意のサーバに障害が発生した場合であっても他のサーバが処理を継続できるため、計算機システムが停止することがない。したがって、KVSは耐障害性も確保される。
なお、スレーブサーバの台数、すなわち、複製データの格納先となるサーバの台数は、計算機システムによって任意に設定することができる。
KVSなどで用いられるデータの分散配置方法としては、Consistent Hashing法、Range法及びList法等の種々の方法が用いられる。
例えば、Consistent Hashing法では、まず、キーに対するハッシュ値を算出し、算出したハッシュ値をサーバの台数で除算した余りを算出する。その余りがサーバの識別番号に一致するサーバにデータが配置されるようになっている。
特開2002−297428号公報
従来のオンプレミス(例えば、同一企業内でのシステム運用)では、同一性能のサーバを用いて分散KVSを構築及び運用することが一般的である。しかし、クラウドコンピューティングでは、性能の異なるサーバを用いて分散KVSを構築及び運用する必要がある。この場合、各サーバの性能差を考慮しないとシステムの性能が低下する可能性がある。
Consistent Hashing法を用いて分散KVSを構築する場合、従来のシステムでは等間隔にデータが分散配置されるが、クラウドコンピューティングでは、サーバの性能差を考慮して、各サーバが担当するデータの割当量、すなわち、管理範囲を決定する必要がある。また、スレーブサーバを設定する場合には、マスタサーバの性能とスレーブサーバの性能とを考慮する必要がある。
例えば、メモリ容量の小さいサーバが、メモリ容量の大きいサーバの複製データを保持するように設定された場合、メモリ容量の小さいサーバのメモリ内に複製データが全て格納できない。したがって、HDD等の記憶装置に一部の複製データを格納する必要があるため、システム全体としてのアクセス性能が低下する。
また、メモリ容量の大きいサーバが、メモリ容量の小さいサーバの複製データを保持するように設定された場合、メモリ容量の大きいサーバのメモリ使用量が小さいため、システム全体としてメモリ使用効率が低下する。
前述の理由によって、従来技術では、クラウドコンピューティングを用いて分散KVSを構築する場合、管理者が手動でデータを分散配置するための設定(管理範囲及びスレーブサーバを設定)する必要がある。
本発明は、前述した課題に鑑みてなされた発明である。すなわち、クラウドコンピューティングを用いて分散KVSを構築する場合に、サーバの性能に基づいて、自動的にデータの分散配置の設定することを目的の一つとする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して複数の計算機が接続され、前記複数の計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続される記憶装置と、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記複数の計算機の各々の性能を管理する性能管理情報を保持し、前記データベースには、キー及びデータ値から構成されるデータが格納され、前記複数の計算機の各々には、前記複数の計算機の各々に割り当てる前記キーの範囲を示す管理範囲を決定するための分散アルゴリズムに基づいて、前記複数の計算機の各々がマスタとして管理するマスタデータが配置され、他の前記複数の計算機のうちの一つの計算機が管理する前記マスタデータの複製データが配置され、前記計算機システムは、前記複数の計算機の各々から性能に関する情報を取得し、取得された情報に基づいて性能管理情報を更新する性能情報管理部と、前記性能管理情報に基づいて、前記複数の計算機の各々が管理する前記マスタデータの前記管理範囲、及び、前記複数の計算機の各々が管理するマスタデータの複製データを保持する副計算機を決定するクラスタ構成管理部と、を備えることを特徴とする。
本発明によれば、計算機間の性能を考慮することによって、各計算機の管理範囲、及び各計算機が管理するマスタデータの複製データを保持する計算機(スレーブサーバ)を自動的に設定することができる。したがって、クラウドコンピューティングにおいて、最適な分散KVSを構築することができる。
本発明の第1の実施例における計算機システムの構成を示すブロック図である。 本発明の第1の実施例におけるサーバのハードウェア構成の一例を示す説明図である。 本発明の第1の実施例におけるメモリストアに格納されるデータの一例を示す説明図である。 本発明の第1の実施例における構成情報の一例を示す説明図である。 本発明の第1の実施例における性能管理情報の一例を示す説明図である。 本発明の第1の実施例におけるサーバが実行する処理を説明するフローチャートである。 本発明の第1の実施例における入力画面の一例を示す説明図である。 本発明の第1の実施例における下り階段型アルゴリズムの一例を示す説明図である。 本発明の第1の実施例における山型アルゴリズムの一例を示す説明図である。 本発明の第1の実施例における配置決定処理の詳細を説明するフローチャートである。 本発明の第1の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第1の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第1の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第1の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第1の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第1の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第1の実施例における確認画面の一例を示す説明図である。 本発明の第1の実施例における確認画面の一例を示す説明図である。 本発明の第1の実施例の変形例における山型配列処理を説明するフローチャートである。 本発明の第2の実施例におけるクラスタ構成変更処理を説明するフローチャートである。 本発明の第2の実施例における新規サーバの配置決定処理を説明するフローチャートである。 本発明の第2の実施例における新規サーバの配置決定処理を説明するフローチャートである。 本発明の第2の実施例における性能管理情報の更新方法の一例を示す説明図である。 本発明の第2の実施例における性能管理情報の更新方法の一例を示す説明図である。
以下の説明では、Consistent Hashing法を適用した分散KVSを例に説明する。
第1の実施例
図1は、本発明の第1の実施例における計算機システムの構成を示すブロック図である。
計算機システムは、複数のサーバ100、クライアント200及びネットワーク300から構成される。各サーバ100間又はサーバ100とクライアント200との間は、ネットワーク300を介して互いに接続される。
ネットワーク300は、LAN、WAN及びSAN等の有線及び無線の種々の構成が考えられる。本発明は、サーバ100及びクライアント200が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク300には、複数のネットワーク装置(図示省略)が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイなどが含まれる。
本実施例では、複数のサーバ100からクラスタを構成し、それらサーバ100が備える記憶領域上にNoSQLデータベースが構築される。本実施例ではNoSQLデータベースとして、KVSを用いるものとする。
サーバ100−1は、所定の管理範囲毎にデータが配置されており、当該管理範囲に含まれるデータを管理するマスタサーバとして稼動する。また、サーバ100−1は、他のサーバ100−2及び/又はサーバ100−nが管理する管理範囲に含まれるデータの複製データを保持しており、スレーブサーバとして稼動する。同様に、サーバ100−2及び100−nのそれぞれも、自己の管理範囲に含まれるデータを管理するマスタサーバとして機能し、他のサーバ100がマスタとして管理する管理範囲の複製データを保持するようになっている。
また、本実施例のクラスタは、計算機システム全体の管理を行う管理サーバとなる唯一のサーバ100が存在せず、全てのサーバ100を同等のサーバとして扱う構成である。これによって、一つのサーバ100に障害が発生しても、他のスレーブサーバが新たなマスタサーバとして処理を継続することができるため、計算機システムを停止することなく処理を継続することができる。
本実施例のサーバ100は、データ管理部110、複製制御部120、ディスクストア130、メモリストア140及びクラスタ構成管理部150を有する。
ディスクストア130及びメモリストア140は、KVSを構成するデータベースである。ディスクストア130及びメモリストア140には、キーとバリューとを一組としたデータが格納される。なお、各サーバ100のディスクストア130及びメモリストア140には、管理範囲に含まれるデータが格納される。
メモリストア140に対するアクセス性能は、ディスクストア130に対するアクセス性能より高いため、通常メモリストア140にデータが格納される。一方、ディスクストア130には、メモリストア140に格納できない容量のデータ及びアクセス頻度が低いデータ等が格納される。
なお、計算機システムは、マスタデータの格納については、ディスクストア130を利用せずにメモリストア140のみを利用する構成や、自及び/又は他のサーバ100の複製データをディスクストア130にのみ利用する構成等、種々の運用が適用可能である。特に、分散KVSシステムは、要求元に対する応答の早さを課題の一つとする。このためメモリストア140のみを利用する構成では、マスタ・スレーブの切替え時を始め、全てのデータに対する応答の早さを期待できる。他方、ディスクストア140を併用する構成では、サーバ停止時のデータバックアップとしての効果も期待できる。
データ管理部110は、サーバ100が管理するデータに対する各種処理を制御する。データ管理部110は、クライアント200からの要求を受け付け、その要求に基づいて、データの読み出しや書き込み等の処理を制御する。
複製制御部120は、クライアント200からのアクセス要求を受信し、受信したアクセス要求をデータ管理部110に転送する。また、複製制御部120は、受信したアクセス要求に対する処理の結果をクライアント200に送信する。また、複製制御部120は、サーバ100自身が管理する管理範囲のデータを複製し、生成された複製データを他のサーバ100に送信する。
クラスタ構成管理部150は、複数のサーバ100から構成されるクラスタを管理する。クラスタに含まれるサーバ100を用いて分散KVSが構築される。クラスタ構成管理部150は、複数のモジュールから構成され、具体的には、配置管理部160、構成情報管理部170及び情報共有部180を含む。
配置管理部160は、各サーバ100の管理範囲と、各サーバ100に対するスレーブサーバとを決定する。より具体的には、配置管理部160は、管理範囲の幅と、スレーブサーバの配置関係とを決定する。
ここで、スレーブサーバの配置関係とは、一つのサーバ100に対してどのサーバ100をスレーブサーバに設定するかを示す情報である。
本実施例では、配置管理部160は、マスタサーバとスレーブサーバとの間の性能差が小さくなるようにスレーブサーバの配置関係を決定する。また、配置管理部160は、処理結果を表示するための表示情報を生成する。
構成情報管理部170は、クラスタ上に構築された分散KVSの構成を管理するための構成情報171を管理する。構成情報管理部170は、必要に応じて、構成情報171を更新する。構成情報171の詳細については、図4を用いて後述する。
情報共有部180は、サーバ100の性能に関する情報を管理し、また、他のサーバ100との間でサーバ100の性能に関する情報を共有する。情報共有部180は、例えばハートビート等を用いることによって実現できる。
また、情報共有部180は、性能管理情報181を保持する。性能管理情報181は、計算機システムに含まれる全サーバ100の性能を管理するための情報を格納する。性能管理情報181の詳細については、図5を用いて後述する。
情報共有部180は、サーバ100の性能に関する情報を収集し、収集された情報に基づいて、当該サーバ100の性能情報を生成する。情報共有部180は、各サーバ100から取得した性能情報に基づいて、性能管理情報181を生成し、又は更新する。
クライアント200は、プロセッサ(図示省略)、メモリ(図示省略)及びネットワークインタフェース(図示省略)等を備える計算機であって、分散KVSに対する各種処理の実行を要求する。クライアント200は、UAP210及びデータ送受信部220を有する。
UAP210は、各種機能を提供するアプリケーションであって、そのUAP210によって各種処理の要求がサーバ100に送信される。データ送受信部220は、UAP210から出力された要求をサーバ100に送信し、また、サーバ100からの処理結果を受信する。
図2は、本発明の第1の実施例におけるサーバ100のハードウェア構成の一例を示す説明図である。
サーバ100は、プロセッサ101、メモリ102、ネットワークインタフェース103、ストレージインタフェース104及び記憶装置105を有する。
プロセッサ101は、メモリ102に格納されるプログラムを実行する。プロセッサ101がプログラムを実行することによって、サーバ100が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ101によって、プログラムが実行されていることを示すものとする。
メモリ102は、プロセッサ101が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。
本実施例のメモリ102上には、データ管理部110、複製制御部120及びクラスタ構成管理部150を実現するためのプログラムが格納される。また、メモリ102上には、必要な情報として、構成情報171及び性能管理情報181が格納される。
さらに、メモリ102上には、分散KVSを構成するデータベースであるメモリストア140が構築される。メモリストア140には、キーとバリューとを一組としたデータが格納される。メモリストア140に格納されるデータの詳細については、図3を用いて後述する。
記憶装置105は、各種情報を格納する。記憶装置105は、例えば、HDD又はSSD等が考えられる。記憶装置105上に分散KVSを構築するディスクストア130が構築される。また、記憶装置105には、データ管理部110等を実現するプログラムが格納されてもよい。この場合、プロセッサ101が記憶装置105からプログラムを読み出し、読み出されたプログラムをメモリ102上にロードし、ロードされたプログラムを実行する。
図3は、本発明の第1の実施例におけるメモリストア140に格納されるデータの一例を示す説明図である。なお、ディスクストア130にも同様の形式のデータが格納される。
本実施例では、メモリストア140は、データ管理情報400を格納する。データ管理情報400には、キーとバリューとがペアとなったデータが複数含まれる。以下、キーとバリューとがペアとなったデータをキーバリュー型データとも記載する。
データ管理情報400は、Key401及びValue402を含む。Key401は、データを識別するための識別子(キー)を格納する。Value402は、実際のデータ(バリュー)を格納する。
クライアント200を操作するユーザは、Key401を指定して分散KVSにデータを保存し、また、Key401を指定して分散KVSから所望のデータを取得することができる。
各サーバ100は、所定の管理範囲毎にキーバリュー型データを管理する。すなわち、管理範囲毎にキーバリュー型データが各サーバ100に分散して配置される。サーバ100は、指定された管理範囲に含まれるデータのマスタサーバとして処理を実行することとなる。これによって、大量のデータを並列的かつ高速に処理できる。
図4は、本発明の第1の実施例における構成情報171の一例を示す説明図である。
構成情報171は、各サーバ100の管理範囲に関する情報を格納する。具体的には、構成情報171は、サーバID501及び管理範囲502を含む。
サーバID501は、サーバ100を一意に識別するための識別子を格納する。サーバID501には、サーバ100の識別子、IPアドレス及びMACアドレス等が格納される。
管理範囲502は、サーバ100が担当する管理範囲の値を格納する。本実施例では管理範囲の値としてハッシュ値が格納される。
管理範囲502のマスタ505は、サーバID501に対応するサーバ100がマスタとして管理する管理範囲のハッシュ値を格納する。管理範囲502のスレーブ506は、サーバID501に対応するサーバ100が保持する複製データの管理範囲のハッシュ値を格納する。
なお、本実施例では、一つのサーバ100が複製データを保持する構成となっているが本発明はこれに限定されない。すなわち、同一の複製データを保持するスレーブサーバが二つ以上あってもよい。
図5は、本発明の第1の実施例における性能管理情報181の一例を示す説明図である。
性能管理情報181は、各サーバ100の性能に関する情報を格納する。具体的には、性能管理情報181は、サーバID601、スペック602及びレンジ割合603を含む。
サーバID601は、サーバID501と同一のものである。
スペック602は、サーバID601に対応するサーバ100の性能に関する情報を格納する。図5に示す例では、スペック602には、プロセッサ性能、メモリ性能及び通信性能が含まれる。なお、スペック602には、プロセッサ101とメモリ102とを接続するチャネル数、メモリ102のクロック数、記憶装置105の容量、及びHDDの回転数等その他の情報が含まれてもよい。
プロセッサ性能は、サーバ100が有するプロセッサ101の性能を示す情報を格納する。本実施例では、プロセッサ性能には、プロセッサ101の周波数が格納される。
メモリ性能は、サーバ100が有するメモリ102の性能を示す情報を格納する。本実施例では、メモリ性能には、メモリ102の容量が格納される。
通信性能は、サーバ100が有するネットワークインタフェース103の通信性能を示す情報を格納する。本実施例では、通信性能には、ネットワークインタフェース103の通信速度が格納される。
レンジ割合603は、サーバ100に割り当てる管理範囲の幅(割当比率)を示す情報を格納する。また、レンジ割合603は、スレーブサーバが保持する複製データのデータ量にも対応する。
本実施例では、右隣の列(エントリ)に対応するサーバ100の複製データを保持するようにスレーブサーバが設定されるものとする。なお、最も左の列に対応するサーバ100は、最も右の列に対応するサーバ100の複製データを保持するスレーブサーバとして設定される。したがって、本実施例では、性能管理情報181のエントリ(サーバ100)の配列が複製データを保持するスレーブサーバの配置関係に対応する。
図6は、本発明の第1の実施例におけるサーバ100が実行する処理を説明するフローチャートである。
以下で説明する処理は、一つ以上のサーバ100が実行するものとする。
サーバ100は、クライアント200からクラスタの構成要求を受け付けると処理を開始する。クラスタの構成要求には、少なくともスレーブサーバの配置関係を決定するための指標情報が含まれる。
なお、クライアント200は、一つ以上のサーバ100にクラスタの構成要求を送信できる。例えば、クライアント200は、マルチキャストで全サーバ100にクラスタの構成要求を送信する。
前述した指標情報は、例えば、図7に示すような入力画面700を用いて入力される。
図7は、本発明の第1の実施例における入力画面700の一例を示す説明図である。図7に示す入力画面700は、クライアント200に表示されるものとする。ただし、入力画面700は、サーバ10に表示されてもよい。
入力画面700は、優先順位選択領域710及びEXIT操作ボタン720を含む。
優先順位選択領域710は、スレーブサーバの配置関係を決定するために用いられる指標の優先順位を選択するための表示領域である。優先順位選択領域710は、Select711、Priority712、及びTerm713を含む。
Select711は、使用する指標を選択するための表示部である。例えば、ユーザがSelect711を操作することによって、対応する指標が選択される。Priority712は、選択された指標の優先順位を設定する表示部である。Term713は、具体的な指標の内容を示す表示部である。
EXIT操作ボタン720は、入力画面700を用いた操作を終了するための操作ボタンである。ユーザがEXIT操作ボタン720を操作することよって、優先順位選択領域710に設定された情報がサーバ100に送信される。
図7に示す例では、メモリ容量が最も優先順位の高い指標として選択され、通信速度が次に優先順位の高い指標として選択されている。
サーバ100は、指標情報を含むクラスタの構成要求を受信すると、メモリ102上に当該指標情報を格納する。
図6の説明に戻る。
サーバ100は、サーバ100自身の性能情報を収集する(ステップS101)。具体的には、情報共有部180が、サーバ100の性能情報を収集する。
サーバ100は、他のサーバ100の性能情報を取得し、取得された性能情報に基づいて性能管理情報181を生成する(ステップS103)。
具体的には、情報共有部180が、他のサーバ100から送信された性能情報を受信し、収集された自身の性能情報及び受信した他のサーバ100の性能情報に基づいて、性能管理情報181を生成する。このとき、レンジ割合603は空欄のままである。
また、情報共有部180は、収集された自身の性能情報をマルチキャストで他のサーバ100に送信する。
サーバ100は、計算機システムに含まれる全サーバ100を処理対象に設定し、また、指標の優先順位の値nを「1」に設定する(ステップS105)。このとき、サーバ100は、指標情報を参照し、Priority712に「1」が設定された指標を特定する。
サーバ100は、指標情報及び性能管理情報181に基づいて、スレーブサーバの配置関係(サーバ100のエントリの配列)を決定するための配列決定処理を実行する(ステップS107)。配列決定処理の詳細については、図8を用いて後述する。
サーバ100は、配列決定処理の結果、スレーブサーバの配置関係を一意に決定できるか否かを判定する(ステップS109)。例えば、メモリ容量に基づいて、スレーブサーバの配置関係を決定する場合、メモリ容量が同一であるサーバ100が複数存在すると、スレーブサーバの配置関係を一意に決定することができないと判定される。
スレーブサーバの配置関係(サーバ100のエントリの配列)を一意に決定できると判定された場合、サーバ100は、決定されたスレーブサーバの配置関係(サーバ100のエントリの配列)に基づいて、クラスタを構成し、処理を終了する(ステップS111)。
具体的には、サーバ100は、スレーブサーバの配置関係(決定されたサーバ100のエントリの配列)に基づいて、構成情報171を生成する。生成された構成情報171は、情報共有部180によって各サーバ100に送信される。
スレーブサーバの配置関係(サーバ100のエントリの配列)を一意に決定できないと判定された場合、サーバ100は、指標情報を参照し、次に優先順位が低い指標が存在するか否かを判定する(ステップS113)。例えば、サーバ100は、指標情報を参照して、優先順位の値nが「2」に設定された指標の情報が存在するか否かを判定する。
次に優先順位が低い指標が存在しないと判定された場合、サーバ100は、所定の基準にしたがってスレーブサーバの配置関係を決定し、ステップ111に進む。例えば、サーバIDに基づいてスレーブサーバの配置関係を決定する方法が考えられる。
次に優先順位が低い指標が存在すると判定された場合、サーバ100は、スレーブサーバの配置関係(サーバ100のエントリの配列)が一意に決定しないサーバ100のみを処理対象として設定し、また、優先順位の値nに「1」をインクリメントした値を設定し(ステップS115)、ステップS107に戻る。
これによって、スレーブサーバの配置関係(サーバ100のエントリの配列)が一意に決定しないサーバ100に対してのみ配列決定処理を実行することができる。
なお、サーバ100は、同一の性能管理情報181を保持するため、通常、処理結果である構成情報171は同一となる。ただし、構成情報171が異なる場合、サーバ100は、他のサーバ100から受信した構成情報171の集計し、同一内容の構成情報171の数が一番多いものを優先的に選択する方法が考えられる。
ここで、本実施例において適用されるスレーブサーバの配置関係(サーバ100のエントリの配列)のアルゴリズムについて説明する。以下の説明では、優先順位が「1」の指標としてメモリ容量が選択されているものとする。また、メモリ容量が「3GB」のサーバA、メモリ容量が「2GB」のサーバB、メモリ容量が「3GB」のサーバC、メモリ容量が「1GB」のサーバD、メモリ容量が「4GB」のサーバE及びメモリ容量が「2GB」のサーバFを例に説明する。
本実施例では、下り階段型アルゴリズムと山型アルゴリズムの二つがある。
図8は、本発明の第1の実施例における下り階段型アルゴリズムの一例を示す説明図である。
下り階段型アルゴリズムでは、性能の高い順(メモリ容量の大きい順)にサーバ100のエントリが配列される。本実施例では、片側(右側又は左側)のサーバ100との性能差が小さくなるようにエントリが配置される。
図8に示す例では、左からメモリ容量の大きい順にサーバ100のエントリが配列される。具体的には、左から順にサーバE、サーバA、サーバC、サーバF、サーバB及びサーバDとエントリが配列される。自身のエントリの右側のサーバ100が、当該エントリの対応するサーバ100が管理するマスタデータの複製データを保持するスレーブサーバとなる。また、自身のエントリの左側のサーバが、当該エントリに対応するサーバ100が保持する複製データのマスタデータを保持するマスタサーバとなる。
これによって、右側のサーバ100とのメモリ容量の差が小さくなるため、KVS全体としてアクセス性能が非常に高くなる。
下り階段型アルゴリズムは、第1のサーバの性能と、第1のサーバ100が管理するマスタデータの複製データを保持する第2のサーバの性能とを考慮したアルゴリズムである。
より一般的には、識別子がi、jであるサーバ100のメモリ容量をM[i]、M[j]と定義した場合、下式(1)が最小となるサーバ100の組合わせが下り階段型アルゴリズムに対応する。なお、マスタデータを保持するサーバ100の性能が複製データを保持するサーバ100の性能以上であることを条件とする。ただし、全てのサーバ100について前述した条件を満たさなくてもよい。
Figure 2013153646

ここで、識別子がjであるサーバ100が、識別子がiであるサーバ100の複製データを保持するスレーブサーバとなる。
図9は、本発明の第1の実施例における山型アルゴリズムの一例を示す説明図である。
山型アルゴリズムでは、最も性能の高い(メモリ容量が最大の)サーバ100のエントリを中心に山型になるようにサーバ100のエントリが配列される。本実施例では、両側のサーバ100との性能差が小さくなるようにエントリが配置される。自身のエントリの右側のサーバが、当該エントリに対応するサーバ100が管理するマスタデータの複製データを保持するスレーブサーバとなる。また、自身のエントリの左側のサーバが、当該エントリの対応するサーバ100が保持する複製データのマスタデータを保持するマスタサーバとなる。
図9に示す例では、メモリ容量の大きいサーバ100を中心に山型にサーバ100のエントリが配置される。具体的には、左から順にサーバD、サーバF、サーバA、サーバE、サーバC及びサーバBとエントリが配列される。
これによって、両側のサーバ100とのメモリ容量の差が小さくなり、かつ、メモリ使用効率が高くなる。これは、両隣のメモリ容量の差が小さく、複製データを効率的に格納できるためである。
山型アルゴリズムは、第1のサーバの性能と、第1のサーバが管理するマスタデータの複製データを保持する第2サーバの性能と、第1のサーバ100が保持する複製データのマスタデータを管理する第3のサーバの性能とを考慮したアルゴリズムである。
より一般的には、識別子がi、j、kであるサーバ100のメモリ容量をM[i]、M[j]、M[k]と定義した場合、下式(2)が最小となるサーバ100の組合わせが山型アルゴリズムに対応する。
Figure 2013153646

ここで、識別子がkであるサーバ100が、識別子がjであるサーバ100の複製データを保持するスレーブサーバとなる。また、識別子がjであるサーバ100が、識別子がiであるサーバの複製データを保持するスレーブサーバとなる。
本実施例では、サーバ100の性能比に基づいて、各サーバ100が担当する管理範囲の幅が決定される。これによって、アクセス性能を高め、かつ、メモリ使用効率を高めることができる。
下り階段型アルゴリズムでは、右側のサーバ100との性能差(メモリ容量)が小さいため、複製データの容量差も小さくできる。そのため、メモリストア140に全ての複製データを格納できる。したがって、メモリストア140のみを用いてクライアントからのアクセス処理に対応できる。
ただし、下り階段型アルゴリズムでは、メモリ容量が最大のサーバ100が、メモリ容量が最低のサーバの複製データを格納するため、メモリ使用効率が低くなる場合がある。
一方、山型アルゴリズムでは、両側のサーバ100との性能差(メモリ容量)が小さいため、下り階段型アルゴリズムのような問題は発生しない。しかし、下り階段型アルゴリズムと比較して、サーバ100間の性能差が大きくなるため、複製データがディスクストア130に格納される場合がある。この場合、アクセス性能は下り階段型アルゴリズムより低くなる。
本実施例では、サーバ100は、ユーザによって指定された性能(指標)に基づいて、前述した二つのアルゴリズムを切り替える。すなわち、高いアクセス性能が求められる場合には、サーバ100は下り階段型アルゴリズムを適用し、アクセス性能及びメモリ使用効率が求められる場合には、サーバ100は山型アルゴリズムを適用する。
以下の説明では、下り階段型アルゴリズムを適用したサーバ100のエントリの配列を下り階段配列と記載し、山型アルゴリズムを適用したサーバ100のエントリの配列を山型配列と記載する。
図10は、本発明の第1の実施例における配置決定処理の詳細を説明するフローチャートである。配列決定処理は、配置管理部160によって実行される。
配置管理部160は、性能管理情報181のエントリを性能の降順に並べ替える(ステップS201)。すなわち、下り階段配列にエントリが並び替えられる。
具体的には、配置管理部160は、指標情報の値nに対応する指標を特定する。配置管理部160は、特定された指標に基づいて、各サーバ100の性能を比較して、性能の高いサーバ100のエントリを左から順に並べる。
なお、使用する指標の値が同一であるエントリがある場合、配置管理部160は、他の指標に対応する性能を比較することによってエントリを並べ替える(ステップS113、ステップS115)。使用する指標がない場合には、サーバIDに基づいて、エントリが並び替えられる。
次に、配置管理部160は、山型アルゴリズムを適用するか否かを判定する(ステップS203)。具体的には、以下のような処理が実行される。
配置管理部160は、指標情報を参照し、使用する指標としてメモリ容量及び通信速度が選択されているか否かを判定する。
使用する指標としてメモリ容量及び通信速度が選択されている場合、配置管理部160は、山型アルゴリズムを適用すると判定する。
なお、メモリ容量又は通信速度のいずれか一方のみが使用する指標として選択されている場合、配置管理部160は、山型アルゴリズムを適用しないと判定する。
山型アルゴリズムを適用しないと判定された場合、すなわち、下り階段型アルゴリズムを適用すると判定された場合、配置管理部160は、ステップS207に進む。
ここでは、ステップS203において、性能管理情報181のエントリは下り階段配列に並び替えられているため、性能管理情報181のエントリの順番は変更されない。
山型アルゴリズムを適用すると判定された場合、配置管理部160は、項目の性能に基づいて、性能管理情報181のエントリを山型配列に並び替える(ステップS205)。山型配列の並び替え方法としては、例えば、以下のような方法が考えられる。
配置管理部160は、まず、性能が最大のサーバ100に対応する第1のエントリの配置を決定する。例えば、性能管理情報181の中央に第1のエントリを配置する方法が考えられる。
配置管理部160は、次に性能が高いサーバ100に対応する第2のエントリを検索し、第1のエントリの左側に第2のエントリを配置する。配置管理部160は、次に性能が高いサーバ100に対応する第3のエントリを検索し、第1のエントリの右側に第3のエントリを配置する。以下、配置管理部160は、偶数番目のエントリを第1のエントリの左側に順に配置し、奇数番目のエントリを第1のエントリの右側に順に配置する。
配置管理部160は、全てのエントリに対して前述した手順を実行することによって、山型配列に性能管理情報181のエントリを並び替えることができる。
なお、前述の配列方法は一例であって、本発明はこれに限定されない。両側のサーバ100の性能差が小さくなるように配置できれば、どのような方法であってもよい。
配置管理部160は、性能管理情報181に基づいて、各サーバ100が担当する管理範囲の幅を決定する(ステップS207)。
例えば、メモリ容量の比に基づいて、サーバ100の管理範囲の幅を決定する方法が考えられる。
配置管理部160は、処理結果に基づいてクラスタを構成し、処理を終了する(ステップS209)。具体的には、以下のような処理が実行される。
配置管理部160は、性能管理情報181のエントリの順番に基づいて、各サーバ100に対するスレーブサーバを設定する。本実施例では、所定のエントリの右側のエントリに対応するサーバ100がスレーブサーバとして設定される。
また、配置管理部160は、決定された管理範囲の幅に基づいて分散アルゴリズムを適用し、サーバ100が担当する管理範囲を決定する。
なお、配置決定処理では、処理の一貫性が保たれれば処理の順番を変更してもよい。例えば、配置管理部160は、ステップS203の処理を実行し、山型アルゴリズムを適用しない場合にはステップS201の処理を実行し、山型アルゴリズムを適用する場合にはステップS205の処理を実行してもよい。
また、配置管理部160は、サーバ100が担当する管理範囲の幅、及び決定されたスレーブサーバの配置関係に基づいて、構成情報171を生成する。生成された構成情報171は構成情報管理部170に出力される。
ここで、具体的な例を用いて本発明の実施例について説明する。
以下の説明では、メモリ容量が指標として選択されたものとする。また、計算システムには、サーバA、サーバB、サーバC、サーバD及びサーバEが含まれるものとする。また、サーバAのメモリ容量を「3GB」、サーバBのメモリ容量を「2GB」、サーバCのメモリ容量を「3GB」、サーバDのメモリ容量を「1GB」、サーバEのメモリ容量を「4GB」とする。
まず、図11A、図11B及び図11Cを用いて下り階段型アルゴリズムを適用した場合の配列決定処理の具体例について説明する。なお、説明の簡単のため、スペック602にはメモリ容量のみを記載する。
ステップS201において、配置管理部160は、メモリ容量に基づいて、下り階段配列に性能管理情報181のエントリを並び替える。その結果、図11Aから図11Bに示すように性能管理情報181のエントリが並び替えられる。
ここで、サーバA及びサーバCのメモリ容量は同一であるため、配置管理部160は、サーバIDのアルファベット順にサーバA及びサーバCのエントリを並び替える。
ステップS207において、配置管理部160は、メモリ容量に基づいて、各サーバ100が担当する管理範囲の幅を決定する。
具体的には、配置管理部160は、全エントリのメモリ容量の合計値を算出する。図11Bに示す例では、合計値は「13GB」と算出される。次に、配置管理部160は、合計値を分母に、自己のメモリ容量の値を分子に設定する。当該分数は、データ範囲における管理範囲の比率を示す値である。
ステップS207の処理の結果、図11Cに示すように性能管理情報181が更新される。
ステップS209では、配置管理部160は、サーバ100が担当する管理範囲を決定し、また、複製データを保持するサーバ100を設定することによってクラスタを構成する。具体的には、以下のような処理を実行する。
配置管理部160は、全データ範囲を13等分し、サーバE、サーバA、サーバC、サーバB及びサーバDの管理範囲の幅を「4:3:3:2:1」の比率に決定する。配置管理部160は、決定された管理範囲の幅に基づいて分散アルゴリズムを適用することによって、各サーバの管理範囲のハッシュ値を決定する。
また、配置管理部160は、サーバEの複製データをサーバAが、サーバAの複製データをサーバCが、サーバCの複製データをサーバBが、サーバBの複製データをサーバDが、さらに、サーバDの複製データをサーバEが保持するように設定する。
以上の処理によって、構成情報171を生成することができる。
次に、図12A、図12B及び図12Cを用いて山型アルゴリズムを適用した場合の配列決定処理の具体例について説明する。
ステップS201において、配置管理部160は、メモリ容量に基づいて、下り階段配列に性能管理情報181のエントリを並び替える。その結果、図12Aから図11Bに示すように性能管理情報181のエントリが並び替えられる。
ステップS205において、配置管理部160は、山型配列に性能管理情報181のエントリを並び替える。その結果、図12Bに示すような性能管理情報181のエントリが並び替えられる。
ステップS207において、配置管理部160は、メモリ容量に基づいて、各サーバ100が担当する管理範囲の幅を決定する。管理範囲の幅の決定方法は、下り階段型アルゴリズムの場合と同一のものを用いる。
ステップS207の処理の結果、図12Cに示すように性能管理情報181が更新される。
ステップS209では、配置管理部160は、サーバ100が担当する管理範囲を決定し、また、複製データを保持するサーバ100を設定することによってクラスタを構成する。具体的には、以下のような処理を実行する。
配置管理部160は、全データ範囲を13等分し、サーバD、サーバA、サーバE、サーバC及びサーバBの管理範囲の幅を「1:3:4:3:2」の比率に決定する。配置管理部160は、決定された管理範囲の幅に基づいて分散アルゴリズムを適用することによって、各サーバの管理範囲のハッシュ値を決定する。
また、配置管理部160は、サーバDの複製データをサーバAが、サーバAの複製データをサーバEが、サーバEの複製データをサーバCが、サーバCの複製データをサーバBが、さらに、サーバBの複製データをサーバDが保持するように設定する。
以上の処理によって、構成情報171を生成することができる。
本実施例の配置管理部160は、さらに、配列決定処理が終了すると、配列決定処理の結果を表示するための表示情報を生成し、サーバ100又はクライアント200に確認画面を表示する。
図13A及び図13Bは、本発明の第1の実施例における確認画面900の一例を示す説明図である。
図13Aは、下り階段型アルゴリズムを適用した配列決定処理の結果を表示する確認画面900を示す。図13Bは、山型アルゴリズムを適用した配列決定処理の結果を表示する確認画面900を示す。
確認画面900は、サーバID911、Position912、メモリ容量913、プロセッサ914及び通信速度915を表示する。
サーバID911は、サーバ100を一意に識別するための識別子を表示する。Position912は、サーバ100が担当する管理範囲の幅を表す情報を表示する。本実施例では、データ範囲の先頭から、決定された管理範囲の幅だけデータが割り当てられるものとする。なお、管理範囲を示す値を表示してもよい。
メモリ容量913は、サーバID911に対応するサーバ100が有するメモリ102の容量に関する情報を表示する。本実施例では、メモリ容量を指標とした下り階段型アルゴリズムを適用しているため、メモリ容量913には、メモリ容量が下り階段状になるようにエントリが配列されていることを示すアイコンが表示される。
プロセッサ914は、サーバID911に対応するサーバ100が有するプロセッサ101の性能に関する情報を表示し、通信速度915は、サーバID911に対応するサーバ100が有するネットワークインタフェースの性能に関する情報を表示する。
なお、確認画面900に表示される情報は一例であって、記憶装置105の容量、プロセッサ101の使用率及びプロセッサ101の負荷等を表示してもよい。
なお、本実施例では、一つのマスタデータに対して一つのスレーブサーバを選択する場合を説明したが、一つのマスタデータに対して複数のスレーブサーバを選択する場合であっても同様のアルゴリズムを適用できる。
例えば、一つのマスタデータに対して二つのスレーブサーバを選択する場合、下り階段型アルゴリズム又は山型アルゴリズムの何れの場合であっても、一つのスレーブサーバを決定した後、当該決定されたスレーブサーバをマスタサーバとみなして同一の配置決定処理をすればよい。
(変形例)
山型アルゴリズムでは、さらに、アクセス速度及びメモリ使用効率の優先順位に基づいて、異なる形状の山型配列に並び替える方法がある。以下、ステップS205の処理の変形例について説明する。
図14は、本発明の第1の実施例の変形例における山型配列処理を説明するフローチャートである。
配置管理部160は、指標情報を参照し、アクセス速度の優先順位とメモリ容量の優先順位とを比較する(ステップS401)。
配置管理部160は、比較の結果、アクセス速度の優先順位がメモリ容量の優先順位より高いか否かを判定する(ステップS403)。すなわち、メモリ容量より通信速度を重要とするか否かが判定される。
アクセス速度の優先順位がメモリ容量の優先順位より高いと判定された場合、配置管理部160は、性能管理情報181における第1のエントリの配置位置を中心から所定範囲左の位置に決定する(ステップS405)。例えば、エントリ三つ分左側にずらして第1のエントリを配置する方法が考えられる。なお、第1のエントリは、性能が最大のサーバ100に対応する。
アクセス速度の優先順位がメモリ容量の優先順位より低いと判定された場合、配置管理部160は、性能管理情報181における第1のエントリの配置位置を中心から所定範囲右の位置に決定し(ステップS409)、ステップS407に進む。例えば、エントリ三つ分右側にずらして第1のエントリを配置する方法が考えられる。
配置管理部160は、第2のエントリを含むその他のエントリの配置を決定し(ステップS407)、処理を終了する。第2のエントリを含むその他のエントリの配置の決定方法は、第1の実施例と同一である。
第2の実施例
第2の実施例では、クラスタの運用中に、サーバ100が追加又は削除された場合の処理について説明する。以下、第1の実施例との差異を中心に説明する。
計算機システムの構成、サーバ100及びクライアント200の構成は第1の実施例と同一であるため説明を省略する。
図15は、本発明の第2の実施例におけるクラスタ構成変更処理を説明するフローチャートである。
サーバ100は、計算機システムの構成の変更を検出したか否かを判定する(ステップS501)。例えば、クライアント200からサーバ100の追加又は削除指示を受け付けた場合、サーバ100は、計算機システムの構成変更を検出したと判定する。
計算機システムの構成の変更を検出していないと判定された場合、サーバ100は、ステップS501に戻り、計算機システムの構成が変更されるまで待ち続ける。
計算機システムの構成の変更を検出したと判定された場合、サーバ100は、新規サーバ100が追加されたか否かを判定する(ステップS503)。
新規サーバ100が追加されたと判定された場合、サーバ100は、新規サーバ100の性能情報を取得し、新規サーバ100に対する配置決定処理を実行する(ステップS505、ステップS507)。
このとき、サーバ100は、取得された新規サーバ100の性能情報に基づいて、配置決定処理を実行することによって性能管理情報181を更新する。具体的には、性能管理情報181に、新規サーバ100に対応するエントリを追加する。具体的な、配置決定処理の詳細は、図16A及び図16Bを用いて後述する。
サーバ100は、クラスタの構成を更新し、処理を終了する(ステップS509)。具体的には、サーバ100は、更新された性能管理情報181に基づいて、構成情報171を更新する。
ステップS503において、新規サーバ100が追加されていない、すなわち、サーバ100の削除であると判定された場合、サーバ100は、削除対象のサーバ100の停止を確認する(ステップS511)。具体的には、情報共有部180が、削除対象のサーバ100の停止を検出する。
サーバ100は、性能管理情報181から削除対象のサーバ100に対応するエントリを削除する(ステップS513)。
サーバ100は、クラスタの構成を更新し、処理を終了する(ステップS509)。
図16A及び図16Bは、本発明の第2の実施例における新規サーバ100の配置決定処理を説明するフローチャートである。
以下の説明では、性能管理情報181に左から「1」から「n」までの識別番号iが付与されているものとする。また、i番目のエントリのメモリ容量をM[i]と記載し、また、新規サーバ100のメモリ容量をaと記載する。
配置管理部160は、性能管理情報181を参照し、山型アルゴリズムが適用された配列であるか否かを判定する(ステップS601)。
山型アルゴリズムが適用された配列でない、すなわち、下り階段型アルゴリズムが適用された配列であると判定された場合、配置管理部160は、識別番号iを「1」に設定する(ステップS603)。
次に、配置管理部160は、新規サーバ100のメモリ容量が、i番目のエントリに対応するサーバ100のメモリ容量以上であるか否かを判定する(ステップS605)。
ステップS605の条件を満たさない場合、配置管理部160は、識別番号iを「1」加算してステップS605に戻り、同様の処理を実行する(ステップS609)。
ステップS605の条件を満たすと判定された場合、配置管理部160は、新規サーバ100のエントリの配列を決定し、性能管理情報を更新する(ステップS611)。
具体的には、配置管理部160は、メモリ容量M[i]であるサーバ100の左側に新規サーバ100のエントリを追加することによって、性能管理情報181を更新する。ここで、性能管理情報181の更新方法の一例について説明する。
図17は、本発明の第2の実施例における性能管理情報181の更新方法の一例を示す説明図である。
図17の(a)は、更新前の性能管理情報181を示す図である。図17の(b)は、更新後の性能管理情報181である。
ここで、新規サーバ100のサーバIDを「サーバF」とし、また、メモリ容量を「2GB」とする。このとき、配置管理部160は、図17の(a)に示すような形式の性能情報1000に基づいて、性能管理情報181の各エントリについて比較処理を実行する。
ステップ605及びステップS607において、新規サーバFとサーバEとの比較処理の結果、ステップS605の条件を満たさないと判定される。サーバA及びサーバCについても同様の結果となる。サーバBとの比較処理の結果、ステップS605の条件を満たすため、配置管理部160は、新規サーバFのエントリの配置をサーバBの左側に決定する。その結果、図17の(b)に示すような性能管理情報181に更新される。
なお、図16Aに示す、下り階段型アルゴリズムにおける新規サーバ100の追加方法は一例であって、例えば、メモリ容量の小さいサーバ100から順に比較する方法などでもよい。
図16の説明に戻る。
ステップS601において、山型アルゴリズムが適用された配列であると判定された場合、配置管理部160は、新規サーバ100のメモリ容量が、計算機システムにおけるメモリ容量の最大値以上であるか否かを判定する(ステップS611)。
ステップS611の条件を満たさないと判定された場合、配置管理部160は、新規サーバ100のメモリ容量が、計算機システムにおけるメモリ容量の最小値以下であるか否かを判定する(ステップS613)。
ステップS613の条件を満たさないと判定された場合、配置管理部160は、山型配列の頂上を起点に、メモリ容量が新規サーバ100のメモリ以下であるサーバ100を検索する(ステップS615)。検索されたサーバ100を処理対象サーバ100と記載する。
なお、山型アルゴリズムでは、ステップS615の条件を満たすエントリが山型配列の頂点の右側及び左側に一つずつ存在する。そのため、右側の処理対象サーバ100を第1の処理対象サーバ100と記載し、左側の処理対象サーバ100を第2の処理対象サーバ100と記載する。
配置管理部160は、第1の処理対象サーバ100と新規サーバ100とのメモリ差(第1のメモリ差)、及び、新規サーバ100と第1の処理対象サーバ100の一つ左隣のサーバ100とのメモリ差(第2のメモリ差)を算出する(ステップS617)。ここでは、各サーバ100のメモリ差の絶対値を算出するものとする。
また、配置管理部160は、第2の処理対象サーバ100と新規サーバ100とのメモリ差(第3のメモリ差)、及び、新規サーバ100と第2の処理対象サーバ100の一つ右隣のサーバ100とのメモリ差(第4のメモリ差)を算出する(ステップS619)。ここでは、各サーバ100のメモリ差の絶対値を算出するものとする。
配置管理部160は、第1のメモリ差と第2のメモリ差との合計値が、第3のメモリ差と第4のメモリ差との合計値以上であるか否かを判定する(ステップS621)。
ステップS621の条件を満たすと判定された場合、配置管理部160は、第1の処理対象サーバ100の左に新規サーバ100を配置し、処理を終了する(ステップS623)。
ステップS621の条件を満たさないと判定された場合、配置管理部160は、第2の処理対象サーバ100の右に新規サーバ100を配置し、処理を終了する(ステップS625)。
ステップS611において、ステップS611の条件を満たすと判定された場合、配置管理部160は、ステップS617に進む。
計算機システム内においてメモリ容量が最大であるサーバ100が複数ある場合、識別番号iが一番小さいエントリに対応するサーバを第2の処理対象サーバ100とし、識別番号iが一番大きいエントリに対応するサーバを第1の処理対象サーバ100とする。
なお、計算機システム内においてメモリ容量が最大であるサーバ100が一つだけである場合、第1の処理対象サーバ100と第2の処理対象サーバ100とは同一のものになる。
ステップS617以下の処理は同一であるため説明を省略する。
ステップS613において、ステップS613の条件を満たすと判定された場合、配置管理部160は、ステップS617に進む。
計算機システム内においてメモリ容量が最小であるサーバ100が複数ある場合、識別番号iが一番小さいものを第2の処理対象サーバ100とし、識別番号iが一番大きいものを第1の処理対象サーバ100とする。
ステップS617以下の処理は同一であるため説明を省略する。
図18は、本発明の第2の実施例における性能管理情報181の更新方法の一例を示す説明図である。
図18の(a)は、更新前の性能管理情報181を示す図である。図18の(b)は、更新後の性能管理情報181である。
ここで、新規サーバ100のサーバIDを「サーバF」とし、また、メモリ容量を「2GB」とする。このとき、配置管理部160は、図18の(a)に示すような形式の性能情報1100に基づいて、ステップS611〜ステップS625の処理を実行する。
ステップS611及びステップS613の条件を満たさないため、配置管理部160は、ステップS615に進む。
ステップS615において、新規サーバFのメモリ以下のサーバ100として、サーバB及びサーバDが検索される。ここでは、サーバDが第2の処理対象サーバ100となり、サーバBが第1の処理対象サーバ100となる。
ステップS621では、第1のメモリ差と第2のメモリ差との合計値が「1GB」となり、第3のメモリ差と第4のメモリ差との合計値が「2GB」となるため、ステップS621の条件を満たさないと判定される。
したがって、配置管理部160は、サーバFの配置をサーバDの右側に決定する。その結果図18の(b)に示すような性能管理情報181に更新される。
本発明の一形態によれば、サーバ100間の性能差を考慮して、分散KVSを最適に構築することができる。具体的には、マスタサーバとスレーブサーバとの性能差が小さくなるようにスレーブサーバを設定でき、また、マスタサーバが担当する管理範囲の幅(複製データのデータ量)も最適に設定することができる。また、サーバ100が追加又は削除された場合も、動的に、スレーブサーバの配置関係及び管理範囲の幅を設定することができる。
なお、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
さらに、本実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。

Claims (20)

  1. ネットワークを介して複数の計算機が接続され、前記複数の計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、
    前記複数の計算機の各々は、
    プロセッサと、前記プロセッサに接続される記憶装置と、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
    前記複数の計算機の各々の性能を管理する性能管理情報を保持し、
    前記データベースには、キー及びデータ値から構成されるデータが格納され、
    前記複数の計算機の各々には、
    前記複数の計算機の各々に割り当てる前記キーの範囲を示す管理範囲を決定するための分散アルゴリズムに基づいて、前記複数の計算機の各々がマスタとして管理するマスタデータが配置され、
    他の前記複数の計算機のうちの一つの計算機が管理する前記マスタデータの複製データが配置され、
    前記計算機システムは、
    前記複数の計算機の各々から性能に関する情報を取得し、取得された情報に基づいて性能管理情報を更新する性能情報管理部と、
    前記性能管理情報に基づいて、前記複数の計算機の各々が管理する前記マスタデータの前記管理範囲、及び、前記複数の計算機の各々が管理するマスタデータの複製データを保持する副計算機を決定するクラスタ構成管理部と、を備えることを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記性能管理情報は、前記複数の計算機の各々が有する前記記憶装置の記憶容量に関する情報を含み、
    前記クラスタ構成管理部は、
    前記性能管理情報を参照して、前記複数の計算機の各々が有する前記記憶装置の記憶容量を比較し、
    前記複数の計算機のうちの一つの計算機が有する前記記憶装置の記憶容量と、当該計算機に対する前記副計算機が有する前記記憶装置の記憶容量との差が小さくなるように、前記複数の計算機の各々の管理範囲及び前記副計算機を決定することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記複数の計算機の各々が有する前記記憶装置は、メモリ及びディスク装置を含み、
    前記データベースは、前記複数の計算機の各々が有する前記メモリの記憶領域から構成されるメモリストアと、前記複数の計算機の各々が有する前記ディスク装置から構成されるディスクストアとを含み、
    前記クラスタ構成管理部は、
    前記メモリの記憶容量の差が小さくなる計算機と副計算機との組合わせを算出し、
    前記算出された計算機と副計算機との組合わせに基づいて、前記複数の計算機の各々に対する前記副計算機を設定し、
    前記算出された計算機と副計算機との組合わせに基づいて、前記複数の計算機の各々の前記管理範囲の割当幅を決定し、
    前記決定された管理範囲の割当幅に基づいて、前記分散アルゴリズムを適用することによって、前記複数の計算機の各々の前記管理範囲を決定することを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記複数の計算機の各々は、前記データベースの処理性能を指定する指標情報を保持し、
    前記クラスタ構成管理部は、
    前記指標情報を参照して、前記データベースのアクセス性能が要求されているか否かを判定し、
    前記データベースのアクセス性能が要求されていると判定された場合、前記複数の計算機の各々が有する前記メモリの記憶容量が、前記複数の計算機の各々に対する前記副計算機が有する前記メモリの記憶容量以上であり、かつ、前記メモリの記憶容量の差が小さくなる前記計算機と副計算機との組合わせを算出し、
    前記複数の計算機の各々が有するメモリの記憶容量の大きさに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定することを特徴とする計算機システム。
  5. 請求項3に記載の計算機システムであって、
    前記複数の計算機の各々は、前記データベースの処理性能を指定する指標情報を保持し、
    前記クラスタ構成管理部は、
    前記指標情報を参照して、前記データベースのアクセス性能と前記データベースの記憶容量の使用効率とが要求されているか否かを判定し、
    前記データベースのアクセス性能と前記データベースの記憶容量の使用効率とが要求されていると判定された場合、前記複数の計算機の各々が保持する前記複製データに対応する前記マスタデータを管理する計算機が有するメモリの記憶容量と、前記複数の計算機の各々が有するメモリの記憶容量と、前記複数の計算機の各々に対する前記副計算機が有するメモリの記憶容量との差が小さくなる前記計算機と副計算機との組合わせを算出し、
    前記複数の計算機の各々が有するメモリの記憶容量の大きさに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定することを特徴とする計算機システム。
  6. 請求項4又は請求項5に記載の計算機システムであって、
    前記クラスタ構成管理部は、前記指標情報を入力するための入力画面を表示し、
    前記入力画面を介した操作に基づいて、前記指標情報を取得することを特徴とする計算機システム。
  7. 請求項1から請求項6のいずれか一つに記載の計算機システムであって、
    前記クラスタ構成管理部は、前記複数の計算機と前記複数の計算機の各々に対する副計算機との性能差、及び、前記複数の計算機の各々の管理範囲の割当幅を表示するための表示情報を生成することを特徴とする計算機システム。
  8. ネットワークを介して複数の計算機が接続され、前記複数の計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムにおけるデータ配置管理方法であって、
    前記複数の計算機の各々は、
    プロセッサと、前記プロセッサに接続される記憶装置と、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
    前記複数の計算機の各々の性能を管理する性能管理情報を保持し、
    前記データベースには、キー及びデータ値から構成されるデータが格納され、
    前記複数の計算機の各々には、
    前記複数の計算機の各々に割り当てる前記キーの範囲を示す管理範囲を決定するための分散アルゴリズムに基づいて、前記複数の計算機の各々がマスタとして管理するマスタデータが配置され、
    他の前記複数の計算機のうちの一つの計算機が管理する前記マスタデータの複製データが配置され、
    前記方法は、
    前記複数の計算機の各々が、前記複数の計算機の各々から性能に関する情報を取得し、取得された情報に基づいて性能管理情報を更新する第1のステップと、
    前記複数の計算機の各々が、前記性能管理情報に基づいて、前記複数の計算機各々が管理する前記マスタデータの前記管理範囲、及び、前記複数の計算機の各々が管理するマスタデータの複製データを保持する副計算機を決定する第2のステップと、を含むことを特徴とするデータ配置管理方法。
  9. 請求項8に記載のデータ配置管理方法であって、
    前記性能管理情報は、前記複数の計算機の各々が有する前記記憶装置の記憶容量に関する情報を含み、
    前記第2のステップは、
    前記性能管理情報を参照して、前記複数の計算機の各々が有する前記記憶装置の記憶容量を比較する第3のステップと、
    前記複数の計算機のうちの一つの計算機が有する前記記憶装置の記憶容量と、当該計算機に対する前記副計算機が有する前記記憶装置の記憶容量との差が小さくなるように、前記複数の計算機の各々の管理範囲及び前記副計算機を決定する第4のステップと、を含むことを特徴とするデータ配置管理方法。
  10. 請求項9に記載のデータ配置管理方法であって、
    前記複数の計算機の各々が有する前記記憶装置は、メモリ及びディスク装置を含み、
    前記データベースは、前記複数の計算機の各々が有する前記メモリの記憶領域から構成されるメモリストアと、前記複数の計算機の各々が有する前記ディスク装置から構成されるディスクストアとを含み、
    前記第4のステップは、
    前記メモリの記憶容量と差が小さくなる計算機と副計算機との組合わせを算出する第5のステップと、
    前記算出された計算機と副計算機との組合わせに基づいて、前記複数の計算機の各々に対する前記副計算機を設定する第6のステップと、
    前記算出された計算機と副計算機との組合わせに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定する第7のステップと、
    前記決定された管理範囲の割当幅に基づいて、前記分散アルゴリズムを適用することによって前記複数の計算機の各々の管理範囲を決定する第8のステップと、を含むことを特徴とするデータ配置管理方法。
  11. 請求項10に記載のデータ配置管理方法であって、
    前記複数の計算機の各々は、前記データベースの処理性能を指定する指標情報を保持し、
    前記第5のステップは、
    前記指標情報を参照して、前記データベースのアクセス性能が要求されているか否かを判定するステップと、
    前記データベースのアクセス性能が要求されていると判定された場合、前記複数の計算機の各々が有する前記メモリの記憶容量が、前記複数の計算機の各々に対する前記副計算機が有する前記メモリの記憶容量より大きく、かつ、前記メモリの記憶容量の差が小さくなる前記計算機と副計算機との組合わせを算出するステップと、を含み、
    前記第7のステップでは、前記複数の計算機の各々が有するメモリの記憶容量の大きさに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定することを特徴とするデータ配置管理方法。
  12. 請求項10に記載のデータ配置管理方法であって、
    前記複数の計算機各々は、前記データベースの処理性能を指定する指標情報を保持し、
    前記第5のステップは、
    前記指標情報を参照して、前記データベースのアクセス性能と前記データベースの記憶容量の使用効率とが要求されているか否かを判定するステップと、
    前記データベースのアクセス性能と前記データベースの記憶容量の使用効率とが要求されていると判定された場合、前記複数の計算機の各々が保持する前記複製データに対応する前記マスタデータを管理する計算機が有するメモリの記憶容量と、前記複数の計算機の各々が有するメモリの記憶容量と、前記複数の計算機の各々に対する前記副計算機が有するメモリの記憶容量との差が小さくなる前記計算機と副計算機との組合わせを算出するステップと、を含み、
    前記第7のステップでは、前記複数の計算機の各々が有するメモリの記憶容量の大きさに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定することを特徴とするデータ配置管理方法。
  13. 請求項11又は請求項12に記載のデータ配置管理方法であって、
    前記方法は、前記指標情報を入力するための入力画面を表示するステップを含み、
    前記入力画面を介した操作に基づいて、前記指標情報を取得することを特徴とするデータ配置管理方法。
  14. 請求項8から請求項13のいずれか一つに記載のデータ配置管理方法であって、
    前記方法は、前記複数の計算機と前記複数の計算機の各々に対する前記副計算機との性能差、及び、前記複数の計算機の各々の管理範囲の割当幅を表示するための表示情報を生成するステップを含むことを特徴とするデータ配置管理方法。
  15. ネットワークを介して複数の計算機が接続され、前記複数の計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムに含まれる前記複数の計算機の各々が実行するプログラムであって、
    前記複数の計算機の各々は、
    プロセッサと、前記プロセッサに接続される記憶装置と、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
    前記複数の計算機の各々の性能を管理する性能管理情報を保持し、
    前記データベースには、キー及びデータ値から構成されるデータが格納され、
    前記複数の計算機の各々には、
    前記複数の計算機の各々に割り当てる前記キーの範囲を示す管理範囲を決定するための分散アルゴリズムに基づいて、前記複数の計算機の各々がマスタとして管理するマスタデータが配置され、
    他の前記複数の計算機のうちに一つの計算機が管理する前記マスタデータの複製データが配置され、
    前記プログラムは、
    前記複数の計算機の各々から性能に関する情報を取得し、取得された情報に基づいて性能管理情報を更新する第1の手順と、
    前記性能管理情報に基づいて、複数の計算機の各々が管理する前記マスタデータの前記管理範囲、及び、前記複数の計算機の各々が管理するマスタデータの複製データを保持する副計算機を決定する第2の手順と、を前記複数の計算機の各々に実行させることを特徴とするプログラム。
  16. 請求項15に記載のプログラムであって、
    前記性能管理情報は、前記複数の計算機の各々が有する前記記憶装置の記憶容量に関する情報を含み、
    前記第2の手順は、
    前記性能管理情報を参照して、前記複数の計算機の各々が有する前記記憶装置の記憶容量を比較する第3の手順と、
    前記複数の計算機のうちの一つの計算機が有する前記記憶装置の記憶容量と、当該計算機に対する前記副計算機が有する前記記憶装置の記憶容量との差が小さくなるように、前記複数の計算機の各々の管理範囲及び前記副計算機を決定する第4の手順と、を含むことを特徴とするプログラム。
  17. 請求項16に記載のプログラムであって、
    前記複数の計算機の各々が有する前記記憶装置は、メモリ及びディスク装置を含み、
    前記データベースは、前記複数の計算機の各々が有する前記メモリの記憶領域から構成されるメモリストアと、前記複数の計算機の各々が有する前記ディスク装置から構成されるディスクストアとを含み、
    前記第4の手順は、
    前記メモリの記憶容量の差が小さくなる計算機と副計算機との組合わせを算出する第5の手順と、
    前記算出された計算機と副計算機との組合わせに基づいて、前記複数の計算機の各々に対する前記副計算機を設定する第6の手順と、
    前記算出された計算機と副計算機との組合わせに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定する第7の手順と、
    前記決定された管理範囲の割当幅に基づいて、前記分散アルゴリズムを適用することによって前記複数の計算機の各々の管理範囲を決定する第8の手順と、を含むことを特徴とするプログラム。
  18. 請求項17に記載のプログラムであって、
    前記複数の計算機の各々は、前記データベースの処理性能を指定する指標情報を保持し、
    前記第5の手順は、
    前記指標情報を参照して、前記データベースのアクセス性能が要求されているか否かを判定する手順と、
    前記データベースのアクセス性能が要求されていると判定された場合、前記複数の計算機の各々が有する前記メモリの記憶容量が、前記複数の計算機の各々に対する前記副計算機が有する前記メモリの記憶容量より大きく、かつ、前記メモリの記憶容量の差が小さくなる前記計算機と副計算機との組合わせを算出する手順と、を含み、
    前記第7の手順では、前記複数の計算機の各々が有するメモリの記憶容量の大きさに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定させることを特徴とするプログラム。
  19. 請求項17に記載のプログラムであって、
    前記複数の計算機の各々は、前記データベースの処理性能を指定する指標情報を保持し、
    前記第5の手順は、
    前記指標情報を参照して、前記データベースのアクセス性能と前記データベースの記憶容量の使用効率とが要求されているか否かを判定する手順と、
    前記データベースのアクセス性能と前記データベースの記憶容量の使用効率とが要求されていると判定された場合、前記複数の計算機の各々が保持する前記複製データに対応する前記マスタデータを管理する計算機が有するメモリの記憶容量と、前記複数の計算機の各々が有するメモリの記憶容量と、前記複数の計算機の各々に対する前記副計算機が有するメモリの記憶容量との差が小さくなる前記計算機と副計算機との組合わせを算出する手順と、を含み、
    前記第7の手順では、前記複数の計算機の各々が有するメモリの記憶容量の大きさに基づいて、前記複数の計算機の各々の管理範囲の割当幅を決定させることを特徴とするプログラム。
  20. 請求項16から請求項19のいずれか一つに記載のプログラムであって、
    前記プログラムは、前記複数の計算機と前記複数の計算機の各々に対する前記副計算機との性能差、及び、前記複数の計算機の各々の管理範囲の割当幅を表示するための表示情報を生成する手順を前記複数の計算機の各々に実行させることを特徴とするプログラム。
JP2014509979A 2012-04-12 2012-04-12 計算機システム、データ配置管理方法及びプログラム Active JP5964950B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/059972 WO2013153646A1 (ja) 2012-04-12 2012-04-12 計算機システム、データ配置管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2013153646A1 true JPWO2013153646A1 (ja) 2015-12-17
JP5964950B2 JP5964950B2 (ja) 2016-08-03

Family

ID=49327252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014509979A Active JP5964950B2 (ja) 2012-04-12 2012-04-12 計算機システム、データ配置管理方法及びプログラム

Country Status (3)

Country Link
US (1) US9898518B2 (ja)
JP (1) JP5964950B2 (ja)
WO (1) WO2013153646A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6092874B2 (ja) * 2012-08-02 2017-03-08 株式会社Murakumo 負荷分散装置、情報処理システム、方法およびプログラム
JP6241449B2 (ja) * 2015-05-21 2017-12-06 横河電機株式会社 データ管理システム及びデータ管理方法
GB2542175B (en) * 2015-09-10 2019-12-04 Openwave Mobility Inc Intermediate network entity
JP6506156B2 (ja) * 2015-11-11 2019-04-24 日本電信電話株式会社 ノードおよびグラビテーション抑止方法
WO2019030883A1 (ja) * 2017-08-10 2019-02-14 株式会社日立製作所 計算機システムおよびデータ処理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233390A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 分散データベースのデータ分割管理方式

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US7401131B2 (en) * 2000-05-22 2008-07-15 Verizon Business Global Llc Method and system for implementing improved containers in a global ecosystem of interrelated services
JP4129353B2 (ja) * 2001-03-29 2008-08-06 株式会社東芝 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム
US20020188704A1 (en) * 2001-06-12 2002-12-12 Stephen Gold Upgrade of licensed capacity on computer entity
US7490136B2 (en) * 2002-12-17 2009-02-10 Ricoh Company, Ltd. Digital contents distributing system and distributing method
US7877511B1 (en) * 2003-01-13 2011-01-25 F5 Networks, Inc. Method and apparatus for adaptive services networking
US7330997B1 (en) * 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup
US7831789B1 (en) * 2005-10-06 2010-11-09 Acronis Inc. Method and system for fast incremental backup using comparison of descriptors
US7434013B2 (en) * 2006-01-30 2008-10-07 Microsoft Corporation Assigning disks during system recovery
US20080046483A1 (en) * 2006-08-16 2008-02-21 Lehr Douglas L Method and system for selecting the timing of data backups based on dynamic factors
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US20090287986A1 (en) * 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units
US9002984B2 (en) * 2008-06-17 2015-04-07 Go Daddy Operating Company, LLC Direct domain software and file access computer system
CN101771715B (zh) * 2008-12-26 2014-04-16 华为技术有限公司 分布式网络构建存储的方法、装置和系统
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8914457B2 (en) * 2009-10-06 2014-12-16 Red Hat, Inc. Caching of nodes in cache cluster
US20110187511A1 (en) * 2010-01-29 2011-08-04 Nokia Corporation Method and apparatus for managing content, configuration and credential information among devices
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US8700842B2 (en) * 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US9619472B2 (en) * 2010-06-11 2017-04-11 International Business Machines Corporation Updating class assignments for data sets during a recall operation
JP5637791B2 (ja) * 2010-09-30 2014-12-10 株式会社日立製作所 計算機システム及びそのデータ処理方法
US9823981B2 (en) * 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
JP2012221419A (ja) * 2011-04-13 2012-11-12 Hitachi Ltd 情報記憶システム及びそのデータ複製方法
JP5548829B2 (ja) * 2011-09-28 2014-07-16 株式会社日立製作所 計算機システム、データ管理方法及びデータ管理プログラム
US8949367B2 (en) * 2011-10-31 2015-02-03 Oracle International Corporation Cooperative storage management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233390A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 分散データベースのデータ分割管理方式

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
中村俊介、首藤一幸: "読み出し性能と書き込み性能を両立させるクラウドストレージ", 情報処理学会研究報告 2011(平成23)年度▲1▼ [CD−ROM], vol. Vol.2011-OS-117 No.24, JPN6015047461, 15 June 2011 (2011-06-15), pages 1 - 9, ISSN: 0003340041 *
中里彦俊、清水雅史、西尾学、藤原正勝: "サーバ性能・サーバ負荷変動を考慮したコンシステントハッシュ法における仮想サーバ配置手法", 電子情報通信学会2011年通信ソサイエティ大会講演論文集2, JPN6015047459, 30 August 2011 (2011-08-30), pages 102, ISSN: 0003340040 *
宮城安敏、近藤悟、金子雅志: "セッション制御向け分散データベースのデータ複製に関する一考察", 電子情報通信学会2011年通信ソサイエティ大会講演論文集2, JPN6015047458, 30 August 2011 (2011-08-30), pages 418, ISSN: 0003202732 *

Also Published As

Publication number Publication date
WO2013153646A1 (ja) 2013-10-17
US20150046399A1 (en) 2015-02-12
US9898518B2 (en) 2018-02-20
JP5964950B2 (ja) 2016-08-03

Similar Documents

Publication Publication Date Title
US10209893B2 (en) Massively scalable object storage for storing object replicas
JP5765416B2 (ja) 分散ストレージシステムおよび方法
US10853242B2 (en) Deduplication and garbage collection across logical databases
JP5701398B2 (ja) 計算機システム、データ管理方法及びプログラム
JP5952960B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
US20060271653A1 (en) Computer system
JP6835968B2 (ja) スタビングによるコンテンツ記憶の最適化
JP5964950B2 (ja) 計算機システム、データ配置管理方法及びプログラム
JP2010146067A (ja) データ処理プログラム、サーバ装置およびデータ処理方法
WO2016143095A1 (ja) 計算機システム及びトランザクション処理の管理方法
KR20190058992A (ko) 토러스 네트워크 기반의 분산 파일 시스템을 위한 서버 및 이를 이용한 방법
KR20090062106A (ko) 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템및 방법
US9911004B2 (en) Cloud-based hardware architecture
JP2010020441A (ja) 計算機システム、構成管理方法及び管理計算機
JP5853109B2 (ja) 計算機、計算機システムの制御装置及び記録媒体
JP5792325B2 (ja) 計算機システム、データ管理方法及びプログラム
WO2016110936A1 (ja) 計算機システム、及び、データ管理方法
JP2010026965A (ja) アーカイブシステムおよびコンテンツの管理方法
JP2013088920A (ja) 計算機システム及びデータ管理方法
JP2008186141A (ja) データ管理方法、データ管理プログラム、データ管理システム、および、構成管理装置
JPWO2012059976A1 (ja) プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
WO2018061158A1 (ja) 計算機システムおよび計算機システム制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160630

R150 Certificate of patent or registration of utility model

Ref document number: 5964950

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150