JP2015165374A - 分散システムおよび分散処理方法 - Google Patents

分散システムおよび分散処理方法 Download PDF

Info

Publication number
JP2015165374A
JP2015165374A JP2014040473A JP2014040473A JP2015165374A JP 2015165374 A JP2015165374 A JP 2015165374A JP 2014040473 A JP2014040473 A JP 2014040473A JP 2014040473 A JP2014040473 A JP 2014040473A JP 2015165374 A JP2015165374 A JP 2015165374A
Authority
JP
Japan
Prior art keywords
server
processing
distribution
data arrangement
data
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
JP2014040473A
Other languages
English (en)
Other versions
JP5887371B2 (ja
Inventor
絵里子 岩佐
Eriko Iwasa
絵里子 岩佐
雅志 金子
Masashi Kaneko
雅志 金子
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014040473A priority Critical patent/JP5887371B2/ja
Publication of JP2015165374A publication Critical patent/JP2015165374A/ja
Application granted granted Critical
Publication of JP5887371B2 publication Critical patent/JP5887371B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】分散システムを構成する処理サーバの追加または削除が発生した際に、システムのオーバーヘッドを避けつつデータ一貫性担保を可能とする分散システムおよび分散処理方法を提供する。
【解決手段】分散システムの管理サーバ6は、処理サーバ4の追加または削除情報を受信した場合、データ配置テーブル102を更新し、全ての処理サーバ4に対して更新したデータ配置テーブル102を配信し、全ての処理サーバ4からデータ配置テーブル102の更新完了通知を受け取った後に、全ての振り分けサーバ3に対して更新したデータ配置テーブル102を配信し、全ての振り分けサーバ3からデータ配置テーブル102の更新完了通知を受け取った時点でデータ配置テーブル102の更新を完了する。
【選択図】図2

Description

本発明は、分散システムおよび分散処理方法の技術に関する。
トランザクション処理システムでは、クライアントから処理サーバへとトランザクションの要求が送信されると、処理サーバがその処理を行い、その結果を応答信号としてクライアントへと返信する。そして、複数の処理サーバが協調して動作する分散処理システムとすることで、クライアントの台数増加に対応する。分散処理システムのロードバランサは、クライアントからそれぞれ発行される要求を、単一の出入り口として受け付けると、それらの要求を複数の処理サーバにそれぞれ分配する。
ロードバランサが要求された処理を振り分ける手法としては、コンシステント・ハッシングを挙げることができる(非特許文献1)。コンシステント・ハッシングは、データの保管要求と取得要求のみを受け付ける単純なインタフェースを持ち、受信した信号の要求するデータの識別子を見て、複数のサーバのうち何れのサーバが対象のデータを管理しているかを特定し、そのサーバに対して保管要求及び取得要求を振り分けることを行う。
トランザクション処理システムが扱うトランザクションとして、複数のトランザクション状態間が関連する場合も考えられる。ここで、トランザクション間が「関連する」とは、例えばSIP(Session Initiation Protocol)におけるB2BUA(Back-to-Back User Agent)のように、2つの呼をアプリケーションサーバが終端し、これを常に対として処理を行うような形態を指す。
なお、B2BUAとは、2台のクライアント間でSIPのセッションを接続するときに、対応しているSIPの方式の違いなどにより、その2台が直接接続できないときに、その2台のセッションを仲介する別の装置(B2BUA)を設けることにより、B2BUAをアダプタとして2台のクライアントがセッションを接続できるようにする仕組みである。
そこで、関連する複数のトランザクションを同じ1つの処理サーバへと分配することにより、複数のトランザクション間での処理の待ち合わせ時間を短縮することができる。一方、複数のトランザクション間の関連性は、時間の経過によって変化することもある。例えば、B2BUA接続によるユーザAとユーザBとによる二者通話と、ユーザCとユーザDとによる二者通話が成立していた場合に、呼を切断することなく、それぞれA−C、B−D間の二者通話に入れ替える場合が、挙げられる。しかし、従来のトランザクション分配処理では、このような複数のトランザクション間の関連性を考慮した効率的な分配が行われておらず、トランザクションの処理効率を落としてしまっている。
特許文献1には、クライアントからのトランザクションの要求信号を処理する処理サーバが複数台存在し、それらの前記処理サーバに対して前記要求信号を分散させる分散処理装置が記載されている。特許文献1に記載の分散処理装置は、複数の関連するトランザクションを単位として1つの配置IDを割り当てるとともに、その複数の関連するトランザクションの構成変更を行うことで、複数のトランザクション間の関連性を考慮した効率的なトランザクション分配処理を実現しようとする。
David Karger, et.al., "Consistent Hashing and Random TreesDistributed Caching Protocols for Relieving Hot Spots on the World Wide Web",[online],[平成26年2月25検索],インターネット<URL:http://www.akamai.com/dl/technical_publications/ConsistenHashingandRandomTreesDistributedCachingprotocolsforrelievingHotSpotsontheworldwideweb.pdf>
特開2012−160075号公報
しかしながら、特許文献1に記載の分散処理装置にあっては、処理サーバの追加または削除に伴うデータ配置情報を更新するタイミングが全ての振り分けサーバおよび処理サーバで一致することは分散システムである以上困難である。すなわち、各処理サーバが要求信号受信時にアクセスすべきデータ管理装置を特定できない可能性があり、確実に処理を実行するためには、全ての処理サーバに対する問い合わせを行わざるを得ない。
以下、上記課題について詳細に説明する。
従来の分散処理システムでは、データ配置テーブルの更新タイミングを全ての振り分けサーバ、処理サーバ間で一致させることは非常に困難である。例えば、振り分けサーバが処理サーバより先にデータ配置テーブルを更新した場合、処理サーバでは他の処理サーバが収容するデータ管理装置へのアクセスが正しく実行されず、データの一貫性が担保されないケースが起こり得る。具体的には、一部の振り分けサーバでのみデータ配置テーブルが更新されており、振り分けサーバが初期信号と再送信号で異なる処理サーバに対して要求信号を転送したが、処理サーバではデータ配置テーブルの更新(すなわち処理サーバの追加・削除の発生)を認識しておらず、初期信号と再送信号を受け取った双方の処理サーバで処理が実行されるデータの一貫性が崩れるケースが挙げられる。
このようなケースを防ぐためには、処理サーバは、常に処理サーバの追加または削除が発生している可能性を考慮して、他の処理サーバが収容するデータ管理装置へアクセスしデータの有無を確認する必要がある。例えば、処理サーバが1台追加されると、データ配置情報上のある1台のサーバの領域を分割して担当することになる。このため、データを保持している可能性のあるデータ管理装置は、データ配置情報に従って処理サーバが収容するデータ管理装置へアクセスしデータの有無を確認する必要がある。この問い合わせを常に行うことは、システムのオーバーヘッドとなり望ましくない。
このような背景を鑑みて本発明がなされたのであり、本発明は、分散システムを構成する処理サーバの追加または削除が発生した際に、システムのオーバーヘッドを避けつつデータ一貫性の担保を可能とする分散システムおよび分散処理方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、クライアントからの要求を受けて、その要求を処理する複数の処理サーバと、複数の前記処理サーバの中から前記要求の分配先として1台の前記処理サーバを選択する振り分けサーバとを備える分散システムであって、前記処理サーバのIDごとに、当該処理サーバが担当する配置IDの始点IDから終点IDまでの範囲を示す値域を対応づけるデータ配置情報を記憶するとともに、当該データ配置情報を前記処理サーバおよび前記振り分けサーバに配信して前記処理サーバおよび前記振り分けサーバを管理する管理サーバを備え、前記管理サーバは、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新し、当該更新されたデータ配置情報を用いて、全ての前記処理サーバが自身の前記データ配置情報を更新した後に、前記振り分けサーバが自身の前記データ配置情報を更新することを特徴とする。
このようにすることで、分散システムを構成する処理サーバの追加または削除が発生した場合、全ての処理サーバが更新されたデータ配置情報に従い要求信号の処理を行っていることを保証して、データ一貫性を担保することができる。
また、請求項2に記載の発明は、前記管理サーバが、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新し、全ての前記処理サーバに対して更新した前記データ配置情報を配信し、全ての前記処理サーバから前記データ配置情報の更新完了通知を受け取った後に、全ての前記振り分けサーバに対して更新した前記データ配置情報を配信し、全ての前記振り分けサーバから前記データ配置情報の更新完了通知を受け取ることを特徴とする。
このようにすることで、分散システムを構成する処理サーバの追加または削除が発生した場合、データ配置情報の配信と更新完了通知の受信により、まず処理サーバに対して、次いで振り分けサーバに対してデータ配置テーブルを更新することができる。
また、請求項3に記載の発明は、前記管理サーバは、前記処理サーバおよび前記振り分けサーバの外部に設けられた外部サーバ、または、複数の前記処理サーバのうち予め設定された前記処理サーバ、もしくは、複数の前記振り分けサーバのうち予め設定された前記振り分けサーバであることを特徴とする。
このようにすることで、管理サーバが、外部に設けられた外部サーバ、または、処理サーバもしくは振り分けサーバのいずれの場合であっても処理サーバの追加または削除に伴うデータ配置情報の更新および配信を実現することができる。
また、請求項4に記載の発明は、前記処理サーバおよび前記振り分けサーバが、前記データ配置情報を共有しており、前記管理サーバは、全ての前記処理サーバおよび前記振り分けサーバに対して、前記処理サーバのみが参照することを指定するフラグを付した前記データ配置情報を配信し、全ての前記処理サーバから当該配信した前記データ配置情報の更新完了通知を受け取った後に、全ての前記処理サーバおよび前記振り分けサーバに対して、前記振り分けサーバおよび前記処理サーバが参照することを指定するフラグを付した更新した前記データ配置情報を配信し、全ての前記振り分けサーバから当該配信した前記データ配置情報の更新完了通知を受け取ることを特徴とする。
このようにすることで、振り分けサーバおよび処理サーバが1台のサーバに縮退され、かつこれらがデータ配置情報を共有する構成でも適用することができる。
また、請求項5に記載の発明は、クライアントからの要求を受けて、その要求を処理する複数の処理サーバと、複数の前記処理サーバの中から前記要求の分配先として1台の前記処理サーバを選択する振り分けサーバとを備える分散システムの分散処理方法であって、前記処理サーバのIDごとに、当該処理サーバが担当する配置IDの始点IDから終点IDまでの範囲を示す値域を対応づけるデータ配置情報を記憶するとともに、当該データ配置情報を前記処理サーバおよび前記振り分けサーバに配信して前記処理サーバおよび前記振り分けサーバを管理する管理サーバを有し、前記管理サーバにおいて、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新し、当該更新されたデータ配置情報を用いて、全ての前記処理サーバが自身の前記データ配置情報を更新した後に、前記振り分けサーバが自身の前記データ配置情報を更新することを特徴とする。
このようにすることで、分散システムを構成する処理サーバの追加または削除が発生した場合、全ての処理サーバが更新されたデータ配置情報に従い要求信号の処理を行っていることを保証して、データ一貫性を担保することができる。
また、請求項6に記載の発明は、前記管理サーバは、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新する工程と、全ての前記処理サーバに対して更新した前記データ配置情報を配信する工程と、全ての前記処理サーバから前記データ配置情報の更新完了通知を受け取った後に、全ての前記振り分けサーバに対して更新した前記データ配置情報を配信する工程と、全ての前記振り分けサーバから前記データ配置情報の更新完了通知を受け取る工程と、を有することを特徴とする請求項5に記載の分散処理方法。
このようにすることで、分散システムを構成する処理サーバの追加または削除が発生した場合、データ配置情報の配信と更新完了通知の受信により、まず処理サーバに対して、次いで振り分けサーバに対してデータ配置テーブルを更新することができる。
本発明によれば、分散システムを構成する処理サーバの追加または削除が発生した際に、システムのオーバーヘッドを避けつつデータ一貫性の担保を可能とする分散システムおよび分散処理方法を提供することができる。
本発明の実施形態に係るトランザクション処理システムを示す構成図である。 本発明の実施形態に係るトランザクション処理システムの各サーバの詳細を示す構成図である。 本発明の実施形態に係るトランザクション管理テーブルを示す図である。 本発明の実施形態に係るトランザクション処理システムのデータ配置テーブルを示す図である。 本発明の実施形態に係るトランザクション処理システムの管理サーバが分散システム内に配置された構成図である。 本発明の実施形態に係るトランザクション処理システムのデータ配置テーブルを配信する処理を示すフローチャートである。 本発明の実施形態に係るトランザクション処理システムのデータ配置テーブルを示す図である。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、トランザクション処理システムを示す構成図である。
図1に示すように、トランザクション処理システム1000は、クライアント1と、ロードバランサ2と、分散システム10とがネットワークで接続されて構成される。分散システム10は、複数台の振り分けサーバ3と、複数台の処理サーバ4と、データ管理装置5と、管理サーバ6と、から構成される。
分散システム10は、クライアント1からのトランザクションの要求信号を処理する処理サーバ4が複数台存在し、それらの処理サーバ4に対して要求信号を分散させる分散処理装置である。
分散システム10は、クライアント1からの要求を受けて、その要求を処理する複数の処理サーバ4と、複数の処理サーバ4の中から要求の分配先として1台の処理サーバ4を選択する振り分けサーバ3とを備える。
図1のトランザクション処理システムを構成する各装置の台数は、図1に例示した台数に限定されず、任意の台数としてもよい。また、振り分けサーバ3、処理サーバ4、データ管理装置5を別の筐体で記載したが、同一サーバ上で別々の機能として動作させることも可能である。
なお、図1のトランザクション処理システムを構成する各装置は、CPU(Central Processing Unit)とメモリとハードディスク(記憶手段)とネットワークインタフェースとを有するコンピュータとして構成され、このコンピュータは、CPUが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
トランザクション処理システムで動作するプログラムの一例として、電話などの呼(セッション)処理を行うアプリケーションサーバを実現するための、分散処理ミドルウェアがある。分散処理ミドルウェアは、アプリケーションを分散処理ミドルウェアとは別に用意するもので、アプリケーションからは装置が分散していることを意識することなくサービスの処理を実現することができるようにするものである。このような分散処理ミドルウェアを使うことによって、外部からは単一のアプリケーションサーバのように見せながら、実態は複数台のサーバによる台数効果によって大規模な処理を行うことが可能になる。
クライアント1は、処理サーバ4に対して、トランザクションの処理を要求する。ロードバランサ2は、クライアント1からの要求を受け、分散システム内の複数台の振り分けサーバ3のうちの1台を選択し、その選択した振り分けサーバ3に処理を依頼する。ここで、クライアント1からは、ロードバランサ2という出入り口を介して、分散システムがあたかも単一の装置で動作するシステムとして見えるため、分散システム内の装置構成を柔軟に変更する(装置の追加や削除など)ことができる。
振り分けサーバ3は、ロードバランサ2からの要求を受け、複数台の処理サーバ4のうち要求信号の分配先である1台を選択し、その選択した処理サーバ4に処理を依頼する。ここで、処理サーバ4の選択処理においては、データ管理装置5内に管理されているトランザクションのデータの所在が参照される。まず、処理サーバ4とデータ管理装置5とは1対1で接続されており、あるトランザクションのデータは、ある1台のデータ管理装置5が格納している。よって、要求されたトランザクションのデータを管理するデータ管理装置5を収容する処理サーバ4を、振り分けサーバ3が選択する必要がある。トランザクションのデータとは、トランザクションを処理するときに必要なデータであり、例えば、呼処理における呼の識別子、発信者、受信者、状態遷移を含む。
処理サーバ4は、振り分けサーバ3からの要求を受け、データ管理装置5内のトランザクションのデータにアクセスすることで、トランザクションの要求を処理する。
データ管理装置5は、処理サーバ4に収容され、各処理サーバ4に対してそれぞれトランザクションデータを格納する。処理サーバ4は、振り分けサーバ3からの要求を受け、データ管理装置5内のトランザクションのデータにアクセスすることで、トランザクションの要求を処理する。
管理サーバ6は、処理サーバ4のIDごとに、当該処理サーバ4が担当する配置IDの始点IDから終点IDまでの範囲を示す値域を対応づけるデータ配置テーブル102(データ配置情報)(後記図4参照)を記憶するとともに、当該データ配置テーブル102を処理サーバ4および振り分けサーバ3に配信して処理サーバ4および振り分けサーバ3を管理する。
管理サーバ6は、処理サーバ4の追加または削除が発生した場合、自身が記憶するデータ配置テーブル102を更新し、当該更新されたデータ配置テーブル102を用いて全ての処理サーバ4が記憶するデータ配置テーブル102を更新させた後に、振り分けサーバ3が記憶するデータ配置テーブル102を更新させる。
管理サーバ6は、振り分けサーバ3と処理サーバ4の双方が保持するデータ配置テーブル102(図4参照)の更新タイミングを管理する。管理サーバ6は、処理サーバ4の追加または削除が発生した場合、全ての処理サーバ4のデータ配置テーブル102を更新した後に、振り分けサーバ3のデータ配置テーブル102を更新するデータ配置テーブル更新制御を行う。なお、データ配置テーブル更新制御の詳細については、図6を参照し後記する。また、管理サーバ6は、分散システム10内の振り分けサーバ3が管理サーバ6の備える機能を持つ構成、または処理サーバ4が管理サーバ6の備える機能を持つ構成でもよく図5により後記する。
図2は、トランザクション処理システムの各サーバの詳細を示す構成図である。
図2に示すように、振り分けサーバ3は、トランザクション分散部31と、データ配置テーブル102(データ配置情報)と、を有する。処理サーバ4は、トランザクション処理部41と、配置ID割当部42と、集合変更部43と、他管理データ取得部44と、トランザクション管理テーブル101、データ配置テーブル102と、を有する。
なお、振り分けサーバ3のデータ配置テーブル102と処理サーバ4のデータ配置テーブル102とを共有する形態を採ることも可能である。
<トランザクション分散部>
トランザクション分散部31は、その配置IDを検索キーとして、データ配置テーブル102(図4参照)から、トランザクションの処理要求を担当する処理サーバ4を決定し、その処理サーバ4のトランザクション処理部41へと要求を送信する。トランザクションの処理要求に配置IDが含まれていないときには、そのトランザクションIDを検索キーとして、トランザクション管理テーブル101(図3参照)から配置IDを取得してもよい。
<トランザクション処理部>
トランザクション処理部41は、トランザクションの要求を受け、データ管理装置5内のトランザクションのデータにアクセスして、トランザクションの要求を処理する。トランザクション処理部41は、トランザクションの要求を処理する過程において、データ管理装置5内のトランザクションのデータの配置に変更(新規データ作成、既存データ移動、既存データ削除など)が発生したときには、配置ID割当部42に対して、トランザクションのデータに対して割り当てる配置IDの割当処理を依頼する。
また、トランザクション処理部41は、トランザクションの要求を処理する過程において、トランザクションのデータと、配置IDとの対応関係に変更が発生したときには、集合変更部43に対して、その対応関係の変更処理を依頼する。トランザクション処理部41は、トランザクションの要求を処理する過程において、他装置の処理サーバ4配下のデータ管理装置5内にデータアクセスを行うときには、他管理データ取得部44に対して、そのデータアクセスを依頼する。
<配置ID割当部>
配置ID割当部42は、1つ以上のトランザクションに対して、1つの配置IDを割り当て、その結果をトランザクション管理テーブル101(図3参照)へと格納する。なお、複数のトランザクションをグループ化して1つの配置IDを割り当てるときには、同じ配置IDが割り当てられた複数のトランザクションは、互いに関連するトランザクションである。「関連するトランザクション」とは、例えば、B2BUAにより接続される2つの呼処理が挙げられる。ただし、トランザクションの種類は呼処理に限定されず、また、トランザクションの本数は2つに限定されない。
<集合変更部>
集合変更部43は、複数のトランザクション間の関連性がトランザクションの処理中に変更されるときに、その変更をトランザクション管理テーブル101へと反映させるとともに、トランザクション管理テーブル101の更新内容を基に、データ管理装置5内のトランザクションのデータの移動処理を制御する。
<他管理データ取得部>
他管理データ取得部44は、データ配置テーブル102を参照してアクセス先のデータ管理装置5を決定する。
他管理データ取得部44は、トランザクション処理部41からの指示を受け、他の処理サーバ4が収容するデータ管理装置5へのデータアクセスを行う。なお、トランザクション処理部41からの他装置で管理するデータの取得指示は、例えば、処理サーバ4の追加・削除が発生したことに伴い、データ配置テーブル102(図4参照)が更新され、要求信号を受信した処理サーバ4が接続されているデータ管理装置5とは別のデータ管理装置5にデータが配置されており、そのデータ管理装置5からデータ取得が必要となるタイミングにも通知される。
また、他の例としては、B2BUAにおける話者の入れ替えを行うにあたって、入れ替え先のB2BUAの各トランザクション状態が通話確立状態になっているか確認するなどの、別のB2BUA状態へのアクセスが発生したときに、通知される。まず、他管理データ取得部44は、トランザクション処理部41から通知された配置IDを基にデータ配置テーブル102を検索し配置IDを担当する処理サーバ4を特定する。他管理データ取得部44は、特定された他装置である処理サーバ4に収容されるデータ管理装置5から、トランザクション処理部41により指示されたデータを取得する。これにより、複数台の処理サーバ4が1台のデータ管理装置5を直接共有(接続)していなくても、自身の担当しないデータを取得することができる。
<トランザクション管理テーブル>
図3は、トランザクション管理テーブル101を示す図である。
図3に示すように、トランザクション管理テーブル101は、配置IDごとに、その配置IDが割り当てられている1つ以上のトランザクションのIDを対応づける表である。例えば、配置ID「0」と配置ID「1」のレコードでは、それぞれB2BUAにより接続される2つのトランザクションがグループ化されて1つの配置IDに対応する。また、配置ID「2」のレコードでは、SIPにおけるSIPプロキシに相当するような非常にシンプルな1つのトランザクション「T4」に対応する。
<データ配置テーブル>
図4は、データ配置テーブル102(データ配置情報)を示す図である。
図4に示すように、データ配置テーブル102は、処理サーバ4のIDごとに、その処理サーバ4(図2参照)が担当する配置IDの値域(始点IDから終点IDまでの範囲を示す)を対応づける表である。処理サーバ4のIDは、担当する配置IDの始点となる配置IDと同じ値としてもよいし、ランダムな値としてもよい。配置IDとは、1つ以上のトランザクションのデータに対して割り当てられるIDであり、同じ配置IDが割り当てられるトランザクションのデータは、同じ1つのデータ管理装置5内に格納される。例えば、配置ID「100」が割り当てられるトランザクションのデータは、処理サーバ4「P1」配下のデータ管理装置5(図2参照)に格納される。トランザクションの状態遷移とは、話し中、呼び出し中などの呼の状態を示すパラメータである。サーバの追加があった場合には、1つの配置IDの値域を選択して、その選択した値域を分割して追加にも割り当てる。逆に、サーバの削除があった場合には、そのサーバが担当していた値域を残りのサーバの値域に統合する。これにより、サーバの追加・削除に伴う配置IDの値域の変更量、すなわち担当サーバの変更となるデータの移動を限定することが可能である。
次に、管理サーバ6が分散システム10内に配置された構成例について説明する。
図5は、管理サーバ6が分散システム内に配置された構成図である。図1と同一構成部分には同一符号を付して説明を省略する。
図5(a)に示すように、分散システム10Aは、複数の振り分けサーバ3のうち予め設定された1台が管理サーバ6としての機能を有する構成例である。なお、複数の振り分けサーバ3のうちいずれの振り分けサーバ3に管理サーバ6の機能を持たせるかは、管理者等が任意に設定することができる。
図5(b)に示すように、分散システム10Bは、複数の処理サーバ4のうち予め設定された1台が管理サーバ6としての機能を有する構成例である。同様に、複数の処理サーバ4のうちいずれの処理サーバ4に管理サーバ6の機能を持たせるかは、管理者等が任意に設定することができる。
なお、分散システム10は、トランザクション処理以外の用途にも使用することが可能であり、トランザクション管理テーブル101や集合変更部43を具備しない形態も採り得る。
以下、上述のように構成されたトランザクション処理システム1000の処理サーバ4の追加または削除に伴うデータ配置テーブル102の更新およびその配信方法について説明する。
まず、処理サーバ4(図2参照)の追加または削除が発生した場合について考える。処理サーバ4が追加された場合、データ配置テーブル102(図4参照)に新たに追加された処理サーバ4を追加する。また、処理サーバ4が削除された場合、データ配置テーブル102から削除された処理サーバ4を削除する必要がある。
図1に示すように、分散システム10の外部にあるデータ配置テーブル102を管理する管理サーバ6が、分散システム10を構成する全ての振り分けサーバ3および処理サーバ4にデータ配置テーブル102を配信する構成例についての動作を説明する。
図2のトランザクション処理システム1000において、データ配置テーブル102が更新されると、データ管理装置5内のトランザクションのデータ移動処理が必要となる。この移動処理が完了するまでは、移動対象となっているデータに関連するトランザクション処理時に他の処理サーバ4が収容するデータ管理装置5へのアクセスが必要となる。なお、このトランザクションデータ移動処理は、トランザクションの処理要求時に該当するデータを移動することも可能であるし、トランザクションの処理要求とは別にバックグラウンドで移動することも可能である。
ここで、解決課題で述べたように、特許文献1に記載の分散処理装置にあっては、処理サーバの追加又は削除に伴うデータ配置テーブル102を更新するタイミングが全ての振り分けサーバ・処理サーバで一致することは分散システムである以上困難であった。
本発明者らは、上記の問題は、処理サーバ4の追加または削除に伴い、振り分けサーバ3の振り分け先が変更になった時点で、処理サーバ4が最新のデータ配置テーブル102を持ち、データの移行が完了するまでの限定的な期間のみデータの一貫性を考慮すればよいことに着目した。
そこで、本実施形態のトランザクション処理システムでは、管理サーバ6が、データ配置テーブル102の更新段階を2段階に分け、まず全ての処理サーバ4のデータ配置テーブル102を更新し、次いで全ての振り分けサーバ3のデータ配置テーブル102を更新する。このように、データ配置テーブル102を処理サーバ4と振り分けサーバ3との順番で更新するデータ配置テーブル更新制御を行う。
[データ配置テーブル配信フロー]
図6は、データ配置テーブル102を配信する処理を示すフローチャートである。本フローは、データ配置テーブル102を管理する管理サーバ6(図1および図5)において実行される。
まず、ステップS11で管理サーバ6は、例えば図示しないネットワーク管理装置から処理サーバ4の追加・削除情報を受信する。
ステップS12では、管理サーバ6は、自身が記憶するデータ配置テーブル102を更新する。
ステップS13では、管理サーバ6は、全処理サーバ4に対して更新されたデータ配置テーブル102を配信する。
ステップS14では、管理サーバ6は、全処理サーバ4から配信したデータ配置テーブル102の更新完了通知を受け取ったか否かを判定する。全処理サーバ4から配信したデータ配置テーブル102の更新完了通知を受け取っていない場合は、更新完了通知を受け取るまで待機する(ステップS14:No)。
全処理サーバ4から配信したデータ配置テーブル102の更新完了通知を受け取った場合(ステップS14:Yes)、ステップS15で管理サーバ6は、全振り分けサーバ3に対して自身が記憶するデータ配置テーブル102を配信する。
ステップS16では、管理サーバ6は、全振り分けサーバ3から配信したデータ配置テーブル102の更新完了通知を受け取ったか否かを判定する。全振り分けサーバ3から配信したデータ配置テーブル102の更新完了通知を受け取っていない場合は、更新完了通知を受け取るまで待機する(ステップS16:No)。
全振り分けサーバ3からデータ配置テーブル102の更新完了通知を受け取った時点(ステップS16:Yes)でデータ配置テーブル102の更新は完了し、処理サーバ4の追加または削除に伴うデータ配置テーブル102の更新および配信処理を終了する。
なお、データ配置テーブル102の配信は、更新されたデータのみの差分データを配信する形式としてもよい。
このフローによるデータ配置テーブル102の配信により、処理サーバ4の追加または削除に伴い振り分けサーバ3の振り分け先が変更された時点で、全処理サーバ4は、最新のデータ配置テーブル102を保持していることとなる。
各処理サーバ4では、データ配置テーブル102を更新次第、データ配置テーブル102に従い動作を行う。この時、データの一貫性を考慮し、データを保持している可能性のある処理サーバ4が収容するデータ管理装置5に対してデータの有無を問い合わせし、その問い合わせを受け取った各処理サーバ4が処理を行う。また、振り分けサーバ3もデータ配置テーブル102を更新次第、データ配置テーブル102に従い要求信号の転送を開始する。
[変形例]
変形例のトランザクション処理システムは、振り分けサーバ3、処理サーバ4、およびデータ管理装置5が1台のサーバにまとめられ(以下、各装置がまとめられ1台となった構成を「縮退」という)、かつデータ配置テーブル102を共有する構成を採る例である。なお、振り分けサーバ3および処理サーバ4が1台のサーバに縮退され、かつこれらがデータ配置テーブル102を共有する構成でも同様に適用可能である。
図7は、縮退構成時のデータ配置テーブル102Aを示す図である。図7は、振り分けサーバ3、処理サーバ4、およびデータ管理装置5が1台のサーバに縮退された場合のデータ配置テーブル102Aの構成例である。図4のデータ配置テーブル102と同一構成要素には同一名称を付している。
図7に示すように、データ配置テーブル102Aは、図4のデータ配置テーブル102上に、さらにフラグを設けている。具体的には、図7(a)は、処理サーバ4のみが参照することを指定するフラグ「1」を付したデータ配置テーブル102Aを示す。図7(b)は、振り分けサーバ3および処理サーバ4が参照することを指定するフラグ「2」を付したデータ配置テーブル102Aを示す。
縮退されたサーバを構成する処理サーバ4および振り分けサーバ3は、データ配置テーブル102Aを共有している。
管理サーバ6(図1および図5)は、処理サーバ4の追加または削除が発生した場合、自身が記憶するデータ配置テーブル102Aを更新する。ここでは、図7(a)のデータ配置テーブル102Aにおいて、フラグが「1」となっているサーバP6が新たに追加されたサーバである。
管理サーバ6は、1回目の配信で、自身が更新したサーバP4のフラグが「1」のデータ配置テーブル102Aを、縮退されたサーバを構成する処理サーバ4および振り分けサーバ3に配信する。図7(a)に示すように、データ配置テーブル102Aのフラグ「1」は、処理サーバ4のみが参照することを指定するフラグである。このため、縮退されたサーバを構成する処理サーバ4および振り分けサーバ3は、データ配置テーブル102Aを受信するものの、縮退されたサーバを構成する処理サーバ4のみがサーバP6を認識した処理を行う(縮退されたサーバが処理サーバ4として動作するときは、その処理サーバ4がサーバP6が存在するものとして動作する)。
このとき、縮退されたサーバを構成する振り分けサーバ3は、サーバP6を無視する。ここで「無視する」とは、当該振り分けサーバ3が、元々のID空間で振り分ける意味である。縮退されたサーバを構成する振り分けサーバ3は、サーバP6を無視するが、サーバP6の領域を無視することはできない。縮退されたサーバを構成する振り分けサーバ3は、サーバP6の領域をサーバP5が持っているように認識する。ここでは、当該振り分けサーバ3が、サーバP6の領域(800〜899)をサーバP5の領域(800〜999)であると判断して動作する。
管理サーバ6は、2回目の配信で、データ配置テーブル102AのサーバP6のフラグを「2」に変更したデータ配置テーブル102Aを配信する。図7(b)に示すように、データ配置テーブル102Aのフラグ「2」は、振り分けサーバ3および処理サーバ4が参照することを指定するフラグである。このため、縮退されたサーバを構成する処理サーバ4および振り分けサーバ3は、フラグ「2」が付されたデータ配置テーブル102Aを受信すると、縮退されたサーバを構成する振り分けサーバ3、処理サーバ4共にサーバP6を認識した処理(新しくサーバP6が存在するデータ配置テーブル102Aに従った処理)を行う。
その後、管理サーバ6は、全てのトランザクションデータの移行が完了し、分散システム10上のデータ配置が安定した段階でフラグを「0」に戻す。
上記フラグの機能について、補足して説明する。図6のフローでは、データ配置テーブル102をまず処理サーバ4に、次いで振り分けサーバ3に2段階で配信していた。図7の変形例では、管理サーバ6は、データ配置テーブル102Aを縮退されたサーバ(処理サーバ4と振り分けサーバ3とを両方含む)に一度で配信する(すなわちフラグ「1」でサーバP6が記述された状態のデータ配置テーブル102Aを最初に配信する)。フラグを見て、フラグが「1」の場合は、縮退されたサーバが振り分けサーバ3である場合、当該振り分けサーバ3は、サーバP6を無視して(データ配置テーブル102AのサーバP6がいないものとして)処理をする。
以上説明したように、本実施の形態に係る分散システム10は、複数台の処理サーバ4から要求信号の分配先である1台の処理サーバ4を選択する振り分けサーバ3と、処理サーバ4のIDごとに、当該処理サーバ4が担当する配置IDの始点IDから終点IDまでの範囲を示す値域を対応づけるデータ配置テーブル102と、データ配置テーブル102の更新タイミングを管理する管理サーバ6と、を備える。
管理サーバ6は、処理サーバ4の追加または削除情報を受信した場合、データ配置テーブル102を更新し、全ての処理サーバ4に対して更新したデータ配置テーブル102を配信し、全ての処理サーバ4からデータ配置テーブル102の更新完了通知を受け取った後に、全ての振り分けサーバ3に対して更新したデータ配置テーブル102を配信し、全ての振り分けサーバ3からデータ配置テーブル102の更新完了通知を受け取った時点でデータ配置テーブル102の更新を完了する。
このように、本実施形態では、分散システム10は、処理サーバ4の追加または削除が発生した場合、データ配置テーブル102の更新を2段階とし、全ての処理サーバ4のデータ配置テーブル102を更新した後に、振り分けサーバ3のデータ配置テーブル102を更新する。
従来例では、振り分けサーバ3が処理サーバ4より先にデータ配置テーブル102を更新した場合、処理サーバ4では他の処理サーバ4が収容するデータ管理装置5へのアクセスが正しく実行されず、データの一貫性が担保されないケースが起こり得た。これに対して、本実施形態によれば、処理サーバ4の追加または削除が発生した際に、先にデータ配置テーブル102を処理サーバ4に配信してから、次に振り分けサーバ3に配信することで、データ一貫性を担保することができる。すなわち、振り分けサーバ3が、1台でも更新後のデータ配置テーブル102に従い要求信号の転送を開始した時点で、全ての処理サーバ4が更新されたデータ配置テーブル102に従い要求信号の処理を行っていることを保証することができる。
その結果、振り分けサーバ3、処理サーバ4、およびデータ管理装置5により構成された分散システム10において、分散システムの構成変更(分散システム10を構成する処理サーバ4の追加または削除)が発生した際に、システムのオーバーヘッドを避けつつデータ一貫性の担保を実現することができる。
以上、本発明の実施形態について説明したが、本発明は、ここで説明した実施形態に限定されるものではない。
1 クライアント
2 ロードバランサ
3 振り分けサーバ
4 処理サーバ
5 データ管理装置
6 管理サーバ
10 分散システム
31 トランザクション分散部
41 トランザクション処理部
42 配置ID割当部
43 集合変更部
44 他管理データ取得部
101 トランザクション管理テーブル
102,102A データ配置テーブル(データ配置情報)
1000 トランザクション処理システム

Claims (6)

  1. クライアントからの要求を受けて、その要求を処理する複数の処理サーバと、複数の前記処理サーバの中から前記要求の分配先として1台の前記処理サーバを選択する振り分けサーバとを備える分散システムであって、
    前記処理サーバのIDごとに、当該処理サーバが担当する配置IDの始点IDから終点IDまでの範囲を示す値域を対応づけるデータ配置情報を記憶するとともに、当該データ配置情報を前記処理サーバおよび前記振り分けサーバに配信して前記処理サーバおよび前記振り分けサーバを管理する管理サーバを備え、
    前記管理サーバは、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新し、
    当該更新されたデータ配置情報を用いて、全ての前記処理サーバが自身の前記データ配置情報を更新した後に、前記振り分けサーバが自身の前記データ配置情報を更新することを特徴とする分散システム。
  2. 前記管理サーバは、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新し、
    全ての前記処理サーバに対して更新した前記データ配置情報を配信し、
    全ての前記処理サーバから前記データ配置情報の更新完了通知を受け取った後に、
    全ての前記振り分けサーバに対して更新した前記データ配置情報を配信し、全ての前記振り分けサーバから前記データ配置情報の更新完了通知を受け取る
    ことを特徴とする請求項1に記載の分散システム。
  3. 前記管理サーバは、前記処理サーバおよび前記振り分けサーバの外部に設けられた外部サーバ、または、複数の前記処理サーバのうち予め設定された前記処理サーバ、もしくは、複数の前記振り分けサーバのうち予め設定された前記振り分けサーバである
    ことを特徴とする請求項1または請求項2に記載の分散システム。
  4. 前記処理サーバおよび前記振り分けサーバが、前記データ配置情報を共有しており、
    前記管理サーバは、全ての前記処理サーバおよび前記振り分けサーバに対して、前記処理サーバのみが参照することを指定するフラグを付した前記データ配置情報を配信し、
    全ての前記処理サーバから当該配信した前記データ配置情報の更新完了通知を受け取った後に、
    全ての前記処理サーバおよび前記振り分けサーバに対して、前記振り分けサーバおよび前記処理サーバが参照することを指定するフラグを付した更新した前記データ配置情報を配信し、全ての前記振り分けサーバから当該配信した前記データ配置情報の更新完了通知を受け取る
    ことを特徴とする請求項1に記載の分散システム。
  5. クライアントからの要求を受けて、その要求を処理する複数の処理サーバと、複数の前記処理サーバの中から前記要求の分配先として1台の前記処理サーバを選択する振り分けサーバとを備える分散システムの分散処理方法であって、
    前記処理サーバのIDごとに、当該処理サーバが担当する配置IDの始点IDから終点IDまでの範囲を示す値域を対応づけるデータ配置情報を記憶するとともに、当該データ配置情報を前記処理サーバおよび前記振り分けサーバに配信して前記処理サーバおよび前記振り分けサーバを管理する管理サーバを有し、
    前記管理サーバにおいて、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新し、
    当該更新されたデータ配置情報を用いて、全ての前記処理サーバが自身の前記データ配置情報を更新した後に、前記振り分けサーバが自身の前記データ配置情報を更新することを特徴とする分散処理方法。
  6. 前記管理サーバは、前記処理サーバの追加または削除が発生した場合、自身が記憶する前記データ配置情報を更新する工程と、
    全ての前記処理サーバに対して更新した前記データ配置情報を配信する工程と、
    全ての前記処理サーバから前記データ配置情報の更新完了通知を受け取った後に、全ての前記振り分けサーバに対して更新した前記データ配置情報を配信する工程と、
    全ての前記振り分けサーバから前記データ配置情報の更新完了通知を受け取る工程と、
    を有することを特徴とする請求項5に記載の分散処理方法。
JP2014040473A 2014-03-03 2014-03-03 分散システムおよび分散処理方法 Active JP5887371B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014040473A JP5887371B2 (ja) 2014-03-03 2014-03-03 分散システムおよび分散処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014040473A JP5887371B2 (ja) 2014-03-03 2014-03-03 分散システムおよび分散処理方法

Publications (2)

Publication Number Publication Date
JP2015165374A true JP2015165374A (ja) 2015-09-17
JP5887371B2 JP5887371B2 (ja) 2016-03-16

Family

ID=54187840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014040473A Active JP5887371B2 (ja) 2014-03-03 2014-03-03 分散システムおよび分散処理方法

Country Status (1)

Country Link
JP (1) JP5887371B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003768A (ja) * 2011-06-15 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> 状態管理方法、処理装置、および状態管理プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003768A (ja) * 2011-06-15 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> 状態管理方法、処理装置、および状態管理プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015039148; 岩佐  絵里子: 'スケールアウト型セッション制御サーバにおける動的構成変更負荷軽減方式  Load Reduction of Dynamic Scal' 電子情報通信学会技術研究報告 第111巻,第408号, 20120119, pp.65-70, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
JP5887371B2 (ja) 2016-03-16

Similar Documents

Publication Publication Date Title
EP3490224B1 (en) Data synchronization method and system
US10313452B2 (en) Migrating a chat message service provided by a chat server to a new chat server
EP1969476B1 (en) Peer distribution point feature for system management server
US20120221603A1 (en) Distributed mobile services
US20130339295A1 (en) Organizing Data in a Distributed Storage System
US20110289496A1 (en) Method &amp; apparatus for load balancing software update across a plurality of publish/subscribe capable client devices
JP2008544684A (ja) 複数のグループに属するロケーションサーバを用いたユーザのログ情報管理方法及びシステム
WO2014094468A1 (zh) 实现浏览器数据同步的系统、方法及浏览器客户端
JP5352367B2 (ja) 仮想マシン起動端末および仮想マシン起動プログラム
JP2012038152A (ja) 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法
US8751661B1 (en) Sticky routing
KR20140093720A (ko) 클라우드 내의 메시징을 위한 방법 및 장치
JP2014220675A (ja) 通信制御システム
US9760370B2 (en) Load balancing using predictable state partitioning
JP5620881B2 (ja) トランザクション処理システム、トランザクション処理方法、および、トランザクション処理プログラム
EP3101539B1 (en) Selection of compatible resources after updating web application servers
JP4877107B2 (ja) 情報配信システムにおける端末装置及び情報処理プログラム、並びに端末装置の情報処理方法
JP2008233968A (ja) 複数プロセッサに分散されたデータを再配置可能なデータベースサーバ、再配置方法、およびプログラム
JP5544521B2 (ja) 状態管理方法、処理装置、および状態管理プログラム
JP5887371B2 (ja) 分散システムおよび分散処理方法
KR20120052444A (ko) 모바일 메시징 서비스에서의 파일 전송을 지원하는 파일 전송 관리 시스템 및 파일 전송 관리 방법
JP5452516B2 (ja) 分散処理装置、および、分散処理方法
JP2017034399A (ja) Enumシステム、および、enumシステムの負荷分散方法
KR100835528B1 (ko) 구간정보를 이용한 멀티미디어 콘텐츠의 스트리밍 방법 및그 스트리밍 단말기
US20180014295A1 (en) Information processing system, server, and terminal device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160215

R150 Certificate of patent or registration of utility model

Ref document number: 5887371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150