JP2014191478A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2014191478A JP2014191478A JP2013064892A JP2013064892A JP2014191478A JP 2014191478 A JP2014191478 A JP 2014191478A JP 2013064892 A JP2013064892 A JP 2013064892A JP 2013064892 A JP2013064892 A JP 2013064892A JP 2014191478 A JP2014191478 A JP 2014191478A
- Authority
- JP
- Japan
- Prior art keywords
- data
- server
- connection
- key
- servers
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】分散KVSにおいて、データを管理するサーバの間で発生する通信の量を減らす。
【解決手段】情報処理装置1は、分散キーバリューストアの機能を有する複数のサーバ3A〜3Eが管理するデータに対する処理を行う装置であり、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部16〜17と、複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバをデータ格納部から特定し、特定された当該サーバへの接続を行う接続処理部15とを有する。
【選択図】図2
【解決手段】情報処理装置1は、分散キーバリューストアの機能を有する複数のサーバ3A〜3Eが管理するデータに対する処理を行う装置であり、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部16〜17と、複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバをデータ格納部から特定し、特定された当該サーバへの接続を行う接続処理部15とを有する。
【選択図】図2
Description
本発明は、分散配置されたデータの処理技術に関する。
ウェブサイト、センサ或いは携帯端末等において日々発生する膨大なデータを高速に処理する技術が求められている。
膨大なデータを高速に処理する技術として、以下のような技術が知られている。具体的には、複数のサーバの各々に設けられたインメモリデータベースに、同一の処理対象データを配置する。そして、いずれかのインメモリデータベースに格納された処理対象データをマスタデータとし、マスタデータが格納されるインメモリデータベース以外のインメモリデータベースに格納される処理対象データをスレーブデータとするように設定を行う。サーバは、処理対象データのマスタデータが自サーバに配置されている場合には、処理要求において要求された処理をそのマスタデータに対して行うと共に、他のサーバにおけるスレーブデータに対してマスタデータをコピーする。また、サーバは、処理対象データのマスタデータが自サーバに配置されていない場合には、そのマスタデータが配置されているサーバに処理要求を振り分ける。
また、膨大なデータを高速に処理する技術として、分散KVS(Key-Value Store)が知られている。KVSは、保存したいデータ(Value)に一意のキー(Key)を対応付け、データ及びそのキーをペアとして保存する技術である。KVSにおいては、キーのみを指定すればデータを取得することができる。分散KVSは複数のサーバによってKVSを実現する技術であり、サーバを追加することで処理を容易に高速化できる(すなわち、スケールアウトが容易である)という特徴がある。また、分散KVSには、SPOF(Single Point 0f Failure:単一障害点)が無く、複数のサーバのうちどのサーバにアクセスしたとしてもデータを取得できるという特徴もある。
分散KVSにおいては、処理対象のデータを管理するサーバに直接アクセスした場合には、要求元はそのデータに対する処理(例えば、書き込み又は読み出し)を迅速に行うことができる。しかし、処理対象のデータを管理していないサーバにアクセスした場合には、要求を受けたサーバがそのデータを管理するサーバからそのデータを取得し、その後に処理を行うことになる。
図1に、分散KVSの一例を示す。図1の例では、サーバA乃至Cにより分散KVSが実現されている。このような例において、サーバAが管理するデータに対する処理を行うとする。要求元がサーバAに対して直接アクセスした場合には、要求元は処理対象のデータに対する処理を迅速に行うことができる。一方、要求元がサーバBに対してアクセスした場合には、サーバBは処理対象のデータを管理していないため、サーバBは処理対象のデータをサーバAに要求する。サーバBが処理対象のデータを取得すると、要求元は処理対象のデータに対する処理を行う。要求元がサーバAにアクセスした場合にはサーバAとサーバBとの間に通信は発生しないが、要求元がサーバBにアクセスした場合はサーバAとサーバBとの間に通信が発生する。
このように、分散KVSには、データを管理するサーバの間において発生する通信に時間がかかることにより、要求元が処理を完了するまでの時間が長くなるという問題がある。
従って、本発明の目的は、1つの側面では、分散KVSにおいて、データを管理するサーバの間で発生する通信の量を減らすための技術を提供することである。
本発明に係る情報処理装置は、分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置である。そして、本情報処理装置は、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部と、複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバをデータ格納部から特定し、特定された当該サーバへの接続を行う接続処理部とを有する。
分散KVSにおいて、データを管理するサーバの間で発生する通信の量を減らせるようになる。
[実施の形態1]
図2に、本実施の形態に係るシステム概要を示す。図2に示したシステムは、ネットワーク機器91乃至93を管理するシステムである。本実施の形態における主要な処理を実行するアプリケーションサーバ1は、サーバ3A乃至3Eにより実現される分散KVS3と、ウェブサーバ5とに接続される。ウェブサーバ5は、例えばインターネット等のネットワークを介して、ユーザ端末7に接続される。
図2に、本実施の形態に係るシステム概要を示す。図2に示したシステムは、ネットワーク機器91乃至93を管理するシステムである。本実施の形態における主要な処理を実行するアプリケーションサーバ1は、サーバ3A乃至3Eにより実現される分散KVS3と、ウェブサーバ5とに接続される。ウェブサーバ5は、例えばインターネット等のネットワークを介して、ユーザ端末7に接続される。
アプリケーションサーバ1は、例えばルータ又はスイッチ等であるネットワーク機器91乃至93に接続されており、ネットワーク機器の状態に関するデータ等をネットワーク機器91乃至93から受信する。アプリケーションサーバ1は、ネットワーク機器91乃至93から受信したデータを、分散KVS3に送信する。分散KVS3においては、例えばコンシステントハッシングに基づきデータを格納するサーバが決定される。データを格納するサーバは、そのサーバ内の記憶装置又は外部の記憶装置等に、データを格納する。
ユーザ端末7は、分散KVS3において管理されるデータへの処理を要求する処理要求をウェブサーバ5に送信する。ウェブサーバ5は、ユーザ端末7から処理要求を受信すると、アプリケーションサーバ1に送信する。アプリケーションサーバ1は、処理要求をウェブサーバ5から受信すると、分散KVS3に格納されている処理対象のデータに対する処理(例えば、書き込み又は読み出し)を実行する。アプリケーションサーバ1は、処理結果をウェブサーバ5に送信する。ウェブサーバ5は、アプリケーションサーバ1から処理結果を受信すると、ユーザ端末7に送信する。
なお、図2においてネットワーク機器の数は3であり、分散KVS3におけるサーバの数は5であるが、数に限定は無い。
アプリケーションサーバ1は、受信部11と、業務処理部13及び管理部14を含む業務管理部12と、接続処理部15と、第1管理データ格納部16と、第2管理データ格納部17と、接続管理部18とを含む。
受信部11は、ネットワーク機器の状態に関するデータ等をネットワーク機器91乃至93から受信し、業務管理部12に出力する。業務管理部12は、受信部11から受け取ったデータ及びウェブサーバ5から受信した処理要求を、接続処理部15に出力する。接続処理部15は、第1管理データ格納部16に格納されているデータ及び第2管理データ格納部17に格納されているデータを用いて、分散KVS3に接続する処理を行う。また、接続処理部15は、分散KVS3における処理対象のデータに対する処理を実行し、処理結果を業務管理部12に出力する。また、接続処理部15は、ネットワーク機器の状態に関するデータ等を分散KVS3に送信する。接続管理部18は、キー情報を分散KVS3から取得し、第1管理データ格納部16及び第2管理データ格納部17に格納する。また、接続管理部18は、接続処理部15からの要求に応じ、第1管理データ格納部16に格納されている接続先データを接続処理部15に出力する。
図3に、分散KVS3におけるサーバ3A乃至3Eが管理するデータの一例を示す。図3の例では、サーバ3A乃至3Eの各々は、キーと、そのキーに対応するデータとを管理する。図3に示したデータは、例えば、サーバ内の記憶装置又は外部の記憶装置等に格納される。
次に、図4乃至図13を用いて、図2に示したシステムの動作について説明する。まず、図4乃至図7を用いて、第1管理データ格納部16に格納されるデータ及び第2管理データ格納部17に格納されるデータを用意する処理について説明する。
アプリケーションサーバ1が、ネットワーク機器91乃至93のうちいずれかのネットワーク機器から受信したデータを分散KVS3に送信する。分散KVS3においては、コンシステントハッシングに基づき、データが特定のサーバに格納される。コンシステントハッシングはよく知られた技術であり、本実施の形態における主要な処理ではないので、詳細な説明を省略する。
アプリケーションサーバ1における接続管理部18は、分散KVS3におけるサーバ3A乃至3Eの各々から、キー情報を取得し(図4:ステップS1)、メインメモリ等の記憶装置に格納する。キー情報には、サーバの識別情報と、そのサーバが管理するデータのキーとが含まれる。
接続管理部18は、未処理の優先度のうち最も高い優先度を特定する(ステップS3)。ステップS3における優先度とは、接続の優先度のことであり、優先度が高いほど優先的に接続が行われる。本実施の形態においては、最も高い優先度は「マスター」であり、次に高い優先度は「スレーブ1」であり、その次に高い優先度は「スレーブ2」であり、その次に高い優先度は「スレーブ3」であり、・・・となる。
接続管理部18は、ステップS3において特定された優先度について、各キーにサーバを割り当てる(ステップS5)。また、接続管理部18は、ステップS5の処理結果を第1管理データ格納部16及び第2管理データ格納部17に格納する。ステップS5においては、ステップS1において各サーバから取得したキー情報を用いて割り当てを行う。どの優先度にどのサーバを割り当てるかについては、ランダムに決定してもよいし、サーバへのアクセスに要する時間等に基づき決定してもよい。
図5に、データのレプリカの数が2である場合において、第1管理データ格納部16に格納されるデータの一例を示す。図5の例では、キーと、優先度が「マスター」であるサーバの識別情報と、優先度が「マスター」であるサーバの識別情報と、優先度が「スレーブ1」であるサーバの識別情報と、優先度が「スレーブ2」であるサーバの識別情報とが格納される。
図6に、データのレプリカの数が3である場合において、第1管理データ格納部16に格納されるデータの一例を示す。図6の例では、キーと、優先度が「マスター」であるサーバの識別情報と、優先度が「マスター」であるサーバの識別情報と、優先度が「スレーブ1」であるサーバの識別情報と、優先度が「スレーブ2」であるサーバの識別情報と、優先度が「スレーブ3」であるサーバの識別情報とが格納される。
図7に、第2管理データ格納部17に格納されるデータの一例を示す。図7の例では、キーと、最初の接続先の(すなわち、優先度が最も高い)サーバの識別情報とが格納される。
図4の説明に戻り、接続管理部18は、未処理の優先度が有るか判断する(ステップS7)。未処理の優先度が有る場合(ステップS7:Yesルート)、次の優先度について処理するため、ステップS3の処理に戻る。未処理の優先度が無い場合(ステップS7:Noルート)、処理は終了する。
以上のような処理を実行すれば、接続処理部15が、第1管理データ格納部16に格納されるデータ及び第2管理データ格納部17に格納されるデータを用いて、本実施の形態における接続処理を行えるようになる。
次に、図8乃至図13を用いて、ユーザ端末7からの処理要求に応じてアプリケーションサーバ1が行う処理について説明する。
まず、アプリケーションサーバ1における業務管理部12は、ウェブサーバ5から、データに対する処理を要求する処理要求を受信する(図8:ステップS11)。業務管理部12における管理部14は、接続処理部15を呼び出す。
接続処理部15は、処理要求からキーを抽出し、抽出されたキーに対応するサーバの識別情報と優先度の情報とを含む接続先データを取得する(ステップS13)。具体的には、接続処理部15は、接続管理部18に接続先データを要求する。これに応じ、接続管理部18は、接続先データを第1管理データ格納部16から読み出し、接続処理部15に出力する。
なお、ステップS13において、接続管理部18は、優先度がマスターであるサーバが第2管理データ格納部17に登録されているサーバと一致しない場合、第2管理データ格納部17に格納されているデータに従い、読み出した接続先データを修正する。第2管理データ格納部17には、最初の接続先の変更が反映されているためである。
そして、接続処理部15は、接続処理を実行する(ステップS15)。接続処理については、図9乃至図12を用いて説明する。
まず、接続処理部15は、接続先データから最初の接続先のサーバを特定する(図9:ステップS31)。最初の接続先のサーバとは、優先度が最も高い(すなわち、マスターである)サーバである。
接続処理部15は、最初の接続先のサーバに接続を試みる(ステップS33)。接続処理部15は、接続が確立したか判断する(ステップS35)。接続が確立した場合(ステップS35:Yesルート)、元の処理に戻る。
接続が確立しない場合(ステップS35:Noルート)、接続処理部15は、次の接続先のサーバを特定する(ステップS37)。次の接続先のサーバとは、接続の確立に失敗したサーバの次に優先度が高いサーバである。
接続処理部15は、次の接続先のサーバに接続を試みる(ステップS39)。接続処理部15は、接続が確立したか判断する(ステップS41)。接続が確立した場合(ステップS41:Yesルート)、接続処理部15は、次回の最初の接続先を、確立された接続の接続先に変更する(ステップS47)。具体的には、接続処理部15は、次回の最初の接続先を確立された接続の接続先に変更することを接続管理部18に要求する。これに応じ、接続管理部18は、第2管理データ格納部17において、処理対象のデータのキーに対応するサーバの識別情報を、確立された接続の接続先のサーバの識別情報に変更する。そして、元の処理に戻る。
一方、接続が確立しない場合(ステップS41:Noルート)、接続処理部15は、接続先データにおいて、次の接続先のサーバが有るか判断する(ステップS43)。次の接続先が有る場合(ステップS43:Yesルート)、ステップS37の処理に戻る。次の接続先のサーバが無い場合(ステップS43:Noルート)、接続処理部15は、接続の失敗を示すデータを業務管理部12に出力する(ステップS45)。これに応じ、業務管理部12における管理部14は、接続の失敗を示すデータをウェブサーバ5に送信する。ウェブサーバ5は、接続の失敗を示すデータをユーザ端末7に送信する。これにより、ユーザ端末7のユーザは、接続に失敗したことを認識できるようになる。
以上のような処理を実行すれば、アプリケーションサーバ1は、処理対象のデータを管理するサーバに直接アクセスすることができるようになる。なお、上ではステップS13において一度に複数の接続先についての接続先データを取得しているが、接続が失敗する度に次の接続先についての接続先データを取得してもよい。
図10乃至図12を用いて、接続処理をより具体的に説明する。説明を簡単にするため、図10乃至図12の例では、分散KVS3におけるサーバの数は3であるとする。また、処理対象のデータはキー1に対応するデータであり、第1管理データ格納部16には図10乃至図12の右側に示したデータが格納されているとする。
図10は、通常時における接続を示す図である。図10の例では、優先度がマスターであるサーバはサーバAであり、第2管理データ格納部17には、サーバAが最初の接続先であることを示すデータが格納されているとする(図10においては、星印で示されている)。通常時においては、接続処理部15は、サーバAにアクセスし、処理対象のデータに対する処理を行う。サーバB及びサーバCも処理対象のデータを管理しているが、優先度がサーバAよりも低いため、接続処理部15からアクセスされない。
図11は、サーバAが停止した場合における接続を示す図である。図11の例では、優先度がマスターであるサーバはサーバAであり、優先度がスレーブ1であるサーバはサーバCである。サーバAが停止した場合には、接続処理部15は、次に優先度が高いサーバであるサーバCに対して接続を行う。また、次回も最初にサーバAにアクセスすることを防ぐため、接続管理部18は、第2管理データ格納部17に、サーバCが最初の接続先であることを示すデータを格納する(図11においては、星印で示されている)。
図12は、サーバAが停止した後に復旧した場合における接続を示す図である。図12の例では、優先度がマスターであるサーバはサーバAであり、優先度がスレーブ1であるサーバはサーバCである。サーバAが復旧した場合には、例えば管理者からの指示により、接続管理部18は、第2管理データ格納部17に格納されているデータを、最初の接続先をサーバAにするように更新する(図12においては、星印で示されている)。このようにすることで、接続処理部15は、サーバAに最初にアクセスするようになる。
図8の説明に戻り、接続処理部15は、ステップS15の接続処理によって接続が確立したか判断する(ステップS17)。接続が確立していない場合(ステップS17:Noルート)、ステップS21の処理に移行する。接続が確立した場合(ステップS17:Yesルート)、接続処理部15は、接続先のサーバが管理するデータに対する処理(例えば、書き込み又は読み出し)を実行する(ステップS19)。接続処理部15は、処理結果(例えば読み出しの場合には、接続先のサーバから取得したデータ)を業務管理部12に出力する。
業務管理部12における業務処理部13は、処理結果を用いて、処理要求に対する応答を生成する。管理部14は、業務処理部13により生成された応答をウェブサーバ5に送信する(ステップS21)。ウェブサーバ5は、応答を受信すると、ユーザ端末7に送信する。そして処理を終了する。
図13に、本実施の形態における処理のシーケンス図を示す。本シーケンス図においては、業務管理部12、接続処理部15及び接続管理部18の処理が示されている。また、本シーケンス図において、白の長方形の部分は、各処理部が処理を実行中であることを表している。なお、ここでは、接続処理部15は、上で説明したように複数の接続先についての接続先データを取得するのではなく、1の接続先についての接続先データを取得し、接続が失敗する度に次の接続先についての接続先データを取得するものとする。
業務管理部12は、ウェブサーバ5から処理要求を受信すると、接続処理部15を呼び出す。接続処理部15は、接続先データを接続管理部18に要求する。
接続管理部18は、第1管理データ格納部16から接続先データ(ここでは、優先度が最も高いサーバの識別情報)を読み出し、接続処理部15に出力する。
接続処理部15は、取得した接続先データに従い接続を試みるが、接続が失敗したとする。すると、接続処理部15は、次の接続先についての接続先データを接続管理部18に要求する。
接続管理部18は、第1管理データ格納部16から接続先データ(ここでは、次に優先度が高いサーバの識別情報)を読み出し、接続処理部15に出力する。
接続処理部15は、取得した接続先データに従い接続を試み、接続が成功したとする。すると、接続処理部15は、次回の最初の接続先を確立された接続の接続先に変更することを接続管理部18に要求する。
接続管理部18は、第2管理データ格納部17に格納されているサーバの識別情報を、確立された接続の接続先のサーバの識別情報に変更する。
接続処理部15は、接続が成功したので、処理対象のデータに対する処理を実行する。接続処理部15は、処理対象のデータに対する処理が終了すると、接続を終了し、処理結果を業務管理部12に出力する。業務管理部12は、処理結果を用いて応答を生成し、ウェブサーバ5に送信する。そして処理を終了する。
以上のような処理を実行すれば、アプリケーションサーバ1は処理対象のデータを管理するサーバに直接接続を行うようになるので、データを管理するサーバの間の通信量を減らすことができるようになる。また、分散KVS3におけるサーバ同士がデータを送信又は受信する処理をしなくてもよいので、処理負荷を減らすことができるようになる。
[実施の形態2]
第2の実施の形態においては、接続処理部15が、データに対する処理が書き込みの場合と読み出しの場合とで異なるサーバに接続を行うようにする。
第2の実施の形態においては、接続処理部15が、データに対する処理が書き込みの場合と読み出しの場合とで異なるサーバに接続を行うようにする。
第1管理データ格納部16には、書き込み用のデータと、読み出し用のデータとが格納される。図14に、書き込みの場合に用いるデータの一例を示す。図14の例では、キーと、優先度が「マスター」であるサーバの識別情報と、優先度が「スレーブ1」であるサーバの識別情報と、優先度が「スレーブ2」であるサーバの識別情報と、優先度が「スレーブ3」であるサーバの識別情報とが格納される。
図15に、読み出しの場合に用いるデータの一例を示す。図15の例では、キーと、優先度が「マスター」であるサーバの識別情報と、優先度が「スレーブ1」であるサーバの識別情報と、優先度が「スレーブ2」であるサーバの識別情報と、優先度が「スレーブ3」であるサーバの識別情報とが格納される。
第2の実施の形態においては、接続処理部15が、データに対する処理が書き込み及び読み出しのいずれであるかを処理要求から特定する。書き込みである場合、接続処理部15は、例えば図14に示したデータを用いて処理を行う。処理が読み出しである場合、接続処理部15は、例えば図15に示したデータを用いて処理を行う。
このように、書き込みの場合と読み出しの場合とで異なる優先度を使用することで、特定のサーバにアクセスが集中することを防止し、分散KVS3におけるサーバの処理性能が低下することを抑制できるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したアプリケーションサーバ1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、アプリケーションサーバ1に第2管理データ格納部17を設けなくてもよい。この場合、接続管理部18は、ステップS47において、例えば図6に示したデータを図16に示すようなデータに変更する。図16に示したデータは、図6に示したデータと比較して、キー1に対応するサーバの優先度が変更されている。このようにすれば、第2管理データ格納部17を有さなくても、接続の優先度を第1及び第2の実施の形態と同様に変更することができる。また、この例においては、元々優先度が「マスター」であったサーバの優先度を下げている。これにより、アクセスできないサーバに次回アクセスを試みてしまうことを抑制できる。なお、第2管理データ格納部17を設けない場合には、後に第1管理データ格納部16を元に戻すために、元々優先度が「マスター」であったサーバの識別情報を別途保存しておく。
なお、優先度がマスターであるサーバに障害が発生した場合には、優先度がスレーブであるサーバの中から新たにマスターとスレーブを定義し、例えば書き込みをマスターに割り当て、読み出しをスレーブに割り当ててもよい。このようにすれば、障害が発生した場合においても、アクセスが特定のサーバに集中することを抑制できる。
なお、上で述べたユーザ端末7、ウェブサーバ5、アプリケーションサーバ1及びサーバ3A乃至3Eは、コンピュータ装置であって、図17に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理装置は、分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置である。そして、本情報処理装置は、(A)キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部と、(B)複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバをデータ格納部から特定し、特定された当該サーバへの接続を行う接続処理部とを有する。
このようにすれば、情報処理装置は処理対象のデータを管理するサーバに直接接続を行うようになるので、データを管理するサーバの間の通信量を減らすことができるようになる。また、サーバは他のサーバとの間でデータを送信又は受信する処理をしなくてもよいので、処理負荷を減らすことができるようになる。
また、上で述べた対応関係を示すデータは、キーと当該キーに対応するデータを管理する複数のサーバとの対応関係を示すようにしてもよい。そして、上で述べた接続処理部が、(b1)処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、処理対象のデータのキーに対応する複数のサーバのうち第1のサーバ以外のサーバを特定し、特定された当該サーバへの接続を行ってもよい。このようにすれば、第1のサーバが例えば障害等により停止している場合であっても他のサーバとの接続を行えるので、データへの処理を確実に行うことができるようになる。
また、上で述べた対応関係を示すデータには、複数のサーバの各々への接続の優先度を示すデータがさらに含まれていてもよい。そして、上で述べた接続処理部は、(b2)接続の優先度に基づき複数のサーバへの接続を行ってもよい。このようにすれば、例えばデータの取得に要する時間が短いサーバを優先的に接続できるようになるので、効率的に接続を行えるようになる。
また、上で述べた接続処理部は、(b3)処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、第1のサーバの接続の優先度を下げるように、データ格納部に格納されている対応関係を示すデータを更新してもよい。このようにすれば、処理対象のデータに再度処理を行う場合に接続が失敗することを防げるようになる。
また、上で述べた対応関係を示すデータには、処理が書き込みの場合に用いる、複数のサーバの各々への接続の優先度である第1の優先度を示すデータと、処理が読み出しの場合に用いる、複数のサーバの各々への接続の優先度である第2の優先度を示すデータとがさらに含まれていてもよい。そして、上で述べた接続処理部は、(b4)処理が書き込みの場合には第1の優先度に基づき複数のサーバへの接続を行い、処理が読み出しの場合には第2の優先度に基づき複数のサーバへの接続を行ってもよい。このようにすれば、書き込みの場合と読み出しの場合とで異なるサーバに接続できるので、特定のサーバにアクセスが集中することを抑制できるようになる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置であって、
キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部と、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを前記データ格納部から特定し、特定された当該サーバへの接続を行う接続処理部と、
を有する情報処理装置。
分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置であって、
キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部と、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを前記データ格納部から特定し、特定された当該サーバへの接続を行う接続処理部と、
を有する情報処理装置。
(付記2)
前記対応関係を示すデータは、キーと当該キーに対応するデータを管理する複数のサーバとの対応関係を示し、
前記接続処理部が、
前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバ以外のサーバを特定し、特定された当該サーバへの接続を行う
ことを特徴とする付記1記載の情報処理装置。
前記対応関係を示すデータは、キーと当該キーに対応するデータを管理する複数のサーバとの対応関係を示し、
前記接続処理部が、
前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバ以外のサーバを特定し、特定された当該サーバへの接続を行う
ことを特徴とする付記1記載の情報処理装置。
(付記3)
前記対応関係を示すデータには、キーに対応するデータを管理する複数のサーバの各々への接続の優先度を示すデータがさらに含まれ、
前記接続処理部は、
前記接続の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行う
ことを特徴とする付記2記載の情報処理装置。
前記対応関係を示すデータには、キーに対応するデータを管理する複数のサーバの各々への接続の優先度を示すデータがさらに含まれ、
前記接続処理部は、
前記接続の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行う
ことを特徴とする付記2記載の情報処理装置。
(付記4)
前記接続処理部は、
前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、前記第1のサーバの接続の優先度を下げるように、前記データ格納部に格納されている前記対応関係を示すデータを更新する
ことを特徴とする付記3記載の情報処理装置。
前記接続処理部は、
前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、前記第1のサーバの接続の優先度を下げるように、前記データ格納部に格納されている前記対応関係を示すデータを更新する
ことを特徴とする付記3記載の情報処理装置。
(付記5)
前記対応関係を示すデータには、処理が書き込みの場合に用いる、前記キーに対応するデータを管理する複数のサーバの各々への接続の優先度である第1の優先度を示すデータと、処理が読み出しの場合に用いる、前記キーに対応するデータを管理する複数のサーバの各々への接続の優先度である第2の優先度を示すデータとがさらに含まれ、
前記接続処理部は、
処理が書き込みの場合には、前記第1の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行い、処理が読み出しの場合には、前記第2の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行う
ことを特徴とする付記3記載の情報処理装置。
前記対応関係を示すデータには、処理が書き込みの場合に用いる、前記キーに対応するデータを管理する複数のサーバの各々への接続の優先度である第1の優先度を示すデータと、処理が読み出しの場合に用いる、前記キーに対応するデータを管理する複数のサーバの各々への接続の優先度である第2の優先度を示すデータとがさらに含まれ、
前記接続処理部は、
処理が書き込みの場合には、前記第1の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行い、処理が読み出しの場合には、前記第2の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行う
ことを特徴とする付記3記載の情報処理装置。
(付記6)
分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置に実行させるためのプログラムであって、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部から特定し、
特定された前記サーバへの接続を行う
処理を実行させるためのプログラム。
分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置に実行させるためのプログラムであって、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部から特定し、
特定された前記サーバへの接続を行う
処理を実行させるためのプログラム。
(付記7)
分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置により実行される情報処理方法であって、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部から特定し、
特定された前記サーバへの接続を行う
処理を含む情報処理方法。
分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置により実行される情報処理方法であって、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部から特定し、
特定された前記サーバへの接続を行う
処理を含む情報処理方法。
1 アプリケーションサーバ 11 受信部
12 業務管理部 13 業務処理部
14 管理部 15 接続処理部
16 第1管理データ格納部 17 第2管理データ格納部
18 接続管理部
3 分散KVS 3A,3B,3C サーバ
5 ウェブサーバ 7 ユーザ端末
91,92,93 ネットワーク機器
12 業務管理部 13 業務処理部
14 管理部 15 接続処理部
16 第1管理データ格納部 17 第2管理データ格納部
18 接続管理部
3 分散KVS 3A,3B,3C サーバ
5 ウェブサーバ 7 ユーザ端末
91,92,93 ネットワーク機器
Claims (7)
- 分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置であって、
キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部と、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを前記データ格納部から特定し、特定された当該サーバへの接続を行う接続処理部と、
を有する情報処理装置。 - 前記対応関係を示すデータは、キーと当該キーに対応するデータを管理する複数のサーバとの対応関係を示し、
前記接続処理部が、
前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバ以外のサーバを特定し、特定された当該サーバへの接続を行う
ことを特徴とする請求項1記載の情報処理装置。 - 前記対応関係を示すデータには、キーに対応するデータを管理する複数のサーバの各々への接続の優先度を示すデータがさらに含まれ、
前記接続処理部は、
前記接続の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行う
ことを特徴とする請求項2記載の情報処理装置。 - 前記接続処理部は、
前記処理対象のデータのキーに対応する複数のサーバのうち第1のサーバへの接続が失敗した場合に、前記第1のサーバの接続の優先度を下げるように、前記データ格納部に格納されている前記対応関係を示すデータを更新する
ことを特徴とする請求項3記載の情報処理装置。 - 前記対応関係を示すデータには、処理が書き込みの場合に用いる、前記キーに対応するデータを管理する複数のサーバの各々への接続の優先度である第1の優先度を示すデータと、処理が読み出しの場合に用いる、前記キーに対応するデータを管理する複数のサーバの各々への接続の優先度である第2の優先度を示すデータとがさらに含まれ、
前記接続処理部は、
処理が書き込みの場合には、前記第1の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行い、処理が読み出しの場合には、前記第2の優先度に基づき、前記キーに対応するデータを管理する複数のサーバへの接続を行う
ことを特徴とする請求項3記載の情報処理装置。 - 分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置に実行させるためのプログラムであって、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部から特定し、
特定された前記サーバへの接続を行う
処理を実行させるためのプログラム。 - 分散キーバリューストアの機能を有する複数のサーバが管理するデータに対する処理を行う情報処理装置により実行される情報処理方法であって、
前記複数のサーバが管理するデータのうち処理対象のデータのキーに対応するサーバを、キーと当該キーに対応するデータを管理するサーバとの対応関係を示すデータを格納するデータ格納部から特定し、
特定された前記サーバへの接続を行う
処理を含む情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013064892A JP2014191478A (ja) | 2013-03-26 | 2013-03-26 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013064892A JP2014191478A (ja) | 2013-03-26 | 2013-03-26 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014191478A true JP2014191478A (ja) | 2014-10-06 |
Family
ID=51837702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013064892A Pending JP2014191478A (ja) | 2013-03-26 | 2013-03-26 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014191478A (ja) |
-
2013
- 2013-03-26 JP JP2013064892A patent/JP2014191478A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657061B1 (en) | Resource distribution using attributes of versioned hash rings | |
US9304815B1 (en) | Dynamic replica failure detection and healing | |
US9460185B2 (en) | Storage device selection for database partition replicas | |
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
US10938668B1 (en) | Safe deployment using versioned hash rings | |
JP2018088293A (ja) | 単一テナント及び複数テナント環境を提供するデータベースシステム | |
US10922303B1 (en) | Early detection of corrupt data partition exports | |
US9847907B2 (en) | Distributed caching cluster management | |
US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
US10462250B2 (en) | Distributed caching cluster client configuration | |
CN109684414B (zh) | 区块数据的同步方法、装置、设备及存储介质 | |
TW201220197A (en) | for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment | |
US20160330299A1 (en) | Data distribution method and system and data receiving apparatus | |
US8745342B2 (en) | Computer system for controlling backups using wide area network | |
US9529772B1 (en) | Distributed caching cluster configuration | |
CN106789249B (zh) | 热更新方法、客户端及服务器 | |
US10635604B2 (en) | Extending a cache of a storage system | |
US10262024B1 (en) | Providing consistent access to data objects transcending storage limitations in a non-relational data store | |
WO2021139431A1 (zh) | 微服务的数据同步方法、装置、电子设备及存储介质 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
US20170206027A1 (en) | Management system and management method of computer system | |
JP2018055481A (ja) | ログ監視装置、ログ監視方法及びログ監視プログラム | |
CN103019847A (zh) | 对虚拟机数据进行迁移的方法及系统 | |
KR102598619B1 (ko) | 데이터베이스 관리 서비스 제공 시스템 | |
JP7101427B1 (ja) | アクセス分散方法 |