JP6219202B2 - データ処理システム - Google Patents

データ処理システム Download PDF

Info

Publication number
JP6219202B2
JP6219202B2 JP2014048119A JP2014048119A JP6219202B2 JP 6219202 B2 JP6219202 B2 JP 6219202B2 JP 2014048119 A JP2014048119 A JP 2014048119A JP 2014048119 A JP2014048119 A JP 2014048119A JP 6219202 B2 JP6219202 B2 JP 6219202B2
Authority
JP
Japan
Prior art keywords
data
server
access frequency
access
data store
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014048119A
Other languages
English (en)
Other versions
JP2015172833A (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
Priority to JP2014048119A priority Critical patent/JP6219202B2/ja
Publication of JP2015172833A publication Critical patent/JP2015172833A/ja
Application granted granted Critical
Publication of JP6219202B2 publication Critical patent/JP6219202B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ処理システムに係り、特にアクセス要求に対する処理負荷の分散を図るデータ処理システムに関する。
多くのクライアントからの、アプリケーションサーバを介した、データベースサーバへのアクセス要求に、短時間で応答するために、複数のアプリケーションサーバを設け、クライアントからのアクセス要求を負荷分散装置(ロードバランサー)によって複数のアプリケーションサーバに振り分けるシステムがある。さらに、複数のアプリケーションサーバとデータベースサーバの間にキャッシュサーバ(プロキシ―サーバ)を設け、キャッシュサーバがアクセス要求に対して応答することにより、アクセス要求に対するデータベースサーバの負荷を軽減するシステムがある。
特許文献1に、DNSシステムを対象に、負荷分散装置が複数のキャッシュサーバに要求を振り分ける技術が開示されている。DNSシステムの場合、キャッシュサーバで要求にヒットしなければ、キャッシュサーバは、その要求に応えるために、DNS権威サーバにアクセスする必要がある。そこで、特許文献1では、要求に対するヒット率が高いキャッシュサーバに優先的に要求を振り分けている。
特開2013−242751号公報
一般に、上記したように、多くのクライアントからの、アプリケーションサーバを介した、データベースサーバへのアクセス要求に、短時間で応答するために、複数のアプリケーションサーバを設け、クライアントからのアクセス要求を負荷分散装置(ロードバランサー)によって複数のアプリケーションサーバに振り分け、それらのアプリケーションサーバがデータベースサーバへアクセスする。このようなシステムでは、複数のアプリケーションサーバからデータベースサーバへのアクセスがボトルネックになる。
そこで、複数のアプリケーションサーバとデータベースサーバの間に、アプリケーションサーバからのアクセスに応じてデータベースのデータを格納するキャッシュサーバを設け、データへのアクセスを分散させるシステムがある。アプリケーションサーバから見ると、いずれかのキャッシュサーバにアクセス要求に対応するデータが存在するか、存在するとしてどのキャッシュサーバにアクセス要求に対応するデータが存在するかの情報がないので、ヒット率の問題がアクセス要求に対する応答性能の改善の妨げになる。そこで、アクセス要求に対して高い応答性能のデータ処理システムが望まれる。
開示するデータ処理システムは、クライアントからのアクセスに対応するデータを格納する複数のデータストアサーバ、データベースの各データを読み出し、クライアントからのアクセスに対応するデータとしていずれかのデータストアサーバに格納されるように、複数のデータストアサーバに分散するデータ分散サーバ、および、分散されたデータを格納するデータストアサーバを特定するデータ配置テーブルを有し、クライアントからのアクセスに応答して、データストアサーバを特定するデータ配置テーブルを参照してデータにアクセスするアプリケーションサーバを有する。
開示するデータ処理システムによれば、アクセス要求に対して高い応答性能が得られる。
データ処理システムの概要図である。 データ処理システムの構成図である。 データ配置テーブルの一例である。 アクセス頻度テーブルの一例である。 アクセス頻度集計テーブルの一例である。 データ再配置部の処理フローチャートである。 アクセス頻度集計テーブルの変化を説明する一例である。 アクセス頻度集計テーブルの変化を説明する他の例である。 変形例において、アクセス頻度集計テーブルの変化を説明する一例である。
図1は、データ処理システムの概要図である。データ処理システムは、クライアント60からのアクセスを、複数のアプリケーションサーバ(APサーバa、APサーバb、APサーバc、以下APサーバ)10に分散する(振り分ける)負荷分散装置70を有する。負荷分散装置70は、クライアント60からのアクセスを、たとえばラウンドロビンによりAPサーバ10に分散させる。APサーバ10は、アクセスに対応するデータを格納するデータストアサーバ(DSサーバ1、DSサーバ2、DSサーバ3、以下DSサーバ)20にアクセスし、アクセス要求に対応するデータに対する所定の処理(参照、更新、格納、削除)を実行する。
データ分散サーバ(以下、DDサーバ)30は、データベース40に格納されているデータを読み出し、読み出したデータをいずれかのDSサーバ20に格納する。DDサーバ30は、DSサーバ20に格納されたデータがAPサーバ10から変更(更新、格納、削除のいずれか)された場合、変更されたデータに関してAPサーバ10とデータベース40との間でデータ同期を図る。データ同期に関しては既存の技術(たとえば、キャッシュデータの変更部分を、データベース内の該当部分に反映させる技術)を用いるものであり、説明を省略する。データベース40に格納され、クライアント60からのアクセスの対象となり得るデータは、いずれかのDSサーバ20に格納され、複数のDSサーバ20に同じデータが格納されないように、DDサーバ30によってデータの配置が制御される。以上のように、DDサーバ30は、理解しやすくするためにデータ分散サーバと呼ぶが、前述および後述する処理を実行するデータベースサーバと呼んでもよい。
図1に示すデータ処理システムでは、図中太線矢印で示すように、クライアント60からのアクセスを負荷分散装置70がAPサーバ10に分散させても、結果としてアクセスが特定の(1台とは限らない)DSサーバ20に集中する状況が発生する。一例として、データ処理システムがコンテンツ配信システムであり、人気のあるコンテンツが特定のDSサーバ20に格納されている場合である。他の例として、データ処理システムが証券取引システムであり、注目を集めている銘柄の証券データが特定のDSサーバ20に格納されている場合である。データ処理システムは、DSサーバ20へのアクセスの集中を検知して、アクセスの集中度合いを少なくするように動作する。
図2は、データ処理システムの構成図である。ただし、図1の概要図から、クライアント60および負荷分散装置70の図示を省略している。省略したクライアント60および負荷分散装置70は、概要図を参照して説明したように構成され、動作する。
データ処理システムは、APサーバ10とDSサーバ20がネットワーク50を介して接続され、DSサーバ20とDDサーバ30がネットワーク52を介して接続される。また、APサーバ10、DSサーバ20およびDDサーバ30は、制御用のネットワーク55を介して接続される。
APサーバ10は、データ配置テーブル100を参照して、クライアント60からの負荷分散装置70を介したアクセス要求に対応するデータがいずれのDSサーバ20にあるかを判別して、ネットワーク50を介して、判別したDSサーバ20にアクセスする。ただし、アクセス要求に対応する処理が、新規のデータの格納の場合(データ配置テーブル100に、データを格納するDSサーバ20がない場合)、格納しているデータ量が最も少ないDSサーバ20にアクセスし、新規のデータを格納する。DSサーバ20に格納された新規のデータは、前述したように、DDサーバ30によってデータ同期される。すなわち、DSサーバ20に格納された新規のデータは、DDサーバ30によってデータベース40に格納される。
DSサーバ20は、アクセス監視部200と、アクセス監視部200による監視結果を格納するアクセス頻度テーブル250を有する。アクセス監視部200は、APサーバ10からのアクセスを監視し、所定時間(たとえば5分)内のアクセス数を、格納しているデータ毎に集計し、アクセス頻度とする。アクセス頻度は、単位時間(たとえば1分)当たりに正規化したアクセス数としてもよい。アクセス頻度テーブル250の詳細については後述するが、アクセス頻度テーブル250は、アクセス頻度の監視結果としてネットワーク55を介してDDサーバ30へ送信される。
なお、DSサーバ20は、APサーバ10から新規のデータが格納された場合、または更新若しくは削除された場合のように、アクセス頻度の監視対象の変更または監視対象のデータのデータ量の変更に応じて、アクセス頻度テーブル250を変更する。
DDサーバ30は、データ再配置部300、DSサーバ20から受信したアクセス頻度テーブル250を纏めたアクセス頻度集計テーブル350、およびデータ再配置部300による、DSサーバ20へのデータ再配置結果を格納するデータ配置テーブル370を有する。DDサーバ30は、所定時間(たとえば5分)毎にDSサーバ20からネットワーク55を介してアクセス頻度テーブル250を受信する。アクセス頻度テーブル250は、DDサーバ30からのDSサーバ20への送信要求に応じてDSサーバ20から送信されてもよいし、所定時間毎にDSサーバ20から送信されるようにしてもよい。ここでは、後述するように、前者によるものとする。
DDサーバ30のデータ再配置部300は、受信したアクセス頻度テーブル250を纏めたアクセス頻度集計テーブル350を作成し、作成したアクセス頻度集計テーブル350を参照して新たなデータ配置テーブル370を作成する。各DSサーバ20へのAPサーバ10からのアクセス頻度に所定以上の集中がなければ(アクセス頻度にバラツキがなければ)、データ再配置部300は新たなデータ配置テーブル370を作成しない。
データ再配置部300は、新たなデータ配置テーブル370を作成した場合、詳細は後述するが、現状のデータ配置テーブル370と比較し、DSサーバ20に新たに配置するデータをデータベース40から読み出してDSサーバ20にネットワーク52を介して配置し、新たなデータ配置テーブル370を、APサーバ10にネットワーク55を介して送信すると共に、データ配置テーブル100を新たなデータ配置テーブル370の内容に置き換えるように指示する。また、データ再配置部300は、新たなデータ配置テーブル370を、DSサーバ20にネットワーク55を介して送信すると共に、アクセス頻度テーブル250の新たなデータ配置に係る部分を新たなデータ配置テーブル370の内容に基づいて書き換えるように指示する。この後、DSサーバ20に格納しているデータで、現状の(これまで使用していた)データ配置テーブル370にあり、新たなデータ配置テーブル370にないデータの削除を、ネットワーク55を介してDSサーバ20に指示する。このように、DSサーバ20の間で、データを移動するのではなく、データ再配置部300によって、データの見掛け上の移動を制御する。これにより、新たなデータがDSサーバ20に格納され、APサーバ10が参照するデータ配置テーブル370が更新され、その後に削除すべきデータがDSサーバ20から削除されるので、APサーバ10によるDSサーバ20へのアクセスに対して、DSサーバ20にデータが存在しないという状況の発生を避けることができる。
図3は、データ配置テーブル370の一例である。図3は、各DSサーバ20が有するデータ量がほぼ同一(図3では、155MB〜160MB)になるように配置した例である。APサーバ10が有するデータ配置テーブル100は、DDサーバ30から送信されたデータ配置テーブル370と同じであるので、データ配置テーブル370を代表させて説明する。また、DDサーバ30のデータ再配置部300は、現状と新たなデータ配置テーブル370の2面のテーブルを用いるが、前述のようにデータ配置の比較のためであり、現状のデータ配置テーブル370を一時的に退避しておくことで比較処理は可能であるので、ここでは一つのデータ配置テーブル370として説明する。
データ配置テーブル370は、No371、DSサーバ名372、データ名373およびデータ量374の項目を有する。No371は、図を見易くするためであり、項目として無くてもよい。DSサーバ名372は、データベース40のデータを格納するDSサーバ20の名称であり、DSサーバ20を識別できれば、名称でなくてもよい。データ名373は、DSサーバ20に格納しているデータの名称である。データ名373も、データを識別できれば、データまでのパス名などでもよく、名称でなくてもよい。データ名373は、データの、DSサーバ20の格納アドレス、データベース40の格納アドレス、クライアント60にデータアクセスのために開放しているデータ名称などに変換される必要があるが、処理の必要に応じて変換表を用意すればよい。データ量374は、データの容量である。
データ量374を次に理由により用いる。クライアント60から見ると、たとえば、データへのアクセス要求の一例としてダウンロード要求を想定すると、ダウンロード要求の送信からダウンロード完了までの時間が応答時間となる。この応答時間には、ダウンロードに要する時間が含まれ、ダウンロードに要する時間は、ダウンロードするデータの容量に依存する(ネットワークの構成、性能、込み具合などにより必ずしも比例しないが、一般にデータ容量が大きければ、クライアント60がダウンロードに要する時間は長くなる。)。そこで、後述するように、データ再配置部300は、アクセス頻度を対象にした場合と、本実施形態の変形例として、アクセス頻度×データ容量を対象とした場合に関して、データ配置テーブル370を作成する。以下のデータ配置テーブル370などのテーブルの説明においては、変形例としてのアクセス頻度×データ容量を対象とした場合も併せて説明する。換言すると、アクセス頻度を対象にした場合には、データ容量に関して関知しなくてよい。データ容量に関して、データの変更(更新、格納、削除のいずれか)の場合は、データ容量(更新データ容量、新規に格納するデータ容量、削除するデータを識別する識別データ容量)がクライアント60の処理内容に依存するので、これらの場合にはデータ再配置部300は、データ容量に関知せずにデータ配置テーブル370を作成する。
図3のデータ配置テーブル370の内容の一例を説明する。図3は、図1に対応し、DSサーバ1にデータ1〜4、DSサーバ2にデータ5〜8、DSサーバ3にデータ9〜11を格納していることを示す。データ容量374に関しては、たとえば、データ1が30MB、データ2が50MB、データ3が60MB、データ4が20MBを示している。
データ配置テーブル370として説明したが、データ配置テーブル100も同じ構成であり、データベース40にある、クライアント60にアクセスを許容するすべてのデータがDSサーバ20のいずれかにあることを示している。したがって、APサーバ10は、データ配置テーブル100を参照することにより、アクセスするデータを格納するDSサーバ20を認識できる。これは、DSサーバ20をキャッシュサーバに例えると、必ずアクセス対象のデータがヒットすることを意味しているので、キャッシュサーバでヒットしない場合のデータベース40からの読み出し処理に要する時間を費やさないで済むことになる。これにより、キャッシュサーバを用いた場合のヒット率の問題を解決できる。
図4は、アクセス頻度テーブル250の一例である。図4の(A)、(B)および(C)は、DSサーバ1、DSサーバ2およびDSサーバ3の各々のアクセス頻度テーブル250である。アクセス頻度テーブル250についても、後述する変形例に係るデータ量に関しても併せて説明する。
図4の(A)に示す、DSサーバ1のアクセス頻度テーブル250を代表させて説明する。アクセス頻度テーブル250は、No251、データ名252、アクセス頻度253、データ量254およびアクセス頻度×データ量255の項目を有する。No251は、図を見易くするためであり、項目として無くてもよい。データ名252は、DSサーバ1に格納しているデータの名称である。データ量254は、データの容量である。アクセス頻度×データ量255は、アクセス頻度253とデータ量254との乗算結果であり、所定時間内にアクセスされた総データ量を表す。アクセス頻度×データ量255は、各DSサーバ20が求めずにDDサーバ30が求めてもよいが、DSサーバ20の台数が多い場合のDDサーバ30の処理負荷を軽減するために、各DSサーバ20が求める方が望ましい。
データ名252およびデータ量254は、DDサーバ30から送信されたデータ配置テーブル370を参照して、DSサーバ20が格納するデータに関してDSサーバ20が設定する。アクセス頻度253は、格納しているデータに関するアクセスがある毎にカウントアップする。アクセス頻度テーブル250は、所定時間毎にDDサーバ30に送信され、送信毎にアクセス頻度253はリセットされる。データ量254は、データ配置テーブル370の受信に応じて設定されるが、アクセスの種別によりデータ量が変動する場合があるので、その変動に応じて変更される。アクセスの種別が参照の場合は、データ量254は変動しない。アクセスの種別が更新の場合、一般にデータの値の書き換えであるのでデータ量254は変動しないが、たとえばコンテンツデータのバージョンアップのようにデータ量254が変動する場合がある。このような場合は、変動した結果のデータ量254とする。アクセスの種別が削除の場合、データ量254を0とする(削除対象のDSサーバ20に格納しているデータの実体は、DSサーバ20が削除してもよいし、DDサーバ30による、データ量254を参照したデータ同期により削除されてもよい)。
以上のように、データ量254の変動に伴って、アクセス頻度×データ量255に誤差を伴うことがある。たとえば、所定時間の前半と後半(たとえば2分30秒ずつ)のアクセス回数がいずれも10回とする。11回目(後半の最初)のアクセスでデータ量254が、前半の50MBから後半の60MBに変動したとする。したがって、アクセス頻度×データ量255は、正確には、10×50MB+10×60MB=1100MBであるが、アクセス頻度テーブル250をDDサーバ30に送信する段階では20×60MB=1200MBであり、100MBの誤差を生じている。しかしながら、今後(アクセス頻度テーブル250をDDサーバ30に送信した次の所定時間)のアクセスは、アクセス頻度テーブル250をDDサーバ30に送信した段階の容量のデータに対してであり、かつ変形例としてデータ配置の目安にアクセス頻度×データ量255を用いるので、発生する誤差を無視する。
図5は、アクセス頻度集計テーブル350の一例である。アクセス頻度集計テーブル350についても、後述する変形例に係るデータ量に関しても併せて説明する。アクセス頻度集計テーブル350は、所定時間毎にDDサーバ30が、DSサーバ20から収集したアクセス頻度テーブル250の内容を集計し、統合したテーブルである。アクセス頻度集計テーブル350は、No351、DSサーバ名352、データ名353、アクセス頻度354、データ量355、優先度(アクセス頻度×データ量)356、各DSサーバ20のアクセス頻度357、各DSサーバ20のアクセス頻度の標準偏差358、各DSサーバ20の優先度(アクセス頻度×データ量)359及び各DSサーバ20の優先度359の標準偏差360の項目を有する。No351は、図を見易くするためであり、項目として無くてもよい。DSサーバ名352は、アクセス頻度テーブル250を収集したDSサーバ20の名称である。データ名353、アクセス頻度354、データ量355および優先度356は、DSサーバ名352に対応したアクセス頻度テーブル250のデータ名252、アクセス頻度253、データ量254およびアクセス頻度×データ量255である。アクセス頻度×データ量を優先度と言い換えていることに格別な意味はない。アクセス頻度354、データ量355および優先度356の※欄は、データ処理システムを構成するDSサーバ20(DSサーバ1、DSサーバ2、DSサーバ3)に関する合計値を示す。アクセス頻度357、アクセス頻度の標準偏差358、優先度359および優先度359の標準偏差360の※欄については後述する。
アクセス頻度357は、各DSサーバ20のアクセス頻度(各データへのアクセス頻度の合計値)であり、その※欄は、各DSサーバ20のアクセス頻度の平均である。これは、各DSサーバ20のアクセス頻度のバラツキ又は偏差を見るためである。図5の例では、DSサーバ1に関して、アクセス頻度357は、20+15+60+10=105、同様に、DSサーバ2に関して、アクセス頻度357は60、DSサーバ3に関して、アクセス頻度357は15である。したがって、アクセス頻度357の平均(※欄)は、(105+60+15)/3=60である。アクセス頻度の標準偏差358は、データ処理システムを構成するDSサーバ20へのアクセス頻度357の標準偏差であり、その※欄に示す。具体的には、sqrt[{(105−60)2+(60−60)2+(15−60)2}/3] ≒36.7である。ただし、sqrtは平方根を表す。
優先度359および優先度の標準偏差360は、DSサーバ名352に対応した、それぞれ優先度356の合計および優先度359の標準偏差(※欄)であり、優先度359の※欄は、データ処理システムを構成するDSサーバ20全体としての平均である。アクセス頻度357、アクセス頻度の標準偏差358、優先度359および優先度359の標準偏差360は、DDサーバ30のデータ再配置部300によって求められる。
DSサーバ20のアクセス監視部200は、すでに説明したように、DDサーバ30から送信されたデータ配置テーブル370を参照した、DSサーバ20が格納するデータに関するアクセス頻度テーブル250の設定、DSサーバ20が格納しているデータに関するアクセス要求がある毎のアクセス頻度253のカウントアップ、アクセス要求の種別によりデータ量が変動した場合のデータ量254の変動、並びに、所定時間間隔毎のアクセス頻度テーブル250のDDサーバ30への送信およびアクセス頻度253のリセットの処理を実行するもので、フローチャートを用いた説明を省略する。
図6は、データ再配置部300の処理フローチャートである。データ再配置部300は、所定時間毎にアクセス頻度テーブル250を収集するために、所定時間の周期タイマによって起動される。データ再配置部300は、DSサーバ20からアクセス頻度テーブル250を収集し、アクセス頻度集計テーブル350に格納する(S301)。アクセス頻度テーブル250の内容のアクセス頻度集計テーブル350への格納については、前述したとおりである。アクセス頻度テーブル250の収集は、前述のように所定時間毎に実行するが、DDサーバ30のデータ再配置部300からの要求に応じてDSサーバ20がアクセス頻度テーブル250を送信する。DSサーバ20が、自らのタイマを用いて所定時間毎にアクセス頻度テーブル250を送信すると、DSサーバ20ごとの所定時間を計測するタイマ精度が同じであったとしても、所定時間を起算する時刻が必ずしも一致しないので、あるDSサーバ20による送信時刻と他のDSサーバ20による送信時刻との間に最大で所定時間の1/2の時間差を生じる可能性がある。そこで、DSサーバ20が、DDサーバ30からの要求をトリガーにして、アクセス頻度テーブル250を送信する。このような処理を実行しても、DSサーバ20の処理時間差などにより送信時刻の時間差が生じるが、時間差は所定時間に比べて無視できる時間であり、所定時間の制御をDDサーバ30に一括できるという長所がある。
データ再配置部300は、アクセス頻度集計テーブル350のDSサーバ20のアクセス頻度357およびその平均、アクセス頻度の標準偏差358、優先度359及び優先度359の標準偏差360を求める(S302)。これらの求め方については、図5を用いて説明したとおりである。S301及びS302の処理により、図5に例示したアクセス頻度集計テーブル350が作成される。
データ再配置部300は、アクセス頻度357のバラツキが所定以上かを判定し、所定未満の場合は処理を終了する(S303)。アクセス頻度357のバラツキを、(アクセス頻度357の平均−標準偏差358)以下又は(アクセス頻度357の平均+標準偏差358)以上のアクセス頻度357を有するDSサーバ20の有無で判定する。換言すると、各DSサーバ20のアクセス頻度357が、(アクセス頻度357の平均−標準偏差358)<アクセス頻度357<(アクセス頻度357の平均+標準偏差358)を満足するならば、バラツキはないと判定する。この判定基準は、データ処理システムに求められる特性によって定めればよい。たとえば、よりバラツキが少ないようにするために、前述の標準偏差358の代わりに、標準偏差358の1/2や1/3を用いる。
アクセス頻度357のバラツキを抑制するためには、アクセス頻度357が高い(値が大きい)DSサーバ20からアクセス頻度357が低い(値が小さい)DSサーバ20へデータを移動すればよい。データの移動は、見掛け上の移動であり、実際には後述の手順で実行する。
そこで、データ再配置部300は、データの移動元のDSサーバ20を特定する(S304)。アクセス頻度357が、(アクセス頻度357の平均+標準偏差358)以上のDSサーバ20を移動元として特定する。図5の例では、(アクセス頻度357の平均+標準偏差358)=60+36.7=96.7であるので、アクセス頻度357が105のDSサーバ1が、移動元として特定される。
データ再配置部300は、データの移動先のDSサーバ20を特定する(S305)。たとえば、アクセス頻度357が、(アクセス頻度357の平均−標準偏差358)以下のDSサーバ20を移動先として特定する。図5の例では、(アクセス頻度357の平均−標準偏差358)=60−36.7=23.3であるので、アクセス頻度357が15のDSサーバ3が、移動先として特定される。
S304及びS305の処理に伴い、移動元及び移動先の少なくとも一方のDSサーバ20として複数が特定されることがある。特定された移動元DSサーバ20が複数の場合、アクセス頻度357が最大のDSサーバ20を選択する。特定された移動先DSサーバ20が複数の場合、アクセス頻度357が最小のDSサーバ20を選択する。
データ再配置部300は、移動元のDSサーバ20のデータの中から移動対象データを特定する(S306)。ここでは、移動元のDSサーバ20のデータの中で、2番目にアクセス頻度が高い(値が大きい)データを移動対象データとして特定する。アクセス頻度が低い(値が小さい)データを移動対象データとして特定しても、アクセス頻度のバラツキ(標準偏差358)がデータ処理システム全体として改善されない(改善度合いが少ない)可能性が高いからである。また、アクセス頻度が最も高いデータを移動対象データとして特定すると、移動元のDSサーバ20のアクセス頻度が低下する一方、移動先のDSサーバ20のアクセス頻度が上昇し、極端には、次の移動対象データの特定時には、移動したデータを戻す、いわゆる振動現象が生じる可能性があるからである。そこで、アクセス頻度が最も高いデータとアクセス頻度が2番目に高いデータを異なるDSサーバ20に配置することにより、アクセス頻度のバラツキを少なくする。図5のアクセス頻度集計テーブル350の例では、移動元として特定したDSサーバ1のデータ1が移動対象データとして特定される。
データ再配置部300は、移動対象データを移動したものとして、アクセス頻度集計テーブル350を作成する(S307)。このとき、S301及びS302で作成したアクセス頻度集計テーブル350をDDサーバ30のメモリの空き領域に退避しておく。新たに作成したアクセス頻度集計テーブル350を参照して、アクセス頻度357のバラツキを判定し、バラツキが所定以上の場合はS304に戻る(S308)。この判定は、S303と同様である。なお、S308の判定において、アクセス頻度357が最も高いDSサーバ20が有するデータが一つの場合は、S304に戻らない。アクセス頻度357のバラツキが所定以上であっても、移動対象とする2番目のデータが存在しないからである。
S307及びS308の具体例を説明する。図5のアクセス頻度集計テーブル350から、DSサーバ1のデータ1をDSサーバ3に移動した場合のアクセス頻度集計テーブル350を図7に示す。図7と図5とのアクセス頻度の標準偏差358を比較すると、36.7から20.4にバラツキが改善されている。しかしながら、DSサーバ1のアクセス頻度357は85であり、(アクセス頻度357の平均+標準偏差358)=60+20.4=80.4以上であるので、この場合はさらにデータを移動するためにS304に戻る。図7のアクセス頻度集計テーブル350に関して、S304〜S308の処理を実行すると、図示を省略するが、データ2をDSサーバ1からDSサーバ3へ移動させ、アクセス頻度の標準偏差358が8.1のアクセス頻度集計テーブル350が得られる。このときのアクセス頻度357は、DSサーバ1が70、DSサーバ2が60、DSサーバ3が50であり、相変わらずアクセス頻度357のバラツキは標準偏差358の8.1を超えているので、再度、S304〜S308の処理を実行し、データ4をDSサーバ1からDSサーバ3へ移動させ、アクセス頻度集計テーブル350を作成する。作成したアクセス頻度集計テーブル350を図8に示す。図8のアクセス頻度集計テーブル350に示すように、各DSサーバ20のアクセス頻度357が60に平均化され、アクセス頻度の標準偏差358が0となり、アクセス頻度357のバラツキが無くなる。
データ再配置部300は、移動対象データをデータベース40から読み出し、移動先のDSサーバに格納する(S309)。移動対象データは、最新のアクセス頻度集計テーブル350(図8)と退避したアクセス頻度集計テーブル350(図5)を比較することにより判別する。たとえば、図8と図5のアクセス頻度集計テーブル350を比較すると、データ1、データ2及びデータ4が移動対象データであり、これらのデータをデータベース40から読み出し、ネットワーク52を介して、移動先のDSサーバ3に格納する。
データ再配置部300は、データ配置テーブル370を作成し、ネットワーク55を介してAPサーバ10及びDSサーバ20に送信する(S310)。データ再配置部300は、最新のアクセス頻度集計テーブル350(図8)を参照し、No351、DSサーバ名352、データ名353及びデータ量355を、データ配置テーブル370の、No371、DSサーバ名372、データ名373及びデータ量374に格納することにより、データ配置テーブル370を作成する。データ再配置部300によって送信されたデータ配置テーブル370は、APサーバ10においては、データ配置テーブル100としてそのまま用いられ、DSサーバ20においては、自らのDSサーバ20に関するNo351、データ名353及びデータ量355が、アクセス頻度テーブル250のNo251、データ名252及びデータ量254として用いられる。
データ再配置部300は、前述の見掛け上のデータの移動を終了するために、移動対象データを移動元のDSサーバから20削除する(S311)。
以上のデータ処理システムによれば、ヒット率の問題が発生しないDSサーバ20にデータを格納しておくので、アクセス要求に対して高い応答性能を得ることができる。さらに、各DSサーバ20に格納されているデータを移動することにより、各DSサーバ20のアクセス頻度のバラツキを少なくできる。さらに、いずれのAPサーバ10も、データ配置テーブル100を参照することにより、ヒット率100%でアクセス要求に対してDSサーバ20のデータにアクセスできるので、負荷分散装置70の負荷分散も、たとえラウンドロビンであっても、高い効率を示すことになる。なお、DDサーバ30に配置したデータ再配置部300、アクセス頻度集計テーブル350及びデータ配置テーブル370は、DSサーバ20に配置してもよい。
次に、データ処理システムの変形例を説明する。前述の実施形態がDSサーバ20のアクセス頻度のバラツキを少なくするためにデータを移動したのに対して、変形例は、DSサーバ20の優先度(アクセス頻度×データ量)のバラツキを少なくするためにデータを移動する。優先度(アクセス頻度×データ量)のバラツキを少なくすることが、クライアント60から見た応答時間の観点から必要であることを既に説明した。
変形例は、データ再配置部300の処理が異なり、データ再配置部300は、アクセス頻度集計テーブル350のアクセス頻度357及びアクセス頻度の標準偏差358に代えて、優先度359及び優先度の標準偏差360を用いる。前述の実施形態のデータ再配置部300の処理では、説明の都合上、実際には不要な優先度359及び優先度359の標準偏差360をS302で求めた。
データ再配置部300のS303以降の処理は、前述のアクセス頻度357及びアクセス頻度の標準偏差358を、優先度359及び優先度359の標準偏差360に読み替えることにより理解される。このようにして図5のアクセス頻度集計テーブル350から、作成される新たなアクセス頻度集計テーブル350を図9に示す。図9のアクセス頻度集計テーブル350は、図5のアクセス頻度集計テーブル350の優先度359が高いDSサーバ1から、優先度が2番目のデータ2をDSサーバ3に移動させたものである。さらに、アクセス頻度集計テーブル350を再作成してゆくと、前述の実施形態と同様に、図8のアクセス頻度集計テーブル350に辿りつき、これに基づいてデータ配置テーブル370が作成される。ただし、図8のアクセス頻度集計テーブル350から明らかなように、優先度359の平均+標準偏差360=2717+632=3349を、DSサーバ1の優先度359(3600)は超えている。図8のアクセス頻度集計テーブル350をデータ配置テーブル370の基にするのは、S308の処理で説明したように、もはやDSサーバ1に格納されるデータが一つであるからである。
以上の変形例によれば、アクセス要求に対するデータ量を考慮に入れているので、クライアント60から見た応答時間を改善できる。
10:アプリケーションサーバ(APサーバ)、20:データストアサーバ(DSサーバ)、30:データ分散サーバ(DDサーバ)、40:データベース、50、52、55:ネットワーク、60:クライアント、70:負荷分散装置、100:データ配置テーブル、200:アクセス監視部、250:アクセス頻度テーブル、300:データ再配置部、350:アクセス頻度集計テーブル、370:データ配置テーブル。

Claims (4)

  1. クライアントからのアクセスに対応するデータを格納する複数のデータストアサーバ、データベースの各データを読み出し、前記クライアントからのアクセスに対応する前記データとしていずれかの前記データストアサーバに格納されるように、複数の前記データストアサーバに分散するデータ分散サーバ、および、分散された前記データを格納する前記データストアサーバを特定するデータ配置テーブルを有し、前記クライアントからのアクセスに応答して、前記データストアサーバを特定する前記データ配置テーブルを参照して、前記データにアクセスするアプリケーションサーバを有し、
    前記データストアサーバは、
    前記データストアサーバへの前記アプリケーションサーバからのアクセス頻度を監視し、監視した前記アクセス頻度をアクセス頻度テーブルとして前記データ分散サーバへ送信し、
    前記データ分散サーバは、
    データ再配置部と、
    前記データストアサーバから受信した前記アクセス頻度テーブルを集計したアクセス頻度集計テーブルと、
    前記データ再配置部による、前記データストアサーバへのデータの再配置の結果を格納するデータ配置テーブルと、を有し、
    前記データ再配置部は、前記アクセス頻度集計テーブルを作成し、作成した前記アクセス頻度集計テーブルを参照して新たな前記データ配置テーブルを作成して現状の前記データ配置テーブルと比較し、前記データストアサーバに新たに配置するデータを前記データベースから読み出して前記データストアサーバに配置し、
    新たな前記データ配置テーブルを、前記アプリケーションサーバに送信すると共に、前記データ配置テーブルを新たな前記データ配置テーブルの内容に置き換えることを特徴とするデータ処理システム。
  2. 前記データ分散サーバは、複数の前記データストアサーバから受信した前記アクセス頻度テーブルを集計し、複数の前記データストアサーバの前記アクセス頻度に所定以上のバラツキがあるとき、前記アクセス頻度の高い前記データストアサーバから前記アクセス頻度の低い前記データストアサーバに、前記データを移動することを特徴とする請求項1記載のデータ処理システム。
  3. 前記データストアサーバは、該データストアサーバが格納している前記データに対応して前記アプリケーションサーバからの前記アクセス頻度を監視し、前記データ分散サーバは、前記アクセス頻度の高い前記データストアサーバの、前記データに対応した前記アクセス頻度が2番目の前記データを前記アクセス頻度の低い前記データストアサーバに移動することを特徴とする請求項2記載のデータ処理システム。
  4. 前記データストアサーバは、該データストアサーバが格納している前記データに対応して前記アプリケーションサーバからの前記アクセス頻度を監視し、前記アクセス頻度と前記データのデータ量を乗じた優先度を前記アクセス頻度テーブルに含み、前記データ分散サーバは、前記優先度の高い前記データストアサーバの、前記優先度が2番目の前記データを前記優先度の低い前記データストアサーバに移動することを特徴とする請求項2記載のデータ処理システム。
JP2014048119A 2014-03-11 2014-03-11 データ処理システム Active JP6219202B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014048119A JP6219202B2 (ja) 2014-03-11 2014-03-11 データ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014048119A JP6219202B2 (ja) 2014-03-11 2014-03-11 データ処理システム

Publications (2)

Publication Number Publication Date
JP2015172833A JP2015172833A (ja) 2015-10-01
JP6219202B2 true JP6219202B2 (ja) 2017-10-25

Family

ID=54260123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014048119A Active JP6219202B2 (ja) 2014-03-11 2014-03-11 データ処理システム

Country Status (1)

Country Link
JP (1) JP6219202B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887473A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ処理装置
JPH09218858A (ja) * 1996-02-14 1997-08-19 Hitachi Ltd 分散型データベース管理システム
JP4579000B2 (ja) * 2005-02-14 2010-11-10 株式会社日立製作所 計算機システムにおけるデータ配置設定
JP2010218335A (ja) * 2009-03-18 2010-09-30 Ricoh Co Ltd ファイル保存システム、ファイル保存方法、及びプログラム
JP5381336B2 (ja) * 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法

Also Published As

Publication number Publication date
JP2015172833A (ja) 2015-10-01

Similar Documents

Publication Publication Date Title
US9015269B2 (en) Methods and systems for notifying a server with cache information and for serving resources based on it
CN111200657B (zh) 一种管理资源状态信息的方法和资源下载系统
US10887419B2 (en) Fast cache purge optimization handling of unavailable nodes
EP3613183B1 (en) Content based byte-range caching using a dynamically adjusted chunk size
US9892130B2 (en) Parallel I/O read processing for use in clustered file systems having cache storage
CN105207947B (zh) 一种过滤抖动的渐进式流量调度方法和系统
US8984055B2 (en) Relay device, information processing system, and computer-readable recording medium
US11893029B2 (en) Real-time streaming data ingestion into database tables
CN103327415A (zh) 一种加速网络视频下载的方法和装置
US20150312342A1 (en) Parallel i/o write processing for use in clustered file systems having cache storage
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
CN106453460B (zh) 一种文件分发方法、装置和系统
KR20210141531A (ko) 분산 메타 데이터 기반 클러스터 컴퓨팅
KR100754198B1 (ko) 소프트웨어 자동 업데이트 방법 및 시스템
CN110677684A (zh) 视频处理、视频访问方法及分布式存储、视频访问系统
CN104125294A (zh) 一种大数据安全管理方法和系统
JP6793498B2 (ja) データストア装置およびデータ管理方法
KR20100048315A (ko) 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버
JP5661355B2 (ja) 分散キャッシュシステム
JP2005250521A (ja) データ処理システム及びデータ処理装置及びデータ処理方法
CN111597259B (zh) 数据存储系统、方法、装置、电子设备及存储介质
JP6219202B2 (ja) データ処理システム
EP4280077A1 (en) Data ingestion replication and disaster recovery
EP3707610B1 (en) Redundant data storage using different compression processes
CN105516223B (zh) 虚拟存储系统及其实现方法、服务器和虚拟机监控器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170809

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170927

R150 Certificate of patent or registration of utility model

Ref document number: 6219202

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150