JP6549245B2 - データ管理システム - Google Patents
データ管理システム Download PDFInfo
- Publication number
- JP6549245B2 JP6549245B2 JP2017549135A JP2017549135A JP6549245B2 JP 6549245 B2 JP6549245 B2 JP 6549245B2 JP 2017549135 A JP2017549135 A JP 2017549135A JP 2017549135 A JP2017549135 A JP 2017549135A JP 6549245 B2 JP6549245 B2 JP 6549245B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- server
- registration
- child
- update
- 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 description 48
- 238000007726 management method Methods 0.000 claims description 108
- 238000012545 processing Methods 0.000 claims description 97
- 238000012217 deletion Methods 0.000 claims description 22
- 230000037430 deletion Effects 0.000 claims description 22
- 238000012937 correction Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 description 46
- 238000004891 communication Methods 0.000 description 43
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 23
- 238000007792 addition Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000021458 diet cola Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/105—Human resources
- G06Q10/1053—Employment or hiring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
因みに、各注文明細データは注文データの「注文ID」を共通に有しており、この注文IDによって一つに束ねられているため、注文データを「親データ」と、また注文明細データを「子データ」と観念することができる。
これを受けたAPサーバは、注文データ、注文明細データ(1)、注文明細データ(2)注文明細データ、(3)を再度DBサーバに送信し、データの登録処理を最初からやり直す。
このため、複数のDBサーバを用いた負荷分散化の要請には対応することが出来ないという問題があった。
また、ロールバック処理を実現するためには、DBサーバ側に更新ログを確実に残す仕組みを設けると共に、更新ログを用いて元の状態に復旧するという複雑な処理を強いることとなり、DBサーバの負荷を増大させる原因となっていた(非特許文献2参照)。
さらに、APサーバ側ではDBサーバから登録完了通知が届くまで待機する必要があり、処理の効率化に反する結果となっていた。
例えば、人事系のマスタファイルの管理に関し、これまで結婚等によって名字に変更の生じた社員については氏名の上書更新で対応してきたシステムにおいて、途中で旧姓を参照する要件が追加された場合、失われた旧姓のデータを復旧することは容易ではない。
また、退職した社員についてはデータを削除することで対応してきた場合、後で退職社員のデータを参照する必要性が生じた際にも同様の問題が生じる。
また、システムの運用途中で過去のデータの参照が必要となった場合にも、柔軟に対応可能なデータ管理技術の実現を第2の目的としている。
さらに、バッチ処理の対象データと対象外のデータを分離することなく、データの蓄積と並行してバッチ処理の実行を可能とするデータ管理技術の実現を第3の目的としている。
また、DBサーバによるロールバック処理が不要となる結果、従来のように一つのトランザクションに含まれる複数のデータについては同一のDBサーバが登録処理を担当しなければならないという制約から開放される。
さらに、従来のロールバックを前提としたトランザクション処理においては、全データの登録完了時にDBサーバからトランザクション成功の電文(コミット)が発行されるため、APサーバ側ではこの電文を受け取るまで待機する必要があった。これに対し、このシステムの場合にはDBサーバから各データの登録完了通知が届くだけであり、トランザクション完了の電文が発行されることがないため、その分、システム全体でのデータ通信量を削減することができると共に、APサーバの待ち時間を削減することが可能となる。
この場合でも、請求項5及び6に記載の仕組みを用いることにより、業務データの実質的な削除や更新を実現することができる。
これに対し、請求項7に記載の仕組みを用いれば、同じタイムスタンプ及び親データのIDを備えた更新管理データの不存在を理由に、このような不正な子データを実質的に無効化することが可能となる。
まず、東京に配置された第1のデータセンター12内には、第1のAPサーバ14と、第1のDBサーバ16と、第2のDBサーバ18が設置されている。
また、大阪に配置された第2のデータセンター20内には、第2のAPサーバ22と、第3のDBサーバ24と、第4のDBサーバ26が設置されている。
すなわち、同一のサーバ(同一のIPアドレス)上に複数のNUMAノード(別Port番号)を指定するDeployment(配置)を行うことにより、複数のAPサーバ(APノード)やDBサーバ(DBノード)として構成してもよい。
このように、同一データセンター内に複数のAPサーバを設けておけば、何れかのAPサーバの計画停止時あるいは計画外停止時おいても、他のデータセンター内のAPサーバに切り替えることなく同一データセンター内の残りのAPサーバで代替可能となり、ダウンタイムを最小化することができる。
DBサーバの数にも限定はなく、3台以上のDBサーバを各データセンター内に設置することができる。
ここでは、図2は示すように、注文テーブル40、注文取消テーブル41、注文明細テーブル42及び注文明細取消テーブル43を、各DBサーバは共通に備えている。
また、注文取消テーブル41には、注文ID(主キー/外部キー)、タイムスタンプのデータ項目が設定されている。
また、注文明細取消テーブル43には、注文明細ID(主キー/外部キー)、タイムスタンプのデータ項目が設定されている。
また、第2のAPサーバ22は、LANを介して第3のDBサーバ24及び第4のDBサーバ26と接続されると共に、通信回線29を介して第1のデータセンター12内に設置された第1のDBサーバ16及び第2のDBサーバ18とも接続されている。
同様に、第2のデータセンター20が被害を受けた場合には、西日本に設置されたクライアント端末28の接続先が第1のデータセンター12内に設定された第1のAPサーバ14に切り替えられる。
また、同一データセンター内にも同一のデータを備えた複数のDBサーバが設置されているため、データを参照する際にAPサーバは任意のDBサーバにデータの抽出を依頼することができ、負荷分散を図ることができる。
この人工キー管理部32は、専用のミドルウェアに従ってAPサーバのCPUが動作することにより、実現される。
またデータ制御部34は、人工キー管理部32の指令を受け、同一データセンター内に設置された各DBサーバを担当するDB連絡部38に対して、人工キー管理データの更新を指令する機能をも備えている(詳細は後述)。
まず、業務処理の結果としてデータを生成する必要が生じた業務処理部30は、人工キー管理部32に対して、テーブルを指定して人工キーの発行を要求する(S10)。上記の注文テーブル40に格納するデータを生成するケースであれば、「注文ID」用の人工キーの発行を要求することとなる。
また、数値の下一桁(末尾)には、データを生成したAPサーバを特定するための識別符号(0〜9の何れかの数値)がセットされている。
また、APサーバ管理テーブル48及びデータセンター管理テーブル49において、各APサーバとデータセンターとの関連性が定義されている。
これら人工キーの下一桁管理テーブル47、APサーバ管理テーブル48、データセンター管理テーブル49も、人工キー管理テーブル46と同じく、同一データセンター内のDBサーバに格納されている。
上記の更新に際し人工キー管理部32は、当該APサーバに係る注文テーブル40の「次のキー値」に対して、「直前の値(上記の最新値)の中で、末尾の識別符号を除いた部分で構成される数値に、1を加算した値」をセットする。
さらには、人工キー管理テーブル46の「次のキー値」にAPサーバの識別符号を除いた数値のみを格納しておき、人工キーの発行時点で人工キー管理部32が対応の識別符号を上記数値の末尾等に付加して業務処理部30に発行することもできる。
このデータは、データ制御部34及びDB連絡部38を介して全DBサーバに送信され、それぞれに設けられた対応のテーブル(注文テーブル40や注文明細テーブル42等)に追加登録される。
要するに、このシステム10においては、各テーブルに対する追加(インサート)と参照(セレクト)のみが許容されることになる。
例えば、図2に示した注文テーブル40に格納された特定の注文データを無効化するには、同図の注文取消テーブル41に注文取消データを追加する。
この注文取消データの主キーには、取消対象となる注文データの注文IDが充填されているため、業務処理部30は注文テーブル40に登録された各注文データの中で、その注文IDが注文取消テーブル41に登録されているものについては、対象外として無視する。
この注文明細取消データの主キーには、取消対象となる注文明細データの注文明細IDが充填されているため、業務処理部30は注文明細テーブル42に登録された注文明細データの中で、その注文明細IDが注文明細取消テーブル43に登録されているものについては、対象外として無視する。
例えば、ある注文明細データの「数量」を修正する場合、同一の注文明細ID、注文ID、アイテムIDで数量のみを変更した注文明細データを注文明細テーブル42に追加する。
なお、修正前のデータと修正後のデータは同じ注文明細IDを備えていても、各データにはデータ生成時の時刻がミリ秒精度でタイムスタンプに記録されているため、業務処理部30は集計時に最新のデータを間違いなく特定することができる。
まず、クライアント端末28からAPサーバ12に対して、以下の商品注文リクエストが送信されたとする。
(1) ネコ砂(アイテムID:55555501)・・・10袋
(2) ダイエットコーラ(アイテムID:33333302)・・・12本
(3) ノンアルコールビール(アイテムID:22222203)・・・15本
注文データ64は親データとして機能するものであり、独自の注文IDの他、ユーザのカスタマID、注文日時、タイムスタンプのデータ項目を備えている。
また、各注文明細データは子データとして機能するものであり、独自の注文明細IDの他、親データの注文ID、アイテムID、数量のデータ項目を備えている。
これを受けたデータ制御部34は、各注文明細データを4件分にコピーし、図8に示すように、各DB連絡部38を介して第1のDBサーバ16〜第4のDBサーバ26に登録させる。
この際、各注文明細データの到達順序が問われることはなく、DBサーバ毎に順番が先後しても構わない。
業務処理部30は、第1の注文明細データ61、第2の注文明細データ62、第3の注文明細データ63の全てについて、何れかのDBサーバから登録完了通知が返ってきた時点で(S28/Y)、親データとしての注文データ64をデータ制御部34に渡し、各DBサーバへの登録を依頼する(S30)。
各DBサーバは、DB連絡部38からデータを受け取って自身のメモリに格納した時点で、DB連絡部38に対して登録完了通知を送信し、その後、ハードディスクやSSD等の外部記憶装置内に設けられたテーブルに対応のレコードを格納する。
このDBサーバから送信された登録完了通知は、各DB連絡部38及びデータ制御部34を経由して業務処理部30に到達する(S32)。
この場合、業務処理部30は、別の注文IDを備えた注文データと、別の注文明細IDを備えた第1の注文明細データ〜第3の注文明細データを生成した後、改めて第1の注文明細データ〜第3の注文明細データの登録を試みる。そして、各注文明細データについて何れかのDBサーバから登録完了通知が届いた時点で、新たな注文データを各DBサーバに登録させる。
このため、「データの参照時に、対応する親データの登録がない子データは対象外とする」というルールを採用することにより、仮に一部の注文明細データについての登録が失敗した場合であっても、登録に成功した残りの注文明細データを明示的に無効化する必要がなくなる。
まず、業務処理部30が親データβのIDを備えた子データD、子データE、子データFの登録を試みたところ、何らかの理由によって子データDについての登録が完了することなくタイムアウトとなった場合、親データβの登録は見送られる。
しかしながら、本システム10においては上記の通り「対応する親データの登録がない子データは処理の対象外とする」というルールに準拠しているため、業務処理部30がデータの集計等を行う際には、対応する親データβの登録がない子データE及び子データFを参照の対象外として扱われる。
このため、ロールバック処理によって子データE及び子データFを明示的に無効化しなくても、これらの不整合なデータが参照されるという不都合は生じない。
これに対し、この発明を1台のDBサーバのみで運用される環境に適用した際には、マシントラブルや通信障害によって子データの登録に失敗する事態の発生が想定される。
このため、親データと子データの登録を別個のDBサーバで処理させることにより、負荷分散を図ることも可能となる。
これに対し、このシステム10の場合にはDBサーバから各データの登録完了通知が届くだけであり、トランザクション完了の電文が発行されることがないため、その分、システム全体でのデータ通信量を削減することができると共に、APサーバの待ち時間を削減することが可能となる。
しかしながら、この場合には上記ルールの適用により、先に登録された各子データ(注文明細データ)は参照の対象外となっているため、ダーティーリードの問題は生じない。
そこで業務処理部30は、親データの登録が完了するまで、S30の処理を何度でも繰り返すことができる。
また、ユーザ取消テーブル71には、ユーザID(主キー/外部キー)及びタイムスタンプのデータ項目が設定されている。
また、氏名取消テーブル73には、氏名ID(主キー/外部キー)及びタイムスタンプのデータ項目が設定されている。
また、住所取消テーブル75には、住所ID(主キー/外部キー)及びタイムスタンプのデータ項目が設定されている。
また、電話番号取消テーブル77には、電話番号ID(主キー/外部キー)及びタイムスタンプのデータ項目が設定されている。
また、Eメール取消テーブル79には、EメールID(主キー/外部キー)及びタイムスタンプのデータ項目が設定されている。
まず、クライアント端末28からAPサーバ12に対して、以下の属性を備えたユーザの新規登録リクエストが送信されたとする。
(1)氏名:山田太郎
(2)住所:東京都港区虎ノ門…
(3)電話番号:03-3508…
(4)メールアドレス:t-yamada@…
ユーザデータ84は親データとして機能するものであり、独自のユーザID及びタイムスタンプのデータ項目を備えている。
また、各属性データは子データとして機能するものであり、独自のID(氏名ID、住所ID、電話番号ID、EメールID)の他、親データのユーザID、属性(氏名/住所/電話番号/メールアドレス)、タイムスタンプのデータ項目を備えている。
各データのタイムスタンプには、同じ時刻がミリ秒単位で記述されている。
これを受けたデータ制御部34は、各属性データを4件分にコピーし、各DB連絡部38を介して第1のDBサーバ16〜第4のDBサーバ26に登録させる。
この際、各属性データの到達順序が問われることはなく、DBサーバ毎に順番が先後しても構わない。
業務処理部30は、氏名データ80、住所データ81、電話番号データ82、Eメールデータ83の全てについて、何れかのDBサーバから登録完了通知が返ってきた時点で(S48/Y)、親データとしてのユーザデータ84をデータ制御部34に渡し、各DBサーバへの登録を依頼する(S50)。
各DBサーバは、DB連絡部38からデータを受け取って自身のメモリに格納した時点で、DB連絡部38に対して登録完了通知を送信し、その後、ハードディスクやSSD等の外部記憶装置内に設けられたテーブルに対応のレコードを格納する。
このDBサーバから送信された登録完了通知は、各DB連絡部38及びデータ制御部34を経由して業務処理部30に到達する(S52)。
この場合、業務処理部30は、新しいユーザIDを備えたユーザデータと、別の氏名ID等及び新しいユーザIDを備えた属性データを生成した後、改めて各DBサーバへの登録を試みる。そして、各属性データについて何れかのDBサーバから登録完了通知が届いた時点で、新たなユーザデータを各DBサーバに登録させる。
この場合でも、業務処理部30は新旧両氏名データのタイムスタンプを比較することにより、最新の氏名を識別できる。
また、氏名テーブル72には古い氏名データもそのまま残されているため、後になって当該ユーザの旧姓を参照する必要性が生じた場合にも対応できる。
この場合にも、ユーザテーブル70や氏名テーブル72、住所テーブル74等にはデータがそのまま残されているため、事後的に退会ユーザについてのデータを参照することができる。
すなわち、この時点ではすでに両更新データの親データであるユーザデータが存在しているため、業務処理部30は登録に成功した更新住所データを無効扱いにすることができない。
この結果、更新電話番号データの登録が完了するまでの間、当該ユーザの属性データを表示する際には、新住所と旧電話番号が併記されるという不正な状況(ダーティリード)が生じる。
この更新管理テーブル85は、ユーザIDと、タイムスタンプのデータ項目を備えている。
また更新電話番号データ87は、従前の電話番号IDとユーザID、及び変更後の電話番号とタイムスタンプを備えている。
更新管理データ88は、ユーザIDと、タイムスタンプを備えている。
上記更新住所データ86、更新電話番号データ87及び更新管理データ88の各タイムスタンプには、同じ時刻が記録されている。
これを受けた各DBサーバは、更新住所データ86を住所テーブル74に、また更新電話番号データ87を電話番号テーブル76に格納する。
そして、タイムアウトした後、業務処理部30は新しく更新住所データ、更新電話番号データ、更新管理データを生成し、再び更新住所データ及び更新電話番号データの登録を試みる。
(2) ルール(1)の適用後に有効な子データが複数残された場合、タイムスタンプが最古の子データ(新規登録時の子データ)を除き、更新データと認定する。
(3) 更新データについては、同じタイムスタンプを備えた更新管理データの登録の有無をチェックし、登録のあるものは有効とし、登録のないものは無効とする。
具体的には、当該DBサーバを一時的にシステム10から切り離し、残りのDBサーバのみに基づく運用形態に移行する。
すなわち、データの削除や更新が許容されることを前提とした場合、データを復旧させるためにはDBサーバが保持している更新履歴情報に基づき、一定の時点からデータの追加や削除、更新を順番に再現する必要があり、これに長い時間と大きな負荷を要することになる。また、更新ログを確実に保存する仕組みをDBサーバ側に設ける必要がある。
以後、データ制御部34は、当該DBサーバを担当しているDB連絡部38を介して、データの送受信を再開する。
これに対し、このシステム10の場合には、あるDBサーバでデータの欠損が発生しても、単純に隣接するDBサーバから不足データをコピーするだけで追い着くことができるため、データがハードディスク等に格納されるまで待機する必要がない。
例えば、上記注文明細テーブル42を、「2016年8月の注文明細テーブル」、「2016年9月の注文テーブル」…のように細分化することが該当する。
なお、1ヶ月以内に人工キーの値がMAXに達してしまうような場合には、週毎あるいは日毎に同種の新テーブルに移行するように運用すればよい。
DBサーバ212と、第1のAPサーバ214、第2のAPサーバ216、第3のAPサーバ218との間は、それぞれ通信ネットワークを介して接続されている。
また、仕入取消テーブル222には、図16(b)に示すように、仕入ID及びタイムスタンプの各データ項目が設定されている。
販売価格テーブル224には、図16(c)に示すように、販売価格ID、商品ID、価格及びタイムスタンプの各データ項目が設定されている。
販売価格取消テーブル226には、図16(d)に示すように、販売価格ID及びタイムスタンプの各データ項目が設定されている。
すなわち、このシステム210においては、各テーブルに対する追加(インサート)と参照(セレクト)のみが許容されることになる。
例えば、図16(a)に示した仕入テーブル220に格納された特定の仕入データを無効化するには、同図(b)の仕入取消テーブル222に仕入取消データを追加する。
この仕入取消データの主キーには、取消対象となる仕入データの仕入IDが充填されているため、このデータを利用するに際しAPサーバは、仕入テーブル220に登録された各仕入データの中で、その仕入IDが仕入取消テーブル222に登録されているものについては、対象外として無視する。
この販売価格取消データの主キーには、取消対象となる販売価格データの販売価格IDが充填されているため、このデータを利用するに際しAPサーバは、販売価格テーブル224に登録された販売価格データの中で、その販売価格IDが販売価格取消テーブル226に登録されているものについては、対象外として無視する。
例えば、ある仕入データの「数量」を修正する場合、APサーバは同一の仕入ID、仕入先ID、商品ID、価格で、数量のみを変更した仕入データを新たに生成してDBサーバ212に送信し、仕入テーブル220に追加登録させる。
なお、修正前の仕入データと修正後の仕入データは同じ仕入IDを備えていても、各データ生成時の時刻がミリ秒精度でタイムスタンプに記録されているため、APサーバは参照時に最新のデータを間違いなく特定することができる。
以下、図17のフローチャートに従い、第2のAPサーバ216の処理内容を説明する。
つぎに第2のAPサーバ216は、この平均仕入価格に所定の利益を上乗せすることにより、各商品の翌日(10月23日)分の販売価格を算出する(S216)。
第2のAPサーバ216は、各商品の翌日分の販売価格データを、当日(10月22日)中に販売価格テーブル224に格納する(S218)。
このため、例えば、ある商品の仕入価格や販売価格の推移を分析する必要性が後日に生じた場合でも、各テーブルに格納された過去のデータを集計することで柔軟に対応できる。
図19は、第1のAPサーバ214、第2のAPサーバ216、第3のAPサーバ218の他に、第1のDBサーバ212及び第2のDBサーバ212'によってシステム210を構成した例を示している。
ただし、DBサーバの数は2台に限定されるものではなく、さらに多くのDBサーバを設置することが望ましい。
このために、第1APサーバ214が仕入データ等を登録する際には、同じ内容のSQL文を複数生成し、第1のDBサーバ212及び第2のDBサーバ212'に対して同時に同一データの登録を依頼する。
同様に、第2のAPサーバ216が販売価格データ等を登録する際には、同じ内容のSQL文を複数生成し、第1のDBサーバ212及び第2のDBサーバ212'に対して同時に同一データの登録を依頼する。
具体的には、当該DBサーバを一時的にシステム10から切り離し、残りのDBサーバのみに基づく運用形態に移行する。
すなわち、データの削除や更新が許容されることを前提とした場合、データを復旧させるためにはDBサーバが保持している更新履歴情報に基づき、一定の時点からデータの追加や削除、更新を順番に再現する必要があり、これに長い時間と大きな負荷を要することになる。また、更新ログを確実に保存する仕組みをDBサーバ側に設ける必要がある。
DBサーバ252は、ユーザテーブル256と、ユーザ取消テーブル258を備えている。図示の便宜上、1台のDBサーバ252のみが描かれているが、上記と同様、相互に共通のテーブルを備えた複数のDBサーバを用いることもできる。
また、ユーザ取消テーブル258には、図21(b)に示すように、ユーザID及びタイムスタンプのデータ項目が設定されている。
このため、登録データの修正が必要な場合には、既存レコードをアップデートする代わりに、修正後のデータを備えたレコードを新規に登録することで対応する。
この場合、修正前のユーザデータYと修正後のユーザデータY'は同じユーザID(00012346)を備えていても、各データ生成時の時刻がミリ秒精度でタイムスタンプに記録されているため、APサーバ254は参照時に最新のデータを間違いなく特定することができる。
また、APサーバ312には、ATMサーバ324を介して複数のATM端末326が接続されている。
図示は省略したが、APサーバ312は、ロードバランサを介した多重化により、負荷分散が図られている。
入金テーブル330には、入金ID、口座番号、金額等のデータ項目を備えたレコードが格納されている。
また、入金/送金テーブル332には、入金ID、送金ID等のデータ項目を備えたレコードが格納されている。
送金受付テーブル334には、送金ID等のデータ項目を備えたレコードが格納されている。
この口座テーブル336には、口座番号、暗証番号、預金種別、口座名義等のデータ項目を備えたレコードが格納されている。
出金テーブル338には、出金ID、口座番号、金額等のデータ項目を備えたレコードが格納されている。
また、出金/送金テーブル340には、出金ID、送金ID等のデータ項目を備えたレコードが格納されている。
送金テーブル342には、送金ID等のデータ項目を備えたレコードが格納されている。
送金完了テーブル344には、送金ID等のデータ項目を備えたレコードが格納されている。
また、出金管理用DBサーバ318としても、同じテーブル(出金テーブル338、出金/送金テーブル340、送金テーブル342、送金完了テーブル344)を備えた複数のDBサーバ318', 318"…が用意されており、各DBサーバ318に対してはAPサーバ12から同時に同一データが送信され、各テーブルへの追加登録が重複実行される。
また、同じ内容を備えた一部のDBサーバを遠隔地に配置することにより、地震等の大規模災害に備えることも可能となる。
例えば、ユーザがATM端末326のディスプレイに表示されたサービスメニューから「預け入れ」を選択した後、キャッシュカードを挿入し、口座の暗証番号を入力すると、ATMサーバ324経由でAPサーバ312に口座番号と暗証番号が送信される。
これを受けたAPサーバ312は、口座管理用DBサーバ316の口座テーブル336を参照し、該当の口座番号及び暗証番号の正当性をチェックする。
これを受けたAPサーバ312は、入金データ(入金ID、口座番号、金額等)を入金管理用DBサーバ314に送信する。
入金管理用DBサーバ314は、この入金データを入金テーブル330に追加登録する。
そして、残高が引き出し金額を上回っている場合には、現金払い出しの指示データをATM端末326に送信すると共に、対応の出金データ(出金ID、口座番号、金額等)を生成し、出金管理用DBサーバ318に送信する。
出金管理用DBサーバ318は、この出金データを出金テーブル338に追加登録する。
まず、ユーザがATM端末326のディスプレイに表示されたサービスメニューから「振り込み」を選択した後、金額の指定、振込先口座番号の指定を行うと、ATMサーバ324経由でAPサーバ312に送金依頼データが送信される。この送信依頼データには、ユーザの口座番号、振込先の口座番号及び金額が含まれている。
入金管理用DBサーバ314からの登録完了通知を受け取ったAPサーバ312は、送金完了データを出金管理用DBサーバ318に送信し、送金完了テーブルへの登録を依頼する。
すなわち、入金データ及び入金/送金データのプライマリキーである「入金ID」としては、入金データの再送毎に新規のIDが払い出されることになるが、送金受付データのプライマリキーには当初の「送金ID」が充填されているため、この送金IDをチェックすることでDBサーバはデータの重複登録を回避することが可能となる。
まず、ユーザがATM端末326のディスプレイに表示されたサービスメニューから「残高照会」を選択すると、ATMサーバ324経由でAPサーバ312に口座番号を伴う残高照会依頼が送信される。
そして、出金管理用DBサーバ318から該当の出金データが送信されると、APサーバ312は、各出金データの金額を加算し、その合計金額を求める(S334)。
そして、入金管理用DBサーバ314から該当の入金データが送信されると、APサーバ312は各入金データの金額を加算し、その合計金額を求める(S338)。
この残高データは、ATMサーバ324を経由してATM端末326に送信され(S342)、ディスプレイに表示される。
また、万が一何れか一方の処理が失敗した場合には、各テーブルの状態を元に戻す処理(ロールバック)が必要となる。
[参考文献1]グーグル「Spanner」:地球大のリアルタイム・データベース
インターネットURL:http://wired.jp/2012/11/28/google-spanner-time/
検索日:2016年10月28日
すなわち、送金関連データの登録と入金関連データの登録の順序性が、APサーバ312によって担保される仕組みを備えている。
これはつまり、情報の一貫性の観点で言うと、書き込み時の一貫性に依拠しないシステム構成にして、かつ、読み取り時の一貫性を書き込み時の一貫性とは独立させることで、この口座データ管理システム310においては、各サーバの時計を地球規模で同期させる大掛かりな仕組みが不要となることを意味している。
また、送金完了テーブル344に送金IDが登録されるまで、APサーバ312から入金管理用DBサーバ314に対して入金データ、入金/送金データ、送金受付データが再送される仕組みを備えているため、複数の入金管理用DBサーバ314…中の少なくとも1台と、複数の出金管理用DBサーバ318…中の少なくとも1台が稼働している限りにおいて結果的にデータの整合性が担保される利点を有している。
しかも、入金管理用DBサーバ314と出金管理用DBサーバ318を、それぞれ同一のテーブル、同一のデータを備えた複数のDBサーバによって多重化することにより、APサーバ312は複数のDBサーバから同時並行的にデータの抽出を行うことができ、さらなる処理の効率化が図れる。
なお、サーバ間で時刻同期がされていることを前提とするシステム構成を採用していると、この多重化には、時刻同期システムの構成の見直しなどが必要となるが、本システムは、サーバ間で時刻同期がされていることを前提としていないので、その分、多重化を容易に行うことができる。
例えば、ユーザのポイントを管理する口座のデータ管理にこのシステム310を適用することが考えられる。
この場合、「入金」は「ポイント追加」と、「出金」は「ポイント利用(適用)」と、「送金」は「ポイント譲渡」と、「残高」は「ポイント残高」と、「金額」は「ポイント数」と、「口座番号」は「アカウント」などと読み替えればよい。
12 第1のデータセンター
14 第1のAPサーバ
16 第1のDBサーバ
18 第2のDBサーバ
20 第2のデータセンター
22 第2のAPサーバ
24 第3のDBサーバ
26 第4のDBサーバ
27 通信ネットワーク
28 クライアント端末
29 通信回線
30 業務処理部
32 人工キー管理部
34 データ制御部
38 DB連絡部
40 注文テーブル
41 注文取消テーブル
42 注文明細テーブル
43 注文明細取消テーブル
46 人工キー管理テーブル
47 人工キーの下一桁管理テーブル
48 APサーバ管理テーブル
49 データセンター管理テーブル
61 第1の注文明細データ
62 第2の注文明細データ
63 第3の注文明細データ
64 注文データ
70 ユーザテーブル
71 ユーザ取消テーブル
72 氏名テーブル
73 氏名取消テーブル
74 住所テーブル
75 住所取消テーブル
76 電話番号テーブル
77 電話番号取消テーブル
78 Eメールテーブル
79 Eメール取消テーブル
80 氏名データ
81 住所データ
82 電話番号データ
83 Eメールデータ
84 ユーザデータ
85 更新管理テーブル
86 更新住所データ
87 更新電話番号データ
88 更新管理データ
210 第1のデータ管理システム
212 DBサーバ(第1のDBサーバ)
212' 第2のDBサーバ
214 第1のAPサーバ
216 第2のAPサーバ
218 第3のAPサーバ
220 仕入テーブル
222 仕入取消テーブル
224 販売価格テーブル
226 販売価格取消テーブル
228 仕入担当スタッフ
230 クライアント端末
232 一般ユーザ
250 第2のデータ管理システム
252 DBサーバ
254 APサーバ
256 ユーザテーブル
258 ユーザ取消テーブル
260 ユーザ
262 クライアント端末
310 口座データ管理システム
312 APサーバ
314 入金管理用DBサーバ
316 口座管理用DBサーバ
318 出金管理用DBサーバサーバ
320 Webサーバ
322 クライアント端末
324 ATMサーバ
326 ATM端末
330 入金テーブル
332 入金/送金テーブル
334 送金受付テーブル
336 口座テーブル
338 出金テーブル
340 出金/送金テーブル
342 送金テーブル
344 送金完了テーブル
Claims (7)
- APサーバとDBサーバを備えたデータ管理システムであって、
上記APサーバは、業務処理の結果生じた業務データを上記DBサーバに送信し、対応のテーブルへの登録を依頼する機能を備え、
上記業務データは、相互に関連性を有する親データと、複数の子データとの組合せからなり、
上記の各子データは、子データ固有のIDの他に、上記親データのIDを外部キーとして備えており、
上記業務データの登録に際し、上記APサーバは、まず上記DBサーバに対して各子データの登録を依頼し、上記DBサーバから全ての子データに係る登録完了通知が届いた時点で親データの登録を上記DBサーバに依頼し、一定の時間内に何れかの子データの登録完了通知が届かない場合には、親データの登録を中止し、
また登録済みの業務データの参照に際し、上記APサーバは、関連する親データの登録のある子データのみを参照の対象とし、関連する親データの登録のない子データについては参照の対象外とすることを特徴とするデータ管理システム。 - 複数のDBサーバを備えており、
上記親データの登録に際し、上記APサーバは、上記子データの登録を依頼したDBサーバとは別個のDBサーバに対して登録を依頼することを特徴とする請求項1に記載のデータ管理システム。 - 同一のデータを格納する共通のテーブルをそれぞれ備えた複数のDBサーバを備えており、
上記業務データの登録に際し、上記APサーバは、まず上記の各DBサーバに各子データの登録を依頼し、
全ての子データについて、何れかのDBサーバから登録完了通知が届いた時点で親データの登録を上記の各DBサーバに依頼し、一定の時間内に何れかの子データの登録完了通知が何れのDBサーバからも届かない場合には、親データの登録を中止することを特徴とする請求項1に記載のデータ管理システム。 - 上記DBサーバのテーブルには、レコードの参照及び追加のみが許容され、削除及び更新が禁止される制約が設けられていることを特徴とする請求項3に記載のデータ管理システム。
- 上記APサーバは、既存の業務データを削除する必要がある場合に、取消対象となる業務データのIDをセットするデータ項目を備えたデータ取消用データを生成すると共に、
このデータ取消用データを各DBサーバに設けられた取消専用のテーブルに追加登録させることにより、既存の業務データを実質的に無効化することを特徴とする請求項4に記載のデータ管理システム。 - 上記の各業務データには、それぞれ業務処理時のタイムスタンプが刻印されており、
上記APサーバは、既存の業務データを更新する必要がある場合に、当該業務データと同じIDを有すると共に、修正後の値及び修正時のタイムスタンプを備えた更新用業務データを新たに生成し、
この更新用業務データを上記の各DBサーバに設けられた該当のテーブルに追加登録させることにより、既存の業務データを実質的に更新することを特徴とする請求項4または5に記載のデータ管理システム。 - 上記APサーバは、相互に関連性を有する既存の複数の子データを同時に更新する必要がある場合に、各子データの固有のIDと、相互に共通する親データのIDと、それぞれの修正後の値と、相互に共通する修正時のタイムスタンプを備えた更新用子データを新たに生成すると共に、上記親データのIDと、上記タイムスタンプを備えた更新管理データを生成し、
まず上記の各DBサーバに対して各更新用子データの登録を依頼し、全ての更新用子データについて、何れかのDBサーバから登録完了通知が届いた時点で更新管理データの登録を上記の各DBサーバに依頼し、一定の時間内に何れかの子データの登録完了通知が何れのDBサーバからも届かない場合には、更新管理データの登録を中止し、
また更新用子データの参照に際し、各更新用子データに係る親データのID及びタイムスタンプを備えた更新管理データの登録のある更新用子データのみを参照の対象とし、上記更新管理データの登録のない更新用子データについては参照の対象外とすることを特徴とする請求項6に記載のデータ管理システム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPPCT/JP2015/081327 | 2015-11-06 | ||
PCT/JP2015/081327 WO2017077643A1 (ja) | 2015-11-06 | 2015-11-06 | データ管理システム |
JPPCT/JP2015/081531 | 2015-11-10 | ||
PCT/JP2015/081531 WO2017081737A1 (ja) | 2015-11-10 | 2015-11-10 | データ管理システム |
PCT/JP2016/082855 WO2017078158A1 (ja) | 2015-11-06 | 2016-11-04 | データ管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017078158A1 JPWO2017078158A1 (ja) | 2018-08-09 |
JP6549245B2 true JP6549245B2 (ja) | 2019-07-24 |
Family
ID=58662068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017549135A Active JP6549245B2 (ja) | 2015-11-06 | 2016-11-04 | データ管理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11169984B2 (ja) |
EP (1) | EP3373149A4 (ja) |
JP (1) | JP6549245B2 (ja) |
WO (1) | WO2017078158A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10841079B1 (en) * | 2017-07-26 | 2020-11-17 | EMC IP Holding Company LLC | Data registration-aware storage systems |
JP7322533B2 (ja) | 2019-06-13 | 2023-08-08 | カシオ計算機株式会社 | 情報処理装置、情報処理方法、情報処理システム及びプログラム |
JP2022163828A (ja) * | 2021-04-15 | 2022-10-27 | 東芝テック株式会社 | 情報処理システム、クライアント装置及び情報処理プログラム |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2329044B (en) * | 1997-09-05 | 2002-10-09 | Ibm | Data retrieval system |
US7206805B1 (en) * | 1999-09-09 | 2007-04-17 | Oracle International Corporation | Asynchronous transcription object management system |
JP2001209652A (ja) * | 2000-01-24 | 2001-08-03 | Nec Corp | 文書公開システム及び文書公開方法並びにプログラムを記録した機械読み取り可能な記録媒体 |
JP4152107B2 (ja) * | 2002-01-16 | 2008-09-17 | 富士通株式会社 | データベース更新情報の反映システムおよびそのためのプログラム |
US20030223090A1 (en) * | 2002-05-28 | 2003-12-04 | Mustafa Seifi | Method and implementation for message-driven job processing |
US20040199537A1 (en) * | 2003-04-03 | 2004-10-07 | Duff Robert Cory | System for storing and retrieving database information |
US7177875B2 (en) * | 2003-11-10 | 2007-02-13 | Howard Robert S | System and method for creating and using computer databases having schema integrated into data structure |
US7440956B2 (en) * | 2005-11-10 | 2008-10-21 | International Business Machines Corporation | Enforcing constraints from a parent table to a child table |
US8103695B2 (en) * | 2008-05-16 | 2012-01-24 | Oracle International Corporation | Creating storage for XML schemas with limited numbers of columns per table |
US8688622B2 (en) * | 2008-06-02 | 2014-04-01 | The Boeing Company | Methods and systems for loading data into a temporal data warehouse |
US8214408B2 (en) * | 2008-09-29 | 2012-07-03 | Teradata Us, Inc. | Method, database system and computer program for joining temporal database tables |
JP4939568B2 (ja) * | 2009-04-28 | 2012-05-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベース間でデータを同期するための方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
JP5355227B2 (ja) * | 2009-05-29 | 2013-11-27 | 株式会社東芝 | 文書管理支援システム、情報管理サーバ装置及び情報媒体制御装置 |
WO2011121905A1 (ja) * | 2010-03-29 | 2011-10-06 | 日本電気株式会社 | ファイルストレージ装置、データ格納方法およびデータ格納プログラム |
JP2012003572A (ja) | 2010-06-18 | 2012-01-05 | Nomura Research Institute Ltd | 感性分析システム及びプログラム |
JP5608633B2 (ja) * | 2011-12-21 | 2014-10-15 | 株式会社野村総合研究所 | データ利用システム |
JP5675666B2 (ja) * | 2012-02-09 | 2015-02-25 | 株式会社野村総合研究所 | 時限データの履歴管理システム |
JP2013242781A (ja) | 2012-05-22 | 2013-12-05 | Nippon Telegr & Teleph Corp <Ntt> | 要望文抽出装置、方法、及びプログラム |
JP2014041501A (ja) * | 2012-08-23 | 2014-03-06 | Hitachi Solutions Ltd | バッチ処理対象データの高速読込み方法及びバッチ管理システム |
JP2015165357A (ja) * | 2014-03-03 | 2015-09-17 | 株式会社野村総合研究所 | データ管理システム |
WO2015133271A1 (ja) * | 2014-03-03 | 2015-09-11 | 株式会社野村総合研究所 | データ管理システム、サービス提供システム及びその機能拡張方法 |
US10146813B2 (en) * | 2014-07-03 | 2018-12-04 | DocConnects, LLC | Single table index relational database |
JP2016035688A (ja) | 2014-08-04 | 2016-03-17 | 日本電気株式会社 | テキスト分析装置、テキスト分析方法、テキスト分析プログラムおよび記録媒体 |
-
2016
- 2016-11-04 JP JP2017549135A patent/JP6549245B2/ja active Active
- 2016-11-04 WO PCT/JP2016/082855 patent/WO2017078158A1/ja active Application Filing
- 2016-11-04 EP EP16862217.3A patent/EP3373149A4/en not_active Ceased
-
2018
- 2018-04-27 US US15/965,232 patent/US11169984B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3373149A4 (en) | 2019-04-03 |
JPWO2017078158A1 (ja) | 2018-08-09 |
US11169984B2 (en) | 2021-11-09 |
US20180300688A1 (en) | 2018-10-18 |
EP3373149A1 (en) | 2018-09-12 |
WO2017078158A1 (ja) | 2017-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462594B (zh) | 一种大规模并行处理数据库的系统和方法 | |
US10565570B2 (en) | Processing network architecture with companion database | |
US10942823B2 (en) | Transaction processing system, recovery subsystem and method for operating a recovery subsystem | |
US9965364B2 (en) | Fault tolerant listener registration in the presence of node crashes in a data grid | |
US11010267B2 (en) | Method and system for automatic maintenance of standby databases for non-logged workloads | |
US11429675B2 (en) | Systems and methods for managing transactional operation | |
JP3617997B2 (ja) | データ更新方式 | |
JP6898548B2 (ja) | 承認システム、承認方法および承認プログラム | |
CN110392884A (zh) | 自动化的自修复数据库系统及实现其的方法 | |
US7603354B2 (en) | Method for enhancing the operation of a database | |
US20200403786A1 (en) | Distributed Data Records | |
JP6549245B2 (ja) | データ管理システム | |
US10467223B1 (en) | Mixed-mode method for combining active/active and validation architectures | |
US20100332240A1 (en) | Decentralized account digest using signed electronic receipts | |
US20220092224A1 (en) | Data management system with tamper-evidence | |
JP6055050B1 (ja) | 銀行システム、銀行システムによって実行される方法およびプログラム | |
JP4406310B2 (ja) | Mqデータ同期システム及びmqデータ同期プログラム | |
JP6530337B2 (ja) | トランザクション制御システムおよびトランザクション制御方法 | |
CN109976944B (zh) | 数据处理方法和系统,存储介质和电子设备 | |
WO2017077643A1 (ja) | データ管理システム | |
JP6475820B2 (ja) | データ処理システム | |
JP2018106384A (ja) | 顧客自身が自由に条件設定可能な機能を有する口座および資金管理システム | |
JP6359762B2 (ja) | 口座データ管理システム | |
JP4231655B2 (ja) | 金融機関情報一元管理システム、および、金融機関情報の管理方法 | |
WO2017081737A1 (ja) | データ管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190419 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190605 |
|
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: 20190614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190626 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6549245 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 |