WO2009123342A1 - データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム - Google Patents

データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム Download PDF

Info

Publication number
WO2009123342A1
WO2009123342A1 PCT/JP2009/057033 JP2009057033W WO2009123342A1 WO 2009123342 A1 WO2009123342 A1 WO 2009123342A1 JP 2009057033 W JP2009057033 W JP 2009057033W WO 2009123342 A1 WO2009123342 A1 WO 2009123342A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
application program
area
database
update
Prior art date
Application number
PCT/JP2009/057033
Other languages
English (en)
French (fr)
Inventor
本田和利
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US12/922,051 priority Critical patent/US8380660B2/en
Priority to CN200980111727.4A priority patent/CN101981550B/zh
Publication of WO2009123342A1 publication Critical patent/WO2009123342A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Definitions

  • Database system database update method, database, and database update program
  • the present invention relates to a database in which a user application program updates a data area placed on a shared memory, a database system, a database update method, and a database update program.
  • Figure: 13 shows a memory database system in which a user application program directly updates a data area placed on a shared memory.
  • a user application program directly updates a data area placed on a shared memory.
  • the data area on the shared memory may be destroyed when the user application program updates data.
  • FIG. 14 shows a journal file system of the memory database system.
  • data is recovered according to the following procedure. That is, 1. Discard the corrupted data in the memory, 2. Reload the master data from the disk unit, 3. Roll forward the update data from the journal file that maintains and manages the metadata.
  • procedures 2 and 3 require reading data from the disk device. Normally, when accessing a disk device, when memory corruption occurs, the time required for reading and writing is longer than when accessing memory, the service is stopped for a long time. In addition, the cost required for recovery is high.
  • the client Z server system shown in Figure 15 has a server daemon. Access to data from the user application program must be via the server daemon. Only the server daemon accesses the shared memory, and the user application program does not access the shared memory directly. As a result, the user application program does not destroy the data on the shared memory.
  • CVS Concurrent Versions System
  • Figure 16 shows the configuration of VS.
  • master data in this case, a master file
  • the entire master file is first copied from an area called a repository to the local area, and then the copied master file is updated. After that, the updated contents are collectively reflected in the master file. Users themselves cannot update the master file directly. This prevents the user from destroying the master file.
  • FIG. 17 shows a data update method disclosed in Patent Document 1.
  • the shared memory of the database system is read-only.
  • update memory is prepared in block units (64 KB) or page units (4 to 8 KB).
  • the manager process copies the contents of the update memory to the shared memory.
  • Application processes do not access master data directly. Thereby, the user does not destroy the master file.
  • Patent Document 1 Japanese Patent Laid-Open No. 0-0331 604
  • An object of the present invention is to provide a database that is robust against changes in application programs and environments.
  • An object of the present invention is to provide a memory database, a memory database system, and a memory database update method that solve the above-described problems.
  • An object of the present invention is to provide a memory database that can prevent data destruction by a user and minimize the degradation of data access performance and the consumption of CPU resources and memory resources.
  • the database system of the present invention is a data base system that updates data using an application program, and includes data storage means for storing master data and a shared memory area.
  • the shared memory area stores the master data and the differential area generated when the application program updates the master data in the first area. Includes a second area that can be referenced and updated.
  • the database update method of the present invention is a database update method for updating data by an application program, wherein the master data loaded in the first area that can only be referred to by the application program is updated by the application program, A step of generating difference data, a step of storing the difference data generated when the application program updates the master data in a second area that can be referenced and updated by the application program, and the difference data as master data. A step of reflecting, and a step of deleting difference data.
  • the database of the present invention is a database for updating data by an application program.
  • the master data is loaded into the first area where the application program can only be referenced, and the application program is a master in the first area. It stores differential data generated when data is updated, and has a second area that can be referenced and updated by the application program.
  • a database update program updates and updates data loaded in a database.
  • a database update program that updates the master data loaded in the first area where the program can only be referenced in the database and generates a difference; and the program references and A step of storing in a second area that can be updated, a step of reflecting the difference data in the master data, and a step of deleting the difference data are executed.
  • the master data is not destroyed even if the user application program has a problem.
  • FIG. 1 is a system configuration diagram showing an embodiment of a memory database system of the present invention.
  • FIG. 2 is a configuration diagram of the shared memory when the shared memory according to the present embodiment is created.
  • FIG. 3 is a configuration diagram of the memory database system of the present embodiment at the time of loading master data.
  • FIG. 4 is a configuration diagram of the memory database system according to the present embodiment when an index is set in the update area.
  • FIG. 5 is a configuration diagram of the memory database system of the present embodiment at the initial stage when creating difference data of master data.
  • FIG. 6 is a configuration diagram of the memory database system according to the present embodiment at a later stage when creating difference data of master data.
  • FIG. 7 is a diagram illustrating the memory database system according to the present embodiment at the initial stage when the master data is updated with the difference data.
  • FIG. 8 is a configuration diagram of the memory database system of the present embodiment at a later stage when the master data is updated with the difference data.
  • FIG. 9 is a configuration diagram of the memory database system of the present embodiment at the initial stage when differential data is created by another user.
  • FIG. 10 is a configuration diagram of the memory database system of the present embodiment at a later stage when minute data is created by another user.
  • FIG. 1 1 This embodiment when referring to the reference area while creating difference data for master data It is a block diagram of the memory database system of a state.
  • FIG. 12 is a configuration diagram of the memory database system of the present embodiment at the time of data recovery.
  • FIG. 13 This is a configuration diagram of the memory database system at the time of data destruction in the related technology.
  • FIG. 14 This is a configuration diagram of the journal file system at the time of data recovery in the related technology.
  • FIG. 15 This is a configuration diagram of a client-server memory database system in the related art.
  • FIG. 16 This is a block diagram of a CVS memory database system in the related art.
  • FIG. 17 is a configuration diagram of a memory database system in Patent Document 1.
  • FIG. 18 is a flowchart showing processing upon activation of the memory database system of the present embodiment.
  • FIG. 19 fo in the flow chart showing the data update processing in the memory database of this embodiment.
  • FIG. 20 is a flowchart showing data update processing when another application program makes an update request in the memory database of the present embodiment.
  • FIG. 21 is a flowchart showing data recovery processing in the memory database of the present embodiment.
  • each process and operation in the memory database of the present embodiment described below is realized by a process, means, and function executed by a computer in accordance with a program (software) instruction.
  • the program sends a command to each component of the computer to perform the following predetermined processing 'function. That is, each processing means in the memory database of the present embodiment is realized by specific means in which a program and a computer cooperate.
  • all or part of the program is provided by, for example, a magnetic disk, optical disk, semiconductor memory 1 , or any other computer-readable recording medium.
  • the program read from the recording medium is installed in the computer and executed.
  • the program can be loaded into a computer via a communication line and executed without using a recording medium.
  • the program may be directly executed through a communication line.
  • FIG. 1 is a block diagram showing a configuration of an embodiment of a memory database system of the present invention.
  • the memory database system 1 of the present embodiment is configured by an information processing apparatus such as a personal computer or a workstation. Specifically, the memory database system 1 of the present embodiment stores a shared memory 00 for storing database data, a user application program 200 created by the user, a commit execution daemon 300, and master data.
  • the disk unit 400 is provided.
  • the shared memory 100 is divided into a reference area 110 and an update area 120.
  • Master data 1 1 1 is stored in the reference area 1 1 0.
  • the master data 1 1 1 is read from the disk device 400 when the operation of the memory database system 1 is started.
  • the master data 1 1 1 is composed of records 1 1 2 as the main data and an index tree 1 1 3 as the reference index.
  • the index tree 1 1 3 has a tree structure used for searching records at high speed.
  • the index tree 1 1 3 has a reference pointer storage area 1 1 4 in the leaf portion.
  • the reference pointer storage area 1 1 4 stores the value of the reference pointer 1 1 5 indicating each of the corresponding records 1 1 2.
  • an update pointer storage area 124 is provided as an update index corresponding to the reference pointer storage area 1 14.
  • Reference pointer storage area ⁇ 1 4 stores the link to update pointer storage area 1 24.
  • the user application program 200 can only refer to it and cannot update it. It can also be referenced and updated from the commit execution daemon 300.
  • update data 121 is stored in the update area 120.
  • update data 121 is created.
  • the update data 121 includes a difference record 122 between before and after the update, and an update pointer storage area 124 that stores the update index.
  • the update area 120 is set with access restrictions, and can be referenced and updated from the user application program 200 and the commit execution daemon 300.
  • the user application program 200 is uniquely created by a user who uses the memory database system 1.
  • the user application program 200 has a function of referring to the master data 1 1 1 placed in the reference area 1 1 0. Furthermore, the user application program 200 creates the difference record 122 when attempting to update the master data 1 1 1, excludes the update area 1 20, and then updates the created difference record 1 22 to the update area 1. It has a function of storing in 20 and replacing the update pointer 1 25 to point to the difference record 1 22.
  • the user application program 200 has a function of executing a commit process by transmitting a commit request to the commit execution daemon 300 after data update.
  • the commit execution daemon 300 operates in the memory database system 1.
  • the commit execution daemon 300 receives a commit request from the user application program 200
  • the commit execution daemon 300 excludes the reference area 1 1 0 and the update area 1 20 and stores the difference record 1 22 stored in the update area 1 20 It has a function to reflect in the master data 1 1 1 stored in the reference area 1 1 0 and to replace all the update pointers 1 25 to point to the records 1 1 2 of the master data 1 1 1.
  • shared memory 100 of memory database system 1 is generated according to the following procedure.
  • a reference area 110 and an update area 120 are created on the shared memory 100 (step S101).
  • Master data 1 1 1 read from the disk device 400 is loaded onto the reference area 1 1 0 (step S102).
  • Master data 1 1 1 includes record 1 1 2 as this data and index tree 1 1 3 as a reference index.
  • Index tree 1 1 3 has a reference pointer storage area 1 1 4 in the leaf portion.
  • the reference pointer storage area 1 14 is copied onto the update area 120 to generate the update pointer storage area 1 24 (step S 1 03). ).
  • the reference pointer storage area 1 1 4 stores the value of the reference pointer 1 1 5 pointing to the corresponding record 1 1 2 and at the same time the update pointer as an update index provided in the update area 120 Stores the link to storage area 1 '24 (step S 104).
  • the update pointer storage area 124 stores the value of the update pointer 125 that points to the difference record 122.
  • the update pointer 125 indicates the same record as the reference pointer 1 15 on the master data 1 1 1, as shown in FIG.
  • step S201 the update area 120 is excluded (step S201).
  • the record to be updated is specified by referring to the update pointer 1 25 from the index tree 1 1 3.
  • step S20 2 a record image before update whose position has been identified and a difference record image 122 obtained from the record image after update are generated (step S20 2), and the update area 1 20 is stored (step S203). Then, the update pointer storage area 124 is rewritten so that the update pointer 125 points to the differential record image 122.
  • the update data 1 21 stored in the update area 120 can be used as the master data 1 1 1 To reflect. That is, as shown in FIG. 7, the user application program 200, to the committed execution daemon 300 sends a commit request using the inter-process communication (step S205) o
  • the commit execution daemon 300 When receiving the commit request, the commit execution daemon 300 first excludes the reference area 110 and the update area 120 (step S206). Next, the difference records 122 stored in the update area 120 are collectively reflected in the master data 1 1 1 of the reference area 1 1 0 (step S207) D
  • step S208 After rewriting the master data 1 1 1 with the difference record 1 22, as shown in FIG. 8, the difference record 1 22 is removed (step S208), and the difference record 1 22 is pointed. Update pointer storage area 1 2 so that the update pointer 1 25 points to the corresponding record 1 1 2 on the master data 1 1 1
  • step S209 the exclusion for the reference area 110 and the update area 120 is canceled.
  • the master data 1 1 1 is updated by the user application program 200, the difference record 122 is stored in the update area 120 as shown in FIG. 6, and the update pointer 1 25 is the difference code 1 It is assumed that the update pointer storage area 1 24 is rewritten so that it points to 22 and the exclusion of the update area 1 20 is released.
  • step S21 0 When another user application program 21 0 requests to update data in an attempt to update the record 1 1 2 again (step S21 0: Yes), first, as shown in FIG. The area 120 is excluded so that other user application programs and the commit execution daemon 300 cannot refer to the area 120 (step S21 1).
  • the record to be updated is specified by referring to the update pointer 125.
  • the update pointer 125 points in the difference record 122, and it is determined that the current actual update target record is the post-update record 128.
  • a difference record composed of this updated record 128 and the record updated this time is generated (step S212), and added to the update area 120. (Step S21 3). Then, the update pointer 125 is replaced so that the update pointer 125 points to the created difference record. After all processing is completed, the exclusion for the update area 120 is canceled (step S214).
  • step S21 0 After the update by another user application program 210 is completed (step S21 0:
  • the process of reflecting No) to the master data 1 1 1 by the commit execution daemon 300 is completely the same as before, and the description is omitted. That is, the commit execution daemon 300 that has received a commit request from another user application program 210 excludes the reference area 110 and the update area 120 and stores them in the update area 120.
  • the difference record 1 22 is collectively reflected in the master data 1 1 1 in the reference area 1 1 0, and after rewriting the master data 1 1 1 in the difference record 1 22, the difference record 1 22 is deleted and updated. After rewriting the pointer storage area 1 24, the exclusion for the reference area 1 1 0 and the update area 1 20 is canceled.
  • the master data 1 1 1 in the reference area 1 1 0 is written into the disk device 400.
  • the master data 1 1 1 may overwrite the master data of the disk device 400 or may be additionally written.
  • the reference area 110 and the update area 120 are released from the shared memory 100, and the process is completed.
  • the update area 120 is exclusive, and other user application programs and commit execution daemons are used.
  • the update area cannot be referenced in 300.
  • the data in the reference area 1 1 0 is not updated and no exclusion is required, other user application programs always refer to the reference area 1 1 0. You can refer to it.
  • the commit execution daemon 300 reflects the update data 1 21 in the master data 1 1 1. Both the reference area 110 and the update area 120 are exclusive. For this reason, no user application program can refer to the master data 1 1 1.
  • a function capable of reading “same” data “simultaneously” and “no contradiction ⁇ J, read / write” is secured in a plurality of user application programs.
  • the database system needs a function of protecting data from failure.
  • the memory areas that can be destroyed are the memory (referred to as local memory) that the user application program itself has, and the shared memory 1 on the memory database system 1 Of 00, it is limited to the update area 120.
  • the user application program 200 has update authority for the update area 120.
  • the reference area 1 1 0 to which the user application program 200 has no update authority is not destroyed.
  • step S301 When it is detected that the update data 121 in the update area 120 is destroyed (step S301: Yes), the update area 120 is exclusive (1) as shown in Fig. 12 ( Step S302), discard all the difference records 122 (2) (Step S303), copy the contents of the reference pointer storage area 1 1 4 to the update area 120 again (3) (Step S304), and update The exclusive use of the use area 120 is released (step S305).
  • Step S302 discard all the difference records 122 (2)
  • Step S303 copy the contents of the reference pointer storage area 1 1 4 to the update area 120 again (3)
  • update The exclusive use of the use area 120 is released (step S305).
  • the reference area 1 1 0 is not updated and is not exclusive, so any user application program can refer to the master data 1 1 1.
  • the process for detecting the destruction may be the user application program 200, the commit execution daemon 300, or a new process dedicated to data destruction detection.
  • the shared memory 100 in which the data is arranged is referred to and updated by the reference area 110 that can only be referred to by the user application program 200.
  • memory corruption is localized as described above.
  • inter-process communication that causes an overhead is transferred from the user application program 200 to the commit execution daemon 300. Limited to commit requests.
  • the user application program 200 since the user application program 200 directly accesses the shared memory 100, the degradation of data access performance is minimized, and transaction performance is improved.
  • the reference area 110 is exclusive only during the execution of the commit process by the commit execution daemon 300. Since the reference area 110 is not excluded during data update, the time period during which data reference is impossible is limited.
  • a reference area that can be referenced only by the user application program, and an update that can be referenced and updated by the user application program.
  • a working area If the master data is stored in the reference area, the user application program cannot access the reference area that stores the master data. As a result, the master data is not destroyed due to a failure of the user application program.
  • the memory database includes a commit execution daemon that can refer to and update both the reference area and the update area.
  • the master data is stored in the reference area
  • the differential data obtained by updating the master data is stored in the update area
  • the commit execution daemon updates the master data with the differential data.
  • the user application program cannot access the reference area that stores the master data. Master data is not destroyed due to a fault in the relocation program.
  • the memory database of the present invention is not limited to the above embodiment.
  • a record is shown as the main data of the master data, but other concepts constituting a database may be used.
  • the memory database of the present invention is used, for example, in the field of analyzing data such as a large amount of customer data and statistical data.

Abstract

【課題】 アプリケーションプログラムや環境の変動に堅固であるデータベースを提供することを課題とする。【解決手段】 アプリケーションプログラムによってデータを更新するデータベースシステムは、 マスタデータを格納するデータ格納手段と、共有メモリ領域共有メモリ領域を有する。共有メモリ領域は、マスタデータをロードしアプリケーションプログラムが参照のみ可能な第1の領域と、アプリケーションプログラムが第1の領域におけるマスタデータを更新するときに生成される差分データを格納し、アプリケーションプログラムが参照及び更新が可能な、第2の領域とを含む。

Description

明細書
データベースシステム、データベース更新方法、データベース、及びデータべ ース更新プログラム 技術分野
[0001 ] 本発明は、ユーザアプリケ一シヨンプログラムが、共有メモリ上に置かれたデータ領域 を更新するデータベースと、データベースシステム、データベース更新方法及びデータべ —ス更新プログラムに関する。
背景の技術
[0002] 図: 1 3は、ユーザアプリケーションプログラムが共有メモリ上に置かれたデータ領域を 直接更新するメモリデータベースシステムを示す。このデータベースシステムでは、ユー ザアプリケーションプログラムに不具合がある場合、ユーザアプリケーションプログラムが データを更新する際に、共有メモリ上のデータ領域が破壊されることがあるという問題が める。
[0003] 図 1 4は、メモリデータベースシステムのジャーナルファイルシステムを示す。このシス テムにおいては、データ破壊が発生した場合、以下の手順に従って、データを復旧する。 すなわち、 1 . メモリ上の破壊されたデータを破棄し、 2 ,ディスク装置からマスタデータを 再ロードし、 3.メタデータを保持'管理しているジャーナルファイルから更新データをロー ルフォワードする。
[0004] しかし、手順 2及び 3はディスク装置からのデータ読込が必要である。通常、ディスク装 置へのアクセスは、メモリへのアクセスに比べて、読み書きに必要な時間が大きぐメモ リ破壊が発生すると、サービスが長時間停止する。また、復旧に要するコストが大きい。
[0005] ユーザアプリケーションプログラムによるデータ破壊を防ぐ機能を備えたシステムとして、 クライアントノサーバ方式のメモリデータべ一スシステムが挙げられる。図 1 5に示す、ク ライアント Zサーバ方式のシステムは、サーバデーモンを具備する。ユーザアプリケ一シ ヨンプログラムからデータへのアクセスは、必ずサーバデーモンを介する。サーバデーモ ンのみが共有メモリにアクセスし、ユーザアプリケーションプログラムは共有メモリを直接 アクセスしない。これにより、ユーザアプリケーションプログラムは、共有メモリ上のデータ を破壊しない。
[0006] 別の方法として、 CVS (Concurrent Versions System )に用いられている手法が 知られている。 CVSは、複数人が同時にファイルを操作する版管理システムである。 c
VSの構成を、図 1 6に示す。ユーザがマスタデータ(この場合、マスタファイル)を更新す る際は、まず、リポジトリと呼ばれる領域からローカル領域にマスタファイル全体をコピー し、次に、コピーされたマスタファイルが更新される。その後、更新内容がまとめてマスタ ファイルに反映される。ユーザ自身は直接マスタファイルを更新できない。これにより、ュ —ザはマスタファイルを破壊しない。
[0007] 図 1 7は、特許文献 1の開示するデータ更新方法を示す。アプリケーションプロセスか らは、データベースシステムの共有メモリは読み出し専用である。アプリケーションプロセ ス毎に、更新用メモリがブロック単位(64KB)またはページ単位(4乃至 8KB)で用意さ れる。データ更新時には、まず、共有メモリの該当ブロックが更新用メモリにコピーされ、 更新用メモリのデータが更新され、次に、マネージャプロセスが該更新用メモリの内容を 共有メモリにコピーする。アプリケーションプロセスはマスタデータを直接アクセスしない。 これにより、ユーザはマスタファイルを破壊しない。
[0008] 特許文献 1:特開平 1 0— 031 604号公報
発明の開示
発明が解決しょうとする課題
[0009] 本発明は、アプリケーションプログラムや環境の変動に堅固であるデータべ一スを提 供することを課題とする。
[0010] クライアント/サーバ方式では、ユーザアプリケーションプログラムがデータにアクセス する際に、常に、ユーザアプリケーションプログラムとサーバデーモンとの間のプロセス 間通信が必要になる。このため、プロセス間通信のオーバ一ヘッドによるデータ更新性 能の劣化により、共有メモリを直接アクセスする場合に比べ、データアクセスのコストが 高くなリ、トランザクション性能が悪化する。
[001 1] この点は、高いトランザクション性能が求められるメモリデータベースでは大きな問題と なる。
[0012] また、データ更新処理の開始前に、 CVS方式ではマスタデータを完全にコゼ一する必 要がある。また、特許文献 1で示された方法では、ブロック単位またはページ単位で別 領域に、マスタデータの一部をコピーする必要がある。
[0013] メモリ間でのデータのコピー処理は、コピーするサイズに比例して CPUリソースを消費 する。このため、データ更新処理の開始毎にマスタデータをコピーするこれらの方法は、 9 057033
3
CPUリソースをコピー処理に奪われて、トランザクション性能が悪化する、という課題が あ
[0014] さらに、これらの方法では、データが更新されるプロセスの数だけのマスタデータのコピ —が生成される。このため、システムに必要なメモリリソースも増加すると、いう課題もあ る。
[001 5] 本発明の目的は、上述した課題を解決 る、メモリデータベース、メモリデータベース システム、及びメモリデータベースの更新方法を提供することである。本発明の目的は、 ユーザによるデータ破壊を防ぐことができるとともに、データアクセス性能の劣化および CPUリソース、メモリリソースの消費を最小限に抑えるメモリデータベースを提供するこ とにある。
課題を解決するための手段
[0016] 本発明のデータベースシステムは、アプリケーションプログラムによってデータを更新す るデータべ一スシステムであって、マスタデータを格納するデータ格納手段と、共有メモリ 領域とを有する。共有メモリ領域は、マスタデータをロードしアプリケーションプログラム が参照のみ可能な第 1の領域と、アプリケーションプログラムが第 1の領域におけるマス - タデータを更新するときに生成される差分データを格納し、アプリケーションプログラムが 参照及び更新が可能な第 2の領域とを含む。
[0017] 本発明のデータベース更新方法は、アプリケーションプログラムによってデータを更新 するデータベース更新方法であって、アプリケーションプログラムが参照のみ可能な第 1 の領域にロードされたマスタデータをアプリケーションプログラムによって更新して、差分 データを生成するステップと、アプリケーションプログラムがマスタデータを更新するとき に生成される差分データを、アプリケーションプログラムが参照及び更新が可能な第 2 の領域に格納するステップと、差分データをマスタデータに反映させるステップと、差分 データを削除するステップとを有する。
[0018] 本発明のデータベースは、アプリケーションプログラムによってデータを更新するデータ ベースであって、マスタデータをロードし、アプリケーションプログラムが参照のみ可能な 第 1の領域と、アプリケーションプログラムが第 1の領域におけるマスタデータを更新する ときに生成される差分データを格納し、アプリケーションプログラムが参照及び更新が可 能な第 2の領域とを有する。
[0019] 本発明のデータベース更新プログラムは、データベースにロードされたデ一タを更,新す るデータベース更新プログラムであって、データベースに、該プログラムが参照のみ可能 な第 1の領域にロードされたマスタデータを更新し差分を生成するステップと、生成され た差分データを、該プログラムが参照及び更新が可能な第 2の領域に格納するステップ と、差分データをマスタデータに反映させるステップと、差分データを削除するステップと を実行させる。
発明の効果
[0020] 本発明によれば、ユーザアプリケーションプログラムはマスタデータを格納している参 照用領域にアクセスできないので、ユーザアプリケーションプログラムに不具合があって も、マスタデータは破壊されない。
図面の簡単な説明
[0021 ] [図 1 ]本発明のメモリデータベースシステムの一実施形態を示すシステム構成図であ る。
[図 2]本実施形態の共有メモリの作成時における、共有メモリの構成図である。
[図 3]マスタデータのロード時における、本実施形態のメモリデータベースシステムの構 成図である。
[図 4]更新用領域でのインデックスの設定時における、本実施形態のメモリデータべ一 スシステムの構成図である。 ,
[図 5]マスタデータの差分データ作成時の初期における、本実施形態のメモリデータべ ースシステムの構成図である。
[図 6]マスタデータの差分データ作成時の後期における、本実施形態のメモリデータべ —スシステムの構成図である。
[図 7]差分データによるマスタデータ更新時の初期における、本実施形態のメモリデータ ベースシステムの寧成図である。
[図 8]差分データによるマスタデータ更新時の後期における、本実施形態のメモリデータ ベースシス亍ムの構成図である。
[図 9]他のユーザによる差分データ作成時の初期における、本実施形態のメモリデータ ベースシステムの構成図である。
[図 1 0]他のユーザによる 分データ作成時の後期における、本実施形態のメモリデー タベースシステムの構成図である。 ,
[図 1 1 ]マスタデータの差分データ作成中の参照用領域の参照時における、本実施形 態のメモリデータベースシステムの構成図である。
[図 1 2]データ復旧時における、本実施形態のメモリデータベースシステムの構成図であ る。
[図 1 3]関連技術における、データ破壊時におけるメモリデータベースシステムの構成図 である。
[図 1 4]関連技術における、データ復旧時における、ジャーナルファイルシステムの構成 図である。
[図 1 5]関連技術における、クライアント サーバ方式のメモリデータベースシステムの 構成図である。
[図 1 6]関連技術における、 CVS方式のメモリデータベースシステムの構成図である。
[図 1 7]特許文献 1における、メモリデータベースシステムの構成図である。
[図 1 8]本実施形態のメモリデータベースシステムの起動時の処理を示すフロー図であ る。
[図 1 9]本実施形態のメモリデータベースにおける、データの更新処理を示すフロー図で fo 。
[図 20]本実施形態のメモリデータベースにおいて、他のアプリケーションプログラムが更 新要求をした場合の、データの更新処理を示すフロー図である。
[図 21 ]本実施形態のメモリデータベースにおける、データ復旧処理を示すフロー図であ る。
発明を実施するための最良の形態
[0022] 以下、本発明の好ましい実施形態について図面を参照して説明する。
[0023] なお、以下に示す本実施形態のメモリデータベースにおける各処理、動作は、プログ ラム(ソフトウェア)の命令によりコンピュータで実行される処理,手段,機能によって実 現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示す所定の 処理'機能を行わせる。すなわち、本実施形態のメモリデータベースにおける各処理'手 段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
[0024] なお、プログラムの全部又は一部は、例えば、磁気ディスク,光ディスク,半導体メモリ1, その他任意のコンピュータで読取り可能な記録媒体により提供される。記録媒体から読 み出されたプログラムは、コンピュータにインストールされて実行される。また、プログラム を、記録媒体を介さず、通信回線を通じてコンピュータにロードして実行することもできる。 さらに、プログラムを、通信回線を通じて、直接実行してもよい。
[0025] 図 1は、本発明のメモリデータベースシステムの一実施形態の構成を示すブロック図 である。本実施形態のメモリデータベースシステム 1は、パーソナルコンピュータやワーク ステーションなどの情報処理装置により構成される。具体的には、本実施形態のメモリ データベースシステム 1は、データベースのデータを格納する共有メモリ 00と、ユーザ が独自に作成したユーザアプリケーションプログラム 200と、コミット実行デーモン 300と、 マスタデータを格納しているディスク装置 400を備えている。
[0026] 共有メモリ 1 00は、参照用領域 1 1 0と、更新用領域 1 20に分割されている。
[0027] 参照用領域 1 1 0には、マスタデータ 1 1 1が格納される。
[0028] マスタデータ 1 1 1は、メモリデータベースシステム 1の動作開始時に、ディスク装置 40 0から読み込まれる。
[0029] マスタデータ 1 1 1は、本データとしてのレコード 1 1 2と、参照用インデックスとしてのィ ンデックスツリー 1 1 3から構成される。
[0030] インデックスツリー 1 1 3は、高速にレコードを検索するために用いる木構造を有する。
インデックスツリー 1 1 3は、葉の部分に、参照用ポインタ格納領域 1 1 4を有する。
[0031] 参照用ポインタ格納領域 1 1 4は、対応するレコード 1 1 2のそれぞれを指す参照用ポ インタ 1 1 5の値を格納する。更新用領域 1 20には、参照用ポインタ格納領域 1 1 4に対 応する更新用インデックスとして、更新用ポインタ格納領域 1 24が設けられる。参照用 ポインタ格納領域 ί 1 4は、更新用ポインタ格納領域 1 24へのリンクを格納する。
[0032] 参照用領域 1 1 0は、以下のようなアクセス制限が設定されている。すなわち、ユーザ アプリケーションプログラム 200からは参照のみ可能で、更新はできない。また、コミット 実行デーモン 300からは参照および更新が可能である。
[0033] 更新用領域 1 20には、更新データ 1 21が格納される。
[0034] ユーザアプリケーションプログラム 200がマスタデータ 1 1 1を更新しょうとしたタイミン グで、更新データ 1 21が作成される。
[0035] 更新データ 1 21は、更新前と更新後の間の差分レコード 1 22と、更新用インデックス を格納する更新用ポインタ格納領域 1 24を含む。
[0036] 参照用領域 1 1 0にマスタデータ 1 1 1が読み込まれたタイミングで、自動的に、更新用 ポインタ格納領域 1 24に、参照用ポインタ格納領域 1 1 4の内容がコピーされ、参照用 ポインタ格納領域 1 1 4からリンクが張られる。 [0037] したがって、初期状態では、更新用ポインタ格納領域 1 24は、対応するマスタデータ 1 1 1上のレコード 1 1 2を指す更新用ポインタ 1 25の値を格納する。
[0038] その後、ユーザアプリケーションプログラム 200がマスタデータ 1 1 1を更新しょうとして、 差分レコード 1 22が作成されると、更新用ポインタ 1 25力《差分レコード 1 22を指すよう に、更新用ポインタ格納領域 1 24の値が更新される。
[0039] 更新用領域 1 20は、アクセス制限が設定され、ユーザアプリケーションプログラム 20 0からもコミット実行デーモン 300からも参照および更新が可能である。
[0040] ユーザアプリケーションプログラム 200は、メモリデータベースシステム 1を使用するュ 一ザが独自に作成する。ユーザアプリケーションプログラム 200は、参照用領域 1 1 0に 置かれたマスタデータ 1 1 1を参照する機能を有する。さらに、ユーザアプリケーションプ ログラム 200は、マスタデータ 1 1 1を更新しょうとする際に差分レコード 1 22を作成し、 更新用領域 1 20を排他した上で、作成した差分レコード 1 22を更新用領域 1 20に格 納し、更新用ポインタ 1 25をその差分レコード 1 22を指すように張り替える機能を持つ。
[0041 ] また、ユーザアプリケーションプログラム 200は、データ更新後、コミット実行デーモン 3 00にコミット要求を送信することにより、コミット処理を実行させる機能を有する。
[0042] コミット実行デーモン 300は、メモリデータベースシステム 1内で動作する。コミット実行 デーモン 300は、ユーザアプリケーションプログラム 200からのコミット要求を受信すると、 参照用領域 1 1 0および更新用領域 1 20を排他した上で、更新用領域 1 20に格納され た差分レコード 1 22を、参照用領域 1 1 0に格納されたマスタデータ 1 1 1に反映させ、更 新用ポインタ 1 25を全てマスタデータ 1 1 1のレコード 1 1 2を指すように張り替える機能を 有する。
[0043] 次に、図 2乃至図 1 2を参照しながら、上記メモリデータベースシステム 1の動作につい て説明する。
[0044] 図 1 8を参照して、メモリデータベースシステム 1の共有メモリ 1 00を、以下の手順に従 つて生成する。
[0045] まず、メモリデータベースシステム 1の起動時に、図 2に示すように、共有メモリ 1 00上 に、参照用領域 1 1 0と更新用領域 1 20とを作成する(ステップ S101 )。
[0046] 次に、図 3に示すように、ディスク装置 400から読み込んだマスタデータ 1 1 1を参照用 領域 1 1 0上にロードする(ステップ S102)。マスタデータ 1 1 1は、本データとしてのレコ一 ド 1 1 2と、参照用インデックスとしてのインデックスツリー 1 1 3を含む。インデックスツリー 1 1 3は、葉の部分に参照用ポインタ格納領域 1 1 4を有する。
[0047] 次に、図 4に示すように、更新用領域 1 20上に、参照用ポインタ格納領域 1 1 4をコピ 一して、更新用ポインタ格納領域 1 24を生成する(ステップ S 1 03 )。
[0048] 参照用ポインタ格納領域 1 1 4は、対応するレコード 1 1 2を指す参照用ポインタ 1 1 5の 値を格納する共に、更新用領域 1 20に設けられる更新用インデックスとしての更新用 ポインタ格納領域 1 '24へのリンクを格納する(ステップ S 1 04)。
[0049] 更新用ポインタ格納領域 1 24は、差分レコード 1 22を指す更新用ポインタ 1 25の値 を格納する。
[0050] 但し、初期状態では、更新用ポインタ 1 25は、図 4に示すように、マスタデータ 1 1 1上 の参照用ポインタ 1 1 5と同じレコードを指す。
[0051 ] 次に、図 1 9を参照して、ユーザアプリケーションプログラム 200が共有メモリ 1 00上に 置かれたマスタデータ 1 1 1を更新する処理を説明する。
[0052] ユーザアプリケーションプログラム 200は、マスタデータ 1 1 1のレコード 1 1 2を更新しよ うとするときに、まず、図 5に示すように、更新用領域 1 20を、排他する(ステップ S201 )。 これにより、他のユーザアプリケーションプログラムやコミット実行デーモン 300は、更新 用領域 1 20を参照できない。 次に、更新しょうとするレコードを、インデックスツリー 1 1 3から更新用ポインタ 1 25を参照することによリ、特定する。
[0053] その後、図 6に示すように、先ほど位置を特定した更新前のレコードイメージと、更新 後のレコードイメージから求められる差分レコードイメージ 1 22を生成し(ステップ S20 2)、更新用領域 1 20に格納する(ステップ S203 )。そして、更新用ポインタ 1 25が差分 レコードイメージ 1 22を指すように、更新用ポインタ格納領域 1 24を書き換える。
[0054] 全ての処理が終わった後、更新用領域 1 20に対する排他を解除する(ステップ S20 4) o
[0055] ユーザアプリケーションプログラム 200による特定回数(1回でもよいし、複数回でもよ し、)の更新が終わった後、更新用領域 1 20に蓄積された更新データ 1 21をマスタデータ 1 1 1に反映する。すなわち、図 7に示すように、ユーザアプリケーションプログラム 200 は、コミット実行デーモン 300に対して、プロセス間通信を用いてコミット要求を送信する (ステップ S205) o
[0056] コミット実行デ一モン 300は、コミット要求を受け取ると、まず参照用領域 1 1 0と更新 用領域 1 20を排他する(ステップ S206)。 [0057] 次に、更新用領域 1 20に蓄積された差分レコード 1 22を、まとめて参照用領域 1 1 0 のマスタデータ 1 1 1に反映する(ステップ S207) D
[0058] 差分レコード 1 22でマスタデータ 1 1 1を書き換えた後、図 8に示すように、差分レコー ド 1 22を肖 IJ除し(ステップ S208)、差分レコード 1 22を指してし、た更新用ポインタ 1 25が マスタデータ 1 1 1上の対応するレコード 1 1 2を指すように、更新用ポインタ格納領域 1 2
4を書き換える。
[0059] 全ての処理が終わった後、参照用領域 1 1 0および更新用領域 1 20に対する排他を 解除する(ステップ S209)。
[0060] 次に、図 20を参照して、ユーザアプリケーションプログラム 200によって更新されたレ コードを、さらに別のユーザアプリケーションプログラム 21 0が更新する方法を説明す る。 .
[0061 ] ユーザアプリケーションプログラム 200により、マスタデータ 1 1 1が更新され、図 6に示 したように、差分レコード 1 22が更新用領域 1 20に格納され、更新用ポインタ 1 25が差 分 コード 1 22を指すように更新用ポインタ格納領域 1 24が書き換えられ、更新用領 域 1 20の排他が解除された状態であるとする。
[0062] 別のユーザアプリケーションプログラム 21 0が、再度レコ一ド 1 1 2を更新しょうとして、 データの更新を要求する場合(ステップ S21 0 : Yes)、まず、図 9に示すように、更新用 領域 1 20を、他のユーザアプリケーションプログラムやコミット実行デーモン 300が参照 できないように排他する(ステップ S21 1 )。
[0063] 次に、.更新しょうとするレコードを、更新用ポインタ 1 25を参照することにより特定する。
この場合、更新用ポインタ 1 25は差分レコード 1 22内を指しており、現在の実更新対象 レコードは更新後レコード 1 28であると判断する。
[0064] その後、図 1 0に示すように、この更新後レコード 1 28と、さらに今回更新した後のレコ ードからなる差分レコードを生成し(ステップ S21 2)、更新用領域 1 20に追記する(ステ ップ S21 3)。そして、更新用ポインタ 1 25が作成された差分レコードを指すように、更新 用ポインタ 1 25を張り替える。全ての処理が終わった後、更新用領域 1 20に対する排 他を解除する(ステップ S21 4)。
[0065] 別のユーザアプリケーションプログラム 21 0による更新が終わった後(ステップ S21 0 :
No)の、コミット実行デーモン 300によるマスタデータ 1 1 1への反映処理は、先ほどと全 く同様であるので、説明を省略する。 [0066] すなわち、別のユーザアプリケーションプログラム 21 0からコミット要求を受け取ったコ ミット実行デーモン 300は、参照用領域 1 1 0と更新用領域 1 20を排他し、更新用領域 1 20に蓄積された差分レコード 1 22を、まとめて参照用領域 1 1 0のマスタデータ 1 1 1に 反映し、差分レコード 1 22でマスタデータ 1 1 1を書き換えた後、差分レコード 1 22を削 除し、更新用ポインタ格納領域 1 24を書き換えた後、参照用領域 1 1 0および更新用領 域 1 20に対する排俾を解除する。
[0067] データベースの更新を全て終えたら、参照用領域 1 1 0のマスタデータ 1 1 1をディスク 装置 400に書込む。マスタデータ 1 1 1は、ディスク装置 400のマスタデータを上書きし てもよいし、追記してもよい。その後、共有メモリ 1 00から参照用領域 1 1 0と更新用領 域 1 20を解放し、処理を終える。
[0068] 次に、ユーザアプリケーションプログラム 200によりマスタデータ 1 1 1を更新しようとす る間に、別のユーザアプリケーションプログラム 21 0がマスタデータ 1 1 1を参照する場合 の処理を説明する。
[0069] ユーザアプリケーションプログラム 200がマスタデータ 1 1 1を更新しょうとする間は、図 "に示すように、更新用領域 1 20は排他されておリ、他のユーザアプリケーションプロ グラムやコミット実行デーモン 300は、更新用領域を参照できない。しかし、参照用領域 1 1 0はデータが更新されておらず、排他が不要であるため、他のユーザアプリケーショ ンプログラムは、参照用領域 1 1 0を常に参照できる。
[0070] ただし、ユーザアプリケーションプログラム 200の更新処理が完了し、コミット実行デー モン 300にコミット要求を出した後、コミット実行デーモン 300が更新データ 1 21をマス タデータ 1 1 1に反映している間は、参照用領域 1 1 0と更新用領域 1 20の両方が排他 されている。このため、どのユーザアプリケーションプログラムもマスタデータ 1 1 1を参照 することはできない。
[0071] もちろん、どのユーザアプリケーションプログラムもマスタデータ 1 1 1を更新していない ときは、どのユーザアプリケーションプログラムもマスタデータ 1 1 1を参照可能であること は言うまでもない。 '
[0072] 本実施形態のデータベースシステムでは、複数のユーザアプリケーションプログラムに、 「同じ」データを、「同時に」、「矛盾無 <J、読み書きできる機能が確保されている。
[0073] また、データベースシステムには、データを障害から保護する機能が必要である。
[0074] 図 1 2および図 21を参照して、ユーザアプリケーションプログラム 200の不具合により メモリ破壊が発生した場合の、共有メモリ 1 00上のデータを復旧する処理を説明する。
[0075] ユーザアプリケーションプログラム 200の不具合によリメモリ破壊が発生した場合、破 壊され得るメモリ領域は、ユーザアプリケーションプログラム自身が持つメモリ(ローカル メモリと呼ぶ)と、メモリデータベースシステム 1上の共有メモリ 1 00のうち、更新用領域 1 20に限定される。ユーザアプリケーションプログラム 200は、更新用領域 1 20の更新 権限を持つ。ユーザアプリケーションプログラム 200が更新権限を持たない参照用領域 1 1 0は破壊されない。
[0076] 更新用領域 1 20上の更新データ 1 21が破壊されたことを検出すると(ステップ S30 1: Yes)、図 1 2に示すように、更新用領域 1 20を排他(1 )し(ステップ S302)、差分レ コード 1 22を全て破棄(2)し(ステップ S303)、参照用ポインタ格納領域 1 1 4の内容を 再度更新用領域 1 20にコピー(3)し(ステップ S304)、更新用領域 1 20の排他を解除 する(ステップ S305)。以上により、速やかに直近のコミットされたデータ状態に戻すこと ができる。
[0077] この間、参照用領域 1 1 0は更新されず、排他されないため、どのユーザアプリケーショ ンプログラムもマスタデータ 1 1 1を参照することが可能である。
[0078] 更新データが破壊されたことを検出する方法として (ま、更新データ作成時に、更新デ
—タのチェックサムを計算し、計算した値を格納しておき、次にその更新データが参照さ れるときに再度チェックサムを計算して、格納されている値と比較するという方法があ る。
[0079] また、破壊の検出を行うプロセスは、ユーザアプリケーションプログラム 200でもよいし、 コミット実行デーモン 300でもよいし、データ破壊検出専用のプロセスを新たに用意して もよい。
[0080] このように、本実施形態のメモリデータベースシステム 1によれば、データを配置する 共有メモリ 1 00を、ユーザアプリケーションプログラム 200が参照のみ可能な参照用領 域 1 1 0と、参照および更新が可能な更新用領域 1 20とに分割する。こ;^こより、ユーザ アプリケーションプログラムにメモリを破壊する不具合があつたとしても、データ破壊の影 響を、ユーザアプリケーションプログラム 200が更新権限を有する更新用領域 1 20上 の更新データ 1 21のみに局 Hlf化することができる。
[0081] メモリ破壊が発生しても、マスタデータ 1 1 1は参照用領域 1 1 0で保全されている。この ため、更新用領域 1 20上の更新データ 1 21を全て破棄し、更新用ポインタ 1 24の参照 先を書き直すだけで、直近のコミットされたデータ状態に戻すことが可能になる。
[0082] その結果、関連技術での復旧手順である、(1 )メモリ上のデータ破棄、(2)ディスク装 置からのデータ再ロード、(3)ジャーナルファイルからのロールフォワードに比べ、本実 施形態では、ディスクアクセスの手続が不要になる。このため、データリカバリにかかる 時間が大幅に短縮される。
[0083] また、本実施形態では、上記のように、メモリ破壊を局所化しているが、オーバーへッ • ドの原因となるプロセス間通信は、ユーザアプリケーションプログラム 200からコミット実 行デーモン 300へのコミット要求に限られる。その他の通信は、ユーザアプリケーション プログラム 200が共有メモリ 1 00に直接アクセスするので、データアクセス性能の劣化 を最小限に抑制され、トランザクション性能が向上する。
[0084] また、関連技術のような、データ更新毎のメモリへのマスタデータのコピーは、行われ ない。差分データの作成のみが行われるので、 CPUリソースおよびメモリリソースの消 費を最小限に抑制される。
[0085] また、関連技術では、ユーザアプリケーションプログラムによるデータ更新中はデータ の参照ができなかった。しかし、本実施形態では、コミット実行デーモン 300によるコミツ ト処理実行中のみに、参照用領域 1 1 0の排他が行われる。データ更新中は、参照用 領域 1 1 0を排他しないので、データ参照が不可能な時間帯は限定される。
[0086] 以上により、データ参照を行うユーザアプリケーションプログラムが排他待ちにょリ処 理時間を無駄に消費する可能性が低くなり、データの処理効率が向上する。 ,
[0087] 以上説明したように、本実施形態に係るメモリデータベースによれば、共有メモリ領域 に、ユーザアプリケーションプログラムが参照のみできる参照用領域と、ユーザアプリケ —シヨンプログラムが参照及び更新が可能な更新用領域と、を設ける。マスタデータを 参照用領域に格納すれば、ユーザアプリケーションプログラムはマスタデータを格納して いる参照用領域にアクセスできない。これにより、ユーザアプリケーションプログラムの不 具合により、マスタデータが破壊されない。
[0088] また、本実施形態に係るメモリデータベースは、参照用領域及び更新用領域の両方 を参照及び更新が可能なコミット実行デーモンを有する。メモリデータ.ベースは、マスタ データを参照用領域に格納し、マスタデータを更新した差分データを更新領域に格納し、 コミット実行デーモンが差分データでマスタデータを更新する。ユーザアプリケーションプ ログラムはマスタデータを格納している参照用領域にアクセスできないので、ユーザアブ リケ一シヨンプログラムの不具合により、マスタデータが破壊されない。
[0089] しかも、ユーザアプリケーションプログラムが共有メモリ領域にアクセスできるので、プ 口セス間通信のオーバーヘッドによるデータ更新性能の劣化を防止する。さらに、マスタ データ自身のコピー処理による CPUリソースとメモリリソースの消費が抑制される。
[0090] 本発明のメモリデータベースは、上記実施形態に限定されるものではない。例えば、 上記実施形態では、マスタデータの本データとしてレコードを示したが、データベースを 構成するその他の概念であっても良い。
産業上の利用可能性
[0091] 本発明のメモリデータベースは、例えば大量の顧客データや統計データ等のデータ分 析を行う分野に利用される。
[0092] この出願は、 2008年 4月 4曰に出願された日本出願特願 2008— 097870を基礎 とする優先権を主張し、その開示の全てをここに取り込む。

Claims

請求の範囲
[1 ] アプリケーションプログラムによってデータを更新する、データベースシステムで あって、
マスタデータを格納する、データ格納手段と、
前記マスタデータをロードし、前記アプリケーションプログラムが参照のみ可 能な、第 1の領域と、
前記アプリケーションプログラムが前言己第 1の領域における前記マスタデータ を更新するときに生成される差分データを格納し、前記アプリケーションプログラ ムが参照及び更新が可能な、第 2の領域と、
を含む、共有メモリ領域と、
を有することを特徴とする、データベースシステム。
[2] 前記第 1及び第 2の領域の参照が可能であり、前記第 1及び第 2の領域の更 新が可能である、デ一モン (daemon)を格納する、デーモン格納手段をさらに備え る
ことを特徴とする、請求項 1に記載のデータベースシステム。
[3] 前記デーモンは、前記差分データを前記マスタデータに反映させ、前記差分デ ータを削除する
ことを特徴とする、請求項 2に記載のデータベースシステム。
[4] 前記デーモンは、前記差分データを前記マスタデータに反映させるときに、前 記第 1及び第 2の領域を排他する
ことを特徴とする、請求項 3に記載のデータベースシステム。
[5] 前記第 2の領域は、前記アプリケーションプログラムが前記マスタデータを更 新するときに、排他される
ことを特徴とする、請求項 1に記載のデータベースシステム。
[6] 前記マスタデータは、本データ及び本データを参照する参照用インデックスを 含み、
前記差分データは、前記参照用インデックスとリンクし、前記差分データを参 照する更新用インデックスを含む
ことを特徴とする、請求項 1に記載のデータベースシステム。
[7] アプリケーションプログラムによってデータを更新する、データベース更新方法 であって、
前記アプリケーシヨンプログラムが参照のみ可能な、第 1の領域にロードされた マスタデータを、前記アプリケーションプログラムによって更新して、差分データを 生成するステップと、
前記アプリケーションプログラムが前記マスタデータを更新するときに生成され る差分データを、前記アプリケーションプログラムが参照及び更新が可能な、第 2の領域に格納するステップと、
前記差分データを前記マスタデータに反映させるステップと、
前記差分データを削除するステップと
を有することを特徴とする、データベース更新方法。
[8] 前記アプリケーションプログラムが前記マスタデータを更新する前に、前記第 2 の領域を排他するステップと、
前記アプリケーションプログラムが前記マスタデータを更新した後に、前記第 2 の領域の排他を解除するステップと、
をさらに含むことを特徴とする、請求項 7に記載のデータベース更新方法。
[9] 前記差分データを前記マスタデータに反映させる前に、前記第 1及び第 2の領 域を排他するステップと、
前記差分データを前記マスタデータに反映させた後に、前記第 1及び第 2の領 域の排他を解除するステップと
. をさらに含むことを特徴とする、請求項 7に記載のデータベース更新方法。
[10] 前記差分データを前記マスタデータに反映させる前に、他のアプリケーションプ ログラムによって、前記マスタデータが更新されるステップと、
前記他のアプリケーションプログラムによって更新された前記マスタデータの差 分を、前記差分データに追記するステップと
をさらに含むことを特徴とする、請求項 7に記載のデータベース更新方法。
[1 1] アプリケーションプログラムによってデータを更新する、データベースであって、 マスタデータをロードし、前記アプリケーションプログラムが参照のみ可能な、第
1の領域と、
前記アプリケーションプログラムが前記第 1の領域における前記マスタデータを 更新するときに生成される差分データを格納し、前記アプリケーションプログラム が参照及び更新が可能な、第 2の領域と、
を有することを特徴とする、データベース。
[1 2] 前記第 1及び第 2の領域の参照が可能であり、前記第 1及び第 2の領域の更 新が可能である、デ一モン (daemon)によって、前記差分データが前記マスタデー タに反映され、前記差分データが削除される
ことを特徴とする、請求項 1 1に記載のデータベース。
[13] 前記デーモンにより、前記差分データが前記マスタデータに反映されるときに、 前記第 1及び第 2の領域が排他される
ことを特徴とする、請求項 1 2に記載のデータベース。
[14] 前記第 2の領域は、前記アプリケーションプログラムが前記マスタデータを更 新するときに、排他される
ことを特徴とする、請求項 1 1に記載のデータベース。
[15] ,前記マスタデータは、本 'データ及び本データを参照する参照用インデックスを 含み、
前記差分データは、前記参照用インデックスとリンクし、前記差分データを参 照する更新用インデックスを含む
ことを特徴とする、請求項 1 1に記載のデータベース。
[16] データベースにロードされたデータを更新する、データベース更新プログラムで あって、データベースに、
該プログラムが参照のみ可能な第 1の領域にロードされたマスタデータを更新 し、差分を生成するステップと、
前記生成された差分データを、該プログラムが参照及び更新が可能な第 2の 領域に格納するステップと、
前記差分データを前記マスタデータに反映させるステップと、
前記差分データを削除するステップと
を実行させることを特徴とする、データベース更新プログラム。 [17] データベースにロードされたデータを更新するプログラムを格納した記憶媒体 であって、データベースに、
該プログラムが参照のみ可能な第 1の領域にロードされ fcマスタデータを更新 し、差分を生成するステップと、
前記生成された差分データを、該プログラムが参照及び更新が可能な第 2の 領域に格納するステップと、
前記差分データを前記マスタデータに反映させるステップと、
前記差分データを削除するステップと
を実行させるためのプログラムを格納した記憶媒体。
PCT/JP2009/057033 2008-04-04 2009-03-31 データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム WO2009123342A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/922,051 US8380660B2 (en) 2008-04-04 2009-03-31 Database system, database update method, database, and database update program
CN200980111727.4A CN101981550B (zh) 2008-04-04 2009-03-31 数据库系统、数据库更新方法、数据库以及数据库更新程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-097870 2008-04-04
JP2008097870A JP5012628B2 (ja) 2008-04-04 2008-04-04 メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法

Publications (1)

Publication Number Publication Date
WO2009123342A1 true WO2009123342A1 (ja) 2009-10-08

Family

ID=41135691

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/057033 WO2009123342A1 (ja) 2008-04-04 2009-03-31 データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム

Country Status (4)

Country Link
US (1) US8380660B2 (ja)
JP (1) JP5012628B2 (ja)
CN (1) CN101981550B (ja)
WO (1) WO2009123342A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023100289A1 (ja) * 2021-12-01 2023-06-08 日本電信電話株式会社 データベース管理装置、データベース管理方法およびデータベース管理プログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011052510A1 (de) * 2011-08-09 2013-02-14 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Verarbeitung von Daten eines Steuergeräts in einem Datenkommunikationsgerät
GB2505185A (en) 2012-08-21 2014-02-26 Ibm Creating a backup image of a first memory space in a second memory space.
CN103020149B (zh) * 2012-11-22 2016-01-20 用友网络科技股份有限公司 共享数据更新装置和共享数据更新方法
PL2924589T3 (pl) * 2014-03-27 2017-09-29 Kapsch Trafficcom Ag Urządzenie pokładowe i sposób aktualizowania w nim danych geograficznych
US11768707B2 (en) 2018-08-27 2023-09-26 Box, Inc. Workflow selection
US11669793B2 (en) * 2019-10-01 2023-06-06 Box, Inc. Inter-application workflow performance analytics
US11681572B2 (en) 2019-12-23 2023-06-20 Box, Inc. Extensible workflow access
US11861029B2 (en) 2020-09-14 2024-01-02 Box Inc. Workflow execution state variables
CN113885804A (zh) * 2021-10-09 2022-01-04 湖南国科微电子股份有限公司 一种数据更新方法、装置及计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249503A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd 利用者端末における二次記憶装置の管理方法及び利用者端末

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
JP3146276B2 (ja) * 1994-03-10 2001-03-12 富士通株式会社 共有メモリの更新及び参照管理方式並びに参照タイミング制御方式
US5548728A (en) * 1994-11-04 1996-08-20 Canon Information Systems, Inc. System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory
JPH1031604A (ja) * 1996-07-15 1998-02-03 Meidensha Corp 共有メモリシステム並びにデータベースシステム
US5914730A (en) * 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US6243788B1 (en) * 1998-06-17 2001-06-05 International Business Machines Corporation Cache architecture to enable accurate cache sensitivity
US6463439B1 (en) * 1999-07-15 2002-10-08 American Management Systems, Incorporated System for accessing database tables mapped into memory for high performance data retrieval
US6810464B1 (en) * 2001-08-09 2004-10-26 Unisys Corporation Multiprocessor computer system for processing communal locks employing mid-level caches
US6678799B2 (en) * 2001-10-18 2004-01-13 Hewlett-Packard Development Company, Lp. Aggregation of cache-updates in a multi-processor, shared-memory system
US7222138B2 (en) * 2002-02-20 2007-05-22 Sun Microsystems, Inc. Versioning application programming interface and method for using versioning functionality
JP2006066009A (ja) * 2004-08-30 2006-03-09 Renesas Technology Corp 半導体集積回路
JP4758666B2 (ja) * 2005-03-17 2011-08-31 株式会社日立製作所 記憶制御システム及び記憶制御方法
JP2007280323A (ja) * 2006-04-12 2007-10-25 Hitachi Ltd 記憶システム及びデータ管理方法
JP4945200B2 (ja) * 2006-08-29 2012-06-06 株式会社日立製作所 計算機システム及びプロセッサの制御方法
JP4415071B2 (ja) * 2007-06-22 2010-02-17 富士通マイクロエレクトロニクス株式会社 メモリ共有システム装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249503A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd 利用者端末における二次記憶装置の管理方法及び利用者端末

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023100289A1 (ja) * 2021-12-01 2023-06-08 日本電信電話株式会社 データベース管理装置、データベース管理方法およびデータベース管理プログラム

Also Published As

Publication number Publication date
CN101981550B (zh) 2014-11-05
CN101981550A (zh) 2011-02-23
JP2009251853A (ja) 2009-10-29
US8380660B2 (en) 2013-02-19
US20110004583A1 (en) 2011-01-06
JP5012628B2 (ja) 2012-08-29

Similar Documents

Publication Publication Date Title
WO2009123342A1 (ja) データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム
US8572039B2 (en) Focused backup scanning
US9400886B1 (en) System and method for using snapshots for rootkit detection
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
US8732121B1 (en) Method and system for backup to a hidden backup storage
US7885921B2 (en) Managing atomic updates on metadata tracks in a storage system
US8627012B1 (en) System and method for improving cache performance
US9235524B1 (en) System and method for improving cache performance
JP5081631B2 (ja) データの削除を管理するための方法および装置
US7472129B2 (en) Lossless recovery for computer systems with map assisted state transfer
JP4977565B2 (ja) アクセス制御リストを用いてファイルへのアクセスを制御するアクセスコントローラ
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US9690666B1 (en) Incremental backup operations in a transactional file system
ES2445966T3 (es) Sistema y procedimiento para almacenar información redundante
US8856467B2 (en) Management of metadata in a storage subsystem
US10353636B2 (en) Write filter with dynamically expandable overlay
US20130339569A1 (en) Storage System and Method for Operating Thereof
US20060224639A1 (en) Backup system, program and backup method
KR101690824B1 (ko) 순서 의존성 없는 일관성
JP2002229826A (ja) ファイル中にバージョン固有プロパティを作成し保持する方法およびシステム
JP2008527571A5 (ja)
US9152823B2 (en) Systems, methods, and computer readable media for computer data protection
US20100088496A1 (en) Method and system for executing an executable file
WO2021169163A1 (zh) 一种文件数据存取方法、装置和计算机可读存储介质
US11204877B2 (en) Minimizing data written to disk and enabling directory change notifications in multi-volume filter environments

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980111727.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09728738

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12922051

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09728738

Country of ref document: EP

Kind code of ref document: A1