JP2016099969A - 情報処理装置、データ保存システム、及びデータ保存方法 - Google Patents

情報処理装置、データ保存システム、及びデータ保存方法 Download PDF

Info

Publication number
JP2016099969A
JP2016099969A JP2014239251A JP2014239251A JP2016099969A JP 2016099969 A JP2016099969 A JP 2016099969A JP 2014239251 A JP2014239251 A JP 2014239251A JP 2014239251 A JP2014239251 A JP 2014239251A JP 2016099969 A JP2016099969 A JP 2016099969A
Authority
JP
Japan
Prior art keywords
data
information processing
processing apparatus
server
storage
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.)
Withdrawn
Application number
JP2014239251A
Other languages
English (en)
Inventor
高瀬 正明
Masaaki Takase
正明 高瀬
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014239251A priority Critical patent/JP2016099969A/ja
Priority to US14/873,608 priority patent/US20160150010A1/en
Publication of JP2016099969A publication Critical patent/JP2016099969A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

【課題】分散データストアにおけるサーバ間のトラフィックを削減する。【解決手段】情報処理装置は、データの保存先を特定するための情報を格納する第1情報格納部と、第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、第1のデータの保存先が自情報処理装置であるか判定し、第1のデータの保存先が自情報処理装置である場合、第1のデータを保存し、第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、第2の情報処理装置に複製を送信し、第1のデータの保存先が自情報処理装置とは異なる第3の情報処理装置である場合、第1のデータを第3の情報処理装置に送信し、第1のデータの複製を保存する保存処理部とを有する。【選択図】図2

Description

本発明は、分散データストアに関する。
複数のサーバによって実現される分散データストアにおいては、システムの可用性を高め、クライアント端末から受け付けたデータ(以下、オブジェクトと呼ぶ)のレプリカが生成される。例えば或る文献は、マスタ計算機とレプリカ計算機とを有するシステムを開示する。マスタ計算機は、オリジナルのデータを取り扱い、レプリカ計算機は、オリジナルのデータの複製を取り扱う。また、或る文献は、マスタサイトとレプリカサイトとを備え、マスタサイト及びレプリカサイトにデータを分散して保存するシステムを開示する。
なお、分散データストア内においては、オブジェクトを保存する時、オブジェクトを更新する時、及び、オブジェクトが参照される時などにオブジェクトがサーバ間で転送される。従って、サーバ間で転送されるオブジェクトの数を減らすことができれば、サーバの処理が高速化するので、分散データストアの性能を高めることができる。但し、上記の文献においては、分散データストアにおけるサーバ間のトラフィックには着目していない。
特開2000−284998号公報 特開2005−339411号公報
従って、本発明の目的は、1つの側面では、分散データストアにおけるサーバ間のトラフィックを削減するための技術を提供することである。
本発明に係る情報処理装置は、データの保存先を特定するための情報を格納する第1情報格納部と、第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、第1のデータの保存先が自情報処理装置であるか判定し、第1のデータの保存先が自情報処理装置である場合、第1のデータを保存し、第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、当該第2の情報処理装置に複製を送信し、第1のデータの保存先が自情報処理装置とは異なる第3の情報処理装置である場合、第1のデータを第3の情報処理装置に送信し、第1のデータの複製を保存する保存処理部とを有する。
1つの側面では、分散データストアにおけるサーバ間のトラフィックを削減できるようになる。
図1は、ハッシュ技術を利用した分散データストアの一例を示す図である。 図2は、本実施の形態の概要を説明するための図である。 図3は、本実施の形態のシステム概要を示す図である。 図4は、サーバの機能ブロック図である。 図5は、マスタテーブル格納部に格納されるマスタテーブルの一例を示す図である。 図6は、レプリカテーブル格納部に格納されるレプリカテーブルの一例を示す図である。 図7は、メインの処理フローを示す図である。 図8は、メッセージの一例を示す図である。 図9は、保存処理の処理フローを示す図である。 図10は、メッセージの一例を示す図である。 図11は、保存処理の処理フローを示す図である。 図12は、参照処理の処理フローを示す図である。 図13は、更新処理の処理フローを示す図である。 図14は、更新処理の処理フローを示す図である。 図15は、削除処理の処理フローを示す図である。 図16は、削除処理の処理フローを示す図である。 図17は、保存要求に対する処理の一例を示すシーケンス図である。 図18は、参照要求に対する処理の一例を示すシーケンス図である。 図19は、更新要求に対する処理の一例を示すシーケンス図である。 図20は、削除要求に対する処理の一例を示すシーケンス図である。 図21は、コンピュータの機能ブロック図である。
まず、本実施の形態の概要を説明する。本実施の形態においては、オブジェクトの保存先を決定する方法としてハッシュ技術を利用する。ハッシュ技術としては、例えばコンシステントハッシュ法(Consistent Hashing)等がよく知られている。ハッシュ技術によれば、オブジェクトの数が増えたとしてもオブジェクトと保存先との対応関係を表すデータのサイズが大きくなることを抑制でき、また、オブジェクトと保存先との対応関係を頻繁に変更しなくて済むようになる。
図1を用いて、ハッシュ技術を利用した分散データストアについて説明する。図1においては、分散データストアがサーバA乃至Cにより実現されており、各サーバは、オブジェクトのマスタを保存するサーバ(以下、マスタサーバと呼ぶ)を特定するためのテーブル11と、オブジェクトのレプリカを保存するサーバ(以下、レプリカサーバと呼ぶ)を特定するためのテーブル12とを管理する。サーバCは、クライアント端末からオブジェクトの保存要求を受け付けると、受け付けたオブジェクトのID(IDentifier)から算出されたハッシュ値と、マスタ用のテーブル11及びレプリカ用のテーブル12とを用いて、マスタサーバ及びレプリカサーバを特定する。算出されたハッシュ値が400であるとすると、マスタはサーバBに転送され、レプリカはサーバAに転送される。
この場合、オブジェクトの転送回数は2回になる。マスタの保存先又はレプリカの保存先のいずれかがサーバCであればオブジェクトの転送回数は1回であるが、ハッシュ技術の特性から、保存先のサーバを任意に設定することはできない。従って、図1に示した分散データストアにおいては、オブジェクトの転送回数が増え、その結果サーバ間のトラフィックが増えることになる。
そこで本実施の形態においては、図2に示すようにオブジェクトを保存する。図2においては、分散データストアがサーバA乃至Cにより実現されており、各サーバは、マスタサーバを特定するためのテーブル21と、レプリカサーバ(ここでは、そのサーバが保存するオブジェクトのレプリカを保存するサーバ)を特定するためのテーブル22とを管理する。テーブル22の内容はサーバ毎に異なる。
サーバCは、クライアント端末からオブジェクトの保存要求を受け付けると、受け付けたオブジェクトのID(IDentifier)から算出されたハッシュ値と、マスタ用のテーブル21を用いて、マスタを保存するサーバを特定する。
算出されたハッシュ値が300であるとすると、マスタはサーバAに転送される。ここで、サーバCは、オブジェクトのレプリカをサーバCの記憶装置に保存する。すなわち、サーバCがレプリカサーバになる。
また、算出されたハッシュ値が800であるとすると、マスタはサーバCに保存される。ここで、サーバCは、レプリカサーバを所定の方法で(例えば、サーバC以外のサーバの中からランダムに)特定し、レプリカサーバにオブジェクトのレプリカを送信する。そして、サーバCは、レプリカサーバに送信したオブジェクトのIDに対応付けてレプリカサーバのIDをテーブル22に保存する。
このように、オブジェクトの保存要求を受け付けたサーバがマスタサーバである場合にはレプリカサーバだけにオブジェクトを送信し、オブジェクトの保存要求を受け付けたサーバがマスタサーバではない場合にはマスタサーバだけにオブジェクトを送信することになる。よって、図1の例と比較すると、オブジェクトの転送回数を減らすことができるようになる。
以下では、本実施の形態をより詳細に説明する。図3に、本実施の形態におけるシステム概要を示す。本実施の形態における分散データストア1は、サーバA乃至Cによって実現される。クライアント端末3はネットワークを介してサーバA乃至Cに接続されており、クライアント端末3とサーバA乃至Cとの間において通信が行われる。また、サーバA乃至Cの各々は他のサーバとの間で通信を行う。ネットワークは、インターネット等のWAN(Wide Area Network)を含む場合もある。図3において、サーバの数は3であるが、数に限定は無い。
図4に、サーバの機能ブロック図を示す。サーバは、保存処理部101と、参照部103と、更新部105と、削除部107と、マスタテーブル格納部109と、レプリカテーブル格納部111と、オブジェクト格納部113とを含む。
保存処理部101は、マスタテーブル格納部109に格納されたデータに基づき処理を実行し、処理結果に基づきレプリカテーブル格納部111に格納されたデータを更新する。また、保存処理部101は、オブジェクト格納部113にオブジェクトを保存する。参照部103は、マスタテーブル格納部109に格納されたデータに基づき処理を実行し、処理結果に基づき、オブジェクト格納部113に格納されたオブジェクトを読み出し送信する。更新部105は、マスタテーブル格納部109に格納されたデータに基づき処理を実行し、処理結果に基づきレプリカテーブル格納部111に格納されたデータを更新する。また、更新部105は、オブジェクト格納部113に格納されたオブジェクトを更新する。削除部107は、マスタテーブル格納部109に格納されたデータに基づき処理を実行する。また、削除部107は、オブジェクト格納部113に格納されたオブジェクトを削除する。
図5に、マスタテーブル格納部109に格納されるマスタテーブルの一例を示す。図5の例では、マスタサーバのIDと、そのマスタサーバが保存するオブジェクトのIDから算出されるハッシュ値の範囲とが格納される。サーバA乃至Cが管理するマスタテーブルの内容は同じであり、マスタテーブルの内容は管理者等によって予め設定される。例えばサーバが追加された場合、サーバが削除された場合、或いはサーバが故障した場合等においては、サーバA乃至Cのマスタテーブルの内容が変更される。
図6に、レプリカテーブル格納部111に格納されるレプリカテーブルの一例を示す。図6の例では、オブジェクトのIDと、そのオブジェクトについてのレプリカサーバのIDとが格納される。図6の例では、図6に示したレプリカテーブルをもつサーバは、IDがAAAであるオブジェクトのマスタ、BBBであるオブジェクトのマスタ、及びCCCであるオブジェクトのマスタを保存する。そして、IDがAAAであるオブジェクトのレプリカをサーバBが保存し、IDがBBBであるオブジェクトのレプリカをサーバCが保存し、IDがCCCであるオブジェクトのレプリカをサーバBが保存する。
次に、図7乃至図20を用いて、本実施の形態におけるサーバの動作について説明する。まず、サーバ(ここでは、サーバA乃至Cのいずれであってもよい)はメッセージを受信する。
図8に、メッセージの一例を示す。メッセージは、通信ヘッダ部と、通信データ部とを含む。通信ヘッダ部は送信元アドレスと送信先アドレスとを含み、通信データ部はメッセージ種別とオブジェクトのIDとオブジェクトとを含む。通信データ部はオブジェクト操作メッセージと呼ばれる。オブジェクト操作メッセージは、ヘッダ部とデータ部とを含む。オブジェクト操作メッセージのヘッダ部はメッセージ種別とオブジェクトのIDとを含み、オブジェクト操作メッセージのデータ部はオブジェクトを含む。なお、メッセージが転送される際には、送信元アドレス及び送信先アドレスが付け替えられる。
サーバは、受信したメッセージに含まれる「メッセージ種別」を用いて、メッセージの種別を特定し(図7:ステップS1)、受信したメッセージの種別が保存要求であるか判断する(ステップS3)。保存要求は、オブジェクトを保存することを要求するメッセージである。
受信したメッセージの種別が保存要求である場合(ステップS3:Yesルート)、サーバの保存処理部101は、保存処理を実行する(ステップS5)。保存処理については後で詳細に説明する。
受信したメッセージの種別が保存要求ではない場合(ステップS3:Noルート)、サーバは、受信したメッセージの種別が参照要求であるか判断する(ステップS7)。参照要求は、オブジェクトを参照することを要求するメッセージである。
受信したメッセージの種別が参照要求である場合(ステップS7:Yesルート)、サーバの参照部103は、参照処理を実行する(ステップS9)。参照処理については後で詳細に説明する。
受信したメッセージの種別が参照要求ではない場合(ステップS7:Noルート)、サーバは、受信したメッセージの種別が更新要求であるか判断する(ステップS11)。更新要求は、オブジェクトを更新することを要求するメッセージである。
受信したメッセージの種別が更新要求である場合(ステップS11:Yesルート)、サーバの更新部105は、更新処理を実行する(ステップS13)。更新処理については後で詳細に説明する。
受信したメッセージの種別が更新要求ではない場合(ステップS11:Noルート)、サーバは、受信したメッセージの種別が削除要求であるか判断する(ステップS15)。削除要求は、オブジェクトを削除することを要求するメッセージである。
受信したメッセージの種別が削除要求である場合(ステップS15:Yesルート)、サーバの削除部107は、削除処理を実行する(ステップS17)。削除処理については後で詳細に説明する。
受信したメッセージの種別が削除要求ではない場合(ステップS15:Noルート)、サーバは、受信したメッセージに対してその他の処理を実行する(ステップS19)。そして処理を終了する。ステップS19において実行する処理は、本実施の形態においては説明しないメッセージに対する処理であるので、詳細な説明を省略する。
次に、保存処理、参照処理、更新処理、及び削除処理について説明する。まず、図9乃至図11を用いて、保存処理について説明する。
サーバの保存処理部101は、受信した保存要求に含まれるオブジェクトのIDからハッシュ値を算出し、マスタテーブル格納部109から、算出されたハッシュ値に対応するマスタサーバを特定する(図9:ステップS21)。
保存処理部101は、自サーバ(すなわち、本処理を実行するサーバ)はマスタサーバであるか判断する(ステップS23)。ステップS23においては、保存処理部101は、ステップS21において特定されたマスタサーバのIDと、自サーバのIDとが同じであるか判断する。
自サーバはマスタサーバである場合(ステップS23:Yesルート)、保存処理部101は、受信した保存要求がレプリカサーバのIDを含むか判断する(ステップS25)。
サーバがクライアント端末3から受信するメッセージ(例えば、図8に示したメッセージ)にはレプリカサーバのIDは含まれないが、サーバ間で交換されるメッセージには、図10に示すように、レプリカサーバのIDが含まれる場合がある。図10に示したメッセージは、通信ヘッダ部と、通信データ部とを含む。通信ヘッダ部は送信元アドレスと送信先アドレスとを含み、通信データ部はメッセージ種別とレプリカサーバのIDとオブジェクトのIDとオブジェクトとを含む。通信データ部はオブジェクト操作メッセージと呼ばれる。オブジェクト操作メッセージは、ヘッダ部とデータ部とを含む。オブジェクト操作メッセージのヘッダ部はメッセージ種別とレプリカサーバのIDとオブジェクトのIDとを含み、オブジェクト操作メッセージのデータ部はオブジェクトを含む。
保存要求がレプリカサーバのIDを含む場合(ステップS25:Yesルート)、保存要求の送信元はレプリカサーバである。従って、保存処理部101は、保存要求に含まれるレプリカサーバのIDで、レプリカテーブル格納部111に格納されたレプリカテーブルを更新する(ステップS27)。ステップS27においては、レプリカサーバのIDと、保存要求に含まれるオブジェクトのIDとを含むエントリがレプリカテーブルに追加される。このようにすることで、マスタサーバのレプリカテーブルには、そのマスタサーバが保存するオブジェクトのレプリカについてのエントリが登録されるようになる。
保存処理部101は、保存要求に含まれるオブジェクトのマスタをオブジェクト格納部113に保存する(ステップS29)。そして、保存処理部101は、保存要求の送信元であるレプリカサーバに、保存要求に対する応答を送信する(ステップS31)。
一方、保存要求がレプリカサーバのIDを含まない場合(ステップS25:Noルート)、保存要求の送信元はクライアント端末3である。従って、保存処理部101は、保存要求に含まれるオブジェクトについてのレプリカサーバを所定の方法で決定し、レプリカテーブル格納部111に格納されたレプリカテーブルを更新する(ステップS33)。ステップS33において、保存処理部101は、決定されたレプリカサーバのIDと、保存要求に含まれるオブジェクトのIDとを含むエントリをレプリカテーブルに追加する。これにより、マスタサーバのレプリカテーブルには、そのマスタサーバが保存するオブジェクトのレプリカについてのエントリが登録されるようになる。
保存処理部101は、決定されたレプリカサーバのIDを保存要求に付加し、レプリカサーバに転送する(ステップS35)。そして、保存処理部101は、保存要求に含まれるオブジェクトのマスタをオブジェクト格納部113に保存する(ステップS37)。そして、保存処理部101は、レプリカサーバから保存要求に対する応答を受信した場合に、保存要求の送信元であるクライアント端末3に、保存要求に対する応答を送信する(ステップS39)。そして呼び出し元の処理に戻る。
一方、自サーバはマスタサーバではない場合(ステップS23:Noルート)、処理は端子Aを介して図11のステップS41に移行する。
図11の説明に移行し、保存処理部101は、保存要求の送信元はマスタサーバであるか判断する(ステップS41)。ステップS41においては、例えば、保存要求に含まれる送信元アドレスが、ステップS21において特定されたマスタサーバの送信元アドレスであるか否かによって判断される。
保存要求の送信元はマスタサーバではない場合(ステップS41:Noルート)、保存要求の送信元はクライアント端末3である。従って、保存処理部101は、自サーバのIDを保存要求に付加する(ステップS43)。ステップS43の処理によって、図8に示したメッセージから、図10に示したメッセージが生成される。
保存処理部101は、ステップS21において特定されたマスタサーバに、ステップS43において自サーバのIDが付加された保存要求を転送する(ステップS45)。これにより、マスタサーバは、どのサーバがレプリカサーバであるか把握できるようになる。
保存処理部101は、保存要求に含まれるオブジェクトのレプリカをオブジェクト格納部113に保存する(ステップS47)。
保存処理部101は、保存要求に対する応答をマスタサーバから受信した場合に、クライアント端末3に、保存要求に対する応答を送信する(ステップS49)。処理は端子Bを介して呼び出し元の処理に戻る。
一方、保存要求の送信元はマスタサーバである場合(ステップS41:Yesルート)、自サーバはレプリカサーバである。従って、保存処理部101は、保存要求に含まれるオブジェクトのレプリカをオブジェクト格納部113に保存する(ステップS51)。
保存処理部101は、保存要求に対する応答をマスタサーバに送信する(ステップS53)。処理は端子Bを介して呼び出し元の処理に戻る。
以上のような処理を実行すれば、クライアント端末3から保存要求を受信したサーバがマスタサーバである場合にはそのサーバにマスタが保存され、クライアント端末3から保存要求を受信したサーバがマスタサーバではない場合にはそのサーバにレプリカが保存される。このようにすれば、マスタ及びレプリカの両方について転送を行わなくてもよいので、分散データストア1におけるサーバ間のトラフィックを減らすことができるようになる。
従って、本実施の形態によれば、レプリカの数に関わらず転送回数を1回減らすことができる。従って、レプリカの数が少ないほどトラフィック削減の効果が高い。
次に、図12を用いて、参照処理について説明する。
まず、サーバの参照部103は、受信した参照要求に含まれるオブジェクトのIDからハッシュ値を算出し、マスタテーブル格納部109から、算出されたハッシュ値に対応するマスタサーバを特定する(図12:ステップS61)。なお、参照要求におけるオブジェクトのフィールドには何も含まれていない。
参照部103は、自サーバ(すなわち、本処理を実行するサーバ)はマスタサーバであるか判断する(ステップS63)。ステップS63において、参照部103は、ステップS61において特定されたマスタサーバのIDと、自サーバのIDとが同じであるか判断する。
自サーバはマスタサーバである場合(ステップS63:Yesルート)、参照部103は、参照要求に含まれるオブジェクトのIDにより特定されるオブジェクトをオブジェクト格納部113から読み出し、読み出したオブジェクトを含む応答を参照要求の送信元に送信する(ステップS65)。そして呼び出し元の処理に戻る。なお、参照要求の送信元は、クライアント端末3又は他のサーバである。
一方、自サーバはマスタサーバではない場合(ステップS63:Noルート)、参照部103は、ステップS61において特定されたマスタサーバに参照要求を転送する(ステップS67)。そして呼び出し元の処理に戻る。
以上のような処理を実行すれば、クライアント端末3から受信した参照要求を適切に処理できるようになる。なお、参照処理においてはマスタの内容が参照されるので、レプリカの内容は参照されない。従って、マスタが更新されており且つレプリカが更新されていない状態でレプリカサーバが参照要求を受信した場合において、更新前の内容を送信してしまうことを防げる。
次に、図13乃至図14を用いて、更新処理について説明する。
まず、サーバの更新部105は、受信した更新要求に含まれるオブジェクトのIDからハッシュ値を算出し、マスタテーブル格納部109から、算出されたハッシュ値に対応するマスタサーバを特定する(図13:ステップS71)。
更新部105は、自サーバ(すなわち、本処理を実行するサーバ)はマスタサーバであるか判断する(ステップS73)。ステップS73において、更新部105は、ステップS71において特定されたマスタサーバのIDと、自サーバのIDとが同じであるか判断する。
自サーバはマスタサーバである場合(ステップS73:Yesルート)、更新部105は、受信した更新要求がレプリカサーバのIDを含むか判断する(ステップS75)。レプリカサーバのIDを含むメッセージは、例えば図10に示したメッセージである。
更新要求がレプリカサーバのIDを含む場合(ステップS75:Yesルート)、更新要求の送信元は、更新要求に含まれるオブジェクトのレプリカを新たに保存することになったレプリカサーバである。従って、更新部105は、更新要求に含まれるオブジェクトのIDに対応するレプリカサーバを特定する。ここで特定されるレプリカサーバは元のレプリカサーバ(すなわち、更新前においてレプリカを保存するサーバ)である。そして、更新部105は、元のレプリカサーバに、更新要求に含まれるオブジェクトのIDを含む削除要求を送信する(ステップS77)。これに応じ、元のレプリカサーバは、削除要求に含まれるオブジェクトのIDに対応するオブジェクトをオブジェクト格納部113から削除する。これにより、更新前のオブジェクトが分散データストア1内に残ることはなくなる。
なお、元のレプリカサーバと、更新後のオブジェクトのレプリカを新たに保存することになったレプリカサーバとが同じである場合には、ステップS77の処理は省略される。
更新部105は、更新要求に含まれるレプリカサーバのIDで、レプリカテーブル格納部111に格納されたレプリカテーブルを更新する(ステップS79)。ステップS79においては、レプリカテーブルに格納され且つ更新要求に含まれるオブジェクトのIDに対応するレプリカサーバのIDを、更新要求に含まれるレプリカサーバのIDに変更する。このようにすることで、マスタサーバのレプリカテーブルには、更新後のオブジェクトのレプリカを新たに保存することになったレプリカサーバについてのエントリが登録されるようになる。
更新部105は、更新要求に含まれるオブジェクトで、オブジェクト格納部113に格納されたオブジェクトのマスタを更新する(ステップS81)。そして、更新部105は、更新要求の送信元であるレプリカサーバに、更新要求に対する応答を送信する(ステップS83)。
一方、更新要求がレプリカサーバのIDを含まない場合(ステップS75:Noルート)、更新要求の送信元はクライアント端末3である。従って、更新部105は、更新要求に含まれるオブジェクトのIDに対応するレプリカサーバをレプリカテーブル格納部111に格納されたレプリカテーブルから特定する(ステップS85)。
更新部105は、ステップS85において特定されたレプリカサーバに、更新要求を転送する(ステップS87)。そして、更新部105は、更新要求に含まれるオブジェクトで、オブジェクト格納部113に格納されたマスタを更新する(ステップS89)。
更新部105は、ステップS85において特定されたレプリカサーバから更新要求の応答を受信した場合、更新要求の応答をクライアント端末3に送信する(ステップS91)。そして呼び出し元の処理に戻る。
一方、自サーバはマスタサーバではない場合(ステップS73:Noルート)、処理は端子Cを介して図14のステップS93に移行する。
図14の説明に移行し、更新部105は、更新要求の送信元はマスタサーバであるか判断する(ステップS93)。ステップS93においては、例えば、更新要求に含まれる送信元アドレスが、ステップS71において特定されたマスタサーバの送信元アドレスであるか否かによって判断される。
更新要求の送信元はマスタサーバではない場合(ステップS93:Noルート)、更新要求の送信元はクライアント端末3である。従って、更新部105は、自サーバのIDを更新要求に付加する(ステップS95)。ステップS95の処理によって、図8に示したメッセージから、図10に示したメッセージが生成される。
更新部105は、ステップS71において特定されたマスタサーバに、ステップS95において自サーバのIDが付加された更新要求を転送する(ステップS97)。これにより、マスタサーバは、更新後のオブジェクトのレプリカを保存するレプリカサーバがどのサーバであるか把握できるようになる。
更新部105は、更新要求に含まれるオブジェクトのレプリカを、オブジェクト格納部113に保存する(ステップS99)。なお、自サーバが元のレプリカサーバである場合にはオブジェクト格納部113に既にレプリカが格納されているので、更新部105は、そのレプリカを、更新要求に含まれるオブジェクトのレプリカで更新する。
更新部105は、更新要求に対する応答をマスタサーバから受信した場合に、クライアント端末3に、更新要求に対する応答を送信する(ステップS101)。処理は端子Dを介して呼び出し元の処理に戻る。
一方、更新要求の送信元はマスタサーバである場合(ステップS93:Yesルート)、自サーバはレプリカサーバである。従って、更新部105は、更新要求に含まれるオブジェクトで、オブジェクト格納部113に格納されたレプリカを更新する(ステップS103)。
更新部105は、更新要求に対する応答をマスタサーバに送信する(ステップS105)。処理は端子Dを介して呼び出し元の処理に戻る。
以上のような処理を実行すれば、クライアント端末3から更新要求を受信したサーバがマスタサーバである場合にはそのサーバに保存されたマスタが更新され、クライアント端末3から更新要求を受信したサーバがマスタサーバではない場合にはそのサーバに更新後のオブジェクトのレプリカが保存される。オブジェクトの更新の場合においても、マスタ及びレプリカの両方について転送を行わなくてもよいので、分散データストア1におけるサーバ間のトラフィックを減らすことができるようになる。
次に、図15乃至図16を用いて、削除処理について説明する。
まず、サーバの削除部107は、受信した削除要求に含まれるオブジェクトのIDからハッシュ値を算出し、マスタテーブル格納部109から、算出されたハッシュ値に対応するマスタサーバを特定する(図15:ステップS111)。なお、削除要求におけるオブジェクトのフィールドには何も含まれていない。
削除部107は、自サーバ(すなわち、本処理を実行するサーバ)はマスタサーバであるか判断する(ステップS113)。ステップS113において、削除部107は、ステップS111において特定されたマスタサーバのIDと、自サーバのIDとが同じであるか判断する。
自サーバはマスタサーバである場合(ステップS113:Yesルート)、削除部107は、受信した削除要求に含まれるオブジェクトのIDに対応するレプリカサーバを、レプリカテーブル格納部111に格納されたレプリカテーブルから特定する(ステップS115)。
削除部107は、削除要求の送信元がレプリカサーバであるか判定する(ステップS117)。ステップS117において、削除部107は、ステップS115において特定されたレプリカサーバのアドレスと、削除要求に含まれる送信元アドレスとが同じであるか否かによって判断する。
削除要求の送信元がレプリカサーバである場合(ステップS117:Yesルート)、削除部107は、削除要求に含まれるオブジェクトのIDによって特定されるオブジェクトのマスタを、オブジェクト格納部113から削除する(ステップS119)。
削除部107は、削除要求に対する応答をレプリカサーバに送信する(ステップS121)。また、削除部107は、削除要求に含まれるオブジェクトのIDを含むエントリをレプリカテーブル格納部111におけるレプリカテーブルから削除する。そして呼び出し元の処理に戻る。
一方、削除要求の送信元がレプリカサーバではない場合(ステップS117:Noルート)、削除要求の送信元はレプリカサーバ以外のサーバ又はクライアント端末3である。削除部107は、削除要求に含まれるオブジェクトのIDによって特定されるオブジェクトのマスタを、オブジェクト格納部113から削除する(ステップS123)。
削除部107は、削除要求をレプリカサーバに転送する(ステップS125)。そして、削除部107は、削除要求に対する応答をレプリカサーバから受信した場合に、削除要求の応答を、削除要求の送信元に送信する(ステップS127)。また、削除部107は、削除要求に含まれるオブジェクトのIDを含むエントリをレプリカテーブル格納部111におけるレプリカテーブルから削除する。そして呼び出し元の処理に戻る。
一方、自サーバはマスタサーバではない場合(ステップS113:Noルート)、処理は端子Eを介して図16のステップS131に移行する。
図16の説明に移行し、削除部107は、削除要求の送信元はマスタサーバであるか判断する(ステップS131)。ステップS131においては、例えば、削除要求に含まれる送信元アドレスが、ステップS111において特定されたマスタサーバの送信元アドレスであるか否かによって判断される。
削除要求の送信元はマスタサーバではない場合(ステップS131:Noルート)、削除要求の送信元はクライアント端末3である。従って、削除部107は、削除要求に含まれるオブジェクトのIDによって特定されるオブジェクトのレプリカを自サーバが保存している場合には、そのオブジェクトを削除する(ステップS133)。なお、自サーバがレプリカサーバではない場合には、自サーバにはオブジェクトのレプリカは保存されていない。
削除部107は、ステップS111において特定されたマスタサーバに削除要求を転送する(ステップS135)。これにより、マスタサーバは、オブジェクトのマスタを削除できるようになる。
削除部107は、削除要求に対する応答をマスタサーバから受信した場合に、クライアント端末3に、削除要求に対する応答を送信する(ステップS137)。処理は端子Fを介して呼び出し元の処理に戻る。
一方、削除要求の送信元はマスタサーバである場合(ステップS131:Yesルート)、自サーバはレプリカサーバである。従って、削除部107は、削除要求に含まれるオブジェクトのIDによって特定されるオブジェクトのレプリカを、オブジェクト格納部113から削除する(ステップS139)。
削除部107は、削除要求に対する応答をマスタサーバに送信する(ステップS141)。処理は端子Fを介して呼び出し元の処理に戻る。
以上のような処理を実行すれば、マスタ及びレプリカの両方が分散データストア1から削除される。
次に、図17乃至図20を用いて、上で説明した処理をより具体的に説明する。
図17を用いて、保存要求に対する処理をより具体的に説明する。クライアント端末3は、例えばラウンドロビン等によって、保存要求の送信先のサーバを選択する(ステップS1701)。ここでは、送信先がサーバAであるとする。クライアント端末3は、保存要求をサーバAに送信する。
サーバAは、クライアント端末3から保存要求を受信し、マスタテーブルを検索してマスタサーバを特定する(ステップS1702)。ここでは、サーバBがマスタサーバであるとする。サーバAは、サーバAのIDを付加した保存要求をサーバBに転送する。また、サーバAは、保存要求に含まれるオブジェクトのレプリカを保存する(ステップS1703)。
マスタサーバであるサーバBは、サーバAから保存要求を受信し、保存要求に含まれるサーバAのIDでレプリカテーブルを更新し(ステップS1704)、保存要求に含まれるオブジェクトのマスタを保存する(ステップS1705)。そして、サーバBはサーバAに応答を送信し、サーバAはクライアント端末3に応答を送信する。
図18を用いて、参照要求に対する処理をより具体的に説明する。クライアント端末3は、例えばラウンドロビン等によって、参照要求の送信先のサーバを選択する(ステップS1801)。ここでは、送信先がサーバAであるとする。クライアント端末3は、参照要求をサーバAに送信する。
サーバAは、クライアント端末3から参照要求を受信し、マスタテーブルを検索してマスタサーバを特定する(ステップS1802)。ここでは、サーバBがマスタサーバであるとする。サーバAは、参照要求をサーバBに転送する。
マスタサーバであるサーバBは、サーバAから参照要求を受信し、オブジェクト格納部113からオブジェクトを読み出す(ステップS1803)。そして、サーバBは、読み出されたオブジェクトを含む応答をサーバAに送信し、サーバAはクライアント端末3に応答を送信する。
図19を用いて、更新要求に対する処理をより具体的に説明する。クライアント端末3は、例えばラウンドロビン等によって、更新要求の送信先のサーバを選択する(ステップS1901)。ここでは、送信先がサーバAであるとする。クライアント端末3は、更新要求をサーバAに送信する。
サーバAは、クライアント端末3から更新要求を受信し、マスタテーブルを検索してマスタサーバを特定する(ステップS1902)。ここでは、サーバBがマスタサーバであるとする。サーバAは、サーバAのIDを付加した更新要求をサーバBに転送する。また、サーバAは、更新要求に含まれるオブジェクトのレプリカを保存する(ステップS1903)。
マスタサーバであるサーバBは、サーバAから更新要求を受信し、更新要求に含まれるサーバAのIDでレプリカテーブルを更新し(ステップS1904)、更新要求に基づきマスタを更新する(ステップS1905)。そして、サーバBは、元のレプリカサーバであるサーバCに削除要求を送信する。
元のレプリカサーバであるサーバCは、サーバBから削除要求を受信し、オブジェクト格納部113からオブジェクトを削除する(ステップS1906)。そして、サーバCはサーバBに応答を送信し、サーバBはサーバAに応答を送信し、サーバAはクライアント端末3に応答を送信する。
図20を用いて、削除要求に対する処理をより具体的に説明する。クライアント端末3は、例えばラウンドロビン等によって、削除要求の送信先のサーバを選択する(ステップS2001)。ここでは、送信先がサーバAであるとする。クライアント端末3は、削除要求をサーバAに送信する。
サーバAは、クライアント端末3から削除要求を受信し、マスタテーブルを検索してマスタサーバを特定する(ステップS2002)。ここでは、サーバBがマスタサーバであるとする。サーバAは、削除要求をサーバBに転送する。
マスタサーバであるサーバBは、サーバAから削除要求を受信し、削除されるオブジェクトのIDを含むエントリをレプリカテーブルから削除し(ステップS2003)、削除要求に基づきマスタを削除する(ステップS2004)。そして、サーバBは、レプリカサーバであるサーバCに削除要求を転送する。
レプリカサーバであるサーバCは、サーバBから削除要求を受信し、削除要求に基づきレプリカを削除する(ステップS2005)。そして、サーバCはサーバBに応答を送信し、サーバBはサーバAに応答を送信し、サーバAはクライアント端末3に応答を送信する。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したサーバA乃至Cの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、上ではレプリカの数が1つである例を示したが、レプリカの数は2以上である場合に対しても本実施の形態を適用することができる。
なお、参照処理においてはレプリカサーバのレプリカを参照していないが、レプリカサーバのレプリカを参照してもよい。このようにすれば、参照要求を受信したサーバがレプリカサーバである場合にはマスタサーバに参照要求を転送しなくてもよいので、クライアント端末3に応答を送信するまでの時間が短縮される。
なお、上で述べたサーバA乃至C及びクライアント端末3は、コンピュータ装置であって、図21に示すように、メモリ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及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る情報処理装置は、(A)データの保存先を特定するための情報を格納する第1情報格納部と、(B)第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、第1のデータの保存先が自情報処理装置であるか判定し、第1のデータの保存先が自情報処理装置である場合、第1のデータを保存し、第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、当該第2の情報処理装置に複製を送信し、第1のデータの保存先が自情報処理装置とは異なる第3の情報処理装置である場合、第1のデータを第3の情報処理装置に送信し、第1のデータの複製を保存する保存処理部とを有する情報処理装置。
このようにすれば、情報処理装置間におけるデータの転送回数は1回であるので、分散データストア内における通信データの量を減らせるようになる。
また、上で述べた第1のデータの保存先が自情報処理装置であってもよい。そして、上で述べた保存処理部は、(b1)第1のデータの識別子と第2の情報処理装置の識別子とを対応付けて、第2情報格納部に格納してもよい。このようにすれば、後でデータに対して処理(例えば更新)が行われた場合に、データの複製の保存先にデータに対して処理が行われたことを通知できるようになる。
また、上で述べた第1のデータの保存先が第3の情報処理装置であってもよい。そして、上で述べた保存処理部は、(b2)第1のデータに自情報処理装置の識別子を付加し、第3の情報処理装置に送信してもよい。このようにすれば、データの保存先の情報処理装置がデータの複製の保存先を後で特定できるので、データに対して処理(例えば更新)が行われた場合に、同じ処理を複製に対しても行えるようになる。
また、本情報処理装置が、(C)第1のデータを更新することを要求する第1の更新要求を端末から受信した場合、第1のデータを更新し、第1の更新要求を第2の情報処理装置に転送し、第2の情報処理装置とは異なる第4の情報処理装置から第1の更新要求を受信した場合、第2情報格納部における第1のデータの識別子に対応付けられた第2の情報処理装置の識別子を、第4の情報処理装置の識別子に変更し、第2の情報処理装置に、第1のデータを削除することを要求する第1の削除要求を送信する更新部をさらに有してもよい。このようにすれば、更新要求を受信した情報処理装置がその更新要求において指定されたデータを保存している場合に、データ及びその複製を適切に更新できるようになる。
また、上で述べた更新部は、(c1)自情報処理装置が保存していない第2のデータを更新することを要求する第2の更新要求を端末から受信した場合、第2のデータの複製を保存し、第2のデータの保存先である第5の情報処理装置を第1情報格納部を用いて特定し、第2のデータと自情報処理装置の識別子とを第5の情報処理装置に送信し、(c2)第2の更新要求を第5の情報処理装置から受信した場合、保存された第2のデータの複製を更新してもよい。このようにすれば、更新要求を受信した情報処理装置がその更新要求において指定されたデータを保存してない場合に、データ及びそのデータの複製を適切に更新できるようになる。
また、本情報処理装置が、(D)第2の情報処理装置とは異なる第6の情報処理装置又は端末から第1の削除要求を受信した場合、第1のデータを削除すると共に、第1の削除要求を第2の情報処理装置に転送する削除部をさらに有してもよい。このようにすれば、削除要求を受信した情報処理装置がその削除要求において指定されたデータを保存している場合に、データ及びそのデータの複製を適切に削除できるようになる。
また、上で述べた削除部は、(d1)第2のデータを削除することを要求する第2の削除要求を端末から受信した場合、第2のデータの複製を削除すると共に、第2の削除要求を第5の情報処理装置に転送してもよい。このようにすれば、削除要求を受信した情報処理装置がその削除要求において指定されたデータを保存していない場合に、データ及びそのデータの複製を適切に削除できるようになる。
また、本情報処理装置が、(E)第1のデータを参照することを要求する第1の参照要求を受信した場合、第1のデータを読み出し、第1の参照要求に対する応答を第1の参照要求の送信元に送信し、第2のデータを参照することを要求する第2の参照要求を受信した場合、第1の参照要求を第5の情報処理装置に転送する参照部をさらに有してもよい。このようにすれば、データ及びその複製を適切に削除できるようになる。
また、上で述べたデータの保存先を特定するための情報は、ハッシュ値と、識別子から算出されたハッシュ値が当該ハッシュ値と同じであるデータの保存先の情報処理装置の識別子とを含んでもよい。このようにすれば、データを適切に分散できるようになる。
本実施の形態の第2の態様に係るデータ保存方法は、(F)データの保存先を特定するための情報を格納する第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、第1のデータの保存先がコンピュータであるか判定し、(G)第1のデータの保存先がコンピュータである場合、第1のデータを保存し、第1のデータの複製の保存先である第2のコンピュータを所定の方法で決定し、当該第2のコンピュータに複製を送信し、(H)第1のデータの保存先がコンピュータとは異なる第3のコンピュータである場合、第1のデータを第3のコンピュータに送信し、第1のデータの複製を保存する処理を含む。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
データの保存先を特定するための情報を格納する第1情報格納部と、
前記第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、前記第1のデータの保存先が自情報処理装置であるか判定し、
前記第1のデータの保存先が前記自情報処理装置である場合、前記第1のデータを保存し、前記第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、当該第2の情報処理装置に前記複製を送信し、
前記第1のデータの保存先が前記自情報処理装置とは異なる第3の情報処理装置である場合、前記第1のデータを前記第3の情報処理装置に送信し、前記第1のデータの複製を保存する保存処理部と、
を有する情報処理装置。
(付記2)
前記第1のデータの保存先が前記自情報処理装置であり、
前記保存処理部は、
前記第1のデータの識別子と前記第2の情報処理装置の識別子とを対応付けて、第2情報格納部に格納する
付記1記載の情報処理装置。
(付記3)
前記第1のデータの保存先が前記第3の情報処理装置であり、
前記保存処理部は、
前記第1のデータに前記自情報処理装置の識別子を付加し、前記第3の情報処理装置に送信する
付記1記載の情報処理装置。
(付記4)
前記第1のデータを更新することを要求する第1の更新要求を前記端末から受信した場合、前記第1のデータを更新し、前記第1の更新要求を前記第2の情報処理装置に転送し、
前記第2の情報処理装置とは異なる第4の情報処理装置から前記第1の更新要求を受信した場合、前記第2情報格納部における前記第1のデータの識別子に対応付けられた前記第2の情報処理装置の識別子を、前記第4の情報処理装置の識別子に変更し、前記第2の情報処理装置に、前記第1のデータを削除することを要求する第1の削除要求を送信する更新部
をさらに有する付記2記載の情報処理装置。
(付記5)
前記更新部は、
前記自情報処理装置が保存していない第2のデータを更新することを要求する第2の更新要求を前記端末から受信した場合、前記第2のデータの複製を保存し、前記第2のデータの保存先である第5の情報処理装置を前記第1情報格納部を用いて特定し、前記第2のデータと前記自情報処理装置の識別子とを前記第5の情報処理装置に送信し、
前記第2の更新要求を前記第5の情報処理装置から受信した場合、保存された前記第2のデータの複製を更新する
付記4記載の情報処理装置。
(付記6)
前記第2の情報処理装置とは異なる第6の情報処理装置又は前記端末から前記第1の削除要求を受信した場合、前記第1のデータを削除すると共に、前記第1の削除要求を前記第2の情報処理装置に転送する削除部
をさらに有する付記5記載の情報処理装置。
(付記7)
前記削除部は、
前記第2のデータを削除することを要求する前記第2の削除要求を前記端末から受信した場合、前記第2のデータの複製を削除すると共に、前記第2の削除要求を前記第5の情報処理装置に転送する
付記6記載の情報処理装置。
(付記8)
前記第1のデータを参照することを要求する第1の参照要求を受信した場合、前記第1のデータを読み出し、前記第1の参照要求に対する応答を前記第1の参照要求の送信元に送信し、
前記第2のデータを参照することを要求する第2の参照要求を受信した場合、前記第1の参照要求を前記第5の情報処理装置に転送する参照部
をさらに有する付記7記載の情報処理装置。
(付記9)
前記データの保存先を特定するための情報は、ハッシュ値と、識別子から算出されたハッシュ値が当該ハッシュ値と同じであるデータの保存先の情報処理装置の識別子とを含む
付記1乃至8のいずれか1つ記載の情報処理装置。
(付記10)
複数の情報処理装置
を有し、
前記複数の情報処理装置のうち第1の情報処理装置が、
データの保存先を特定するための情報を格納する第1情報格納部と、
前記第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、前記第1のデータの保存先が前記第1の情報処理装置であるか判定し、
前記第1のデータの保存先が前記第1の情報処理装置である場合、前記第1のデータを保存し、前記複数の情報処理装置のうち前記第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、当該第2の情報処理装置に前記複製を送信し、
前記第1のデータの保存先が前記自情報処理装置とは異なる第3の情報処理装置である場合、前記第1のデータを、前記複数の情報処理装置のうち前記第3の情報処理装置に送信し、前記第1のデータの複製を保存する第1保存処理部と、
を有し、
前記第2の情報処理装置が、
前記第2の情報処理装置から受信した前記第1のデータの複製を保存する第2保存処理部
を有し、
前記第3の情報処理装置が、
前記第3の情報処理装置から受信した前記第1のデータを保存する第3保存処理部
を有するデータ保存システム。
(付記11)
前記コンピュータが、
データの保存先を特定するための情報を格納する第1情報格納部に格納された前記情報を用いて、端末から受信した第1のデータの保存先を特定し、前記第1のデータの保存先が前記コンピュータであるか判定し、
前記第1のデータの保存先が前記コンピュータである場合、前記第1のデータを保存し、前記第1のデータの複製の保存先である第2のコンピュータを所定の方法で決定し、当該第2のコンピュータに前記複製を送信し、
前記第1のデータの保存先が前記コンピュータとは異なる第3のコンピュータである場合、前記第1のデータを前記第3のコンピュータに送信し、前記第1のデータの複製を保存する、
処理を実行するデータ保存方法。
1 分散データストア 3 クライアント端末
101 保存処理部 103 参照部
105 更新部 107 削除部
109 マスタテーブル格納部 111 レプリカテーブル格納部
113 オブジェクト格納部

Claims (10)

  1. データの保存先を特定するための情報を格納する第1情報格納部と、
    前記第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、前記第1のデータの保存先が自情報処理装置であるか判定し、
    前記第1のデータの保存先が前記自情報処理装置である場合、前記第1のデータを保存し、前記第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、当該第2の情報処理装置に前記複製を送信し、
    前記第1のデータの保存先が前記自情報処理装置とは異なる第3の情報処理装置である場合、前記第1のデータを前記第3の情報処理装置に送信し、前記第1のデータの複製を保存する保存処理部と、
    を有する情報処理装置。
  2. 前記第1のデータの保存先が前記自情報処理装置であり、
    前記保存処理部は、
    前記第1のデータの識別子と前記第2の情報処理装置の識別子とを対応付けて、第2情報格納部に格納する
    請求項1記載の情報処理装置。
  3. 前記第1のデータの保存先が前記第3の情報処理装置であり、
    前記保存処理部は、
    前記第1のデータに前記自情報処理装置の識別子を付加し、前記第3の情報処理装置に送信する
    請求項1記載の情報処理装置。
  4. 前記第1のデータを更新することを要求する第1の更新要求を前記端末から受信した場合、前記第1のデータを更新し、前記第1の更新要求を前記第2の情報処理装置に転送し、
    前記第2の情報処理装置とは異なる第4の情報処理装置から前記第1の更新要求を受信した場合、前記第2情報格納部における前記第1のデータの識別子に対応付けられた前記第2の情報処理装置の識別子を、前記第4の情報処理装置の識別子に変更し、前記第2の情報処理装置に、前記第1のデータを削除することを要求する第1の削除要求を送信する更新部
    をさらに有する請求項2記載の情報処理装置。
  5. 前記更新部は、
    前記自情報処理装置が保存していない第2のデータを更新することを要求する第2の更新要求を前記端末から受信した場合、前記第2のデータの複製を保存し、前記第2のデータの保存先である第5の情報処理装置を前記第1情報格納部を用いて特定し、前記第2のデータと前記自情報処理装置の識別子とを前記第5の情報処理装置に送信し、
    前記第2の更新要求を前記第5の情報処理装置から受信した場合、保存された前記第2のデータの複製を更新する
    請求項4記載の情報処理装置。
  6. 前記第2の情報処理装置とは異なる第6の情報処理装置又は前記端末から前記第1の削除要求を受信した場合、前記第1のデータを削除すると共に、前記第1の削除要求を前記第2の情報処理装置に転送する削除部
    をさらに有する請求項5記載の情報処理装置。
  7. 前記削除部は、
    前記第2のデータを削除することを要求する前記第2の削除要求を前記端末から受信した場合、前記第2のデータの複製を削除すると共に、前記第2の削除要求を前記第5の情報処理装置に転送する
    請求項6記載の情報処理装置。
  8. 前記第1のデータを参照することを要求する第1の参照要求を受信した場合、前記第1のデータを読み出し、前記第1の参照要求に対する応答を前記第1の参照要求の送信元に送信し、
    前記第2のデータを参照することを要求する第2の参照要求を受信した場合、前記第1の参照要求を前記第5の情報処理装置に転送する参照部
    をさらに有する請求項7記載の情報処理装置。
  9. 複数の情報処理装置
    を有し、
    前記複数の情報処理装置のうち第1の情報処理装置が、
    データの保存先を特定するための情報を格納する第1情報格納部と、
    前記第1情報格納部に格納された情報を用いて、端末から受信した第1のデータの保存先を特定し、前記第1のデータの保存先が前記第1の情報処理装置であるか判定し、
    前記第1のデータの保存先が前記第1の情報処理装置である場合、前記第1のデータを保存し、前記複数の情報処理装置のうち前記第1のデータの複製の保存先である第2の情報処理装置を所定の方法で決定し、当該第2の情報処理装置に前記複製を送信し、
    前記第1のデータの保存先が前記自情報処理装置とは異なる第3の情報処理装置である場合、前記第1のデータを、前記複数の情報処理装置のうち前記第3の情報処理装置に送信し、前記第1のデータの複製を保存する第1保存処理部と、
    を有し、
    前記第2の情報処理装置が、
    前記第2の情報処理装置から受信した前記第1のデータの複製を保存する第2保存処理部
    を有し、
    前記第3の情報処理装置が、
    前記第3の情報処理装置から受信した前記第1のデータを保存する第3保存処理部
    を有するデータ保存システム。
  10. 前記コンピュータが、
    データの保存先を特定するための情報を格納する第1情報格納部に格納された前記情報を用いて、端末から受信した第1のデータの保存先を特定し、前記第1のデータの保存先が前記コンピュータであるか判定し、
    前記第1のデータの保存先が前記コンピュータである場合、前記第1のデータを保存し、前記第1のデータの複製の保存先である第2のコンピュータを所定の方法で決定し、当該第2のコンピュータに前記複製を送信し、
    前記第1のデータの保存先が前記コンピュータとは異なる第3のコンピュータである場合、前記第1のデータを前記第3のコンピュータに送信し、前記第1のデータの複製を保存する、
    処理を実行するデータ保存方法。
JP2014239251A 2014-11-26 2014-11-26 情報処理装置、データ保存システム、及びデータ保存方法 Withdrawn JP2016099969A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014239251A JP2016099969A (ja) 2014-11-26 2014-11-26 情報処理装置、データ保存システム、及びデータ保存方法
US14/873,608 US20160150010A1 (en) 2014-11-26 2015-10-02 Information processing apparatus, data save method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014239251A JP2016099969A (ja) 2014-11-26 2014-11-26 情報処理装置、データ保存システム、及びデータ保存方法

Publications (1)

Publication Number Publication Date
JP2016099969A true JP2016099969A (ja) 2016-05-30

Family

ID=56011418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014239251A Withdrawn JP2016099969A (ja) 2014-11-26 2014-11-26 情報処理装置、データ保存システム、及びデータ保存方法

Country Status (2)

Country Link
US (1) US20160150010A1 (ja)
JP (1) JP2016099969A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6279780B1 (ja) * 2017-02-20 2018-02-14 株式会社東芝 分散ストレージの非同期リモートレプリケーションシステムおよび分散ストレージの非同期リモートレプリケーション方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3522013B1 (en) * 2018-02-01 2020-04-01 Siemens Aktiengesellschaft Method and system for migration of containers in a container orchestration platform between compute nodes
US11921876B1 (en) * 2023-06-14 2024-03-05 Snowflake Inc. Organization-level global data object on data platform
US11909743B1 (en) 2023-07-13 2024-02-20 Snowflake Inc. Organization-level account on data platform

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008102195A1 (en) * 2007-02-22 2008-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (dht) overlay network
US20100131554A1 (en) * 2008-11-26 2010-05-27 Yahoo! Inc. System and method for publishing messages asynchronously in a distributed database
WO2011157144A2 (zh) * 2011-05-31 2011-12-22 华为技术有限公司 数据读写方法、装置和存储***
US10235404B2 (en) * 2014-06-25 2019-03-19 Cohesity, Inc. Distributed key-value store

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6279780B1 (ja) * 2017-02-20 2018-02-14 株式会社東芝 分散ストレージの非同期リモートレプリケーションシステムおよび分散ストレージの非同期リモートレプリケーション方法

Also Published As

Publication number Publication date
US20160150010A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
US8495013B2 (en) Distributed storage system and method for storing objects based on locations
TW201627882A (zh) 先決式資料庫系統及其資料搬移方法
US20170093721A1 (en) Setting method, server device and service chain system
US11818209B2 (en) State management and object storage in a distributed cloud computing network
JP5544523B2 (ja) 分散処理システム、分散処理方法、負荷分散装置、負荷分散方法、及び、負荷分散プログラム
JP2016099969A (ja) 情報処理装置、データ保存システム、及びデータ保存方法
CN103338252A (zh) 一种分布式数据库并发存储虚拟请求机制
CN107229649B (zh) 数据更新***及方法
JP2017107556A (ja) コンテンツ指向ネットワーク内のキーカタログ
CN105653473A (zh) 基于二元标识的缓存数据访问方法及装置
US20120034906A1 (en) Storage medium storing relay control program, relay server device, and relay control method
WO2018092679A1 (ja) ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム
JP2009289161A (ja) クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
CN104978337A (zh) 一种基于软件定义网络的分布式视频搜索引擎框架
JP2016099709A (ja) アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置
WO2021082538A1 (zh) 会话控制处理方法、装置、设备及介质
JP6495777B2 (ja) コンテンツ配信ネットワークの転送装置、サーバ装置及びプログラム
US20200195720A1 (en) Communication device and communication method for processing meta data
JP2016149714A (ja) コンテンツ配信ネットワークの転送装置
US20180176129A1 (en) Communication method, control device, and system
US20130227066A1 (en) Data transfer apparatus and data transfer method
US20170286490A1 (en) Implicit subscriptions in the connection protocol of a network switch
CN114928604B (zh) 文件分发方法和装置
JP6714547B2 (ja) 負荷分散装置、負荷分散方法、および、負荷分散プログラム
JP6403566B2 (ja) コンテンツ配信ネットワークの転送装置、クライアント装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171106