JP2014229036A - Information processing device, information processing method and information processing program - Google Patents
Information processing device, information processing method and information processing program Download PDFInfo
- Publication number
- JP2014229036A JP2014229036A JP2013107572A JP2013107572A JP2014229036A JP 2014229036 A JP2014229036 A JP 2014229036A JP 2013107572 A JP2013107572 A JP 2013107572A JP 2013107572 A JP2013107572 A JP 2013107572A JP 2014229036 A JP2014229036 A JP 2014229036A
- Authority
- JP
- Japan
- Prior art keywords
- key
- value
- cache
- group
- file
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、情報処理装置、情報処理方法、および、情報処理プログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and an information processing program.
近年、BigTable(非特許文献1参照)等の様々なKeyValueストア技術が提案されている。例えば、BigTableは、ファイルシステム(非特許文献2参照)上で(key,value)のテーブルを管理し、以下のような特徴を持つ。 In recent years, various KeyValue store technologies such as BigTable (see Non-Patent Document 1) have been proposed. For example, BigTable manages a (key, value) table on a file system (see Non-Patent Document 2) and has the following characteristics.
(1)(key,value)のテーブルをいくつかの範囲に分割し、クラスタ上のサーバ群で管理する。
(2)各サーバでは、ログ先行書き込み用ログファイル(以下、WALログとする)を一つ有する。WALログは、書き込み要求に対して永続性を担保する。
(3)各サーバは、(key,value)の削除、更新、追加といったオペレーションのWALログへの書き込みが成功すると、メインメモリ上に確保した(key,value)を格納するためのメインメモリ上のバッファ領域へ書き込みを行う。この時点で、書き込まれた(key,value)は参照可能となる。
(4)上記のメインメモリ上に確保したバッファ領域のデータ量が大きくなった場合、各サーバは、分割した範囲ごとにファイルへ書き込みを行い、バッファ領域を解放する。このように、各サーバは、メインメモリ上のバッファ領域をファイルに書きこんだ時点で、そのバッファ領域を解放することで、WALログの肥大化を防いでいる。
(1) The (key, value) table is divided into several ranges and managed by a server group on the cluster.
(2) Each server has one log write log file (hereinafter referred to as WAL log). The WAL log ensures persistence for write requests.
(3) When each server successfully writes to the WAL log for operations such as deletion, update, and addition of (key, value), the main memory on the main memory for storing (key, value) secured on the main memory Write to the buffer area. At this point, the written (key, value) can be referred to.
(4) When the amount of data in the buffer area secured on the main memory becomes large, each server writes to the file for each divided range and releases the buffer area. In this way, each server prevents the enlargement of the WAL log by releasing the buffer area when the buffer area on the main memory is written to the file.
このWALログは、バッファ領域に(key,value)が存在する間、サーバに障害が発生した場合であってもリカバリを可能とするために存在している。例えば、リカバリを依頼されたサーバは、WALログを用いて、更新された(key,value)をサーバ上のメインメモリ上のバッファのデータに読み込むことで、更新された(key,value)の復旧を行う。 This WAL log exists in order to enable recovery even when a failure occurs in the server while (key, value) exists in the buffer area. For example, the server requested for recovery uses the WAL log to restore the updated (key, value) by reading the updated (key, value) into the buffer data in the main memory on the server. I do.
一般的にサーバのメインメモリ上のバッファ領域が大きければ、WALログも大きくなる。そして、WALログが肥大化すると、サーバの障害発生後、リカバリ時にメインメモリバッファに展開する為に読み込むデータ量が多くなるため、リカバリ時間が増大してしまう。しかし一方で、メインメモリ上のバッファ領域が大きければ、検索要求受信時にメインメモリ上のバッファを検索し、結果を返却できるため、検索時間を短縮できるというメリットもある。 In general, the larger the buffer area on the server's main memory, the larger the WAL log. If the WAL log is enlarged, the amount of data read to be expanded in the main memory buffer at the time of recovery after the failure of the server increases, so that the recovery time increases. On the other hand, if the buffer area on the main memory is large, the buffer on the main memory can be searched when the search request is received, and the result can be returned.
ここで、リカバリ時間を短縮するため、予めサーバのメインメモリ上のバッファ領域を小さくしておくことも考えられる。しかし、バッファ領域を小さくしてしまうと、サーバは、検索要求受信時に、メインメモリ上のバッファから結果を返却できないこともあり、検索時間が増加してしまう可能性がある。 Here, in order to shorten the recovery time, it is conceivable to reduce the buffer area on the main memory of the server in advance. However, if the buffer area is reduced, the server may not be able to return results from the buffer on the main memory when receiving a search request, which may increase the search time.
このような問題を解決するため、ブロックキャッシュという技術がある。このブロックキャッシュは、サーバのメインメモリ上のバッファとは別にキャッシュ領域を準備し、サーバがハードディスク等からブロック(複数の(key,value)のかたまり)をメインメモリ上に読み込んだときには、このブロックをキャッシュとしてメインメモリ上に記憶する。そして、サーバは、次回の検索において、同一ブロックへの読み込み要求がなされた場合、キャッシュ上に存在するブロックを利用する。このようにすることで、サーバにおけるリカバリ時間をある程度短縮しつつ、検索時間を短縮することができる。 In order to solve such a problem, there is a technique called block cache. This block cache prepares a cache area separately from the buffer on the server's main memory, and when the server reads a block (a group of (key, value)) from the hard disk, etc., this block is read. Store in the main memory as a cache. Then, the server uses a block existing on the cache when a read request to the same block is made in the next search. By doing so, the search time can be reduced while the recovery time in the server is reduced to some extent.
しかし、前記したブロックキャッシュにおいて、キャッシュ上に存在するブロックは、少なくとも一度はディスクI/Oが発生したブロックである。このため、サーバが、一度もハードディスクから読み出されたことのないデータの検索要求を受け付けたときには、ハードディスク等からデータを読み込む必要があり、検索時間は必ずしも短縮しない。 However, in the block cache described above, a block existing on the cache is a block in which disk I / O has occurred at least once. For this reason, when the server receives a search request for data that has never been read from the hard disk, it is necessary to read the data from the hard disk or the like, and the search time is not necessarily shortened.
そこで、本発明は、前記した問題を解決し、KeyValueストアに用いられるサーバに障害が発生した場合のリカバリ時間を短縮しつつ、検索時間も短縮することを課題とする。 Therefore, an object of the present invention is to solve the above-described problems and reduce the search time while reducing the recovery time when a failure occurs in the server used for the KeyValue store.
前記した課題を解決するため、本発明の情報処理装置は、メインメモリ上に、WAL(Write Ahead Logging)ログを備え、前記WALログに、KeyValueストアに用いられる(key,value)の削除、変更、または、追加を示すオペレーションの書き込みが成功すると、前記(key,value)を、前記メインメモリ上のバッファ領域へ書き込む情報処理装置であって、前記バッファ領域に書き込まれた前記(key,value)の集合である(key,value)群のデータ量が所定の閾値を超えたとき、前記バッファ領域に書き込まれた(key,value)群をファイルへ書き出すファイル作成部と、前記バッファ領域に書き込まれた(key,value)群を、前記メインメモリ上に確保されたキャッシュ領域に移動させるキャッシュ作成部と、前記(key,value)群のファイルへの書き出し、および、前記キャッシュ領域への移動完了後、前記バッファ領域を解放するバッファ解放部と、前記keyを含む検索要求を受け付けたとき、前記キャッシュ領域から前記keyを含む(key,value)を検索し、前記キャッシュ領域に前記keyを含む(key,value)がないとき、前記ファイルから前記keyを含む(key,value)を検索する検索部とを備える。 In order to solve the above-described problem, the information processing apparatus of the present invention includes a WAL (Write Ahead Logging) log on the main memory, and deletes and changes (key, value) used for the KeyValue store in the WAL log. Or an information processing device that writes the (key, value) to the buffer area on the main memory when the operation indicating the addition is successful, the (key, value) written to the buffer area When the amount of data in the (key, value) group that is a set of data exceeds a predetermined threshold, the file creation unit that writes the (key, value) group written in the buffer area to a file, and the data that is written in the buffer area A cache creation unit for moving the (key, value) group to a cache area secured on the main memory, writing to the file of the (key, value) group, and After completion of the movement to the cache area, when a search request including the key and a buffer release unit that releases the buffer area is received, the cache area is searched for (key, value) including the key, and the cache area A search unit for searching for (key, value) including the key from the file when there is no (key, value) including the key.
本発明によれば、KeyValueストアに用いられるサーバに障害が発生した場合のリカバリ時間を短縮しつつ、検索時間も短縮することができる。 According to the present invention, it is possible to reduce the search time while reducing the recovery time when a failure occurs in the server used for the KeyValue store.
[第1の実施形態]
[概要]
以下、本発明の実施形態を第1の実施形態および第2の実施形態に分けて説明する。まず、図1を用いて第1の実施形態の情報処理装置(サーバ)の概要を説明する。図1は、第1の実施形態のサーバの概要を説明する図である。
[First Embodiment]
[Overview]
Hereinafter, embodiments of the present invention will be described by dividing them into a first embodiment and a second embodiment. First, the outline of the information processing apparatus (server) of the first embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating an overview of a server according to the first embodiment.
このサーバ10は、KeyValueストアに用いられるサーバであり、(key,ts,value)のテーブルを記憶する。なお、本実施形態において、(key,ts,value)のテーブルの内容は、一時的にメインメモリ上のバッファ領域に格納され、その後、ファイルに書き出される。なお、ここではテーブルを構成するデータは、(key,ts,value)である場合を例に説明するが、少なくとも(key,value)を含めばよく、ts(タイムスタンプ値、(key,value)の作成時刻を示す情報)を含まないデータであってもよい。また、サーバ10が書き出すファイルは、ソート済みKeyValueファイルである場合を例に説明するが、これに限定されない。
This
サーバ10は、外部装置からの指示に基づき(key,ts,value)のテーブルに対し(key,ts,value)の追加、削除、更新を行う。また、サーバ10は、外部からkeyを含む検索要求を受信すると、(key,ts,value)のテーブルにおいて、当該Keyを持つ値を検索して、その検索結果を返す。
The
さらに、このサーバ10は、ログ先行書き込み用ログファイル(以下、WALログとする)を有する。WALログは、(key,ts,value)のテーブルに対する、追加、削除、更新等の変更内容を示す情報であり、(key,ts,value)のテーブルの実際の変更前に書き込まれる。そして、サーバ10に障害が発生したとき、サーバ10は、メインメモリのバッファ領域上にある更新された(key,value)を読み込み、WALログを用いて、更新データの復旧を行う。このサーバ10は、メインメモリ上に、バッファ領域とキャッシュ領域とを備える。
Further, the
このようなサーバ10が、(1)ユーザの端末装置等から、(newkey,tsN,newvalue)の追加指示を受け付けた場合、サーバ10は、(2)追加指示の内容のWALログへの書き込みを行う。その後、(3)メインメモリ上のバッファ領域へ(newkey,tsN,newvalue)の書き込みを行う。そして、(4)メインメモリ上のバッファが大きくなると(つまり、バッファ領域のデータ量が所定の閾値を超えた場合)、サーバ10は、バッファ領域のデータ((key,ts,value)群)をファイルに書き出す。例えば、サーバ10は、バッファ領域の(key,ts,value)群を、keyの値でソートし、ソート済みKeyValueファイル1へ書き込む。
When such a
また、(5)サーバ10は、バッファ領域のデータをメインメモリ上に確保したキャッシュ領域へ移動する。そして、(6)サーバ10は、メインメモリ上のバッファ領域のデータをクリアする。
(5) The
その後、(7)サーバ10が、keyを含む検索要求を受信したとき、まず、メインメモリ上のキャッシュ領域を検索し、(8)次に、補助記憶部上のファイルを検索する。つまり、サーバ10は、keyを含む検索要求を受信したとき、まず、メインメモリ上のキャッシュ領域からkeyを含む(key,ts,value)を検索し、キャッシュ領域に当該keyを含む(key,ts,value)がなければ、補助記憶部上のソート済みKeyValueファイルからkeyを含む(key,ts,value)を検索する。
Thereafter, (7) when the
このように、サーバ10は、メインメモリ上のバッファ領域のデータが大きくなると、ファイルへの書き込みを行い、バッファ領域のデータをクリアする。これにより、WALログの肥大化を抑制でき、サーバ10に障害が発生した場合のリカバリ時間を短縮できる。また、サーバ10が、バッファ領域のデータをクリアする前に、バッファ領域の(key,ts,value)群をキャッシュ領域に移動しておく。そして、サーバ10が、検索要求を受信した場合、まず、メインメモリ上のキャッシュ領域を検索する。これにより、サーバ10における検索時間を短縮できる。
In this way, when the data in the buffer area on the main memory becomes large, the
[構成]
次に、図2を用いて、サーバ10の構成を説明する。図2は、サーバの機能構成図である。サーバ10は、図2に示すように、補助記憶部11、メインメモリ12、制御部13、および、入出力インタフェース14を備える。
[Constitution]
Next, the configuration of the
補助記憶部11は、WALログと、ソート済みKeyValueファイルとを記憶する。WALログは、前記したとおり、サーバ10の(key,ts,value)のテーブルに対する、追加、削除、更新等の変更内容を示す情報であり、(key,ts,value)のテーブルの実際の変更前に書き込まれる。そして、このWALログは、サーバ10に障害が発生したとき、リカバリ部137(後記)が、更新データの復旧を行う際に参照される。
The
ソート済みKeyValueファイルは、(key,ts,value)のテーブルを格納するファイルである。このソート済みKeyValueファイルは、例えば、バッファ領域の(key,ts,value)群を、keyの値でソートしたファイルである。 The sorted KeyValue file is a file that stores a table of (key, ts, value). This sorted KeyValue file is, for example, a file in which (key, ts, value) groups in the buffer area are sorted by key values.
メインメモリ12は、バッファ領域と、キャッシュ領域とを備える。バッファ領域は、当該サーバ10において受け付けた(key,ts,value)のテーブルに対する、追加、削除、更新内容を示す情報(実際には(key,ts,value)群で示されるデータ)を一時的に格納する領域である。
The main memory 12 includes a buffer area and a cache area. The buffer area temporarily stores information (additionally, data indicated by (key, ts, value) group) indicating addition, deletion, and update contents to the (key, ts, value) table received by the
キャッシュ領域は、バッファ領域にあった(key,ts,value)群を一時的に格納する領域である。このキャッシュ領域の(key,ts,value)群は、検索部134(後記)がKeyを含む検索要求を受け付けたときに、検索される。 The cache area is an area for temporarily storing (key, ts, value) groups in the buffer area. The (key, ts, value) group in this cache area is searched when the search unit 134 (described later) receives a search request including Key.
制御部13は、サーバ10全体の制御を司り、データ書き込み部130と、ファイル作成部131と、キャッシュ作成部132と、バッファ解放部133と、検索部134と、キャッシュ削除部135と、最大キャッシュサイズ登録部136と、リカバリ部137とを備える。キャッシュ作成部132a、および、キャッシュ保持期間登録部138は装備する場合と、装備しない場合とがあり、装備する場合については、第2の実施形態で述べる。
The
データ書き込み部130は、入出力インタフェース14経由で、(key,ts,value)のテーブルに対する、削除、変更、または、追加等の更新内容を示す情報の入力を受け付けると、この情報をWALログへ書き込む。そして、データ書き込み部130は、WALログへの書き込みが成功すると、この更新内容を示す(key,ts,value)を、メインメモリ12上のバッファ領域へ書き込む。つまり、データ書き込み部130は、(key,ts,value)の削除、変更、または、追加を示すオペレーションをWALログへ書き込み、この書き込みが成功すると、このオペレーションの内容をメインメモリ12上のバッファ領域へ書き込む。
When the
ファイル作成部131は、メインメモリ12上のバッファ領域に書き込まれた(key,ts,value)群のデータ量が所定の閾値を超えた場合、この(key,ts,value)群をファイルへ書き出す。例えば、ファイル作成部131は、メインメモリ12上のバッファ領域に書き込まれた(key,ts,value)群のデータ量が所定の閾値を超えた場合、この(key,ts,value)群をKeyの値でソートして、ソート済みKeyValueファイルを作成し、補助記憶部11へ格納する。
When the data amount of the (key, ts, value) group written in the buffer area on the main memory 12 exceeds a predetermined threshold, the
なお、このバッファ領域に書き込まれた(key,ts,value)群に、(key,ts,value)の削除に関する情報が含まれていた場合、このバッファ領域に書き込まれた(key,ts,value)群と、すべてのソート済みKeyValueファイルを読み込み、削除すべき(key,ts,value)を削除した上で新しいソート済みKeyValueファイルを作成する。 If the (key, ts, value) group written in this buffer area contains information related to the deletion of (key, ts, value), the (key, ts, value) written in this buffer area ) Group and all sorted KeyValue files are read, (key, ts, value) to be deleted are deleted, and a new sorted KeyValue file is created.
図3は、バッファ領域に(key,ts,value)の削除に関する情報が含まれていた場合におけるファイル作成手順例を説明する図である。例えば、図3に示すように、バッファ領域の(key,ts,value)群に(key,ts,value)の削除に関する情報であるD(key303,ts13,value303)が含まれていた場合、まず、ファイル作成部131は、(1)全ての(key,ts,value)ペアを読み込み、削除するべき(key,ts,value)を削除した上で新しいファイルを作成する。つまり、ファイル作成部131は、メインメモリ12のバッファ領域の(key,ts,value)および補助記憶部11のソート済みKeyValueファイル1,2,…,を読み込み、(key303,ts13,value303)を削除した上でソート済みKeyValueファイルnewを作成する。その後、ファイル作成部131は、(2)既存のファイルとメインメモリ12上の(key,ts,value)を削除する。つまり、ファイル作成部131は、ソート済みKeyValueファイル1,2,…,と、バッファ領域の(key,ts,value)群を削除する。
FIG. 3 is a diagram for explaining an example of a file creation procedure when information related to deletion of (key, ts, value) is included in the buffer area. For example, as shown in FIG. 3, when D (key303, ts13, value303), which is information related to deletion of (key, ts, value), is included in the (key, ts, value) group of the buffer area, The file creation unit 131 (1) reads all (key, ts, value) pairs, deletes (key, ts, value) to be deleted, and creates a new file. That is, the
このようにすることで、ファイル作成部131は、(key,ts,value)の削除を、(key,ts,value)のテーブルへ反映させることができる。
In this way, the
図2のキャッシュ作成部132は、メインメモリ12上のバッファ領域に書き込まれた(key,ts,value)群のデータ量が所定の閾値を超え、ファイル作成部131によりバッファ領域の(key,ts,value)群がソート済みKeyValueファイルへ書き出されるとき、バッファ領域の(key,ts,value)群を、キャッシュとしてメインメモリ12のキャッシュ領域に移動させる。なお、前記したファイル作成部131により、(key,ts,value)の削除が行われ、新たなソート済みKeyValueファイルへ書き出されるときは、削除対象の(key,ts,value)が削除された(key,ts,value)群を、キャッシュとしてメインメモリ12のキャッシュ領域に移動する。
The cache creation unit 132 in FIG. 2 has a data amount of the (key, ts, value) group written in the buffer area on the main memory 12 exceeding a predetermined threshold value, and the
バッファ解放部133は、バッファ領域の(key,ts,value)群の、ファイルへの書き出し、および、キャッシュ領域への移動完了後、バッファ領域を解放する。つまり、バッファ領域のデータをクリアして、他のデータを書き込み可能な状態にする。 The buffer release unit 133 releases the buffer area after the writing of the (key, ts, value) group of the buffer area to the file and the movement to the cache area are completed. That is, the data in the buffer area is cleared so that other data can be written.
検索部134は、keyを含む検索要求を受け付けたとき、まず、メインメモリ12のキャッシュ領域から当該keyを含むキャッシュを検索する。ここで、当該keyを持つ(key,ts,value)を含むキャッシュがあれば、このキャッシュの(key,ts,value)群からの検索結果を、検索要求の送信元へ返す。一方、キャッシュ領域に、当該keyを持つ(key,ts,value)を含むキャッシュがなければ、ソート済みKeyValueファイルから当該keyを持つ(key,ts,value)を検索し、検索結果を検索要求の送信元へ返す。なお、この検索部134は、キャッシュ領域のキャッシュを検索したとき、検索でヒットしたキャッシュに、このときの検索時刻を示す情報を付与しておく。詳細は後記するが、キャッシュに付与された検索時刻を示す情報は、キャッシュ削除部135が、削除対象のキャッシュを選択する際に参照される。
When receiving a search request including a key, the
キャッシュ削除部135は、キャッシュ領域のデータ量が、所定のデータ量(最大キャッシュサイズA)を超えたとき、キャッシュ領域のキャッシュのうち、検索時刻の古いキャッシュから優先的に削除する。 When the amount of data in the cache area exceeds a predetermined amount of data (maximum cache size A), the cache deletion unit 135 preferentially deletes the cache in the cache area from the cache having the oldest search time.
最大キャッシュサイズ登録部136は、入出力インタフェース14経由で、キャッシュ削除部135が用いる最大キャッシュサイズAの登録を受け付ける。受け付けた最大キャッシュサイズAは、メインメモリ12に格納する。
The maximum cache
リカバリ部137は、サーバ10に障害等が発生したとき、メインメモリ12のバッファ領域の(key,ts,value)を読み込み、WALログを用いて、データの復旧を行う。例えば、サーバ10において更新データの入力を受け付けたが、障害等により、バッファ領域の更新データが、ソート済みKeyValueファイルに反映されていないとき、リカバリ部137は、メインメモリ12のバッファ領域のデータと、WALログとを用いて、更新データを復旧し、必要に応じてソート済みKeyValueファイルへ反映させる。
When a failure or the like occurs in the
入出力インタフェース14は、当該サーバ10へのデータ入力およびデータ出力を司るインタフェースである。例えば、入出力インタフェース14は、外部装置から、このサーバ10の(key,ts,value)のテーブルに対する、追加、削除、更新内容を示す情報、(key,ts,value)のテーブルの検索要求、メインメモリ12の最大キャッシュサイズA、当該サーバ10への設定情報等の情報の入力を受け付けると、これらの情報を制御部13へ渡す。また、入出力インタフェース14は、制御部13から出力された検索結果等を外部装置等へ出力する。
The input / output interface 14 is an interface that manages data input and data output to the
[処理手順]
次に、図4を用いて、サーバ10の処理手順を説明する。なお、事前にサーバ10の最大キャッシュサイズ登録部136において、最大キャッシュサイズAの登録を受け付け、メインメモリ12に格納しておくものとする。図4は、サーバの処理手順を説明する図である。
[Processing procedure]
Next, the processing procedure of the
まず、サーバ10のデータ書き込み部130は、入出力インタフェース14経由で、(key,ts,value)のテーブルに対する、削除、変更、または、追加等の更新情報の入力を受け付けると(S11)、この情報をWALログへ書き込む(S12)。また、データ書き込み部130は、当該情報をメインメモリ12上のバッファ領域へも書き込む(S13)。
First, when the
S13の後、ファイル作成部131は、メインメモリ12上のバッファ領域のデータ量が所定の閾値を超えた場合(S14のYes)、バッファ領域の(key,ts,value)群をファイルへ書き出す(S15)。例えば、ファイル作成部131は、メインメモリ12上のバッファ領域に書き込まれた(key,ts,value)群をKeyの値でソートしてソート済みKeyValueファイルを作成し、補助記憶部11に格納する。
After S13, when the amount of data in the buffer area on the main memory 12 exceeds a predetermined threshold (Yes in S14), the
一方、メインメモリ12上のバッファ領域のデータ量が所定の閾値以下の場合(S14のNo)、S11へ戻る。 On the other hand, when the amount of data in the buffer area on the main memory 12 is equal to or smaller than the predetermined threshold (No in S14), the process returns to S11.
また、S15の後、サーバ10のキャッシュ作成部132は、バッファ領域の(key,ts,value)群を、キャッシュとしてメインメモリ12のキャッシュ領域に移動させる(S16)。このS16の処理の詳細は後記する。
Further, after S15, the cache creation unit 132 of the
S16の後、バッファ解放部133は、バッファの解放を行う(S17)。つまり、バッファ解放部133は、バッファ領域の(key,ts,value)群をクリアし、データを書き込み可能な状態にし、処理を終了する。 After S16, the buffer release unit 133 releases the buffer (S17). That is, the buffer release unit 133 clears the (key, ts, value) group in the buffer area, makes the data writable, and ends the process.
次に、図5を用いて、図4のS16の処理を詳細に説明する。図5は、図4のS16の処理を詳細に説明する図である。 Next, the process of S16 of FIG. 4 will be described in detail with reference to FIG. FIG. 5 is a diagram for explaining the processing of S16 of FIG. 4 in detail.
図4のS15の後、サーバ10のキャッシュ作成部132は、メインメモリ12上のバッファをキャッシュ領域に移動する(S161)。つまり、キャッシュ作成部132は、バッファ領域の(key,ts,value)群を、キャッシュとしてメインメモリ12のキャッシュ領域に移動する。
After S15 in FIG. 4, the cache creation unit 132 of the
S161の後、キャッシュ作成部132は、現時点で利用しているキャッシュサイズBに、移動したバッファサイズを追加する(S162)。つまり、キャッシュ作成部132は、バッファ領域からキャッシュ領域へ移動した(key,ts,value)群のデータ量をキャッシュサイズBに加算する。 After S161, the cache creation unit 132 adds the moved buffer size to the cache size B currently used (S162). That is, the cache creation unit 132 adds the data amount of the (key, ts, value) group moved from the buffer area to the cache area to the cache size B.
そして、キャッシュ作成部132は、S162で追加したキャッシュサイズBが最大キャッシュサイズAを超えているか否かを判断し、S162で追加したキャッシュサイズBが最大キャッシュサイズAを超えていると判断したとき(S163のYes)、キャッシュ削除部135は、キャッシュ削除を行う(S164)。そして、S16の処理を終了する。S164の処理の詳細は後記する。 When the cache creation unit 132 determines whether the cache size B added in S162 exceeds the maximum cache size A, and determines that the cache size B added in S162 exceeds the maximum cache size A, (Yes in S163), the cache deletion unit 135 performs cache deletion (S164). And the process of S16 is complete | finished. Details of the process of S164 will be described later.
一方、キャッシュ作成部132は、S162で追加したキャッシュサイズBが最大キャッシュサイズAを超えていないと判断したとき(S163のNo)、S16の処理を終了する。 On the other hand, when the cache creation unit 132 determines that the cache size B added in S162 does not exceed the maximum cache size A (No in S163), the process of S16 ends.
次に、図6を用いて、図5のS164を詳細に説明する。図6は、図5のS164を詳細に説明する図である。 Next, S164 in FIG. 5 will be described in detail with reference to FIG. FIG. 6 is a diagram for explaining S164 of FIG. 5 in detail.
図5のS163でYesだったとき、キャッシュ削除部135は、キャッシュ領域の全キャッシュの中から、検索時刻が最も古いものを選択し、メインメモリ12上から解放する(S1641)。S1641の後、キャッシュ削除部135は、キャッシュサイズBから、解放したキャッシュのデータ分のサイズを削減し(S1642)、キャッシュサイズBが最大キャッシュサイズAを超えているか否かを判断し(S1643)、キャッシュサイズBが最大キャッシュサイズAを超えていなければ(S1643のNo)、S164の処理を終了する。一方、キャッシュ削除後も、キャッシュサイズBが最大キャッシュサイズAを超えていれば(S1643のYes)、S1641へ戻り、キャッシュ削除部135は、さらにキャッシュ領域のキャッシュの削除を行う。 When the result in S163 in FIG. 5 is Yes, the cache deletion unit 135 selects the cache with the oldest search time from all the caches in the cache area and releases it from the main memory 12 (S1641). After S1641, the cache deletion unit 135 reduces the size of the released cache data from the cache size B (S1642), and determines whether the cache size B exceeds the maximum cache size A (S1643). If the cache size B does not exceed the maximum cache size A (No in S1643), the process of S164 is terminated. On the other hand, even after the cache is deleted, if the cache size B exceeds the maximum cache size A (Yes in S1643), the process returns to S1641, and the cache deletion unit 135 further deletes the cache in the cache area.
このように、キャッシュ削除部135は、キャッシュ領域のキャッシュの占めるデータ量が、最大キャッシュサイズA以下となるよう、検索時刻が最も古いキャッシュから順に削除する。これにより、メインメモリ12上の限られたキャッシュ領域上には比較的最近に検索された(key,ts,value)が乗ることになる。なお、サーバ10の受け付ける検索要求は、比較的最近作成された(key,ts,value)に関する検索要求が多い場合、サーバ10がキャッシュ領域に比較的最近に検索された(key,ts,value)を乗せるようにすることで、検索時間を短縮できる可能性を高めることができる。
As described above, the cache deletion unit 135 deletes the caches in order from the oldest search time so that the amount of data occupied by the cache in the cache area is equal to or smaller than the maximum cache size A. As a result, (key, ts, value) retrieved relatively recently is placed on a limited cache area on the main memory 12. Note that the search request accepted by the
次に、図7を用いて、サーバ10が、外部から(key,ts,value)のテーブルの検索要求を受け付けたときの処理手順を説明する。図7は、サーバが、外部から(key,ts,value)のテーブルの検索要求を受け付けたときの処理手順を説明する図である。
Next, a processing procedure when the
まず、サーバ10の検索部134は、keyを含む検索要求を受け付けると(S21)、まず、キャッシュ領域に当該keyを含むキャッシュが存在するか否かを判断する(S22)。ここで、検索部134は、キャッシュ領域に当該keyを含むキャッシュが存在するとき(S22のYes)、ソート済みKeyValueファイルの代わりに当該キャッシュを検索する(S23)。そして、検索部134は、キャッシュから得られた当該keyを含む(key,ts,value)を検索結果として返す。一方、検索部134は、キャッシュ領域に当該keyを含むキャッシュが存在しないとき(S22のNo)、ソート済みKeyValueファイルを検索する(S24)。そして、検索部134は、ソート済みKeyValueファイルから得られた当該keyを含む(key,ts,value)を検索結果として返す。
First, upon receiving a search request including a key (S21), the
つまり、サーバ10は、キャッシュ領域に検索対象の(key,ts,value)が存在すれば、このキャッシュ領域の(key,ts,value)を返すので、(key,ts,value)の検索時間を短縮できる可能性が高くなる。特に、サーバ10が、比較的最近に(key,ts,value)のテーブルに追加されたり、検索されたりした(key,ts,value)に関する検索要求を受信することが多い場合、(key,ts,value)の検索時間を短縮できる可能性はさらに高くなる。
In other words, if (key, ts, value) to be searched exists in the cache area, the
なお、第1の実施形態において、キャッシュ削除部135がキャッシュ削除をするとき、キャッシュのうち、検索時刻が古いものから優先的に削除することとしたが、これに限定されない。例えば、キャッシュ削除部135は、キャッシュに含まれる(key,ts,value)群のうち、tsの値が古い(key,ts,value)から優先的に削除するようにしてもよい。 In the first embodiment, when the cache deleting unit 135 deletes the cache, the cache is deleted preferentially from the oldest search time, but the present invention is not limited to this. For example, the cache deleting unit 135 may delete preferentially the oldest (key, ts, value) value of ts from the (key, ts, value) group included in the cache.
[第2の実施形態]
次に、本発明の第2の実施形態を説明する。第1の実施形態と同じ構成、同じ処理については説明を省略する。第2の実施形態のサーバ10aは、バッファ領域の(key,ts,value)群をキャッシュ領域へ移動させるとき、このバッファ領域の(key,ts,value)群のうち、現在時刻から過去所定時間分の(key,ts,value)群をキャッシュ領域へ移動させることを特徴とする。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. The description of the same configuration and the same processing as in the first embodiment is omitted. When the server 10a of the second embodiment moves the (key, ts, value) group of the buffer area to the cache area, the server 10a in the buffer area (key, ts, value) group of the buffer area (key, ts, value) group is past a predetermined time from the current time. The (key, ts, value) group of minutes is moved to the cache area.
[構成]
この第2の実施形態のサーバ10aは、図2の破線で示すキャッシュ保持期間登録部138をさらに備える。また、サーバ10aは、キャッシュ作成部132に代えて、キャッシュ作成部132aを備える。
[Constitution]
The server 10a according to the second embodiment further includes a cache retention
キャッシュ保持期間登録部138は、入出力インタフェース14経由で、キャッシュ保持期間の入力を受け付ける。このキャッシュ保持期間Tは、メインメモリ12上に格納される。
The cache retention
キャッシュ作成部132aは、メインメモリ12上のバッファ領域の(key,ts,value)群をキャッシュ領域に移動するとき、バッファ領域の(key,ts,value)群のうち、tsの値が(現在時刻−キャッシュ保持期間=時刻T)である(key,ts,value)群を選択し、移動する。 When the cache creation unit 132a moves the (key, ts, value) group in the buffer area on the main memory 12 to the cache area, the value of ts in the (key, ts, value) group in the buffer area is (currently A (key, ts, value) group of time-cache retention period = time T) is selected and moved.
[処理手順]
このようなキャッシュ作成部132aの処理手順を、図8を用いて説明する。図8は、第2の実施形態のキャッシュ作成部の処理手順を説明する図である。なお、サーバ10aは、事前に、キャッシュ保持期間登録部138により、入出力インタフェース14経由で、キャッシュ保持期間の入力を受け付けておくものとする。
[Processing procedure]
The processing procedure of the cache creation unit 132a will be described with reference to FIG. FIG. 8 is a diagram illustrating a processing procedure of the cache creation unit according to the second embodiment. It is assumed that the server 10a accepts an input of the cache holding period via the input / output interface 14 by the cache holding
まず、キャッシュ作成部132aは、メインメモリ12上のバッファ領域に書き込まれた(key,ts,value)群のデータ量が所定の閾値を超え、ファイル作成部131によりバッファ領域の(key,ts,value)群がソート済みKeyValueファイルへ書き出されるとき、バッファ領域の(key,ts,value)群のtsを取得する。また、キャッシュ作成部132aは、(現在時刻−キャッシュ保持期間)をTと置く(S31)。
First, the cache creation unit 132a causes the data amount of the (key, ts, value) group written in the buffer area on the main memory 12 to exceed a predetermined threshold, and the
S31の後、キャッシュ作成部132aは、S31で取得したtsについて、T<tsであるか否かを判断し(S32)、T<tsであるとき(S32のYes)、すなわち、tsの示す時刻が時刻Tより後であるとき、当該tsを持つ(key,ts,value)群をキャッシュ領域のキャッシュとして移動し(S33)、S34へ進む。一方、T<tsでないとき(S32のNo)は、S34へ進む。 After S31, the cache creation unit 132a determines whether or not T <ts with respect to ts acquired in S31 (S32), and when T <ts (Yes in S32), that is, the time indicated by ts Is after the time T, the group (key, ts, value) having the ts is moved as a cache of the cache area (S33), and the process proceeds to S34. On the other hand, when T <ts is not satisfied (No in S32), the process proceeds to S34.
S34において、キャッシュ作成部132aは、バッファ領域の(key,ts,value)群のうち未処理の(key,ts,value)があれば(S34のNo)、S31へ戻り、バッファ領域の(key,ts,value)群をすべて処理したときには(S34のYes)、S35へ進む。このS35以降の処理は、前記した図5のS163以降の処理と同様なので詳細な説明を省略するが、キャッシュ削除部135は、現時点で利用しているキャッシュサイズBが最大キャッシュサイズAを超えたとき(S36のYes)、S37において、キャッシュ領域のキャッシュから、tsの値が最も古い(key,ts,value)を含むキャッシュを削除する。 In S34, if there is an unprocessed (key, ts, value) in the (key, ts, value) group in the buffer area (No in S34), the cache creation unit 132a returns to S31 and returns (key in the buffer area , ts, value) group has been processed (Yes in S34), the process proceeds to S35. Since the processing after S35 is the same as the processing after S163 in FIG. 5 described above, a detailed description thereof will be omitted. However, the cache deletion unit 135 determines that the cache size B currently used exceeds the maximum cache size A. When (Yes in S36), in S37, the cache including the oldest (key, ts, value) of ts is deleted from the cache in the cache area.
このようにすることで、キャッシュ領域には、tsの値が比較的新しい(key,ts,value)群が乗ることになる。よって、サーバ10aの受け付ける検索要求が、比較的最近作成された(key,ts,value)に関する検索要求が多い場合、キャッシュ領域にtsの値が比較的新しい(key,ts,value)群が乗ることで、サーバ10aにおける検索時間を短縮できる可能性は高くなる。 By doing so, a group (key, ts, value) having relatively new values of ts is placed in the cache area. Therefore, when there are many search requests regarding (key, ts, value) created relatively recently, the cache area is loaded with a group (key, ts, value) having a relatively new value of ts. This increases the possibility that the search time in the server 10a can be shortened.
この第2の実施形態のサーバ10aの効果を、図9を参照しながら詳細に説明する。図9は、第2の実施形態のサーバにおけるキャッシュの例を示す図である。ここではキャッシュ領域上にキャッシュ1〜キャッシュ4の4つのキャッシュが乗る場合を例に説明する。
The effect of the server 10a of the second embodiment will be described in detail with reference to FIG. FIG. 9 is a diagram illustrating an example of a cache in the server according to the second embodiment. Here, a case where four caches of
図9における横軸は、tsの値を示す。実線の囲みは、第2の実施形態のサーバ10aにおける各キャッシュを構成する(key,ts,value)群を示し、破線の囲みは、キャッシュ1〜キャッシュ4の元となったバッファ領域の(key,ts,value)群を示す。つまり、図9の各囲みにおける右端の値は、その(key,ts,value)群の中で最も新しいtsの値を示し、各囲みにおける左端の値は、その(key,ts,value)群の中で最も古いtsの値を示す。例えば、符号91〜94に示す(key,ts,value)群をすべてがキャッシュとしてキャッシュ領域に乗った後、キャッシュ削除部135が、tsの値の最も古い、符号93に示す(key,ts,value)群を削除してしまうと、tsの値が比較的新しい(key,ts,value)も削除してしまい、検索時にキャッシュ領域上でヒットしない可能性が出てくる。
The horizontal axis in FIG. 9 indicates the value of ts. A solid line box indicates a group (key, ts, value) constituting each cache in the server 10a of the second embodiment, and a broken line box indicates the (key) of the buffer area that is the origin of the
しかし、サーバ10aのキャッシュ作成部132aは、バッファ領域の(key,ts,value)群のうち、(現在時刻−キャッシュ保持期間)<tsである(key,ts,value)群を選択して、キャッシュ領域に乗せる。これにより、キャッシュ領域におけるキャッシュのメモリ使用量を短縮でき、かつ、tsの値が比較的新しい(key,ts,value)群が占める割合を高くすることができる。つまり、限られたキャッシュ領域上にヒットする可能性の高いデータを乗せることができる。 However, the cache creation unit 132a of the server 10a selects the (key, ts, value) group in which (current time−cache retention period) <ts from the (key, ts, value) group in the buffer area, Put it in the cache area. As a result, the memory usage of the cache in the cache area can be shortened, and the proportion of the (key, ts, value) group with relatively new values of ts can be increased. That is, data with a high possibility of hitting can be placed on a limited cache area.
[その他の実施形態]
また、サーバ10,10aの検索部134が受け付ける検索要求は、keyのみならず、検索の対象であるtsの範囲(タイムスタンプ区間)を含んでいてもよい。この場合、検索部134は、受け付けた検索要求に示される範囲のtsの値を持つ(key,ts,value)を、キャッシュ領域、および、ファイルから検索する。
[Other Embodiments]
In addition, the search request received by the
この検索部134の処理手順を、図10を用いて説明する。図10は、検索部の処理手順を説明する図である。検索部134は、keyおよびタイムスタンプ区間を含む検索要求を受け付けると(S41)、キャッシュ領域に、当該keyを含むキャッシュ((key,ts,value)群)が存在し(S42のYes)、かつ、当該キャッシュのtsが、当該タイムスタンプ区間に含まれる場合(S43のYes)、S44へ進む。S44は、図7のS23と同様なので説明を省略する。
The processing procedure of the
一方、キャッシュ領域に、当該keyを含むキャッシュが存在しない(S42のNo)、または、当該キャッシュのtsが、当該タイムスタンプ区間に含まれない(S43のNo)場合、S45へ進む。S45は、図7のS24と同様なので説明を省略する。 On the other hand, if there is no cache including the key in the cache area (No in S42) or ts of the cache is not included in the time stamp interval (No in S43), the process proceeds to S45. Since S45 is the same as S24 of FIG. 7, description thereof is omitted.
このようにすることで、サーバ10,10aは、タイムスタンプ区間が指示された検索要求についても検索結果を返すことができる。
In this way, the
なお、前記したサーバ10,10aを分散KeyValueストアのシステムに用いてもよい。この場合、サーバ10,10aが保持する(key,ts,value)のテーブルは、分散KeyValueストアにおいて、元のテーブルを分割したテーブルである。図11は、分散KeyValueストアにおけるサーバを例示した図である。
The
例えば、図11に示すように、システムが、マスタサーバ(サーバ10D)と、複数のスレーブサーバ(サーバ10A,10B,10C)とにより構成される場合を考える。このような場合において、サーバ10A,10B,10Cそれぞれが保持する(key,ts,value)のテーブルは、元のテーブルAを複数のエリアに分割したテーブルである。例えば、サーバ10Aは、エリア0,3の(key,ts,value)のテーブルを保持し、サーバ10Bは、エリア1,4の(key,ts,value)のテーブルを保持する。そして、サーバ10Dは、(key,ts,value)の削除、変更、追加、検索等の要求を受け付けると、その(key,ts,value)を含むエリアの(key,ts,value)のテーブルを保持するスレーブサーバ(サーバ10A,10B,10C)へ、その要求を転送する。そして、サーバ10A,10B,10Cは、前記した各実施形態で述べた処理と同様の処理を実行し、その実行結果を、サーバ10Dへ返す。
For example, as shown in FIG. 11, a case is considered in which the system includes a master server (
[プログラム]
前記したサーバ10,10aが実行する処理をコンピュータが実行可能な言語で記述したプログラム(情報処理プログラム)で実現することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより前記した実施形態と同様の処理を実現してもよい。以下に、サーバ10,10aと同様の機能を実現する情報処理プログラムを実行するコンピュータの一例を説明する。
[program]
The processing executed by the
図12は、情報処理プログラムを実行するコンピュータを示す図である。図12に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
FIG. 12 is a diagram illustrating a computer that executes an information processing program. As illustrated in FIG. 12, the
メモリ1010は、図12に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図12に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図12に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図12に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図12に例示するように、例えばディスプレイ1061に接続される。
The
ここで、図12に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のプログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
Here, as illustrated in FIG. 12, the hard disk drive 1031 stores, for example, an
また、上記実施の形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、制御部13の各部の機能を実現する。
The various data described in the above embodiment is stored as program data, for example, in the
なお、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the
10,10a サーバ(情報処理装置)
11 補助記憶部
12 メインメモリ
13 制御部
14 入出力インタフェース
130 データ書き込み部
131 ファイル作成部
132,132a キャッシュ作成部
133 バッファ解放部
134 検索部
135 キャッシュ削除部
136 最大キャッシュサイズ登録部
137 リカバリ部
138 キャッシュ保持期間登録部
10, 10a server (information processing device)
DESCRIPTION OF
Claims (7)
前記バッファ領域に書き込まれた前記(key,value)の集合である(key,value)群のデータ量が所定の閾値を超えたとき、
前記バッファ領域に書き込まれた(key,value)群をファイルへ書き出すファイル作成部と、
前記バッファ領域に書き込まれた(key,value)群を、前記メインメモリ上に確保されたキャッシュ領域に移動させるキャッシュ作成部と、
前記(key,value)群のファイルへの書き出し、および、前記キャッシュ領域への移動完了後、前記バッファ領域を解放するバッファ解放部と、
前記keyを含む検索要求を受け付けたとき、
前記キャッシュ領域から前記keyを含む(key,value)を検索し、前記キャッシュ領域に前記keyを含む(key,value)がないとき、前記ファイルから前記keyを含む(key,value)を検索する検索部とを備えることを特徴とする情報処理装置。 A WAL (Write Ahead Logging) log is provided on the main memory, and if the operation indicating deletion, change, or addition of (key, value) used in the KeyValue store is successfully written to the WAL log, the (key , value) to the buffer area on the main memory,
When the amount of data in the (key, value) group that is a set of (key, value) written in the buffer area exceeds a predetermined threshold,
A file creation unit for writing (key, value) group written in the buffer area to a file;
A cache creation unit that moves (key, value) group written in the buffer area to a cache area secured on the main memory;
A buffer release unit for releasing the buffer area after completion of writing to the file of the (key, value) group and moving to the cache area;
When a search request including the key is accepted,
Search for (key, value) including the key from the cache area, and search for (key, value) including the key from the file when the key does not include (key, value) in the cache area An information processing apparatus comprising a unit.
前記ファイル作成部は、
前記バッファ領域に書き込まれた(key,value)群をファイルへ書き出す際、前記ファイル内から削除の対象の(key,value)を削除した新たなファイルを作成し、
前記キャッシュ作成部は、
前記バッファ領域に書き込まれた(key,value)群のうち、削除の対象の(key,value)を削除した(key,value)群を、前記キャッシュ領域に移動させることを特徴とする請求項1または請求項2に記載の情報処理装置。 When the amount of data of the (key, value) group written in the buffer area exceeds a predetermined threshold, the (key, value) group of (key, value) written in the buffer area When information indicating deletion was included,
The file creation unit
When writing the (key, value) group written in the buffer area to a file, create a new file with the (key, value) to be deleted deleted from the file,
The cache creation unit
2. The (key, value) group in which (key, value) to be deleted is deleted from the (key, value) group written in the buffer area to the cache area. Alternatively, the information processing apparatus according to claim 2.
前記バッファ領域に書き込まれた(key,value)群を、前記キャッシュ領域に移動させるとき、
前記(key,value)群のうち、現在時刻から、過去所定時間分までの間に、更新、または、追加された前記(key,value)群を移動させることを特徴とする請求項1ないし請求項3のいずれか1項に記載の情報処理装置。 The cache creation unit
When (key, value) group written in the buffer area is moved to the cache area,
2. The (key, value) group that is updated or added is moved from a current time to a past predetermined time in the (key, value) group. Item 4. The information processing device according to any one of items 3 to 4.
前記検索要求が、検索の対象である(key,value)の作成時刻の範囲をさらに含むとき、前記キャッシュ領域、および、前記ファイルから、前記keyを含み、かつ、前記作成時刻の範囲に作成された(key,value)を検索する請求項1ないし請求項4のいずれか1項に記載の情報処理装置。 The search unit
When the search request further includes a creation time range of (key, value) to be searched, the search request includes the key from the cache area and the file, and is created in the creation time range. The information processing apparatus according to claim 1, wherein (key, value) is searched.
前記情報処理装置が、
前記バッファ領域に書き込まれた前記(key,value)の集合である(key,value)群のデータ量が所定の閾値を超えたとき、
前記バッファ領域に書き込まれた(key,value)群をファイルへ書き出すファイル作成ステップと、
前記バッファ領域に書き込まれた(key,value)群を、前記メインメモリ上に確保されたキャッシュ領域に移動させるキャッシュ作成ステップと、
前記(key,value)群のファイルへの書き出し、および、前記キャッシュ領域への移動完了後、前記バッファ領域を解放するバッファ解放ステップと、
前記keyを含む検索要求を受け付けたとき、
前記キャッシュ領域からkeyを含む(key,value)を検索し、前記キャッシュ領域に前記keyを含む(key,value)がないとき、前記ファイルから前記keyを含む(key,value)を検索する検索ステップとを実行することを特徴とする情報処理方法。 A WAL (Write Ahead Logging) log is provided on the main memory, and if the operation indicating deletion, change, or addition of (key, value) used in the KeyValue store is successfully written to the WAL log, the (key , value) to the buffer area on the main memory, an information processing method using an information processing apparatus,
The information processing apparatus is
When the amount of data in the (key, value) group that is a set of (key, value) written in the buffer area exceeds a predetermined threshold,
A file creation step of writing a (key, value) group written in the buffer area to a file;
A cache creation step of moving the (key, value) group written in the buffer area to a cache area secured on the main memory;
A buffer release step of releasing the buffer area after completion of writing to the file of the (key, value) group and moving to the cache area;
When a search request including the key is accepted,
A search step of searching for (key, value) including a key from the cache area, and searching for (key, value) including the key from the file when there is no (key, value) including the key in the cache area And an information processing method.
前記バッファ領域に書き込まれた前記(key,value)の集合である(key,ts,value)群のデータ量が所定の閾値を超えたとき、
前記バッファ領域に書き込まれた(key,value)群をファイルへ書き出すファイル作成ステップと、
前記バッファ領域に書き込まれた(key,value)群を、前記メインメモリ上に確保されたキャッシュ領域に移動させるキャッシュ作成ステップと、
前記(key,value)群のファイルへの書き出し、および、前記キャッシュ領域への移動完了後、前記バッファ領域を解放するバッファ解放ステップと、
前記keyを含む検索要求を受け付けたとき、
前記キャッシュ領域からkeyを含む(key,value)を検索し、前記キャッシュ領域に前記keyを含む(key,value)がないとき、前記ファイルから前記keyを含む(key,value)を検索する検索ステップとをコンピュータに実行させるための情報処理プログラム。 A WAL (Write Ahead Logging) log is provided on the main memory, and if the operation indicating deletion, change, or addition of (key, value) used in the KeyValue store is successfully written to the WAL log, the (key , value) is an information processing program for writing to the buffer area on the main memory,
When the amount of data in the (key, ts, value) group that is a set of (key, value) written in the buffer area exceeds a predetermined threshold,
A file creation step of writing a (key, value) group written in the buffer area to a file;
A cache creation step of moving the (key, value) group written in the buffer area to a cache area secured on the main memory;
A buffer release step of releasing the buffer area after completion of writing to the file of the (key, value) group and moving to the cache area;
When a search request including the key is accepted,
A search step of searching for (key, value) including a key from the cache area, and searching for (key, value) including the key from the file when there is no (key, value) including the key in the cache area An information processing program for causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013107572A JP5718974B2 (en) | 2013-05-22 | 2013-05-22 | Information processing apparatus, information processing method, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013107572A JP5718974B2 (en) | 2013-05-22 | 2013-05-22 | Information processing apparatus, information processing method, and information processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014229036A true JP2014229036A (en) | 2014-12-08 |
JP5718974B2 JP5718974B2 (en) | 2015-05-13 |
Family
ID=52128840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013107572A Active JP5718974B2 (en) | 2013-05-22 | 2013-05-22 | Information processing apparatus, information processing method, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5718974B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960212A (en) * | 2017-12-25 | 2019-07-02 | 北京京东尚科信息技术有限公司 | Task sending method and device |
CN115917519A (en) * | 2021-07-30 | 2023-04-04 | 株式会社软技 | Information processing program, information processing apparatus, and information processing method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013008291A (en) * | 2011-06-27 | 2013-01-10 | Nippon Telegr & Teleph Corp <Ntt> | Decentralized data store system and failure recovery method |
WO2013062894A1 (en) * | 2011-10-26 | 2013-05-02 | Nec Laboratories America, Inc. | Online transaction processing |
-
2013
- 2013-05-22 JP JP2013107572A patent/JP5718974B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013008291A (en) * | 2011-06-27 | 2013-01-10 | Nippon Telegr & Teleph Corp <Ntt> | Decentralized data store system and failure recovery method |
WO2013062894A1 (en) * | 2011-10-26 | 2013-05-02 | Nec Laboratories America, Inc. | Online transaction processing |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960212A (en) * | 2017-12-25 | 2019-07-02 | 北京京东尚科信息技术有限公司 | Task sending method and device |
CN115917519A (en) * | 2021-07-30 | 2023-04-04 | 株式会社软技 | Information processing program, information processing apparatus, and information processing method |
CN115917519B (en) * | 2021-07-30 | 2023-09-08 | 株式会社软技 | Recording medium storing information processing program, information processing apparatus, and information processing method |
US11762663B2 (en) | 2021-07-30 | 2023-09-19 | SoftGear Co., Ltd. | Information processing program, information processing device, and information processing method |
Also Published As
Publication number | Publication date |
---|---|
JP5718974B2 (en) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11099769B1 (en) | Copying data without accessing the data | |
CN107003935B (en) | Apparatus, method and computer medium for optimizing database deduplication | |
US10599337B2 (en) | Method and device for writing data and acquiring data in a distributed storage system | |
US11580162B2 (en) | Key value append | |
US10649897B2 (en) | Access request processing method and apparatus, and computer device | |
US11232073B2 (en) | Method and apparatus for file compaction in key-value store system | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
US9043334B2 (en) | Method and system for accessing files on a storage system | |
US8086810B2 (en) | Rapid defragmentation of storage volumes | |
US9740422B1 (en) | Version-based deduplication of incremental forever type backup | |
US11409616B2 (en) | Recovery of in-memory databases after a system crash | |
US20150286671A1 (en) | Transaction system | |
US20150277966A1 (en) | Transaction system | |
US20190042134A1 (en) | Storage control apparatus and deduplication method | |
KR102345517B1 (en) | Deduplication adapted casedb for edge computing | |
US9690658B2 (en) | Distributed storage system and method | |
JP5718974B2 (en) | Information processing apparatus, information processing method, and information processing program | |
KR20220006458A (en) | Key-value storage device and method for sorting key | |
US9690514B2 (en) | Apparatus, method and medium | |
US10430287B2 (en) | Computer | |
US10152492B1 (en) | Extended recycle bin for versioning | |
JP6251121B2 (en) | Server, data management method, data management program, and distributed key-value store | |
US20210406243A1 (en) | Non-transitory computer-readable storage medium for storing information processing program, information processing method, and information processing apparatus | |
TWI475419B (en) | Method and system for accessing files on a storage system | |
JP2019101595A (en) | Database management system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150302 |
|
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: 20150317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150319 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5718974 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |