JP6192781B1 - データ管理プログラム及びデータ管理装置 - Google Patents
データ管理プログラム及びデータ管理装置 Download PDFInfo
- Publication number
- JP6192781B1 JP6192781B1 JP2016146217A JP2016146217A JP6192781B1 JP 6192781 B1 JP6192781 B1 JP 6192781B1 JP 2016146217 A JP2016146217 A JP 2016146217A JP 2016146217 A JP2016146217 A JP 2016146217A JP 6192781 B1 JP6192781 B1 JP 6192781B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- key
- record
- data management
- keys
- 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
Links
- 238000013523 data management Methods 0.000 title claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000007726 management method Methods 0.000 claims description 60
- 238000003780 insertion Methods 0.000 claims description 48
- 230000037431 insertion Effects 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 43
- 238000012217 deletion Methods 0.000 claims description 39
- 230000037430 deletion Effects 0.000 claims description 39
- 230000007423 decrease Effects 0.000 claims description 2
- 230000008521 reorganization Effects 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 17
- 238000012986 modification Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
しかし、再編成処理とアプリケーションプログラムとの競合が発生すると、再編成処理が中断され、データへのアクセス性能が悪い状態が継続してしまう。その結果、データベースを用いたアプリケーションプログラムの動作が遅くなり、アプリケーションプログラムの利用者の利便性が低下してしまう。また、再編成処理の実行中にはアプリケーションプログラムによるアクセスを禁止するという方法も考えられる。しかし、この場合、再編成処理の実行中にはアプリケーションプログラムの動作が制限されてしまい、アプリケーションプログラムの利用者の利便性が低下してしまう。
この発明は、再編成処理を必要としないデータ管理を実現することを目的とする。
キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理プログラムであり、
指定データの挿入命令を受け付けると、前記記憶装置に記憶された複数のレコードのうち未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入処理
をコンピュータに実行させる。
***構成の説明***
図1を参照して、実施の形態1に係るデータ管理装置10の構成を説明する。
データ管理装置10は、データベースサーバといったコンピュータである。
データ管理装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ13には、データ管理装置10の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、データ管理装置10の各部の機能が実現される。
図2から図12を参照して、実施の形態1に係るデータ管理装置10の動作を説明する。
実施の形態1に係るデータ管理装置10の動作は、実施の形態1に係るデータ管理方法に相当する。また、実施の形態1に係るデータ管理装置10の動作は、実施の形態1に係るデータ管理プログラムの処理に相当する。実施の形態1に係るデータ管理プログラムにおいては、データ挿入部21の処理がデータ挿入処理であり、データ削除部22の処理がデータ削除処理であり、キー管理部23の処理がキー管理処理である。
データ管理装置10は、事前にキーを割り当てた複数のレコードをストレージ13に用意しておく。そして、データ管理装置10は、データの挿入及び削除を用意しておいたレコードの更新により実現する。
具体的には、データ挿入部21は、指定データの挿入命令を受け付けると、用意しておいたレコードのうち、未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新する。また、データ削除部22は、指定レコードの削除命令を受け付けると、指定レコードに割り当てられたキーを指定して、レコードのデータ項目の値をブランクといった初期値(基準値)に更新する。
キー管理部23は、ストレージ13に記憶された各レコードに割り当てられたキーを管理する。
図4に示すように、キー管理部23は、キーを、そのキーが割り当てられたレコードが未使用か否かを示す状態と、状態が更新された更新日付とともに、複数のキー管理テーブル31に分散させてストレージ13に記憶する。図4では、キー管理部23は、キーを、キー管理テーブル31A及びキー管理テーブル31Bの2つに分散させてストレージ13に記憶している。
データ管理装置10の動作は、キー監視処理と、データ挿入時の処理と、データ削除時の処理とに分けられる。
(ステップS11:キー数判定処理)
キー管理部23は、各リージョンのキュー32に基準数以上のキーが格納されているか否かを判定する。
キー管理部23は、全てのキュー32に基準数以上のキーが格納されている場合には、一定時間経過後にステップS11の処理を再び実行し、少なくとも一部のキュー32に基準数以上のキーが格納されていない場合には、処理をステップS12に進める。
キー管理部23は、格納されたキーの数が設定数になるように、キー管理テーブル31から状態が未使用であるキーを取得して、基準数未満のキーしか格納されていないキュー32に補充する。キー管理部23は、キー管理テーブル31における取得したキーの状態を未使用から使用中に変更し、更新日付を更新する。
図7及び図8を参照して具体例を説明する。基準数が3であり、設定数が5である場合に、図7に示すように、リージョン1のキュー32のキーの数が2つになったとする。すると、ステップS21でリージョン1のキュー32のキー数が基準数未満であると判定され、図8に示すように、ステップS22でリージョン1のキュー32に格納されたキーの数が5つになるように、3つのキーがキー管理テーブル31から取得され、リージョン1のキュー32に補充される。
なお、基準数及び設定数は、どの程度の頻度でキーが取得されるか、メモリ12の空き容量といった情報に応じてデータ管理装置10の稼働前に定められ、メモリ12に設定される。
(ステップS21:キー要求処理)
データ挿入部21は、通信インタフェース14を介して、アプリケーションサーバといった外部の装置から、指定データの挿入命令を受け付ける。すると、データ挿入部21は、キー管理部23へキーの取得要求を送信する。
キー管理部23は、いずれかのリージョンのキュー32の先頭に格納されたキーを取得して、データ挿入部21に送信する。この際、キー管理部23は、取得したキーをキュー32から削除する。また、キー管理部23は、キー管理テーブル31における取得されたキーの状態を使用中に変更し、更新日付を更新する。
データ挿入部21は、ステップS22で送信されたキーを取得できたか否かを判定する。
データ挿入部21は、キーを取得できた場合には、処理をステップS24に進め、キーを取得できなかった場合には、処理をステップS25に進める。
データ挿入部21は、ステップS22で取得されたキーを指定して、ストレージ13に記憶されたレコードのデータ項目の値を指定データに更新する。
具体例としては、データ挿入部21は、WHERE句にステップS22で取得されたキーを指定したSQL(Structured Query Language)のUPDATE文を用いて、ストレージ13に記憶されたレコードのデータ項目の値を指定データに更新する。
データ挿入部21は、指定データの挿入ができないとして、エラーメッセージを挿入命令の送信元へ送信する。
(ステップS31:削除受付処理)
データ削除部22は、通信インタフェース14を介して、アプリケーションサーバといった外部の装置から、指定レコードの削除命令を受け付ける。削除命令は、指定レコードに割り当てられたキーを示す。
データ削除部22は、ステップS31で受け付けられた削除命令が示すキーを指定して、レコードのデータ項目の値を初期値に更新する。
具体例としては、データ削除部22は、WHERE句にステップS31で受け付けられたキーを指定したSQLのUPDATE文を用いて、ストレージ13に記憶されたレコードのデータ項目の値を初期値に更新する。
データ削除部22は、ステップS31で受け付けられた削除命令が示すキーを示す削除通知をキー管理部23に送信する。
キー管理部23は、キー管理テーブル31における、ステップS33で送信された削除通知が示すキーの状態を未使用に変更し、更新日付を更新する。
以上のように、実施の形態1に係るデータ管理装置10は、キーが割り当てられた複数のレコードを記憶した記憶装置であるストレージ13を用い、データの更新によりデータの挿入を実現する。そのため、データの挿入により記憶領域が断片化することがなく、再編成処理が必要ない。
ここでの処理コストはSQLの発行回数である。キュー32を用いずに指定データを挿入する処理を実現しようとする場合、未使用のレコードを探すためにSELECT文を発行した上で、UPDATE文を発行する必要があり、SQLの発行回数は2回になる。これに対して、キュー32を用いて指定データを挿入する処理を実現しようとする場合、キュー32からキーを取得できるので、UPDATE文を発行するのみで済み、SQLの発行回数は1回になる。したがって、INSERT文を用いてデータを挿入する場合と同じ処理コストになる。
<変形例1>
実施の形態1では、図11及び図12を参照して説明したように、ステップS31で指定レコードの削除命令を受け付けると、すぐにステップS32で指定レコードのデータ項目の値を初期値に更新し、ステップS33でキー管理テーブル31におけるキーの状態を未使用に変更した。
変形例1として、データ削除部22は、ステップS31で指定レコードの削除命令を受け付けると、削除命令をメモリ12に格納しておき、後でまとめて格納された削除命令についてステップS32以降の処理を実行してもよい。具体例としては、データ削除部22は、データの挿入及び削除の処理の実行数が少ない夜間等にまとめて格納された削除命令についてステップS32以降の処理を実行してもよい。これにより、データの挿入及び削除の処理の実行数が多い日中等の負荷を減らすことができる。
処理が不正になった場合等に、キーが使用中のままになってしまう可能性がある。具体例としては、データ挿入時の処理において、ステップS22でキーを取得した後に、異常終了してしまった場合には、キー管理テーブル31では、ステップS22で取得されたキーの状態は使用中となるが、データの書き込みはされていない状態になってしまう可能性がある。この場合、ステップS22で取得されたキーに割り当てられたレコードは、未使用であるにも関わらず、状態は使用中となってしまう。
変形例2として、キー管理部23は、キー管理テーブル31の状態を未使用から使用中に変更してから基準時間経過しても状態が使用中のままの場合には、状態を未使用に変更する。具体的には、図13に示すように、キー管理部23は、状態が使用中であり、かつ、更新日付から基準期間経過しているキー管理テーブル31のレコードについて、状態を使用中から未使用に変更する。図13では、2015年12月5日に、基準期間を3月として、キー管理テーブル31のレコードの状態を更新する例を示している。これにより、実際には未使用であるにも関わらず、使用中となっているレコードを未使用に戻すことができる。
キー管理部23は、データの挿入及び削除の処理の実行数が少ない夜間等に、状態を使用中から未使用に変更する処理を実行してもよい。これにより、データの挿入及び削除の処理の実行数が多い日中等の負荷を減らすことができる。
基準期間は、データ管理装置10を用いるシステムの要件に応じて定めればよい。具体例としては、データ管理装置10を用いるシステムで、3月以上データを保持し続けることがないのであれば、基準期間は3月とすればよい。
実施の形態1では、データ挿入時の処理において、キュー32から取得されたキーを指定して、キーが割り当てられたレコードのデータ項目の値を指定データに更新した。キュー32から取得されるキーは、未使用のレコードに割り当てられたキーであるため、原則として、同じレコードを重複使用してしまい、データ項目の値を上書きしてしまうことはない。しかし、データ項目の値を上書きしてしまい、データが消失してしまうことは確実に防止すべきことである。
変形例3として、図14に示すように、データ挿入時の処理において、キュー32から取得されたキーを指定するとともに、レコードが未使用であることを条件として指定して、キーが割り当てられたレコードのデータ項目の値を指定データに更新する。レコードが未使用であることの条件を指定するとは、レコードに未使用であるか否かを示すフラグが含まれている場合には、そのフラグが未使用を示していることを指定することである。あるいは、レコードが未使用であることの条件を指定するとは、データ項目の値が初期値であることを指定することである。具体例としては、キーとフラグが未使用を示すこととをWHERE句に指定したSQLのUPDATE文を用いて、レコードのデータ項目の値を指定データに更新する。これにより、同じレコードを重複使用してしまうことをより確実に防止することができる。
なお、仮に、キュー32から取得したキーで、レコードのデータ項目の値を更新できない場合には、改めてキュー32からキーを取得し直せばよい。
実施の形態1では、データ管理装置10の各部の機能がソフトウェアで実現された。しかし、変形例4として、データ管理装置10の各部の機能はハードウェアで実現されてもよい。この変形例4について、実施の形態1と異なる点を説明する。
各部の機能がハードウェアで実現される場合、データ管理装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、処理回路15を備える。処理回路15は、データ管理装置10の各部の機能とメモリ12とストレージ13との機能を実現する専用の電子回路である。
各部の機能を1つの処理回路15で実現してもよいし、各部の機能を複数の処理回路15に分散させて実現してもよい。
変形例5として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、データ管理装置10の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
実施の形態1では、データ管理装置10は、キーが割り当てられた複数のレコードを記憶した記憶装置としてストレージ13を用いた。変形例6として、データ管理装置10は、キーが割り当てられた複数のレコードを記憶した記憶装置として、他のサーバといった外部の装置を用いてもよい。
キー管理部、31 キー管理テーブル、32 キュー。
Claims (8)
- キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理プログラムであり、
前記記憶装置に記憶された複数のレコードそれぞれに割り当てられたキーを、レコードが未使用か否かを示す状態とともに管理するキー管理処理であって、未使用のキーをキューに蓄積しておき、前記キューに蓄積されたキーが減少すると、設定数になるまでキューにキーを補充するキー管理処理と
指定データの挿入命令を受け付けると、前記キューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入処理と
をコンピュータに実行させるデータ管理プログラム。 - 前記データ管理プログラムは、さらに、
指定レコードの削除命令を受け付けると、前記指定レコードに割り当てられたキーを指定して、レコードのデータ項目の値を初期値に更新するデータ削除処理
をコンピュータに実行させる請求項1に記載のデータ管理プログラム。 - 前記データ削除処理では、指定レコードの削除命令を受け付けたタイミングと別のタイミングで、レコードのデータ項目の値を初期値に更新する
請求項2に記載のデータ管理プログラム。 - 前記キー管理処理では、前記データ削除処理によってデータ項目の値が前記初期値に更新されたレコードの状態を、未使用に変更する
請求項2又は3に記載のデータ管理プログラム。 - 前記キー管理処理では、前記キーを複数に分散させて管理する
請求項1から4までのいずれか1項に記載のデータ管理プログラム。 - 前記キー管理処理では、未使用のキーを複数のキューに分散して蓄積しておき、
前記データ挿入処理では、前記複数のキューのいずれかのキューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新する
請求項1から5までのいずれか1項に記載のデータ管理プログラム。 - 前記キー管理処理では、前記状態を未使用から使用中に変更してから基準時間経過しても前記状態が使用中のままの場合には、前記状態を未使用に変更する
請求項1から5までのいずれか1項に記載のデータ管理プログラム。 - キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理装置であり、
前記記憶装置に記憶された複数のレコードそれぞれに割り当てられたキーを、レコードが未使用か否かを示す状態とともに管理するキー管理部であって、未使用のキーをキューに蓄積しておき、前記キューに蓄積されたキーが減少すると、設定数になるまでキューにキーを補充するキー管理部と
指定データの挿入命令を受け付けると、前記キューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入部と
を備えるデータ管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016146217A JP6192781B1 (ja) | 2016-07-26 | 2016-07-26 | データ管理プログラム及びデータ管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016146217A JP6192781B1 (ja) | 2016-07-26 | 2016-07-26 | データ管理プログラム及びデータ管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6192781B1 true JP6192781B1 (ja) | 2017-09-06 |
JP2018018199A JP2018018199A (ja) | 2018-02-01 |
Family
ID=59798907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016146217A Active JP6192781B1 (ja) | 2016-07-26 | 2016-07-26 | データ管理プログラム及びデータ管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6192781B1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564179A (zh) | 2020-11-27 | 2022-05-31 | 华为技术有限公司 | 参数配置方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003330964A (ja) * | 2002-04-15 | 2003-11-21 | Internatl Business Mach Corp <Ibm> | データベース・システム |
JP2004025475A (ja) * | 2002-06-21 | 2004-01-29 | Pentel Corp | 塗布具用キャップ |
JP2006046669A (ja) * | 2004-07-05 | 2006-02-16 | Kenji Matsui | 床下換気装置 |
-
2016
- 2016-07-26 JP JP2016146217A patent/JP6192781B1/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003330964A (ja) * | 2002-04-15 | 2003-11-21 | Internatl Business Mach Corp <Ibm> | データベース・システム |
JP2004025475A (ja) * | 2002-06-21 | 2004-01-29 | Pentel Corp | 塗布具用キャップ |
JP2006046669A (ja) * | 2004-07-05 | 2006-02-16 | Kenji Matsui | 床下換気装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2018018199A (ja) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391628B (zh) | 数据同步方法及装置 | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
CN107918620B (zh) | 一种数据库的写入方法及装置、电子设备 | |
CN108121782B (zh) | 查询请求的分配方法、数据库中间件系统以及电子设备 | |
US9904701B2 (en) | Method and apparatus for concurrent access of mixed services | |
JP6479186B2 (ja) | 計算機システム及びデータベース管理方法 | |
CN110502523A (zh) | 业务数据存储方法、装置、服务器及计算机可读存储介质 | |
CN114063883B (zh) | 存储数据方法、电子设备和计算机程序产品 | |
CN112612799A (zh) | 一种数据同步方法及终端 | |
JP6192781B1 (ja) | データ管理プログラム及びデータ管理装置 | |
CN106339176B (zh) | 中间文件处理方法、客户端、服务器和系统 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
CN111309799A (zh) | 数据合并的实现方法、装置、系统及存储介质 | |
US10073657B2 (en) | Data processing apparatus, data processing method, and computer program product, and entry processing apparatus | |
US10430287B2 (en) | Computer | |
US11868620B2 (en) | Read-write method and apparatus, electronic device, and readable memory medium | |
JP2023511743A (ja) | 確率的データ構造を使用した要求の低減 | |
JP2018032072A (ja) | プログラム、情報処理装置、ストレージシステム、およびストレージシステムの制御方法 | |
CN110019092B (zh) | 数据存储的方法、控制器和系统 | |
US8705537B1 (en) | Eventually-consistent data stream consolidation | |
JP7481244B2 (ja) | データ同期システム、データ同期装置及びデータ同期方法 | |
US11954039B2 (en) | Caching system and method | |
KR20190141371A (ko) | 비휘발성 메모리를 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스 | |
US11561958B2 (en) | Information processing device and information processing system | |
CN114090609A (zh) | 一种数据同步方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170606 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170626 |
|
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: 20170711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6192781 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |