JP6238931B2 - 情報処理装置、プログラム、情報処理システム及びデータ管理方法 - Google Patents

情報処理装置、プログラム、情報処理システム及びデータ管理方法 Download PDF

Info

Publication number
JP6238931B2
JP6238931B2 JP2015098796A JP2015098796A JP6238931B2 JP 6238931 B2 JP6238931 B2 JP 6238931B2 JP 2015098796 A JP2015098796 A JP 2015098796A JP 2015098796 A JP2015098796 A JP 2015098796A JP 6238931 B2 JP6238931 B2 JP 6238931B2
Authority
JP
Japan
Prior art keywords
record
data
information
information processing
processing apparatus
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
JP2015098796A
Other languages
English (en)
Other versions
JP2016218498A (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.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan 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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2015098796A priority Critical patent/JP6238931B2/ja
Publication of JP2016218498A publication Critical patent/JP2016218498A/ja
Application granted granted Critical
Publication of JP6238931B2 publication Critical patent/JP6238931B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は情報処理装置、プログラム、情報処理システム及びデータ管理方法に関する。
従来から、KVS(キーバリューストア)と呼ばれるデータの保存・管理手法が知られている。KVSは任意の保存したいデータ(値:value)に対し、対応する一意の標識情報(キー:key)を設定し、バリューとキーとをペアで保存するデータの保存・管理手法である。KVSにおけるデータの読み出し時には、キーを指定することで、キーに対応するバリューを読み出すことができる。例えばKVSにおけるキーとバリューとの対を基本構造とするレコードにおいて、バリューに他のキーとバリューとの対を複数含ませる内容が知られている(例えば特許文献1参照)。
特開2013−178660号公報
KVSはバリューとキーとをペアで保存するため、データの書き込み及び読み出しがリレーショナルデータベース(RDB)よりも高速となるが、複雑な形式のデータの管理に向いていない。
一方、RDBは1件のデータを複数の項目(フィールド)の集合として表現し、データの集合をテーブルと呼ばれる表で表すデータの保存・管理手法である。RDBは複雑な形式のデータの管理を行うことができるが、データの書き込み及び読み出しがKVSよりも低速となることが多く、高速なデータ操作に向いていない。
なお、特許文献1に記載の内容ではバリューに他のキーとバリューとの対を複数含ませる構成であるため、バリューに複数含まれる他のキーとバリューとの対をデータ操作するプログラムの開発が別途必要である。また、特許文献1に記載の内容ではバリューに複数含まれる他のキーとバリューとの対を全て読み出してデータ操作するため、高速なデータ操作に向いていない。
本発明は上記した課題に鑑みなされたものであり、複雑な形式のデータの管理と、そのデータに対する高速なデータ操作とを両立することを目的とする。
上記した課題を解決するために、本願請求項1は、保存するデータと一意の標識情報との対をレコードとして保存し、前記標識情報を指定した前記データの操作要求に基づいて、前記標識情報と対となる前記データの操作を行う情報処理装置であって、前記データと前記標識情報との対を設定するレコード毎に、他のレコードに含まれる前記データは設定せず、複数の他のレコードにそれぞれ含まれる複数の前記標識情報を設定可能なデータ構造により、前記データと前記標識情報との対を設定するレコードと、該レコードに前記標識情報が設定された前記他のレコードとを関連付けられたレコードとしてデータ操作を行うデータ操作手段、を有することを特徴とする。
本発明によれば、複雑な形式のデータの管理と、そのデータに対する高速なデータ操作とを両立できる。
本実施形態におけるKVSのレコードの一例のデータ構造図である。 関連付けられたKVSのレコードの一例の説明図である。 本実施形態におけるKVSのバリューへのアクセス経路を示す図である。 本実施形態におけるKVSのレコードの削除を示す図である。 本実施形態に係る情報処理システムの一例の構成図である。 本実施形態に係るコンピュータの一例のハードウェア構成図である。 本実施形態に係るデータ管理サーバ装置の一例の処理ブロック図である。 データ保存部に保存されているKVSのレコードの一例の構成図である。 ロックする範囲について説明する図である。 キー毎に複数の属性情報を持つデータでの利用を説明する為の図である。 特定の条件で分類するデータでの利用を説明する為の図である。 相互に関連付けられるデータでの利用を説明する為の図である。 キャッシュサーバの処理の一例を示す図である。 自機に保存しているファイルの情報を日付でグループ化してデータ管理する処理の一例のフローチャートである。 データ転送バッファの処理の一例を示す図である。 トランザクション処理用のスレッドプールとキューとを利用するトランザクション処理の一例の説明図である。 データ保存部のトランザクション処理用のデータのキューについて説明する図である。
次に、本発明の実施形態について、詳細に説明する。
[データ構造]
図1は本実施形態におけるKVSのレコードの一例のデータ構造図である。本実施形態におけるKVSのレコード1は1つのキー2及びバリュー3のペアを有すると共に、1つ以上のサブキー4のリストを設定可能なデータ構成である。サブキー4にはレコード1と関連付けられている他のレコードのキーが設定される。
なお、図1ではキー2及びサブキー4として、キー2及びサブキー4から計算した値であるハッシュ値を設定している例を示している。図1のレコード1はサブキー4のリストを有することで、サブキー4がキーとして設定されている他のレコードと関連付けられている。
図1に示すデータ構造のレコード1により、複数のレコード1は図2に示すように関連付けられる。図2は関連付けられたKVSのレコードの一例の説明図である。例えばRDBで図2(A)に示されるような1件のデータを本実施形態におけるKVSのレコードにより表すと、図2(B)のようになる。
図2(A)に示す1件のデータはキー「foo」で識別されるデータであり、項目及び値のペアとして「co:jp」と「sx:m」と「ym:foo@xx.co.jp」とを有している例を示している。
図2(B)に示されたレコード1a〜1dは図2(A)のキー「foo」と項目「foo/co」と項目「foo/sx」と項目「foo/ym」とをキー2a〜2dとして設定している。レコード1aはレコード1b〜1dのキー2b〜2dをサブキー4b〜4dとして設定することで、レコード1b〜1dと関連付けられている。
レコード1bはキー2bのバリュー3bとして「jp」を設定している。レコード1cはキー2cのバリュー3cとして「m」を設定している。また、レコード1dはキー2dのバリュー3dとして「foo@xx.co.jp」を設定している。
図2(B)に示すように、本実施形態におけるKVSでは、図2(A)に示した1件のデータを、サブキー4b〜4dにより関連付けられた4つのレコード1a〜1dに分けて階層化して表すことができる。
図2(B)のレコード1b〜1dのバリュー3b〜3dへのアクセス経路は例えば図3に示すようになる。図3は本実施形態におけるKVSのバリューへのアクセス経路を示す図である。
例えば図3に実線の矢印に示すように、レコード1cのバリュー3cへのアクセス経路はキー2aの指定により識別されたレコード1aからサブキー4cを取得し、サブキー4cをキー2cとするレコード1cを識別することで、レコード1cのバリュー3cへアクセスする経路となる。
また、図3の点線の矢印に示すように、レコード1cのバリュー3cへのアクセス経路はレコード1cのキー2cが分かっていれば、レコード1cのバリュー3cへ直接アクセスする経路も可能となる。
図2(B)のレコード1a〜1dの削除は例えば図4に示すように行われる。図4は本実施形態におけるKVSのレコードの削除を示す図である。例えばレコード1aを削除する場合はレコード1aのサブキー4b〜4dにより関連付けられているレコード1b〜1dをレコード1aと一緒に削除することができる。レコード1aを削除する場合であってもレコード1aのサブキー4b〜4dにより関連付けられているレコード1b〜1dはレコード1aと一緒に削除せず、残すこともできる。
なお、図1〜図4ではサブキー4b〜4dに、レコード1aの下位階層に位置する他のレコード1b〜1dのキー2b〜2dを設定する例を示したが、レコード1b〜1dの上位階層に位置するレコード1aのキー2aを、レコード1b〜1dのサブキーとして設定するようにしてもよい。また、本実施形態におけるKVSのレコード1のサブキー4のリストには上位階層及び下位階層に位置する他のレコードのキーを両方設定できるようにしてもよい。
さらに、図1〜図4ではKVSのレコードを2階層に階層化した例を示したが、下位階層のレコード1b〜1dにサブキー4を設定することで、3階層に階層化することも可能である。つまり、レコード1のサブキー4として一つ下の階層のレコードのキーを設定することを繰り返すことにより、KVSのレコードを4階層以上に階層化することも可能である。
[システム構成]
図5は、本実施形態に係る情報処理システムの一例の構成図である。なお、図5の構成図は一例であって、データ管理サーバ装置12を有していれば、他の構成の情報処理システムであってもよい。
図5に示した情報処理システム10は、データ管理サーバ装置12、Webサーバ装置14、1台以上のクライアント装置16が、LANやインターネット等のネットワークN1又はN2を介して接続される構成である。データ管理サーバ装置12及びWebサーバ装置14はネットワークN2を介して接続されている。Webサーバ装置14とクライアント装置16とはネットワークN1を介して接続されている。ネットワークN1及びN2は同一のネットワークであってもよい。
クライアント装置16はユーザが操作するPC、スマートフォン、タブレットなどの端末装置である。クライアント装置16はWebサーバ装置14に各種要求を行う。Webサーバ装置14はクライアント装置16から要求を受け付け、受け付けた要求に応じて処理を行う。
なお、Webサーバ装置14は必要があればデータの読み出しをデータ管理サーバ装置12に要求し、データを受信する。また、Webサーバ装置14は必要があればデータの書き込みをデータ管理サーバ装置12に要求し、送信したデータの書き込みをデータ管理サーバ装置12に行わせる。
データ管理サーバ装置12は、図1〜図4に示したデータ構造のKVSのレコード1によりデータの保存・管理を行う。また、データ管理サーバ装置12は図1〜図4に示したデータ構造のKVSのレコード1により保存・管理されているデータを、Webサーバ装置14からの要求に応じて読み出すデータ操作や書き込むデータ操作等を行う。データ管理サーバ装置12が行う処理の詳細は後述する。
図1の情報処理システム10は一例であって用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば図5に示したデータ管理サーバ装置12は複数のコンピュータに分散して構成してもよい。
また、図5に示した情報処理システム10は図1〜図4に示したデータ構造のKVSのレコード1によりデータの保存・管理を行うサーバ装置を別途設けてもよい。このように図1〜図4に示したデータ構造のKVSのレコード1によりデータの保存・管理を行う能はデータ管理サーバ装置12以外に設けるようにしてもよい。
[ハードウェア構成]
図5のデータ管理サーバ装置12、Webサーバ装置14及びクライアント装置16は例えば図6に示すハードウェア構成のコンピュータにより実現される。図6は、本実施形態に係るコンピュータの一例のハードウェア構成図である。
図6のコンピュータは、入力装置501、表示装置502、外部I/F503、RAM504、ROM505、CPU506、通信I/F507、及びHDD508などを備えており、それぞれがバスBで相互に接続されている。なお、入力装置501及び表示装置502は必要なときに接続して利用する形態であってもよい。
入力装置501はユーザが各種信号を入力するのに用いるタッチパネル、操作キーやボタン、キーボードやマウスなどである。表示装置502は画面を表示する液晶や有機ELなどのディスプレイである。通信I/F507はコンピュータをネットワークN1、N2に接続するインタフェースである。これによりコンピュータは通信I/F507を介してデータ通信を行うことができる。
また、HDD508はプログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータにはコンピュータ全体を制御する基本ソフトウェアであるOS、及びOS上において各種機能を提供するアプリケーションなどがある。
なお、コンピュータはHDD508に替えて、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。
外部I/F503は、外部装置とのインタフェースである。外部装置には、記録媒体503aなどがある。これにより、コンピュータは外部I/F503を介して記録媒体503aの読み取り及び/又は書き込みを行うことができる。記録媒体503aにはフレキシブルディスク、CD、DVD、SDメモリカード、USBメモリなどがある。
ROM505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)の一例である。ROM505にはコンピュータの起動時に実行されるBIOS、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM504はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)の一例である。
CPU506は、ROM505やHDD508などの記憶装置からプログラムやデータをRAM504上に読み出し、処理を実行することで、コンピュータ全体の制御や機能を実現する演算装置である。
本実施形態に係るデータ管理サーバ装置12、Webサーバ装置14及びクライアント装置16は上記したハードウェア構成のコンピュータにおいてプログラムを実行することにより各種処理を実現できる。
[ソフトウェア構成]
本実施形態に係る情報処理システム10のデータ管理サーバ装置12は例えば図7に示す処理ブロックにより実現される。図7は本実施形態に係るデータ管理サーバ装置の一例の処理ブロック図である。
図7の情報処理システム10のデータ管理サーバ装置12はプログラムを実行することによりデータ操作部20とデータ保存部30とを実現する。データ操作部20は書込み部21、読出し部22、削除部23、トランザクション機能部24を有する構成である。
なお、図7はデータ管理サーバ装置12がデータ保存部30を有する構成を一例として示しているが、データ管理サーバ装置12以外のサーバ装置にデータ保存部30を設けるようにしてもよい。
データ保存部30は、図1〜図4に示したデータ構造のKVSのレコード1を保存している。データ操作部20はデータ保存部30へのレコード1の書き込みやデータ保存部30からのキー2を指定したバリュー3やサブキー4の読み出し等、データ保存部30に保存されているレコード1に対するデータ操作を行う。データ操作部20は例えばKVS用ライブラリとして提供することができる。
書込み部21はデータ保存部30に対し、図1〜図4に示したデータ構造のレコード1の書き込みを行う。例えば書込み部21は図2に示したデータ構造のレコード1b〜1dの書き込みを行う際、レコード1aのサブキー4b〜4dにレコード1b〜1dのキー2b〜2dを設定することで、レコード1aを上位階層のレコードとして下位階層のレコード1b〜1dと関連付ける。
また、読出し部22はキー2を指定して、指定したキー2に対応するバリュー3やサブキー4のデータ保存部30からの読み出しを行う。削除部23はデータ保存部30から図1〜図4に示したデータ構造のレコード1の削除を行う。
トランザクション機能部24はデータ保存部30に保存されている図1〜図4に示したデータ構造のKVSのレコード1が更新されたタイミングで(更新をトリガとして)任意のプログラムを実行できる機能である。トランザクション機能部24の機能を利用することにより、本実施形態の情報処理システム10では、データ保存部30に保存されているレコード1が更新されたタイミングで実行される任意のプログラムを配置できる。
データ保存部30は例えば図8に示すように、図1〜図4に示したデータ構造のKVSのレコード1を保存している。図8はデータ保存部に保存されているKVSのレコードの一例の構成図である。
図8では図2に示したレコード1a〜1dの他、キー「bar」で識別されるデータを表した4つのレコード1A、キー「baz」で識別されるデータを表した4つのレコード1Bを示している。
データ操作部20はデータ保存部30に保存されているレコード1に対してデータ操作を行う場合、ロックする範囲(排他制御対象の範囲)を図9に示すように設定する。図9はロックする範囲について説明する図である。
本実施形態のデータ操作部20がデータ保存部30からバリュー1000を読み出す場合にはレコード1dがロックする範囲1003となる。例えばKVSの一例であるMDBM(Memory-mapped Database Management System)では図9に示す表全体がロックする範囲1001となる。また、RDBではキー「foo」で識別されるデータを表した4つのレコード1a〜1dがロックする範囲1002となる。
このように、本実施形態のデータ操作部20がデータ保存部30からバリュー1000を読み出す場合にはロックする範囲1003がレコード1dの単位となるため、ロック範囲を最小限とすることができる。したがって、本実施形態のデータ管理サーバ装置12はロック待ちが発生しづらく、複数プログラムからの同時使用(マルチスレッドやマルチプロセスなどの並列処理)においても高速に処理できる。
[利用例]
<キー毎に複数の属性情報を持つデータでの利用>
図10はキー毎に複数の属性情報を持つデータでの利用を説明する為の図である。図10では図8に示したレコード1の関連を視覚的なイメージとして示している。
図10ではデータがキー「foo」で識別されるレコード、キー「bar」で識別されるレコード、キー「baz」で識別されるレコードに分類され、更に分類されたレコードがサブキーにより副分類されている。各サブキーも独立したレコードとしてバリューが設定されている。
例えばキー毎に複数の属性情報を持つデータの一例としてはユーザのIDごとにユーザの性別、誕生日、メールアドレス等の数多くのユーザの属性情報を持つユーザ情報などがある。このようなユーザ情報を図1〜図4に示したデータ構造のKVSで扱うことにより本実施形態の情報処理システム10は、ロック範囲をユーザの属性情報をバリューとするレコード単位とすることができると共に、ユーザの属性情報をバリューとするレコードに直接アクセスすることで高速に処理できる。
<特定の条件で分類するデータでの利用>
また、図11は特定の条件で分類するデータでの利用を説明する為の図である。図11では日付でレコードを分類する例を示している。図11ではキー「20141014」で識別されるレコード、キー「20141015」で識別されるレコード、キー「20141016」で識別されるレコードに分類され、更に分類されたレコードが日付をキーとするレコードのサブキーにより関連付けられている。
例えば特定の条件で分類するデータの一例としては保存された日付で分類するファイルなどがある。このようなファイルを図1〜図4に示したデータ構造のKVSでデータ管理することにより本実施形態の情報処理システム10は、例えば保存された日付をキーとしてデータ操作(例えば削除など)を行うことで、その日付にキャッシュサーバに保存されたファイルに対して一括してデータ操作を行うことができる。このように、本実施形態の情報処理システム10は共通した特徴でデータを分類(グループ化)できる。
<相互に関連付けられるデータでの利用>
また、図12は相互に関連付けられるデータでの利用を説明する為の図である。図12では相互に関連付けられるデータの一例として友達相関図を示している。図12に示されているキーはユーザの名前である。
図12の各キーから他のキーに向かって延びている矢印は、各キーに設定されたユーザが友達として登録している他のユーザのキーに向かって延びている。例えば図12に示した図ではキー「Jack」からキー「Dave」とキー「Pat」とキー「Gary」とキー「Keith」とキー「Chick」とに向かって矢印が延びている。
したがって、JackはDave、Pat、Gary、Keith及びChickを友達として登録していることが分かる。なお、図12では片方向に矢印が延びている状態を片思い、双方向に矢印が延びている状態を相思相愛としている。
図12の友達相関図は、例えば各キーに設定されたユーザが友達として登録している他のユーザのキーを、図1〜図4に示したデータ構造のKVSのサブキーとして設定することで、表すことができる。
例えばキー「Jack」が設定されたレコードはサブキーとして、キー「Dave」とキー「Pat」とキー「Gary」とキー「Keith」とキー「Chick」とを設定することで、Jackが友達として登録しているDave、Pat、Gary、Keith及びChickを表すことができる。図12に示すように、キーとサブキーとは主従関係である必要はなく、各キーを関連付ける情報として利用することもできる。
<キャッシュサーバでの利用>
図1〜図4に示したデータ構造のKVSは例えば図13に示すようにキャッシュサーバにおいて利用できる。図13はキャッシュサーバの処理の一例を示す図である。図13ではデータ管理サーバ装置12をキャッシュサーバとして機能させる。データ管理サーバ装置12は必要に応じてオリジンサーバ装置18からファイルを取得することができる。
データ管理サーバ装置12はファイルの読出し要求を受信する。データ管理サーバ装置12は読出し要求を受信したファイルを保存していれば、保存していたファイルを応答として返す。また、データ管理サーバ装置12は読出し要求を受信したファイルを保持していなければ、そのファイルをオリジンサーバ装置18から受信し、自機に保存したあとで応答として返す。
このようなキャッシュサーバとして機能するデータ管理サーバ装置12ではファイルが保存されてから所定期間が経過した(キャッシュアウトした)ファイルを自動的に削除するキャッシュアウト処理を行うものがある。
キャッシュアウト処理を行うキャッシュサーバとして機能するデータ管理サーバ装置12は例えば保存しているファイルを図11に示すように日付でグループ化してデータ管理することで、日付を指定してキャッシュアウトしたファイルを一括して削除できる。
なお、データ管理サーバ装置12は例えば図14に示す処理手順により、自機に保存しているファイルの情報を図11のように日付でグループ化してデータ管理する。図14は自機に保存しているファイルの情報を日付でグループ化してデータ管理する処理の一例のフローチャートである。データ管理サーバ装置12はファイルの読出し要求を受信することで図14のフローチャートの処理を開始する。
ステップS11において、データ管理サーバ装置12は自機に保存していないファイルの読出し要求であるか否かを判定する。自機に保存しているファイルの読出し要求であればデータ管理サーバ装置12はステップS12に進み、自機に保存しているファイルを読出し要求元に返す。
自機に保存しているファイルの読出し要求でなければ、データ管理サーバ装置12はステップS13において、読出し要求のあったファイルをオリジンサーバ装置18から取得して自機に保存する。また、ステップS14において、データ管理サーバ装置12は読出し要求のあったファイルを読出し要求元に返す。
ステップS15に進み、データ管理サーバ装置12はステップS13で取得して保存したファイルの情報(ファイルパス等)を図11のように、日付を示すキーのサブキーとして追加して登録することで、自機に保存しているファイルの情報を図11のように日付でグループ化しておくことができる。データ管理サーバ装置12は日付を指定してレコードの削除を要求するだけで、そのレコードとサブキーにより関連付けられたファイルを一括して自機から削除できる。
このように、自機に保存しているファイルの情報を図11のように日付でグループ化してデータ管理するデータ管理サーバ装置12では、全レコードからファイルを削除する日付が設定されたレコードを抽出する必要が無いため、高速にファイルを削除できる。
<データ転送バッファでの利用>
図1〜図4に示したデータ構造のKVSは例えば図15に示すデータ転送バッファにおいて利用できる。図15はデータ転送バッファの処理の一例を示す図である。図15ではデータ管理サーバ装置12をデータ転送バッファとして機能させる。データ管理サーバ装置12のデータ操作部20にはトランザクション(処理履歴)出力機能を有するトランザクション機能部24が含まれる。
データ管理サーバ装置12のデータ操作部20に含まれるトランザクション機能部24の処理部分はプラグインとしてユーザが独自に実装し、置き換えることができる。図15では前段プロセス40が後段プロセス42にデータを転送する際、ネットワーク断などの後段のエラーによるデータロストを防ぐ仕組みを表している。
トランザクション機能部24は後段のエラーを検知した場合に、そのデータを書き戻す処理(フィードバック)を行うことにより、データ転送のリトライを行える。トランザクション機能部24は後段に転送できたデータを削除する。
トランザクション機能部24は、トランザクション処理にトランザクション処理用のスレッドプールを利用できる。また、トランザクション処理にトランザクション処理用のスレッドプールを利用した場合、トランザクション機能部24はトランザクション処理用のデータをキューイングするために、図1〜図4に示したデータ構造のKVSを利用した後述のキューを利用できる。
図16は、トランザクション処理用のスレッドプールとキューとを利用するトランザクション処理の一例の説明図である。前段プロセス40はデータ操作部20を介してデータ保存部30にデータ(ファイル)を書き込む。書き込み後、トランザクション機能部24はトランザクション処理用のデータを、図1〜図4に示したデータ構造のKVSを利用してデータ保存部30にキューイングする。
データ保存部30にキューイングされたトランザクション処理用のデータは図1〜図4に示したデータ構造のKVSを利用した階層化により、トランザクション処理用のデータに順番を持たせることで、トランザクション処理用のデータのキューを実現する。
データ操作部20の別スレッドで動作しているワーカスレッド50は、データ保存部30にキューイングされたトランザクション処理用のデータを順番に読み出し、トランザクション機能部24の関数を呼び出す。読み出されたトランザクション処理用のデータは呼び出された関数により後段プロセス42に出力される。
このように、スレッドプールを利用する場合、データ操作部20はデータ保存部30のトランザクション処理用のデータのキューにトランザクション処理用のデータをキューイングし、別スレッドでトランザクション処理を行う。
図17はデータ保存部のトランザクション処理用のデータのキューについて説明する図である。図17のキューは図1〜図4に示したデータ構造のKVSを利用して順番を持たせたサブキー4のレコードのバリューとしてトランザクション処理用のデータを保存することにより、キューイング機能を実現する。
例えば図17では申し込み・受付の番号をサブキー4に設定し、サブキー4をキーとして設定しているレコードに「申し込み・受付の内容」を設定している。FIFO(先入れ先出し)のキューでは申し込み・受付の番号をサブキー4として設定したレコードが一番後(図17の登録処理キューの最下段)に位置するようにキー2と関連付ける。また、LIFO(後入れ先出し)のキューでは申し込み・受付の番号をサブキー4として設定したレコードが一番前(図17の登録処理キューの最上段)に位置するようにキー2と関連付ける。なお、図17の登録処理キューからのレコードの取り出しは、FIFOのキュー又はLIFOのキューであっても、一番前(図17の登録処理キューの最上段)の位置から行われる。
このように、図1〜図4に示したデータ構造のKVSを利用することで、FIFO及びLIFOのキューイング機能を実現することができる。
図17のようなキューと、前述したトランザクション機能とを利用することで、本実施形態のデータ管理サーバ装置12は「プログラム1」の構造を「プログラム2」の構造にすることができるため、Step1の申し込み・受付を、Step2の登録処理とは非同期に行うことができる。
データ管理サーバ装置12はStep1の申し込み・受付のデータをデータ保存部30にキューイングしておく。Step2の登録処理はStep1の申し込み・受付と非同期に行われ、データ保存部30にキューイングされている順番にStep1の申し込み・受付のデータを読み出し、そのデータを登録する処理を行う。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1、1a〜1d、1A、1B レコード
2、2a〜2d キー(Key)
3、3b〜3d、1000 バリュー(Value)
4、4b〜4d サブキー(Subkey)
10 情報処理システム
12 データ管理サーバ装置
14 Webサーバ装置
16 クライアント装置
18 オリジンサーバ装置
20 データ操作部
21 書込み部
22 読出し部
23 削除部
24 トランザクション機能部
30 データ保存部
40 前段プロセス
42 後段プロセス
50 ワーカスレッド
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 RAM
505 ROM
506 CPU
507 通信I/F
508 HDD
1001〜1003 ロックする範囲
B バス
N1、N2 ネットワーク

Claims (11)

  1. 保存するデータと一意の標識情報との対をレコードとして保存し、前記標識情報を指定した前記データの操作要求に基づいて、前記標識情報と対となる前記データの操作を行う情報処理装置であって、
    前記データと前記標識情報との対を設定するレコード毎に、他のレコードに含まれる前記データは設定せず、複数の他のレコードにそれぞれ含まれる複数の前記標識情報を設定可能なデータ構造により、前記データと前記標識情報との対を設定するレコードと、該レコードに前記標識情報が設定された前記他のレコードとを関連付けられたレコードとしてデータ操作を行うデータ操作手段、
    を有することを特徴とする情報処理装置。
  2. 前記データ構造により、前記レコードを保存する保存手段、
    を更に有することを特徴とする請求項1記載の情報処理装置。
  3. 前記データ操作手段は、前記データと前記標識情報との対を設定するレコード毎に、1つ以上の下位階層のレコードの前記標識情報を設定可能なデータ構造により、前記下位階層のレコードの前記標識情報を上位階層のレコードに設定して、前記上位階層のレコードと前記下位階層のレコードとを関連付けること
    を特徴とする請求項1又は2記載の情報処理装置。
  4. 前記データ操作手段は、データ操作を行う場合の排他制御対象の範囲を、前記レコードの単位とすること
    を特徴とする請求項1乃至3何れか一項記載の情報処理装置。
  5. 前記データ操作手段は、前記レコードを保存する前記データ操作を受け付けた場合に、前記下位階層のレコードの前記標識情報を上位階層のレコードに設定して、前記上位階層のレコードと前記下位階層のレコードとを関連付けること
    を特徴とする請求項3記載の情報処理装置。
  6. 前記データ操作手段は、保存されている前記レコードを削除する操作を受け付けた場合に、削除する操作を受け付けた前記レコードを削除すると共に、該レコードの前記下位階層のレコードを削除すること
    を特徴とする請求項3記載の情報処理装置。
  7. 前記データ操作手段は、保存するファイルの情報を、日付を前記標識情報として設定している前記上位階層のレコードの前記下位階層のレコードに設定し、前記日付を前記標識情報として設定している前記上位階層のレコードを削除する操作を受け付けた場合に、前記上位階層のレコードの前記下位階層のレコードに設定されている前記ファイルの情報に基づき、前記ファイルを削除すること
    を特徴とする請求項6記載の情報処理装置。
  8. 前記情報処理装置は、受け付けた要求をキューにより管理して処理する場合に、受け付けた要求の情報を前記下位階層のレコードの前記データとして設定し、前記上位階層のレコードと関連付けられた前記下位階層のレコードを、前記キューとして利用すること
    を特徴とする請求項3記載の情報処理装置。
  9. 保存するデータと一意の標識情報との対をレコードとして保存し、前記標識情報を指定した前記データの操作要求に基づいて、前記標識情報と対となる前記データの操作を行う情報処理装置を、
    前記データと前記標識情報との対を設定するレコード毎に、他のレコードに含まれる前記データは設定せず、複数の他のレコードにそれぞれ含まれる複数の前記標識情報を設定可能なデータ構造により、前記データと前記標識情報との対を設定するレコードと、該レコードに前記標識情報が設定された前記他のレコードとを関連付けられたレコードとしてデータ操作を行うデータ操作手段、
    として機能させるためのプログラム。
  10. 保存するデータと一意の標識情報との対をレコードとして保存し、前記標識情報を指定した前記データの操作要求に基づいて、前記標識情報と対となる前記データの操作を行う複数の情報処理装置を含む情報処理システムであって、
    前記データと前記標識情報との対を設定するレコード毎に、他のレコードに含まれる前記データは設定せず、複数の他のレコードにそれぞれ含まれる複数の前記標識情報を設定可能なデータ構造により、前記データと前記標識情報との対を設定するレコードと、該レコードに前記標識情報が設定された前記他のレコードとを関連付けられたレコードとしてデータ操作を行うデータ操作手段、
    を有することを特徴とする情報処理システム。
  11. 保存するデータと一意の標識情報との対をレコードとして保存し、前記標識情報を指定した前記データの操作要求に基づいて、前記標識情報と対となる前記データの操作を行う情報処理装置において実行されるデータ管理方法であって、
    前記データと前記標識情報との対を設定するレコード毎に、他のレコードに含まれる前記データは設定せず、複数の他のレコードにそれぞれ含まれる複数の前記標識情報を設定可能なデータ構造により、前記データと前記標識情報との対を設定するレコードと、該レコードに前記標識情報が設定された前記他のレコードとを関連付けられたレコードとしてデータ操作を行うデータ操作ステップ、
    を有することを特徴とするデータ管理方法。
JP2015098796A 2015-05-14 2015-05-14 情報処理装置、プログラム、情報処理システム及びデータ管理方法 Active JP6238931B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015098796A JP6238931B2 (ja) 2015-05-14 2015-05-14 情報処理装置、プログラム、情報処理システム及びデータ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015098796A JP6238931B2 (ja) 2015-05-14 2015-05-14 情報処理装置、プログラム、情報処理システム及びデータ管理方法

Publications (2)

Publication Number Publication Date
JP2016218498A JP2016218498A (ja) 2016-12-22
JP6238931B2 true JP6238931B2 (ja) 2017-11-29

Family

ID=57578556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015098796A Active JP6238931B2 (ja) 2015-05-14 2015-05-14 情報処理装置、プログラム、情報処理システム及びデータ管理方法

Country Status (1)

Country Link
JP (1) JP6238931B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0667958A (ja) * 1992-08-19 1994-03-11 Nec Software Kansai Ltd 参照日付自動登録方式
WO2010114006A1 (ja) * 2009-03-31 2010-10-07 日本電気株式会社 ストレージシステムとストレージアクセス方法とプログラム
JP5524144B2 (ja) * 2011-08-08 2014-06-18 株式会社東芝 key−valueストア方式を有するメモリシステム
JP2013178660A (ja) * 2012-02-28 2013-09-09 Keepdata Ltd コンピュータシステム及びデータストレージサービスの提供方法

Also Published As

Publication number Publication date
JP2016218498A (ja) 2016-12-22

Similar Documents

Publication Publication Date Title
US11288267B2 (en) Pluggable storage system for distributed file systems
US20210271646A1 (en) Smart archiving and data previewing for mobile devices
US20190065509A1 (en) Data previewing before recalling large data files
US12003591B2 (en) Automatic discovery and registration of service applications for files introduced to a user interface
US20150012861A1 (en) Syncing content clipboard
US20150134602A1 (en) Atomic update operations in a data storage system
US10007548B2 (en) Transaction system
US8914428B2 (en) System and method for maintaining a file system at a computing device
US10838944B2 (en) System and method for maintaining a multi-level data structure
JP2017191599A (ja) ゼロ競合並列データスタックを提供するデータ格納システムのデータ格納方法
US10467190B2 (en) Tracking access pattern of inodes and pre-fetching inodes
CN113424152A (zh) 多租户分布式系统中的基于工作流的调度和批处理
JP6834715B2 (ja) 更新処理プログラム、装置、及び方法
JP6238931B2 (ja) 情報処理装置、プログラム、情報処理システム及びデータ管理方法
US10235293B2 (en) Tracking access pattern of inodes and pre-fetching inodes
US20230095267A1 (en) Quantum data and state synchronization
JP6677605B2 (ja) プログラム、ストレージシステム、およびストレージシステムの制御方法
US10956512B2 (en) Document link migration
US8977814B1 (en) Information lifecycle management for binding content
US9933961B1 (en) Method to improve the read performance in a deduplicated storage system
US10185759B2 (en) Distinguishing event type
US10706012B2 (en) File creation
US11681662B2 (en) Tracking users modifying a file
Kettner et al. Data-Loading Patterns
JP2019125264A (ja) Wosのデータ構造、データ変換プログラム、データ変換方法及びデータ変換装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171031

R150 Certificate of patent or registration of utility model

Ref document number: 6238931

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350