JPWO2016031043A1 - 処理振り分け装置、処理振り分けプログラムおよびデータ処理システム - Google Patents

処理振り分け装置、処理振り分けプログラムおよびデータ処理システム Download PDF

Info

Publication number
JPWO2016031043A1
JPWO2016031043A1 JP2016545186A JP2016545186A JPWO2016031043A1 JP WO2016031043 A1 JPWO2016031043 A1 JP WO2016031043A1 JP 2016545186 A JP2016545186 A JP 2016545186A JP 2016545186 A JP2016545186 A JP 2016545186A JP WO2016031043 A1 JPWO2016031043 A1 JP WO2016031043A1
Authority
JP
Japan
Prior art keywords
server
processing
data
unit
correspondence table
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
JP2016545186A
Other languages
English (en)
Other versions
JP6203414B2 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2016031043A1 publication Critical patent/JPWO2016031043A1/ja
Application granted granted Critical
Publication of JP6203414B2 publication Critical patent/JP6203414B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

負荷分散装置(200)は、データ処理を指定する処理命令に、データ処理で使用されるコンテンツデータを記憶するサーバ装置(300)の識別子を対応付ける対応表ファイルを記憶する。負荷分散装置は、クライアント装置(110)から処理要求パケットを受信し、処理要求パケットに含まれる処理命令と同じ処理命令に対応付けられたサーバ装置の識別子を対応表ファイルから選択する。そして、負荷分散装置は、処理命令を含んだ振り分けパケット、を対応表ファイルから選択した識別子で識別されるサーバ装置に送信する。

Description

本発明は、複数のサーバ装置にデータ処理を振り分ける技術に関するものである。
クライアント装置とウェブサーバ装置とデータベースサーバ装置とを備える3階層のウェブサーバシステムが存在する。3階層のウェブサーバシステムにおいて、ウェブサーバ装置はフロントエンドサーバとも呼ばれる。また、データベースサーバ装置はバックエンドサーバとも呼ばれる。
特許文献1および非特許文献1は、ウェブサーバシステムにロードバランサを設けることによって複数のフロントエンドサーバの負荷を分散する技術を開示している。
ロードバランサは、それぞれのフロントエンドサーバの負荷が均等になるように、複数のデータ処理を複数のフロントエンドサーバに振り分ける。
但し、ロードバランサは、複数のフロントエンドサーバの負荷を分散できるが、複数のバックエンドサーバの負荷を分散することはできない。そのため、ロードバランサは、システム全体において負荷を十分に分散させることはできない。
非特許文献2は、複数の記憶装置の負荷を分散する分散ストレージ技術を開示している。
分散ストレージ技術は、複数の記憶装置のそれぞれに分散ストレージ用の記憶領域を確保し、それぞれの分散ストレージ用の記憶領域を集約して仮想的な記憶装置を構築し、仮想的な記憶装置に複数のデータを多重化して記憶するものである。
分散ストレージ技術をウェブサーバシステムに適用した場合、データ処理は、目的のデータが記憶されていないバックエンドサーバに振り分けられる可能性がある。この場合、データ処理が振り分けられたバックエンドサーバは、目的のデータにアクセスするために、目的のデータが記憶されているバックエンドサーバと通信する必要がある。そして、この通信処理がオーバーヘッドになってデータ処理が遅延し、システムのスループットが低下する。
特開2003−196178号公報
Wensong Zhang、 "Linux Virtual Server for Scalable Network Services", Ottawa Linux Symposium 2000. Vijay Bellur、 "GlusterFS−Architecture & Roadmap"、 [online]、 [2014年8月4日検索]、 インターネット(URL:http://www.gluster.org/community/documentation/images/8/80/GlusterFS_Architecture_%26_Roadmap−Vijay_Bellur−LinuxCon_EU_2013.pdf)
本発明は、データ処理で使用されるコンテンツデータを記憶するサーバ装置にデータ処理を振り分けることができるようにすることを目的とする。
本発明の処理振り分け装置は、
データ処理を指定する処理命令に、データ処理で使用されるコンテンツデータを記憶するサーバ装置のサーバ識別子、を対応付けた対応表ファイルを記憶する対応表ファイル記憶部と、
第一のコンテンツデータを使用する第一のデータ処理を指定する第一の処理命令を受け付ける処理命令受付部と、
前記処理命令受付部によって受け付けられた第一の処理命令と同じ処理命令に対応付けられたサーバ識別子を前記対応表ファイルから選択する対応表管理部と、
前記対応表管理部によって選択されたサーバ識別子で識別されるサーバ装置に前記第一のデータ処理の実行を要求する処理振り分け部とを備える。
本発明によれば、データ処理で使用されるコンテンツデータを記憶するサーバ装置にデータ処理を振り分けることができる。
実施の形態1における負荷分散システム100の概要図である。 実施の形態1における負荷分散装置200の機能構成図である。 実施の形態1におけるサーバ装置300の機能構成図である。 実施の形態1における負荷分散装置200の動作を示すフローチャートである。 実施の形態1における対応表ファイル291の一例を示す図である。 実施の形態1におけるサーバ一覧ファイル292の一例を示す図である。 実施の形態1におけるサーバ装置300の動作を示すフローチャートである。 実施の形態1におけるサーバ装置300の動作を示すフローチャートである。 実施の形態1におけるデータ配置ファイル391の一例を示す図である。 実施の形態1における負荷分散装置200のハードウェア構成図である。 実施の形態2におけるクライアントサーバシステム101の構成図である。 実施の形態2におけるクライアント装置110の機能構成図である。
実施の形態1.
データ処理で使用されるコンテンツデータを記憶するサーバ装置にデータ処理を振り分ける形態について説明する。
図1は、実施の形態1における負荷分散システム100の概要図である。
実施の形態1における負荷分散システム100の概要について、図1に基づいて説明する。
負荷分散システム100(データ処理システムの一例)は、1つ以上のクライアント装置110から発生する複数の処理要求を複数のサーバ装置(300A〜300D)に分散するシステムである。
負荷分散システム100は、1つ以上のクライアント装置110と、複数のサーバ装置(300A〜300D)と、負荷分散装置200(処理振り分け装置の一例)とを備える。これらの装置はネットワーク109を介して通信を行う。
サーバ装置の区別をしない場合、それぞれのサーバ装置をサーバ装置300と記す。
クライアント装置110は、データ処理の実行を要求するコンピュータである。以下、データ処理で使用されるデータをコンテンツデータという。
複数のサーバ装置(300A〜300D)は、データ処理を実行するコンピュータである。
それぞれのサーバ装置に備わる記憶装置(後述する図3のサーバ記憶部390)は、複数のコンテンツデータが分散して記憶される分散ストレージ(後述する図3の分散ストレージ領域399)を構成する。
複数のコンテンツデータは、複数のサーバ装置に分散して記憶される。また、それぞれのコンテンツデータは、2つ以上のサーバ装置に多重化して記憶される。
図1において、コンテンツデータA381およびコンテンツデータB382は、サーバ装置300Aとサーバ装置300Cとに多重化して記憶されている。また、コンテンツデータC383およびコンテンツデータD384は、サーバ装置300Bとサーバ装置300Dとに多重化して記憶されている。
負荷分散装置200は、データ処理の実行を要求する複数の処理要求を複数のサーバ装置に分散するコンピュータである。負荷分散装置200はロードバランサとも呼ばれる。
負荷分散装置200は、クライアント装置110から処理要求を受け取り、いずれかのサーバ装置300に処理要求を振り分け、そのサーバ装置300から処理結果を受け取り、処理結果をクライアント装置110に応答する。
図1の(1)から(5)に基づいて、負荷分散システム100の動作の一例について説明する。
(1)クライアント装置110は、コンテンツデータC383を使用するデータ処理Cの実行を要求する。
(2)負荷分散装置200は、データ処理Cの実行を要求する処理要求を、いずれかのサーバ装置に振り分ける。このとき、データ処理Cで使用されるコンテンツデータC383はサーバ装置300Bおよびサーバ装置300Dに記憶されているため、処理要求の振り分け先として適切なサーバ装置は、サーバ装置300Bまたはサーバ装置300Dである。
適切なサーバ装置を知っている場合、負荷分散装置200は、データ処理Cの処理要求をサーバ装置300Bまたはサーバ装置300Dに振り分ける。
適切なサーバ装置を知らない場合、負荷分散装置200は、負荷が軽いサーバ装置にデータ処理Cの処理要求を振り分ける。負荷が軽いサーバ装置は従来の負荷分散技術によって特定することができる。
ここで、負荷分散装置200は、適切なサーバ装置を知らず、データ処理Cの処理要求をサーバ装置300Aに振り分けたものとする。
(3)サーバ装置300Aは、後述するデータ配置ファイル391(図3参照)に基づいて、コンテンツデータC383を記憶するサーバ装置300B(またはサーバ装置300D)を選択する。そして、サーバ装置300Aは、サーバ装置300B(またはサーバ装置300D)と通信することによってコンテンツデータC383にアクセスし、データ処理Cを実行する。
(4)サーバ装置300Aは、データ処理Cの実行結果およびアクセス情報を負荷分散装置200に応答する。このアクセス情報は、データ処理Cの処理要求の振り分け先として適切なサーバ装置がサーバ装置300B(またはサーバ装置300D)であることを示す情報である。
(5)負荷分散装置200は、データ処理Cのアクセス情報を記憶し、データ処理Cの実行結果をクライアント装置110に応答する。
上記(5)において、データ処理Cのアクセス情報は、負荷分散装置200に記憶される。そのため、負荷分散装置200は、その後に発生するデータ処理Cの処理要求をサーバ装置300B(またはサーバ装置300D)に振り分けることができる。
データ処理Cの処理要求がサーバ装置300Bに振り分けられた場合、上記(3)のようにサーバ装置300Aがサーバ装置300Bと通信する必要はない。そのため、サーバ装置間の通信に伴う処理遅延が発生せず、システムのスループットが向上する。
図2は、実施の形態1における負荷分散装置200の機能構成図である。
実施の形態1における負荷分散装置200の機能構成について、図2に基づいて説明する。但し、負荷分散装置200の機能構成は、図2に示す機能構成と同一でなくても構わない。
負荷分散装置200は、要求受付部210(処理命令受付部の一例)と、対応表管理部220と、要求振り分け部230(処理振り分け部の一例)と、負荷分散記憶部290(対応表ファイル記憶部の一例)とを備える。
負荷分散記憶部290は、負荷分散装置200が使用、生成または入出力するデータを記憶する。例えば、負荷分散記憶部290は、対応表ファイル291およびサーバ一覧ファイル292などを記憶する。
対応表ファイル291は、データ処理を指定する処理命令に、データ処理で使用されるコンテンツデータを記憶するサーバ装置300の識別子を対応付ける。対応表ファイル291の一例について後述する(図5参照)。
サーバ一覧ファイル292は、サーバ装置300の識別子に、IPアドレスなどの情報を対応付ける。サーバ一覧ファイル292の一例について後述する(図6参照)。
要求受付部210は、データ処理を指定する処理命令を含んだ処理要求パケットをクライアント装置110から受信し、データ処理の実行結果を示す実行結果データを含む処理応答パケットをクライアント装置110に送信する。
処理要求パケットはデータ処理の実行を要求するパケットであり、処理応答パケットはデータ処理の実行結果を応答するパケットである。
対応表管理部220は、対応表参照部221(対応サーバ選択部の一例)と対応表編集部222(対応サーバ登録部の一例)とを備えて、対応表ファイル291を管理する。
対応表参照部221は、処理要求パケットに含まれる処理命令と同じ処理命令に対応付けられたサーバ装置300の識別子を、対応表ファイル291から選択する。
対応表編集部222は、処理要求パケットに含まれる処理命令に、後述するアクセス情報データを対応付けて、対応表ファイル291に登録する。
要求振り分け部230は、対応表参照部221によって選択された識別子で識別されるサーバ装置300に、処理命令を含んだ振り分けパケットを送信する。そして、要求振り分け部230は、そのサーバ装置300からデータ処理の実行結果を含む実行結果パケットを受信する。
振り分けパケットはデータ処理の実行を要求するパケットであり、実行結果パケットはデータ処理の実行結果を応答するパケットである。
図3は、実施の形態1におけるサーバ装置300の機能構成図である。
実施の形態1におけるサーバ装置300の機能構成について、図3に基づいて説明する。但し、サーバ装置300の機能構成は、図3に示す機能構成と同一でなくても構わない。
サーバ装置300は、WEBサーバ部301と、DBサーバ部320と、分散ストレージ管理部330(アクセス要求部の一例)と、アクセス情報生成部340と、サーバ記憶部390(コンテンツデータ記憶部、データ配置ファイル記憶部の一例)とを備える。また、WEBサーバ部301はWEBアプリケーション部310を備える。
サーバ記憶部390は、サーバ装置300が使用、生成または入出力するデータを記憶する。
例えば、サーバ記憶部390は、データ配置ファイル391、サーバ一覧ファイル392およびコンテンツデータ群380などを記憶する。
データ配置ファイル391は、コンテンツデータの識別子に、そのコンテンツデータが記憶されたサーバ装置300の識別子を対応付ける。データ配置ファイル391の一例について後述する(図9参照)。
サーバ一覧ファイル392は、サーバ装置300の識別子に、IPアドレスなどの情報を対応付ける。サーバ一覧ファイル392は、負荷分散装置200(図2参照)のサーバ一覧ファイル292と同様のファイルである。
コンテンツデータ群380は、1つ以上のコンテンツデータである。コンテンツデータ群380は、分散ストレージ用に確保される記憶領域に記憶される。以下、分散ストレージ用に確保される記憶領域を分散ストレージ領域399という。
WEBサーバ部301は、サーバ装置300をWEBサーバとして機能させるためのWEBサーバプログラムを実行する。
WEBアプリケーション部310は、実行要求受付部311と、処理実行部312と、実行結果応答部313とを備える。
実行要求受付部311は、負荷分散装置200から振り分けパケットを受信する。
処理実行部312は、振り分けパケットに含まれる処理命令で指定されるデータ処理を実行する。
実行結果応答部313は、データ処理の実行結果を示す実行結果データと、アクセス情報生成部340によって生成されるアクセス情報データと、を含む実行結果パケットを負荷分散装置200に送信する。
DBサーバ部320は、サーバ装置300をデータベースサーバ(DBサーバ)として機能させるためのDBサーバプログラムを実行する。
分散ストレージ管理部330は、分散ストレージ領域399に記憶されたコンテンツデータにアクセスする。
アクセスしたいコンテンツデータが分散ストレージ領域399に記憶されていない場合、分散ストレージ管理部330は、そのコンテンツデータの識別子に対応付けられたサーバ装置300の識別子をデータ配置ファイル391から選択する。そして、分散ストレージ管理部330は、選択した識別子で識別されるサーバ装置300に、コンテンツデータのアクセスを要求する。
他のサーバ装置300からコンテンツデータのアクセスが要求された場合、分散ストレージ管理部330は、分散ストレージ領域399に記憶されているコンテンツデータにアクセスする。
アクセス情報生成部340は、データ処理で使用されたコンテンツデータを記憶するサーバ装置300の識別子を含むアクセス情報データを生成する。
図4は、実施の形態1における負荷分散装置200の動作を示すフローチャートである。
実施の形態1における負荷分散装置200の動作について、図4に基づいて説明する。但し、負荷分散装置200の動作は、図4に基づいて説明する動作と同一でなくても構わない。
S110において、クライアント装置110は、データ処理の実行を要求する処理要求パケットを負荷分散装置200に送信する。
そして、負荷分散装置200の要求受付部210は、処理要求パケットを受信する。処理要求パケットは、データ処理を指定する処理命令を含む。
例えば、HTTPリクエストのGETメソッドは処理命令の一例であり、このHTTPリクエストを含んだIPパケットは処理要求パケットの一例である。HTTPはHyperText Transfer Protocolの略称である。また、IPはInternet Protocolの略称である。
S110の後、処理はS120に進む。
S120において、対応表参照部221は、処理要求パケットに含まれる処理命令と同じ処理命令に対応付けられたサーバ識別子が対応表ファイル291に登録されているか判定する。
該当するサーバ識別子を対応サーバ識別子といい、対応サーバ識別子で識別されるサーバ装置300を対応サーバという。
例えば、処理要求パケットに含まれる処理命令が“GET /aaa HTTP/1.1”というHTTPリクエストであるものとする。この場合、2つの対応サーバ識別子(サーバA、サーバC)が、対応表ファイル291(図5参照)に登録されている。
また、処理要求パケットに含まれる処理命令が“GET /ccc HTTP/1.1”というHTTPリクエストであるものとする。この場合、対応サーバ識別子は、対応表ファイル291(図5参照)に登録されていない。
対応サーバ識別子が対応表ファイル291に登録されている場合(YES)、処理はS121に進む。
対応サーバ識別子が対応表ファイル291に登録されていない場合(NO)、処理はS122に進む。
図5は、実施の形態1における対応表ファイル291の一例を示す図である。
実施の形態1における対応表ファイル291の一例について、図5に基づいて説明する。
対応表ファイル291は、リクエストの欄に、アクセスデータの欄と、アクセスサーバの欄と、対応サーバの欄とを対応付ける。
リクエストの欄は、処理命令を示す。
アクセスデータの欄は、処理命令で指定されるデータ処理でアクセスされるコンテンツの識別子を示す。
アクセスサーバの欄は、1つ以上の対応サーバのうち、前回のデータ処理でアクセスデータにアクセスした対応サーバの識別子を示す。
対応サーバの欄は、1つ以上の対応サーバのそれぞれの識別子を示す。
S121(図4参照)において、要求振り分け部230は、1つ以上の対応サーバ識別子から、いずれかの対応サーバ識別子を選択する。このとき、要求振り分け部230は、1つ以上の対応サーバ識別子から、負荷が軽いサーバ装置300の識別子を選択するとよい。負荷が軽いサーバ装置300は従来の負荷分散技術によって特定することができる。
選択される対応サーバ識別子を振り分け先識別子といい、振り分け先識別子で識別されるサーバ装置300を振り分け先サーバという。
S121の後、処理はS130に進む。
S122において、要求振り分け部230は、サーバ一覧ファイル292(図6参照)に登録されている複数のサーバ識別子から、いずれかのサーバ識別子を選択する。このとき、要求振り分け部230は、複数のサーバ識別子から、負荷が軽いサーバ装置300の識別子を選択するとよい。負荷が軽いサーバ装置300は従来の負荷分散技術によって特定することができる。
選択されるサーバ識別子を振り分け先識別子といい、振り分け先識別子で識別されるサーバ装置300を振り分け先サーバという。
S122の後、処理はS130に進む。
図6は、実施の形態1におけるサーバ一覧ファイル292の一例を示す図である。
実施の形態1におけるサーバ一覧ファイル292の一例について、図6に基づいて説明する。
サーバ一覧ファイル292は、サーバの欄に、IPアドレスなどの情報欄を対応付ける。
サーバの欄は、負荷分散システム100に備わるサーバ装置300の識別子を示す。
IPアドレスの欄は、サーバ装置300のIPアドレスを示す。
S130(図4参照)において、要求振り分け部230は、S121またはS122で選択された振り分け先識別子と同じサーバ識別子に対応付けられたIPアドレスを、サーバ一覧ファイル292(図6参照)から選択する。
要求振り分け部230は、選択したIPアドレスを送信先アドレスとして用いて、振り分け先サーバ宛のパケットを生成する。このパケットを振り分けパケットという。
振り分けパケットは、データ処理の実行を振り分け先サーバに要求するパケットである。振り分けパケットは、処理要求パケットに含まれる処理命令を含む。
要求振り分け部230は、振り分けパケットを振り分け先サーバに送信する。
S130の後、処理はS131に進む。
S131において、要求振り分け部230は、実行結果データとアクセス情報データとを含む実行結果パケットを、振り分け先サーバから受信する。
実行結果データは、データ処理の実行結果を示す。
アクセス情報データは、アクセスデータ識別子と、アクセスサーバ識別子と、対応サーバ識別子群とを含む。
アクセスデータ識別子は、アクセスされたコンテンツデータを識別する識別子を示す。
アクセスサーバ識別子は、コンテンツデータにアクセスしたサーバ装置300の識別子を示す。
対応サーバ識別子群は、1つ以上の対応サーバ識別子である。対応サーバ識別子は、アクセスされたコンテンツデータと同じコンテンツデータを記憶する1つ以上のサーバ装置300のそれぞれの識別子である。
S131の後、処理はS140に進む。
S140において、対応表編集部222は、処理要求パケットに含まれる処理命令と、実行結果パケットに含まれるアクセス情報データ(アクセスデータ識別子、アクセスサーバ識別子、対応サーバ識別子群)とを用いて、対応表ファイル291を以下のように編集する。
対応表ファイル291(図5参照)において、処理要求パケットに含まれる処理命令と同じ処理命令をリクエストの欄に含んだ該当レコードが登録されている場合、対応表編集部222は、アクセス情報データに基づいて、該当レコードを更新する。つまり、対応表編集部222は、該当レコードのアクセスデータの欄をアクセスデータ識別子で更新し、該当レコードのアクセスサーバの欄をアクセスサーバ識別子で更新し、該当レコードの対応サーバの欄を対応サーバ識別子群で更新する。
対応表ファイル291(図5参照)において、処理要求パケットに含まれる処理命令と同じ処理命令をリクエストの欄に含んだ該当レコードが登録されていない場合、対応表編集部222は、処理命令とアクセス情報データとを用いて新規レコードを生成する。つまり、対応表編集部222は、処理命令をリクエストの欄に含み、アクセスデータ識別子をアクセスデータの欄に含み、アクセスサーバ識別子をアクセスサーバの欄に含み、対応サーバ識別子群を対応サーバの欄に含む新規レコードを生成する。そして、対応表編集部222は、新規レコードを対応表ファイル291に登録する。
S140の後、処理はS150に進む。
S150において、要求受付部210は、データ処理の実行結果を応答する処理応答パケットを生成し、処理要求パケットの送信元のクライアント装置110に処理応答パケットを送信する。処理応答パケットは、実行結果パケットに含まれる実行結果データを含む。
S150の後、1つの処理要求パケットに対する負荷分散装置200の動作は終了する。
図7、図8は、実施の形態1におけるサーバ装置300の動作を示すフローチャートである。
実施の形態1におけるサーバ装置300の動作について、図7および図8に基づいて説明する。但し、サーバ装置300の動作は、図7および図8に基づいて説明する動作と同一でなくても構わない。
S210において、実行要求受付部311は、処理命令を含んだ振り分けパケットを受信する。
S210の後、処理はS220に進む。
S220において、処理実行部312は、振り分けパケットに含まれる処理命令に基づいて、処理ロジックの実行を開始する。
処理ロジックは、モジュール、ルーチンまたは関数などとも呼ばれるプログラムであり、データ処理の手順を示す。例えば、処理ロジックは、コンテンツデータにアクセスするためのクエリを生成する手順を含む。
例えば、処理命令が“GET /aaa HTTP/1.1”である場合、処理実行部312は、複数の処理ロジックのうちのGETメソッド用の処理ロジックを選択し、“aaa”をパラメータとして用いて処理ロジックの実行を開始する。
S220の後、処理はS230に進む。
S230において、処理実行部312は、コンテンツデータにアクセスするためのクエリを処理ロジックに従って生成し、クエリをDBサーバ部320に受け渡す。
S230の後、処理はS231に進む。
S231において、DBサーバ部320は、クエリを受け取り、クエリに指定されたコンテンツデータにアクセスするためのアクセス命令を生成し、アクセス命令を分散ストレージ管理部330に受け渡す。
S231の後、処理はS232に進む。
S232において、分散ストレージ管理部330は、アクセス命令を受け取り、アクセス命令に指定されたコンテンツデータが分散ストレージ領域399に記憶されているか判定する。アクセス命令に指定されたコンテンツデータを該当コンテンツという。
該当コンテンツが分散ストレージ領域399に記憶されている場合(YES)、処理はS233に進む。
該当コンテンツが分散ストレージ領域399に記憶されていない場合(NO)、処理はS235(図8参照)に進む。
S233において、分散ストレージ管理部330は、アクセス命令に従って、分散ストレージ領域399に記憶されている該当コンテンツにアクセスする。
例えば、分散ストレージ管理部330は、分散ストレージ領域399から該当コンテンツを読み出す。
分散ストレージ管理部330は、アクセス命令の実行結果をDBサーバ部320に受け渡す。例えば、アクセス命令の実行結果は、分散ストレージ領域399から読み出された該当コンテンツを含む。
DBサーバ部320は、アクセス命令の実行結果を受け取り、アクセス命令の実行結果を用いてクエリの実行結果を生成し、クエリの実行結果を処理実行部312に受け渡す。例えば、クエリの実行結果は、分散ストレージ領域399から読み出された該当コンテンツを含む。
S233の後、処理はS234に進む。
S234において、分散ストレージ管理部330は、データ配置ファイル391(図9参照)から、該当コンテンツと同じコンテンツデータの識別子に対応付けられたサーバ識別子群を選択する。例えば、該当コンテンツがコンテンツAである場合、分散ストレージ管理部330は、データ配置ファイル391(図9参照)から2つのサーバ識別子(サーバA、サーバC)を選択する。
そして、分散ストレージ管理部330は、サーバ識別子群と該当コンテンツの識別子とをアクセス情報生成部340に受け渡す。
アクセス情報生成部340は、サーバ識別子群と該当コンテンツの識別子とを受け取り、アクセス情報データを生成し、アクセス情報データを実行結果応答部313に受け渡す。
アクセス情報データは、該当コンテンツの識別子をアクセスデータ識別子として含み、振り分け先サーバの識別子をアクセスサーバ識別子として含み、受け取ったサーバ識別子群を対応サーバ識別子群として含む。
S234の後、処理はS240に進む。
図9は、実施の形態1におけるデータ配置ファイル391の一例を示す図である。
実施の形態1におけるデータ配置ファイル391の一例について、図9に基づいて説明する。
データ配置ファイル391は、サーバの欄に、コンテンツなどの情報欄を対応付ける。
サーバは、1つ以上のサーバ装置300のそれぞれの識別子を示す。
コンテンツは、サーバ装置300に記憶されている1つ以上のコンテンツデータのそれぞれの識別子を示す。
S240(図7参照)において、処理実行部312は、クエリの実行結果をDBサーバ部320から受け取る。
処理実行部312は、クエリの実行結果に基づいてデータ処理を実行する。例えば、処理実行部312は、クエリの実行結果に含まれる該当コンテンツを用いて、WEBページを生成する。
そして、処理実行部312は、データ処理の実行を終了し、データ処理の実行結果を示す実行結果データを生成する。例えば、処理実行部312は、データ処理によって生成されたWEBページを含む実行結果データを生成する。
S240の後、処理はS250に進む。
S250において、実行結果応答部313は、アクセス情報データをアクセス情報生成部340から受け取る。
そして、実行結果応答部313は、実行結果データとアクセス情報データとを含む実行結果パケットを生成し、実行結果パケットを負荷分散装置200に送信する。
S250の後、1つの振り分けパケットに対するサーバ装置300の動作は終了する。
S235(図8参照)において、分散ストレージ管理部330は、データ配置ファイル391(図9参照)から、アクセス命令に指定された該当コンテンツと同じコンテンツデータの識別子に対応付けられたサーバ識別子群を選択する。
そして、分散ストレージ管理部330は、サーバ識別子群から、いずれかのサーバ識別子を選択する。このとき、分散ストレージ管理部330は、サーバ識別子群から、負荷が軽いサーバ装置300の識別子を選択するとよい。負荷が軽いサーバ装置300は従来の負荷分散技術によって特定することができる。
選択されるサーバ識別子を対応サーバ識別子といい、対応サーバ識別子で識別されるサーバ装置300を対応サーバという。
S235の後、処理はS236に進む。
S236において、分散ストレージ管理部330は、対応サーバ識別子と同じサーバ識別子に対応付けられたIPアドレスを、サーバ一覧ファイル392から選択する。サーバ一覧ファイル392は、図6で説明したサーバ一覧ファイル292と同様のファイルである。
分散ストレージ管理部330は、選択したIPアドレスを送信先アドレスとして用いて、対応サーバ宛のパケットを生成する。このパケットをアクセス要求パケットという。
アクセス要求パケットは、アクセス命令の実行を対応サーバに要求するパケットである。アクセス要求パケットは、アクセス命令を含む。
分散ストレージ管理部330は、アクセス要求パケットを対応サーバに送信する。
S236の後、処理はS237に進む。
S237において、対応サーバの分散ストレージ管理部330は、アクセス要求パケットを受信する。
対応サーバの分散ストレージ管理部330は、アクセス要求パケットに含まれるアクセス命令に従って、対応サーバの分散ストレージ領域399に記憶されている該当コンテンツにアクセスする。
そして、対応サーバの分散ストレージ管理部330は、アクセス命令の実行結果を含むアクセス応答パケットを生成し、アクセス要求パケットの送信元のサーバ装置300にアクセス応答パケットを送信する。
S237の後、処理はS238に進む。
S238において、振り分け先サーバの分散ストレージ管理部330は、アクセス応答パケットを受信する。
振り分け先サーバにおいて、分散ストレージ管理部330は、アクセス応答パケットに含まれるアクセス命令の実行結果をDBサーバ部320に受け渡す。
DBサーバ部320は、アクセス命令の実行結果を受け取り、アクセス命令の実行結果を用いてクエリの実行結果を生成し、クエリの実行結果を処理実行部312に受け渡す(S233と同様)。
S238の後、処理はS239に進む。
S239において、振り分け先サーバの分散ストレージ管理部330は、該当コンテンツの識別子と、データ配置ファイル391から選択したサーバ識別子群と、サーバ識別子群から選択した対応サーバ識別子とをアクセス情報生成部340に受け渡す。
アクセス情報生成部340は、該当コンテンツの識別子とサーバ識別子群と対応サーバ識別子とを受け取り、アクセス情報データを生成し、アクセス情報データを実行結果応答部313に受け渡す(S234と同様)。
アクセス情報データは、該当コンテンツの識別子をアクセスデータ識別子として含み、サーバ識別子群を対応サーバ識別子群として含み、対応サーバ識別子をアクセスサーバ識別子として含む。
S239の後、処理はS240(図7参照)に進む。S240以降の処理は図7に基づいて説明した通りである。
図10は、実施の形態1における負荷分散装置200のハードウェア構成図である。
実施の形態1における負荷分散装置200のハードウェア構成について、図10に基づいて説明する。但し、負荷分散装置200のハードウェア構成は図10に示す構成と同一でなくても構わない。
負荷分散装置200は、演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905を備えるコンピュータである。
演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
主記憶装置903は、例えば、RAM(Random Access Memory)である。
通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
プログラムは、補助記憶装置902に記憶されている。
例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置902に記憶される。
プログラムは、補助記憶装置902に記憶されており、主記憶装置903にロードされて、演算装置901によって実行される。
「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置903または補助記憶装置902に記憶される。
クライアント装置110およびサーバ装置300は、負荷分散装置200と同様のハードウェア構成を備える。
実施の形態1によって、例えば、以下のような効果を奏する。
負荷分散装置200は、対応表ファイル291を備えることにより、データ処理の処理要求を適切なサーバ装置300に振り分けることができる。つまり、負荷分散装置200は、データ処理で使用されるコンテンツデータ(該当コンテンツ)を記憶するサーバ装置300にデータ処理の処理要求を振り分けることができる。
処理要求の振り分け先のサーバ装置300が該当コンテンツを記憶していれば、処理要求の振り分け先のサーバ装置300が該当コンテンツにアクセスするために他のサーバ装置300と通信する必要はない。そのため、サーバ装置間の通信に伴う処理遅延が発生せず、システムのスループットが向上する。
実施の形態1は、負荷分散システム100の形態の一例である。
つまり、負荷分散システム100は、実施の形態1で説明した構成要素の一部を備えなくても構わない。また、負荷分散システム100は、実施の形態1で説明していない構成要素を備えても構わない。
実施の形態2.
負荷分散装置200を備えないクライアントサーバシステムの形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
図11は、実施の形態2におけるクライアントサーバシステム101の構成図である。
図11において、クライアントサーバシステム101(データ処理システムの一例)は、1つ以上のクライアント装置110と、複数のサーバ装置300とを備える。
図12は、実施の形態2におけるクライアント装置110の機能構成図である。
図12において、クライアント装置110は、負荷分散装置200(図2参照)と同様に、要求受付部210と、対応表管理部220と、要求振り分け部230とを備える。
また、クライアント装置110は、対応表ファイル291およびサーバ一覧ファイル292などを記憶するクライアント記憶部119(対応表ファイル記憶部の一例)を備える。
実施の形態2におけるクライアント装置110の動作は、実施の形態1における負荷分散装置200の動作(図4参照)と同様である。
但し、S110において、要求受付部210は、処理要求パケットを受信する代わりに、利用者がクライアント装置110に入力する処理命令を受け付ける。
また、S150において、要求受付部210は、処理応答パケットを送信する代わりに、実行結果データを画面に表示する。
実施の形態2において、クライアント装置110は、実施の形態1における負荷分散装置200と同様の効果を奏することができる。つまり、クライアント装置110は、データ処理で使用されるコンテンツデータを記憶するサーバ装置300にデータ処理の処理要求を振り分けることができる。
実施の形態2は、クライアントサーバシステム101の形態の一例である。
つまり、クライアントサーバシステム101は、実施の形態2で説明した構成要素の一部を備えなくても構わない。また、クライアントサーバシステム101は、実施の形態2で説明していない構成要素を備えても構わない。
各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法およびプログラムの処理手順の一例である。各実施の形態に係る方法およびプログラムは、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。
各実施の形態において「〜部」は「〜処理」「〜工程」「〜プログラム」「〜装置」などと読み替えることができる。
100 負荷分散システム、101 クライアントサーバシステム、109 ネットワーク、110 クライアント装置、119 クライアント記憶部、200 負荷分散装置、210 要求受付部、220 対応表管理部、221 対応表参照部、222 対応表編集部、230 要求振り分け部、290 負荷分散記憶部、291 対応表ファイル、292 サーバ一覧ファイル、300 サーバ装置、301 WEBサーバ部、310 WEBアプリケーション部、311 実行要求受付部、312 処理実行部、313 実行結果応答部、320 DBサーバ部、330 分散ストレージ管理部、340 アクセス情報生成部、380 コンテンツデータ群、381 コンテンツデータA、382 コンテンツデータB、383 コンテンツデータC、384 コンテンツデータD、390 サーバ記憶部、391 データ配置ファイル、392 サーバ一覧ファイル、399 分散ストレージ領域、901 演算装置、902 補助記憶装置、903 主記憶装置、904 通信装置、905 入出力装置、909 バス。

Claims (7)

  1. データ処理を指定する処理命令に、データ処理で使用されるコンテンツデータを記憶するサーバ装置のサーバ識別子、を対応付けた対応表ファイルを記憶する対応表ファイル記憶部と、
    第一のコンテンツデータを使用する第一のデータ処理を指定する第一の処理命令を受け付ける処理命令受付部と、
    前記処理命令受付部によって受け付けられた第一の処理命令と同じ処理命令に対応付けられたサーバ識別子を前記対応表ファイルから選択する対応表管理部と、
    前記対応表管理部によって選択されたサーバ識別子で識別されるサーバ装置に前記第一のデータ処理の実行を要求する処理振り分け部と
    を備えることを特徴とする処理振り分け装置。
  2. 前記処理振り分け部は、前記第一の処理命令と同じ処理命令に対応付けられたサーバ識別子が前記対応表ファイルに含まれないために前記対応表管理部によってサーバ識別子が選択されない場合、複数のサーバ装置のうちのいずれかに前記第一のデータ処理の実行を要求する
    ことを特徴とする請求項1に記載の処理振り分け装置。
  3. 前記処理振り分け部は、前記第一のデータ処理の要求先のサーバ装置から、前記第一のデータ処理の実行結果と、前記第一のコンテンツデータを記憶するサーバ装置のサーバ識別子とを受け付け、
    前記対応表管理部は、前記第一の処理命令に、前記処理振り分け部によって受け付けられたサーバ識別子を対応付けて、前記対応表ファイルに登録する
    ことを特徴とする請求項1または請求項2に記載の処理振り分け装置。
  4. 前記対応表管理部は、前記処理振り分け部によって複数のサーバ識別子が受け付けられた場合、前記第一の処理命令に前記複数のサーバ識別子を対応付けて前記対応表ファイルに登録する
    ことを特徴とする請求項3に記載の処理振り分け装置。
  5. 前記処理振り分け部は、前記第一の処理命令と同じ処理命令に対応付けられたサーバ識別子が複数あるために前記対応表管理部によって複数のサーバ識別子が選択された場合、前記複数のサーバ識別子のいずれかのサーバ識別子で識別されるサーバ装置に前記第一のデータ処理の実行を要求する
    ことを特徴とする請求項1から請求項4のいずれかに記載の処理振り分け装置。
  6. 対応表ファイルを使用する処理振り分けプログラムであって、
    前記対応表ファイルは、データ処理を指定する処理命令に、データ処理で使用されるコンテンツデータを記憶するサーバ装置のサーバ識別子を対応付けたファイルであり、
    第一のコンテンツデータを使用する第一のデータ処理を指定する第一の処理命令を受け付ける処理命令受付処理と、
    前記処理命令受付処理によって受け付けられた第一の処理命令と同じ処理命令に対応付けられたサーバ識別子を前記対応表ファイルから選択する対応サーバ選択処理と、
    前記対応サーバ選択処理によって選択されたサーバ識別子で識別されるサーバ装置に前記第一のデータ処理の実行を要求する処理振り分け処理と
    をコンピュータに実行させるための処理振り分けプログラム。
  7. 処理振り分け装置と、複数のサーバ装置とを備え、
    前記処理振り分け装置は、 データ処理を指定する処理命令に、データ処理で使用されるコンテンツデータを記憶するサーバ装置のサーバ識別子、を対応付けた対応表ファイルを記憶する対応表ファイル記憶部と、
    第一のコンテンツデータを使用する第一のデータ処理を指定する第一の処理命令を受け付ける処理命令受付部と、
    前記処理命令受付部によって受け付けられた第一の処理命令と同じ処理命令に対応付けられたサーバ識別子が前記対応表ファイルに含まれない場合、前記複数のサーバ装置のうちのいずれかに前記第一のデータ処理の実行を要求し、要求先のサーバ装置から、前記第一のデータ処理の実行結果と、前記第一のコンテンツデータを記憶するサーバ装置のサーバ識別子とを受け付ける処理振り分け部と、
    前記第一の処理命令に、前記処理振り分け部によって受け付けられたサーバ識別子を対応付けて、前記対応表ファイルに登録する対応サーバ登録部とを備え、
    前記複数のサーバ装置のそれぞれは、
    コンテンツデータを記憶するコンテンツデータ記憶部と、
    コンテンツデータを識別するデータ識別子に、コンテンツデータを記憶するサーバ装置のサーバ識別子、を対応付けたデータ配置ファイルを記憶するデータ配置ファイル記憶部と、
    前記処理振り分け装置から要求された第一のデータ処理を実行する処理実行部と、
    前記第一のコンテンツデータが前記コンテンツデータ記憶部に記憶されていない場合、前記第一のコンテンツデータのデータ識別子に対応付けられたサーバ識別子を前記データ配置ファイルから選択し、選択したサーバ識別子で識別されるサーバ装置に前記第一のコンテンツデータへのアクセスを要求するアクセス要求部と、
    前記処理実行部によって実行された第一のデータ処理の実行結果と、前記アクセス要求部によって選択されたサーバ識別子と、を前記処理振り分け装置に応答する実行結果応答部とを備える
    ことを特徴とするデータ処理システム。
JP2016545186A 2014-08-29 2014-08-29 処理振り分け装置、処理振り分けプログラムおよびデータ処理システム Expired - Fee Related JP6203414B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/072716 WO2016031043A1 (ja) 2014-08-29 2014-08-29 処理振り分け装置、処理振り分けプログラムおよびデータ処理システム

Publications (2)

Publication Number Publication Date
JPWO2016031043A1 true JPWO2016031043A1 (ja) 2017-04-27
JP6203414B2 JP6203414B2 (ja) 2017-09-27

Family

ID=55398978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016545186A Expired - Fee Related JP6203414B2 (ja) 2014-08-29 2014-08-29 処理振り分け装置、処理振り分けプログラムおよびデータ処理システム

Country Status (4)

Country Link
JP (1) JP6203414B2 (ja)
CN (1) CN106575267B (ja)
TW (1) TWI531909B (ja)
WO (1) WO2016031043A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005518016A (ja) * 2002-02-13 2005-06-16 テレフオンアクチーボラゲット エル エム エリクソン(パブル) サーバシステムの再構成(reconfiguring)方法及び装置
JP2006309383A (ja) * 2005-04-27 2006-11-09 Hitachi Ltd コンピュータシステム
JP2008071229A (ja) * 2006-09-15 2008-03-27 Onkyo Corp ネットワークavシステム及びコントローラ
JP2008177950A (ja) * 2007-01-19 2008-07-31 Nec Corp 映像配信システムおよび映像配信方法ならびに配信管理システムおよびプログラム
US7912954B1 (en) * 2003-06-27 2011-03-22 Oesterreicher Richard T System and method for digital media server load balancing
JP2011186616A (ja) * 2010-03-05 2011-09-22 Nec Corp 分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
CN102238143B (zh) * 2010-04-30 2014-01-22 鸿富锦精密工业(深圳)有限公司 主服务器及利用其进行多媒体资料解码的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005518016A (ja) * 2002-02-13 2005-06-16 テレフオンアクチーボラゲット エル エム エリクソン(パブル) サーバシステムの再構成(reconfiguring)方法及び装置
US7912954B1 (en) * 2003-06-27 2011-03-22 Oesterreicher Richard T System and method for digital media server load balancing
JP2006309383A (ja) * 2005-04-27 2006-11-09 Hitachi Ltd コンピュータシステム
JP2008071229A (ja) * 2006-09-15 2008-03-27 Onkyo Corp ネットワークavシステム及びコントローラ
JP2008177950A (ja) * 2007-01-19 2008-07-31 Nec Corp 映像配信システムおよび映像配信方法ならびに配信管理システムおよびプログラム
JP2011186616A (ja) * 2010-03-05 2011-09-22 Nec Corp 分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラム

Also Published As

Publication number Publication date
WO2016031043A1 (ja) 2016-03-03
CN106575267B (zh) 2018-04-06
CN106575267A (zh) 2017-04-19
TWI531909B (zh) 2016-05-01
TW201608389A (zh) 2016-03-01
JP6203414B2 (ja) 2017-09-27

Similar Documents

Publication Publication Date Title
EP3667500B1 (en) Using a container orchestration service for dynamic routing
US20210006493A1 (en) Systems and methods for directly responding to distributed network traffic
WO2017084393A1 (zh) 内容分发方法、虚拟服务器管理方法、云平台和系统
US20130067530A1 (en) DNS-Based Content Routing
US20200186616A1 (en) Kubernetes as a distributed operating system for multitenancy/multiuser
US8239337B2 (en) Network device proximity data import based on weighting factor
JP5600573B2 (ja) 負荷分散装置及びプログラム
US20200382588A1 (en) State management and object storage in a distributed cloud computing network
US20130212340A1 (en) Partition aware quality of service feature
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
US20150207754A1 (en) Load balancing for mesh computing
US9967232B1 (en) Network traffic management system using customer policy settings
JP2013015991A (ja) 情報処理装置、サーバ選択方法、及びプログラム
JP5817558B2 (ja) 情報処理装置、分散処理システム、キャッシュ管理プログラムおよび分散処理方法
JP2012118709A (ja) 配信システム、ストレージ容量決定プログラム、及びストレージ容量決定方法
US8914436B2 (en) Data processing device and data retriever
CN109756584A (zh) 域名解析方法、域名解析装置及计算机可读存储介质
US20160337163A1 (en) Aliasing of named data objects and named graphs for named data networks
CN112804366B (zh) 用于解析域名的方法和装置
WO2021146896A1 (zh) 文件分享方法、装置及系统
JP6203414B2 (ja) 処理振り分け装置、処理振り分けプログラムおよびデータ処理システム
US11120052B1 (en) Dynamic distributed data clustering using multi-level hash trees
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
CN109088913B (zh) 请求数据的方法和负载均衡服务器
JP3977298B2 (ja) グリッドコンピューティングシステム

Legal Events

Date Code Title Description
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: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R150 Certificate of patent or registration of utility model

Ref document number: 6203414

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees