JP4839133B2 - Data management method and computer system for storage apparatus - Google Patents

Data management method and computer system for storage apparatus Download PDF

Info

Publication number
JP4839133B2
JP4839133B2 JP2006141379A JP2006141379A JP4839133B2 JP 4839133 B2 JP4839133 B2 JP 4839133B2 JP 2006141379 A JP2006141379 A JP 2006141379A JP 2006141379 A JP2006141379 A JP 2006141379A JP 4839133 B2 JP4839133 B2 JP 4839133B2
Authority
JP
Japan
Prior art keywords
data
volume
target data
operation target
buffer
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.)
Expired - Fee Related
Application number
JP2006141379A
Other languages
Japanese (ja)
Other versions
JP2007310788A (en
Inventor
聡 渡辺
芳生 鈴木
真二 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006141379A priority Critical patent/JP4839133B2/en
Priority to US11/454,088 priority patent/US7610460B2/en
Publication of JP2007310788A publication Critical patent/JP2007310788A/en
Application granted granted Critical
Publication of JP4839133B2 publication Critical patent/JP4839133B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置のデータ管理方法、特に、差分スナップショット技術を用いる場合のデータ管理方法に関する。   The present invention relates to a data management method for a storage apparatus, and more particularly to a data management method when using a differential snapshot technique.

計算機システムでは、データバックアップやデータチェックのために、ストレージ装置に格納されているデータを複製する場合がある。データを複製する方法としては、全てのデータを別のデータ領域にコピーする方法がある。しかし、この方法では、元のデータと、コピー先のデータの二つのデータを格納するために、大きなサイズのデータ格納領域が必要である。そのため、データの更新差分だけを管理し、仮想的にデータを複製する差分スナップショットという技術が用いられている。   In a computer system, data stored in a storage device may be duplicated for data backup or data check. As a method of copying data, there is a method of copying all data to another data area. However, this method requires a large data storage area in order to store the original data and the copy destination data. Therefore, a technique called differential snapshot that manages only data update differences and virtually replicates data is used.

差分スナップショット技術を用いる場合、ストレージ装置に対し、二つのデータ格納領域を設定する。一つ目のデータ格納領域をプライマリボリュームと呼び、二つ目のデータ格納領域を差分ボリュームと呼ぶ。プライマリボリュームには、複製元のデータを格納する。そして、プライマリボリュームのデータを更新する際に、更新前のデータを差分ボリュームに退避する。コピー先のデータを参照する場合には、まず差分ボリュームに該当データが退避されているか否かをチェックする。そして、データが退避されている場合には、差分ボリュームのデータを参照し、退避されていない場合には、プライマリボリュームのデータを参照する。また、差分ボリュームのデータを更新する場合には、その更新したデータを差分ボリュームに格納する。   When using the differential snapshot technology, two data storage areas are set for the storage apparatus. The first data storage area is called a primary volume, and the second data storage area is called a differential volume. The replication source data is stored in the primary volume. Then, when updating the data of the primary volume, the data before the update is saved in the differential volume. When referring to copy destination data, it is first checked whether the corresponding data has been saved in the differential volume. When the data is saved, the difference volume data is referred to. When the data is not saved, the primary volume data is referenced. Further, when the data of the differential volume is updated, the updated data is stored in the differential volume.

差分スナップボリュームには、更新されたデータだけを格納するため、通常、そのサイズは小さい。そのため、差分スナップショット技術を用いることで、大きなサイズのデータ格納領域を用いずに、仮想的にデータを複製できる。
差分スナップショット技術に関しては、例えば、特許文献1に記載されている。また、データ退避に関する技術としては、非特許文献1が知られている。
特開2004−272854号公報 Kazuo Goda, Takayuki Tamura, Masato Oguchi and Masaru Kitsuregawa 著、「Run-time Load Balancing System on SAN-connected PC Cluster for Dynamic Injection of CPU and Disk Resource --- A Case Study of Data Mining Application ---」、Proceedings of 13th International Conference on Database and Expert Systems Applications (DEXA2002) 刊、2002年9月発行、第182頁−第192頁
Since only the updated data is stored in the differential snap volume, its size is usually small. Therefore, by using the differential snapshot technology, data can be virtually replicated without using a large-size data storage area.
The differential snapshot technique is described in Patent Document 1, for example. Further, Non-Patent Document 1 is known as a technology related to data saving.
JP 2004-272854 A Kazuo Goda, Takayuki Tamura, Masato Oguchi and Masaru Kitsuregawa, `` Run-time Load Balancing System on SAN-connected PC Cluster for Dynamic Injection of CPU and Disk Resource --- A Case Study of Data Mining Application --- '', Proceedings of 13th International Conference on Database and Expert Systems Applications (DEXA2002), September 2002, pp. 182-192

計算機システムでは、サーバ装置上で動作するアプリケーションプログラムが、ストレージ装置に対してデータ操作の指示を行なう場合が多い。このアプリケーションプログラムの例としては、DBMS(Database Management System)が挙げられる。DBMSなどのアプリケーションプログラムがデータ更新を行なう場合、該当データを一旦サーバ装置のメモリ領域にデータを読み込み、メモリ領域のデータを変更した後、変更したデータをストレージ装置に書き出す場合がある。   In a computer system, an application program running on a server device often instructs the storage device to perform data operations. An example of this application program is DBMS (Database Management System). When an application program such as a DBMS updates data, the corresponding data is once read into the memory area of the server device, the data in the memory area is changed, and then the changed data is written out to the storage device.

そのため、プライマリボリュームのデータを更新する場合、以下のようにプライマリボリュームに対して3回のアクセスが行なわれる。まず、アプリケーションプログラムが、プライマリボリュームから更新対象のデータをメモリ領域に読み込む。次に、アプリケーションプログラムが、データをストレージ装置に書き出す。この書き出しの際に、更新前のデータを退避するために、プライマリボリュームのデータを読み出す。また、更新後のデータをプライマリボリュームに書き込む。このように、プライマリボリュームに対するアクセス回数が増大し、ストレージ装置の負荷が大きくなる問題があった。   Therefore, when updating the data of the primary volume, the primary volume is accessed three times as follows. First, the application program reads data to be updated from the primary volume into the memory area. Next, the application program writes data to the storage device. At the time of writing, the primary volume data is read in order to save the data before update. Also, the updated data is written to the primary volume. Thus, there is a problem that the number of accesses to the primary volume increases and the load on the storage device increases.

本発明は、上記を鑑みてなされたもので、差分スナップショットを利用する際の、ストレージ装置の負荷を削減することを目的とする。   The present invention has been made in view of the above, and an object of the present invention is to reduce the load on a storage apparatus when using a differential snapshot.

本発明の一態様は、第1のボリュームと第2のボリュームを備えるストレージ装置のデータを管理する方法であって、サーバ装置が、端末計算機からデータの操作指示を受信するステップと、前記サーバ装置が、前記データの操作指示に基づいて操作対象のデータを決定するステップと、前記サーバ装置が、前記操作対象のデータが更新用か参照用かを判定するステップと、前記サーバ装置が、当該サーバ装置に設定されたバッファに、前記操作対象のデータが読み込まれているか否かを判定するステップと、前記操作対象のデータが参照用で、かつ、前記操作対象のデータが前記バッファに読み込まれていない場合に、前記サーバ装置が、前記第1のボリュームから読み出された前記操作対象のデータを前記バッファに読み込むステップと、前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれてない場合に、前記サーバ装置が、前記ストレージ装置に、前記第1のボリュームから前記操作対象のデータを読み出し、かつ、前記操作対象のデータを前記第2のボリュームに退避することを指示する第1のコマンドを発行し、前記ストレージ装置から前記操作対象のデータを受信して前記バッファに格納し、当該バッファにおいて更新を実行するステップと、前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれている場合に、前記サーバ装置が、前記ストレージ装置に、前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避することを指示する第2のコマンドを発行し、前記バッファにおいて更新を実行するステップと、を含む。One aspect of the present invention is a method for managing data in a storage apparatus including a first volume and a second volume, wherein the server apparatus receives a data operation instruction from a terminal computer, and the server apparatus Determining the operation target data based on the operation instruction for the data, the server device determining whether the operation target data is for update or for reference, and the server device for the server A step of determining whether or not the operation target data is read into a buffer set in the apparatus; the operation target data is for reference; and the operation target data is read into the buffer If not, the server device reads the operation target data read from the first volume into the buffer; When the operation target data is for update and the operation target data is not read into the buffer, the server device stores the operation target data from the first volume to the storage device. Read and issue a first command for instructing to save the operation target data to the second volume, receive the operation target data from the storage device, store the data in the buffer, Executing the update in the buffer, and when the operation target data is for update and the operation target data is read into the buffer, the server device stores the operation target in the storage device. Issue a second command instructing to evacuate the data from the first volume to the second volume, and And executing the update in the buffer, the.

本発明により、データをメモリ領域に読み込む際に、差分ボリュームへデータを退避でき、第1のボリュームに対するアクセス回数を2回に削減できる。そしてデータの退避は完了しているため、データ更新の際に第1のボリュームのデータを読み出す必要がない。これにより、ストレージ装置の負荷が削減される。   According to the present invention, when data is read into the memory area, the data can be saved to the differential volume, and the number of accesses to the first volume can be reduced to two. Since the data evacuation has been completed, it is not necessary to read the data of the first volume when updating the data. Thereby, the load of the storage apparatus is reduced.

以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明を適用する第1の実施形態の計算機システムの構成を示すブロック図である。図1では、サーバ1でDBMS(DataBase Management System)が動作し、ストレージ2がデータベース101を格納する計算機システムを示している。
Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings.
FIG. 1 is a block diagram showing a configuration of a computer system according to the first embodiment to which the present invention is applied. FIG. 1 shows a computer system in which a DBMS (DataBase Management System) operates on the server 1 and the storage 2 stores the database 101.

サーバ1のDBMS100が、ネットワーク3を介して操作端末(端末計算機)5などからデータの操作要求を受け付け、その要求に従ってデータベース101に対するデータの操作を実行する。   The DBMS 100 of the server 1 receives a data operation request from the operation terminal (terminal computer) 5 or the like via the network 3 and executes data operation on the database 101 according to the request.

ここで、サーバ1には、演算処理を実行するCPU11と、プログラムやデータを一時的に格納するメモリ12と、CPU11とI/Oのアクセスを制御するデータ転送コントローラ13と、ネットワーク3に接続された通信部(ネットワークインターフェース)14及びストレージ用のインターフェース15が設けられている。   Here, the server 1 is connected to a CPU 11 that executes arithmetic processing, a memory 12 that temporarily stores programs and data, a data transfer controller 13 that controls access to the CPU 11 and I / O, and a network 3. A communication unit (network interface) 14 and a storage interface 15 are provided.

メモリ12にはDBMS100のプログラムが格納されており、CPU11がDBMS100のプログラムを実行する。データ転送コントローラ13は、CPU11、通信部14、ストレージ用のインターフェース15の間でデータを転送する。ストレージ用のインターフェース15はSAN(Storage Area Network)4を介してストレージ2に接続されている。DBMS100は、SQL実行部110、バッファ管理部120、ディスク管理部130、データ領域管理テーブル121、DBバッファ140によって構成されている。   A program for the DBMS 100 is stored in the memory 12, and the CPU 11 executes the program for the DBMS 100. The data transfer controller 13 transfers data between the CPU 11, the communication unit 14, and the storage interface 15. The storage interface 15 is connected to the storage 2 via a SAN (Storage Area Network) 4. The DBMS 100 includes an SQL execution unit 110, a buffer management unit 120, a disk management unit 130, a data area management table 121, and a DB buffer 140.

ストレージ2は、ドライブ30、ドライブ31と、これらのドライブを制御するストレージコントローラ20から構成される。ここに、ドライブ30、ドライブ31は、データを格納する装置である。以下、図1と図2における30番のドライブをドライブ1、31番のドライブをドライブ2と記す。   The storage 2 includes a drive 30, a drive 31, and a storage controller 20 that controls these drives. Here, the drive 30 and the drive 31 are devices for storing data. Hereinafter, the drive No. 30 in FIGS. 1 and 2 is referred to as drive 1, and the drive No. 31 as drive 2.

ストレージコントローラ20は、演算処理を実行するCPU21と、プログラムやデータを格納するメモリ22と、データ転送コントローラ23と、SAN4に接続されたインターフェース24と、ドライブ1と、ドライブ2に接続されたインターフェース25と、ネットワーク3に接続されたインターフェース26が設けられている。   The storage controller 20 includes a CPU 21 that executes arithmetic processing, a memory 22 that stores programs and data, a data transfer controller 23, an interface 24 connected to the SAN 4, an interface 25 connected to the drive 1, and the drive 2. An interface 26 connected to the network 3 is provided.

メモリ22には、ストレージ制御部210と退避指示判定部220のプログラムが格納されており、CPU21がこれらのプログラムを実行することによって、ドライブ1、ドライブ2へのアクセスを実行する。データ転送コントローラ23は、CPU21、インターフェース24、25の間でデータを転送する。   The memory 22 stores programs of the storage control unit 210 and the save instruction determination unit 220, and the CPU 21 executes access to the drive 1 and the drive 2 by executing these programs. The data transfer controller 23 transfers data between the CPU 21 and the interfaces 24 and 25.

ストレージ制御部210は、サーバ1からデータ操作に関するコマンドを受信し、それに基づいてドライブ1、ドライブ2に格納されたデータの操作を行なう。ここに、データ操作コマンドとは、データの参照(Read)やデータの更新(Write)である。但し、本発明のストレージ2は、後に説明するように、データ退避の指示を含むデータ参照コマンドや、データ退避コマンドを受付けることができる。   The storage control unit 210 receives a command related to data operation from the server 1 and operates data stored in the drive 1 and drive 2 based on the command. Here, the data operation command is data reference (Read) or data update (Write). However, as will be described later, the storage 2 of the present invention can accept a data reference command including a data saving instruction and a data saving command.

ストレージ制御部210は、サーバ1から受信したコマンドに、データ退避の指示が含まれるか否かを判定するために、受信したコマンドを、退避指示判定部220に送信する。退避指示判定部220は、コマンドにデータ退避の指示が含まれるか否かの判定を行ない、その結果をストレージ制御部210に送信する。後に図10と図12のフローチャートを用いて説明するように、ストレージ制御部210は、コマンドにデータ退避の指示が含まれている場合には、データの退避を実行する。   The storage control unit 210 transmits the received command to the save instruction determination unit 220 in order to determine whether the command received from the server 1 includes a data save instruction. The save instruction determination unit 220 determines whether or not the command includes a data save instruction, and transmits the result to the storage control unit 210. As will be described later with reference to the flowcharts of FIGS. 10 and 12, the storage control unit 210 executes data saving when the command includes a data saving instruction.

図2に示すように、ストレージ制御部210は、ボリューム管理テーブル211を管理している。図5に例示するように、ボリューム管理テーブル211には、論理的なデータ格納領域であるボリュームとドライブの対応が記載されている。このボリュームは、ロジカルユニットと呼ばれる場合もある。図5の例では、ボリューム名2111「VOL1」のエントリの、ドライブ名2113に「ドライブ1」が指定されていることから、VOL1にドライブ1が対応することを示している。同様に、VOL2にはドライブ2が対応することを示している。一つのボリュームに対して複数のドライブを対応させることも可能であるが、図5では、一つのボリュームに一つのドライブを対応させる例を示している。   As shown in FIG. 2, the storage control unit 210 manages a volume management table 211. As illustrated in FIG. 5, the volume management table 211 describes the correspondence between volumes and logical data storage areas. This volume may be called a logical unit. In the example of FIG. 5, since “drive 1” is specified in the drive name 2113 of the entry of the volume name 2111 “VOL1”, it indicates that the drive 1 corresponds to VOL1. Similarly, it is shown that the drive 2 corresponds to VOL2. Although it is possible to associate a plurality of drives with one volume, FIG. 5 shows an example in which one drive is associated with one volume.

また、ボリューム管理テーブル211には、種別2112と差分ボリューム名2114が記載されている。種別2112には「Primary」または「Differential」が指定され、「Primary」は差分スナップショットの退避元ボリュームであることを示し、「Differintial」は差分スナップショットの退避先ボリュームであることを示す。図5の例ではVOL1に「Primary」が指定され、VOL2に「Differintial」が記載されていることから、VOL1が退避元のボリュームであり、VOL2が退避先のボリュームに指定されている。さらに、VOL1の差分ボリューム名2114にVOL2が記載されており、VOL1の差分スナップショットの退避先ボリュームがVOL2であることを示している。また、VOL2の差分ボリューム名2114にVOL1が記載されており、VOL2の差分スナップショットの退避元ボリュームがVOL1であることを示している。   In the volume management table 211, a type 2112 and a differential volume name 2114 are described. “Primary” or “Differential” is specified for the type 2112, “Primary” indicates that it is a differential snapshot save source volume, and “Differential” indicates that it is a differential snapshot save destination volume. In the example of FIG. 5, “Primary” is specified for VOL1 and “Differential” is described for VOL2, so VOL1 is the save source volume and VOL2 is specified as the save destination volume. Furthermore, VOL2 is described in the differential volume name 2114 of VOL1, indicating that the save destination volume of the differential snapshot of VOL1 is VOL2. In addition, VOL1 is described in the differential volume name 2114 of VOL2, indicating that the save source volume of the differential snapshot of VOL2 is VOL1.

ボリュームのデータ格納領域は、512バイトなどの一定サイズの領域に区切られ、それぞれにアドレスを付与されて管理されている。このアドレスは、ロジカルブロックアドレス(LBA)と呼ばれる場合がある。図6は、VOL1に格納されているデータベース101を例示している。アドレス1011はVOL1の一定サイズの領域ごとに付与される番号であり、図6の例では、VOL1のアドレス「0」にデータ“AAA”が格納されている。以上のように、ボリューム名とアドレスによって、ストレージが管理するドライブにアクセスできる。例えば、ストレージ制御部210が、サーバ1からVOL1のアドレス「0」のデータのReadを指示するデータ操作コマンドを受け取った場合には、サーバ1に“AAA”を送信する。   The data storage area of the volume is divided into areas of a fixed size such as 512 bytes, and each is assigned an address and managed. This address may be referred to as a logical block address (LBA). FIG. 6 illustrates the database 101 stored in VOL1. The address 1011 is a number assigned to each area of a certain size of VOL1, and in the example of FIG. 6, data “AAA” is stored at address “0” of VOL1. As described above, the drive managed by the storage can be accessed by the volume name and address. For example, when the storage control unit 210 receives a data operation command instructing the read of the data of the address “0” of the VOL 1 from the server 1, “AAA” is transmitted to the server 1.

また、ストレージ制御部210は、図2に示すように、差分管理テーブル221と退避管理テーブル222を管理している。図7に例示する差分管理テーブル221には、差分スナップショットの退避元ボリュームのアドレス2211と、退避先ボリュームのアドレス2212が記載されている。図7の最初のエントリは、退避元ボリュームであるVOL1のアドレス「100」のデータが、退避先ボリュームであるVOL2のアドレス「0」に退避されていることを示している。また、2番目のエントリと3番目のエントリは、VOL1のアドレス「200」のデータはVOL2のアドレス「1」に、VOL1のアドレス「300」のデータはVOL2のアドレス「2」に退避されていることを示している。   Further, the storage control unit 210 manages a difference management table 221 and a save management table 222 as shown in FIG. In the difference management table 221 illustrated in FIG. 7, the address 2211 of the save source volume and the address 2212 of the save destination volume of the differential snapshot are described. The first entry in FIG. 7 indicates that the data at the address “100” of the VOL1 that is the save source volume is saved at the address “0” of the VOL2 that is the save destination volume. In the second and third entries, the data of the VOL1 address “200” is saved to the VOL2 address “1”, and the data of the VOL1 address “300” is saved to the VOL2 address “2”. It is shown that.

退避管理テーブル222は、退避元ボリュームのデータが退避済みか否かを記録するテーブルである。退避フラグ2222には、「0」または、「1」が記載され、「0」はデータが退避済みでないことを示し、「1」はデータが退避済みであることを示す。図8の例では、退避元ボリュームであるVOL1のアドレス「0」の退避フラグ2222は「0」であり、退避済みでないことを示している。同様に、VOL1のアドレス「1」、アドレス「2」のデータも退避済みでないことを示している。ストレージ制御部210は、退避元ボリュームのデータを退避先ボリュームに退避した場合に、差分管理テーブル221と退避管理テーブル222の内容を変更する。   The save management table 222 is a table that records whether the save source volume data has been saved. In the save flag 2222, “0” or “1” is described, “0” indicates that the data has not been saved, and “1” indicates that the data has been saved. In the example of FIG. 8, the save flag 2222 of the address “0” of the VOL 1 that is the save source volume is “0”, indicating that it has not been saved. Similarly, the data of the address “1” and the address “2” of the VOL 1 is not saved. The storage control unit 210 changes the contents of the difference management table 221 and the save management table 222 when the save source volume data is saved to the save destination volume.

次に、DBMS100の動作例について説明する。   Next, an operation example of the DBMS 100 will be described.

図1に示すように、DBMS100のプログラムはサーバ1のメモリ12に格納されており、CPU11により実行される。DBMS100は、操作端末5からデータ操作要求を受け付け、この要求に対応するクエリプランを作成する。ここにデータ操作要求とは、SQL(Structured Query Language)などで記述されたデータの更新や参照などの指示である。また、クエリプランとは、指示されたデータ操作の実行方法であり、読み込むデータのボリューム名やアドレス、読み込んだデータの変更方法などが指定されている。   As shown in FIG. 1, the program of the DBMS 100 is stored in the memory 12 of the server 1 and is executed by the CPU 11. The DBMS 100 receives a data operation request from the operation terminal 5 and creates a query plan corresponding to this request. Here, the data operation request is an instruction to update or refer to data described in SQL (Structured Query Language) or the like. A query plan is a method for executing an instructed data operation, and specifies a volume name and address of data to be read, a method for changing the read data, and the like.

SQL実行部110は、操作端末5から受信したデータ操作要求に基づいてクエリプランを作成する。データ操作要求とは、例えば、テーブル名が「Warehouse」で識別カラム名「W_id」が「1」のデータの参照、といったものである。このデータ操作要求からクエリプランを生成するために、SQL実行部110はデータ領域管理テーブル121を使用する。図3に示すように、データ管理テーブル121には、テーブル名1210、識別カラム名1211、識別カラム1212、ボリューム名1213、および、アドレス1214が記載されている。図3の例では、テーブル名が「Warehouse」で識別カラム名「W_id」が「1」のデータは、ボリューム名「VOL1」のアドレス「0」に格納されていることが分かる。従って、外部記憶装置のボリューム名「VOL1」のアドレス「0」のデータを取得し操作端末5に送信するというクエリプランを生成することができる。なお、以上では、データ操作要求として一つのデータを参照する例を示したが、以上の操作を繰り返すことによって、複数のデータ参照やデータ更新を含むデータ操作要求に対するクエリプランを作成することも可能である。   The SQL execution unit 110 creates a query plan based on the data operation request received from the operation terminal 5. The data operation request is, for example, a reference to data having a table name “Warehouse” and an identification column name “W_id” “1”. In order to generate a query plan from this data operation request, the SQL execution unit 110 uses the data area management table 121. As shown in FIG. 3, the data management table 121 describes a table name 1210, an identification column name 1211, an identification column 1212, a volume name 1213, and an address 1214. In the example of FIG. 3, it can be seen that the data with the table name “Warehouse” and the identification column name “W_id” “1” is stored at the address “0” of the volume name “VOL1”. Accordingly, it is possible to generate a query plan that acquires data of the address “0” of the volume name “VOL1” of the external storage device and transmits the data to the operation terminal 5. In the above, an example in which one piece of data is referred to as a data operation request has been described. However, it is possible to create a query plan for a data operation request including multiple data references and data updates by repeating the above operation. It is.

SQL実行部110は生成したクエリプランに従って、データの参照や更新を行なう。データ参照の場合、SQL実行部110は参照するデータのボリューム名とアドレスをバッファ管理部120に通知する。バッファ管理部120は、DBバッファ140を管理しており、要求されたデータがDBバッファ140にある場合には、このデータをSQL実行部110に渡す。SQL実行部110は、バッファ管理部120から受け取ったデータを操作端末5に送信する。DBバッファ140の格納内容を図4に例示する。DBバッファ140には、ボリューム名1401とアドレス1402とデータ1403が記載されており、SQL実行部110から要求されたデータが既にDBバッファ140に読み込まれているか否かを判定できる。SQL実行部110から要求されたデータがDBバッファ140に読み込まれていない場合、バッファ管理部120はストレージ2に対してデータ参照コマンドを発行し、読み込んだデータをDBバッファ140に格納する。そして、バッファ管理部120はSQL実行部110にデータを渡す。   The SQL execution unit 110 refers to or updates data according to the generated query plan. In the case of data reference, the SQL execution unit 110 notifies the buffer management unit 120 of the volume name and address of the data to be referenced. The buffer management unit 120 manages the DB buffer 140, and when the requested data is in the DB buffer 140, passes this data to the SQL execution unit 110. The SQL execution unit 110 transmits the data received from the buffer management unit 120 to the operation terminal 5. The contents stored in the DB buffer 140 are illustrated in FIG. In the DB buffer 140, a volume name 1401, an address 1402, and data 1403 are described, and it can be determined whether or not the data requested from the SQL execution unit 110 has already been read into the DB buffer 140. When the data requested from the SQL execution unit 110 is not read into the DB buffer 140, the buffer management unit 120 issues a data reference command to the storage 2 and stores the read data in the DB buffer 140. Then, the buffer management unit 120 passes the data to the SQL execution unit 110.

SQL実行部110がデータ更新をする場合、更新するデータのボリューム名とアドレスをバッファ管理部120に通知する。バッファ管理部120は、要求されたデータがDBバッファ140にある場合には、このデータをSQL実行部110に渡す。要求されたデータがDBバッファ140にない場合には、バッファ管理部120はストレージ2に対してデータ読み込みコマンドを発行し、読み込んだデータをDBバッファ140に格納すし、SQL実行部110にデータを渡す。SQL実行部110は受け取ったデータに対し更新を行ない、そのデータをバッファ管理部120に渡す。バッファ管理部120は受け取ったデータをDBバッファ140に格納し、ストレージ2に対してデータ更新のコマンドを発行する。   When the SQL execution unit 110 updates data, the buffer management unit 120 is notified of the volume name and address of the data to be updated. If the requested data is in the DB buffer 140, the buffer management unit 120 passes this data to the SQL execution unit 110. When the requested data is not in the DB buffer 140, the buffer management unit 120 issues a data read command to the storage 2, stores the read data in the DB buffer 140, and passes the data to the SQL execution unit 110. . The SQL execution unit 110 updates the received data and passes the data to the buffer management unit 120. The buffer management unit 120 stores the received data in the DB buffer 140 and issues a data update command to the storage 2.

以上のDBMS100の動作例において、SQL実行部110は、データが参照用か更新用か判定することができる。例えば、操作端末5からデータ更新の要求を受付けた場合、そのデータは更新用のデータである。また、複数のデータ参照とデータ更新を含むクエリプランが生成された場合、参照したデータが後に更新されるのであれば、データ参照の時点で、更新用のデータと判定することができる。更新用データと判定した場合、SQL実行部110は、ボリューム名とアドレスと更新用データであることをバッファ管理部120に通知する。更新用データであることを通知されたバッファ管理部120は、データ参照コマンドを退避指示追加部130に送信する。退避指示追加部130はデータ参照コマンドにデータの退避を指示するタグを追加して、バッファ管理部120に送信する。バッファ管理部120はデータの退避を指示が追加されたデータ参照コマンドをストレージ2に送信する。データ退避タグ付きのデータ読み込みコマンドを受信したストレージ2は、退避元ボリュームのデータを退避先ボリュームにデータを退避して、データをサーバ1に送信する。   In the operation example of the DBMS 100 described above, the SQL execution unit 110 can determine whether the data is for reference or for update. For example, when a data update request is received from the operation terminal 5, the data is update data. Further, when a query plan including a plurality of data references and data updates is generated, if the referenced data is updated later, it can be determined that the data is updated at the time of data reference. If it is determined that the data is update data, the SQL execution unit 110 notifies the buffer management unit 120 that the data is a volume name, an address, and update data. The buffer management unit 120 notified of the update data transmits a data reference command to the save instruction adding unit 130. The save instruction adding unit 130 adds a tag for instructing data save to the data reference command, and transmits the tag to the buffer management unit 120. The buffer management unit 120 transmits to the storage 2 a data reference command to which an instruction to save data is added. The storage 2 that has received the data read command with the data save tag saves the data of the save source volume to the save destination volume, and transmits the data to the server 1.

また、バッファ管理部120は、更新用のデータが既にDBバッファ140に存在する場合に、退避だけを指示するコマンドをストレージ2に発行することができる。これにより、ストレージ2は、退避元ボリュームのデータを退避先ボリュームにデータを退避する動作を予め実行することができる。   Further, the buffer management unit 120 can issue a command for instructing only saving to the storage 2 when update data already exists in the DB buffer 140. As a result, the storage 2 can execute in advance the operation of saving the data of the save source volume to the save destination volume.

また、上記の実施例の他に、ストレージ2が、図15に例示する退避ボリューム設定テーブルを管理する実施例がある。この実施例では、退避ボリューム設定テーブルに設定されたボリュームのデータがアクセスされた場合に、ストレージ2はデータを退避先ボリュームに退避する。   In addition to the above-described embodiment, there is an embodiment in which the storage 2 manages the save volume setting table illustrated in FIG. In this embodiment, when the volume data set in the save volume setting table is accessed, the storage 2 saves the data to the save destination volume.

<処理の詳細>
次に、サーバ1のDBMS100とストレージ2のストレージ制御部210で行われる処理の詳細について説明する。図9は、DBMS100で行われる処理の一例を示すフローチャートで、操作端末5からクエリを受け付けるたびに実行される。
<Details of processing>
Next, details of processing performed by the DBMS 100 of the server 1 and the storage control unit 210 of the storage 2 will be described. FIG. 9 is a flowchart illustrating an example of processing performed by the DBMS 100 and is executed every time a query is received from the operation terminal 5.

DBMS100は、操作端末5からクエリ(データの操作指示)を受け付けると(S1)、クエリの内容を解析してクエリプランを作成する(S2)。S3では、作成したクエリプランに基づいて、ストレージ2からサーバ1へ読み込むデータを決定する。   When the DBMS 100 receives a query (data operation instruction) from the operation terminal 5 (S1), the DBMS 100 analyzes the contents of the query and creates a query plan (S2). In S3, data to be read from the storage 2 to the server 1 is determined based on the created query plan.

S4では、サーバ1へ読み込むべきデータが、DBバッファ140に読み込まれているか否かを判定する。既に、読み込むべきデータがDBバッファ140に読み込まれている場合にはS9へ進む。DBバッファ140に該当するデータが読み込まれていない場合にはS5に進む。   In S4, it is determined whether or not data to be read into the server 1 has been read into the DB buffer 140. If the data to be read has already been read into the DB buffer 140, the process proceeds to S9. If the corresponding data is not read in the DB buffer 140, the process proceeds to S5.

S5では、ストレージ2から読み込むデータが更新用のデータか否かを判定する。すなわち、上記S2で作成したクエリプランを解析して、サーバ1へ該当するデータを読み込んだ後に更新するか否かを判定する。そして、更新用のデータである場合にはS6に進んでデータ退避タグ付きの参照コマンドを生成する。更新用のデータでない場合には、通常の参照コマンドを設定してS7に進む。   In S5, it is determined whether or not the data read from the storage 2 is update data. That is, the query plan created in S2 is analyzed, and it is determined whether or not to update after reading the corresponding data into the server 1. If it is update data, the process proceeds to S6 to generate a reference command with a data save tag. If it is not update data, a normal reference command is set and the process proceeds to S7.

S7では、上記S5、S6で設定したデータ退避タグ付き参照コマンドまたは参照コマンドをストレージ2へ送信する。   In S7, the reference command or reference command with the data save tag set in S5 and S6 is transmitted to the storage 2.

S8では、データ退避タグ付き参照コマンドまたは参照コマンドに対するストレージ2からのデータを受信する。そして、DBMS100は、受信したデータをDBバッファ140に格納する。   In S8, a reference command with a data save tag or data from the storage 2 for the reference command is received. Then, the DBMS 100 stores the received data in the DB buffer 140.

次に、S9ではDBバッファ140へ読み込んだ(または既に読み込まれている)データに対して更新するか否かを判定する。更新を行う場合には、S10に進んでDBバッファ140上の該当データに対してクエリプランに従った更新を実行する。一方、読み込んだデータに対して更新を行わない場合にはS11へ進む。S11では、クエリを送信した操作端末5に対してクエリの結果を通知する。   Next, in S9, it is determined whether or not to update the data read (or already read) into the DB buffer 140. When updating, it progresses to S10 and the update according to a query plan is performed with respect to the applicable data on DB buffer 140. FIG. On the other hand, if the read data is not updated, the process proceeds to S11. In S11, the result of the query is notified to the operation terminal 5 that has transmitted the query.

以上の処理を操作端末5からクエリを受け付けるたびに実行することにより、サーバ1のDBバッファ140へ読み込んだデータについて更新を行う場合には、データ退避タグ付き参照コマンドを発行し、データ参照と合わせて該当データの退避を実行することができる。   When the data read into the DB buffer 140 of the server 1 is updated by executing the above processing every time a query is received from the operation terminal 5, a reference command with a data save tag is issued to match the data reference. The corresponding data can be saved.

上記S1で、操作端末5からサーバ1に送信されるデータ操作指示とは、例えば「UPDATE Warehouse SET name = "Tokyo" WHERE W_id = 1」といったものである。これは、図3で示したように、Warehouseというテーブル名1210のW_idという識別カラム名1211が「1」のnameカラム1212の値をTokyoに変更する指示である。   The data operation instruction transmitted from the operation terminal 5 to the server 1 in S1 is, for example, “UPDATE Warehouse SET name =“ Tokyo ”WHERE W_id = 1”. This is an instruction to change the value of the name column 1212 in which the identification column name 1211 called W_id of the table name 1210 called Warehouse is “1” to Tokyo as shown in FIG.

上記では、UPDATE文の実施例を示したが、「SELECT name FROM Warehouse Where W_id = 1」といったデータ操作指示を受け付けることもできる。これは、WarehouseテーブルのW_idカラムが「1」のnameカラムのデータの読み込みを指示するものである。
次に、ストレージ2のストレージコントローラ20で行われる処理について説明する。図10、図11、図12は、ストレージコントローラ20で行われる処理の例を示すフローチャートである。図10は、ストレージコントローラ20がSAN4から参照コマンドまたはデータ退避タグ付き参照コマンドを受信したときの処理を示す。図11は、ストレージコントローラ20がSAN4から書き込みコマンドを受信したときの処理を示し、図12は、ストレージコントローラ20がSAN4からデータ退避コマンドを受信したときの処理を示す。
In the above, an example of the UPDATE statement is shown, but a data operation instruction such as “SELECT name FROM Warehouse Where W_id = 1” can also be accepted. This is an instruction to read data in the name column whose W_id column in the Warehouse table is “1”.
Next, processing performed by the storage controller 20 of the storage 2 will be described. 10, 11, and 12 are flowcharts illustrating examples of processing performed by the storage controller 20. FIG. 10 shows processing when the storage controller 20 receives a reference command or a reference command with a data save tag from the SAN 4. FIG. 11 shows processing when the storage controller 20 receives a write command from the SAN 4, and FIG. 12 shows processing when the storage controller 20 receives a data save command from the SAN 4.

まず、図10の参照コマンドまたはデータ退避タグ付き参照コマンドを受信したときの処理では、S21でストレージコントローラ20が、参照コマンド(タグ付き参照コマンド)を受信する。次に、S22ではストレージコントローラ20がプライマリボリュームから参照コマンドで指定されたアドレスのデータを読み込む。   First, in the process when the reference command or the reference command with data save tag in FIG. 10 is received, the storage controller 20 receives the reference command (reference command with tag) in S21. Next, in S22, the storage controller 20 reads data at the address specified by the reference command from the primary volume.

次に、S23では、受信した参照コマンドのタグを参照し、タグ付き参照コマンドであるか否かを判定する。例えば、図13で示すように、ストレージコントローラ20で受け付けるコマンドがnビットで表される場合、0ビットをタグ領域とし、1ビットからnビットをコマンド領域とする。そして、例えば、タグ領域の値が「1」の場合にはデータ退避の指示を示し、「0」の場合にはデータ退避の指示無しを示す。   Next, in S23, the tag of the received reference command is referred to and it is determined whether or not it is a tagged reference command. For example, as shown in FIG. 13, when a command received by the storage controller 20 is represented by n bits, 0 bit is set as a tag area and 1 to n bits are set as a command area. For example, when the value of the tag area is “1”, an instruction to save data is indicated, and when the value is “0”, no instruction to save data is indicated.

S23では、参照コマンドに付加されたタグ領域の値に基づいてデータ退避の指示の有無を判定し、指示ありと判定した場合にはS24へ進んでデータの退避を実行する。一方、指示無しと判定した場合には、S27に進んで要求元のサーバ1へこのデータを送信する。   In S23, the presence / absence of a data saving instruction is determined based on the value of the tag area added to the reference command. If it is determined that there is an instruction, the process proceeds to S24 to execute data saving. On the other hand, if it is determined that there is no instruction, the process proceeds to S27 to transmit this data to the requesting server 1.

データ退避タグ付き参照コマンドの場合のS24では、ストレージコントローラ20は、上記S22で読み出したプライマリボリュームのアドレスについて退避管理テーブル222を参照し、退避フラグ2222の値に基づいて退避が完了しているか否かを判定する。この判定の結果、プライマリボリューム上の該当するデータの退避が完了していなければ、S26へ進んで差分スナップショットの作成を行う。一方、該当するデータの退避が完了していればS27に進む。   In S24 in the case of a reference command with a data save tag, the storage controller 20 refers to the save management table 222 for the address of the primary volume read in S22, and whether save has been completed based on the value of the save flag 2222. Determine whether. If the result of this determination is that the corresponding data on the primary volume has not been saved, the process proceeds to S26 to create a differential snapshot. On the other hand, if the corresponding data has been saved, the process proceeds to S27.

S26では、プライマリボリュームから読み出したデータを差分ボリュームに複写してデータの退避を実施する。そして、ストレージコントローラ20は、データの退避が完了すると差分管理テーブル221に、複写したプライマリボリュームのアドレス2211と退避先の差分ボリュームの退避先アドレス2212とを書き込む。また、データの退避が完了したのでプライマリボリューム上の該当するアドレス2221について退避管理テーブル222の退避フラグ2222を「1」にセットし、データの退避完了を記録する。   In S26, the data read from the primary volume is copied to the differential volume to save the data. Then, when the data saving is completed, the storage controller 20 writes the copied primary volume address 2211 and the saving destination address 2212 of the saving destination differential volume in the difference management table 221. Further, since the data saving is completed, the saving flag 2222 of the saving management table 222 is set to “1” for the corresponding address 2221 on the primary volume, and the data saving completion is recorded.

S27では、ストレージコントローラ20が、データの退避が完了したデータを、要求元のサーバ1に送信して処理を終了する。なお、データ退避の指示のない参照コマンドの場合は、S22で読み込んだプライマリボリュームのデータを、そのままサーバ1へ送信する。   In S <b> 27, the storage controller 20 transmits the data whose data has been saved to the requesting server 1 and ends the processing. In the case of a reference command without a data save instruction, the primary volume data read in S22 is transmitted to the server 1 as it is.

このように、データ退避タグ付き参照コマンドの場合では、ストレージコントローラ20が読み込んだデータについてプライマリボリュームから差分ボリュームへ複写してから、サーバ1が要求したデータを送信する。そして、データの退避が完了すると、差分管理テーブル221と退避管理テーブル222を更新する。   Thus, in the case of a reference command with a data save tag, the data read by the storage controller 20 is copied from the primary volume to the differential volume, and then the data requested by the server 1 is transmitted. When the data saving is completed, the difference management table 221 and the saving management table 222 are updated.

次に、図11を用いて、ストレージコントローラ20が更新コマンドを受信したときの処理を説明する。   Next, processing when the storage controller 20 receives an update command will be described with reference to FIG.

まず、S31でストレージコントローラ20が、更新コマンドを受信する。次に、S32ではストレージコントローラ20が書き込み対象のアドレスのデータの退避が完了しているか否かを判定する。この判定の結果、退避が完了していなければ、S33へ進んで書き込み対象のプライマリボリュームのアドレスのデータを、差分ボリュームに退避する。そして、データの退避が完了すると、差分管理テーブル221に、複写したプライマリボリュームのアドレス2211と退避先の差分ボリュームの退避先アドレス2212とを書き込む。   First, in S31, the storage controller 20 receives an update command. Next, in S32, the storage controller 20 determines whether or not the data at the address to be written has been saved. If the result of this determination is that the save has not been completed, the process proceeds to S33, and the data at the address of the write target primary volume is saved in the differential volume. When the data save is completed, the copied primary volume address 2211 and the save destination address save destination address 2212 are written in the difference management table 221.

一方、S32の判定で書き込み対象のプライマリボリュームのデータの退避が既に完了している場合には、S34に進む。   On the other hand, if it is determined in S32 that the data of the primary volume to be written has already been saved, the process proceeds to S34.

S34では、ストレージコントローラ20は、書き込み対象のプライマリボリュームのデータを更新する。そして、S35では、ストレージコントローラ20が、データの書き込みが完了した通知をサーバ1に送信して処理を終了する。   In S34, the storage controller 20 updates the data of the write target primary volume. In S35, the storage controller 20 sends a notification that the data has been written to the server 1 and ends the process.

次に、図12を用いて、ストレージコントローラがデータ退避コマンドを受信したときの処理を説明する。   Next, processing performed when the storage controller receives a data save command will be described with reference to FIG.

まず、S41でストレージコントローラ20が、データ退避コマンドを受信する。次に、S42ではストレージコントローラ20がデータ退避対象のプライマリボリューム上のアドレスのデータについて退避が完了しているか否かを上記S24、S25と同様に判定する。この判定の結果、退避が完了していなければ、S43へ進んで書き込み対象のプライマリボリュームのデータを読み込む。そして、S44では読み込んだデータを差分ボリュームに複写して退避を完了する。ストレージコントローラ20は、プライマリボリュームのデータの退避が完了すると、差分管理テーブル221に、複写したプライマリボリュームのアドレス2211と退避先の差分ボリュームの退避先アドレス2212とを書き込む。また、退避管理テーブル222の該当するアドレス2221の退避フラグ2222を「1」にリセットし、退避が完了したことを記録する。   First, in S41, the storage controller 20 receives a data save command. Next, in S42, the storage controller 20 determines whether or not the saving of the data at the address on the data saving target primary volume has been completed in the same manner as in S24 and S25. If the result of this determination is that saving has not been completed, the process proceeds to S43 to read the data of the primary volume to be written. In S44, the read data is copied to the differential volume and the saving is completed. When the saving of the primary volume data is completed, the storage controller 20 writes the copied primary volume address 2211 and the saving destination address saving destination address 2212 in the difference management table 221. Further, the save flag 2222 of the corresponding address 2221 in the save management table 222 is reset to “1”, and the fact that the save has been completed is recorded.

一方、書き込み対象のプライマリボリュームのデータの退避が既に完了している場合には、S45に進む。   On the other hand, if the data of the primary volume to be written has already been saved, the process proceeds to S45.

S45では、ストレージコントローラ20が、データの退避が完了した通知をサーバ1に送信して処理を終了する。   In S <b> 45, the storage controller 20 transmits a notification that data saving has been completed to the server 1 and ends the process.

このように、データ退避コマンドの場合では、ストレージコントローラ20がデータの退避対象のプライマリボリュームのデータを差分ボリュームに退避し、差分管理テーブル221と退避管理テーブル222を更新する。   As described above, in the case of the data save command, the storage controller 20 saves the data of the primary volume to be saved to the differential volume, and updates the difference management table 221 and the save management table 222.

なお、上記データ退避コマンドは、DBMS100が参照を行うデータがDBバッファ140へ既に読み込まれており、かつ、DBバッファ140上で更新されている場合に、DBMS100がストレージ2へ発行するようにしても良い。この場合、DBバッファ140上で更新されてからストレージ2へ書き込まれていないデータに対して参照要求があった場合、ストレージ2のストレージコントローラ20では、データ退避コマンドを受け付けて、書き込みが発生する以前に、事前に差分スナップショットを作成することが可能となる。これにより、DBバッファ140上で更新されたデータをストレージ2で更新する際には、既に差分スナップショットが作成されているので、書き込みのみを行えば良く、ストレージ2の処理を迅速に行うことができる。   The data save command may be issued by the DBMS 100 to the storage 2 when the data to be referred to by the DBMS 100 has already been read into the DB buffer 140 and has been updated on the DB buffer 140. good. In this case, when there is a reference request for data that has been updated in the DB buffer 140 and has not been written to the storage 2, the storage controller 20 of the storage 2 accepts the data save command and before the writing occurs In addition, a differential snapshot can be created in advance. As a result, when the data updated on the DB buffer 140 is updated in the storage 2, a differential snapshot has already been created. Therefore, only the writing needs to be performed, and the storage 2 can be processed quickly. it can.

以上のように、本発明ではサーバ1がストレージ2に対してデータの参照を行う際に、参照を行うデータについて更新を伴うか否かを判定し、更新を伴う場合には参照コマンドにデータの退避を指示するタグを付けた参照コマンドを発行する。データ退避タグ付き参照コマンドを受信したストレージ2のストレージコントローラ20は、参照を要求されたデータの退避が完了した後に、このデータをサーバ1へ送信する。これにより、サーバ1からストレージ2へタグ付き参照コマンドを一回送信するだけで、データの退避とデータの読み込みを行うことが可能となる。   As described above, in the present invention, when the server 1 references data to the storage 2, it is determined whether or not the data to be referenced is accompanied by an update. Issue a reference command with a tag that indicates saving. The storage controller 20 of the storage 2 that has received the reference command with the data save tag transmits this data to the server 1 after the save of the data requested for reference is completed. As a result, data can be saved and data can be read only by transmitting the tagged reference command from the server 1 to the storage 2 once.

なお、上記実施形態では、サーバ1でDBMS100が稼動する例を示したが、データの参照をストレージ2へ要求する際に、参照するデータについて後に更新を行うか否かを判定または推定可能なアプリケーションやサービスであれば本発明を適用することができる。   In the above-described embodiment, an example in which the DBMS 100 is operated on the server 1 has been described. However, when requesting data reference to the storage 2, an application that can determine or estimate whether or not to update the referenced data later The present invention can be applied to any service.

また、サーバ1とストレージ2がSAN4で接続された例を示したが、ストレージ2がSCSIやSATAなどのインターフェースを介してサーバ1に接続される場合でも本発明を適用することができる。   Moreover, although the example in which the server 1 and the storage 2 are connected by the SAN 4 is shown, the present invention can be applied even when the storage 2 is connected to the server 1 through an interface such as SCSI or SATA.

<第2実施形態>
図14は、前記第1実施形態の図9に示したサーバ1で稼動するDBMS100の処理の一部を変更し、参照を要求するデータがDBバッファ140に存在した場合も、更新対象のデータであればタグ付き参照コマンドを実行しておき、予めデータの退避を行うようにしたものである。その他の構成は、前記第1実施形態と同様である。
Second Embodiment
FIG. 14 shows the data to be updated even when a part of the processing of the DBMS 100 running on the server 1 shown in FIG. 9 of the first embodiment is changed and the data requesting reference exists in the DB buffer 140. If there is, a tagged reference command is executed, and data is saved in advance. Other configurations are the same as those in the first embodiment.

図14において、DBMS100の処理は、S1〜S3及びS5〜S11の処理は前記第1実施形態の図9と同様であり、S4の判定でYESとなった場合が前記第1実施形態の図9と異なる。   In FIG. 14, the processing of the DBMS 100 is the same as the processing of S1 to S3 and S5 to S11 in FIG. 9 of the first embodiment, and the case where the determination of S4 is YES is FIG. 9 of the first embodiment. And different.

S4では、参照するデータがDBバッファ140になければ、前記第1実施形態の図9と同様にS5へ進む。一方、参照するデータがDBバッファ140に既に存在する場合は、S51に進んで更新を行うデータであるか否かを判定する。S2で作成したクエリプランを解析して、サーバ1へ該当するデータを読み込んだ後に更新するか否かを判定する。そして、更新する場合には差分スナップショットの作成を実行するためにS52に進んでタグ付き参照コマンドを設定する。S52では、DBバッファ140上のデータについて、タグ付き参照コマンドを設定し、S7へ進んでストレージ2にデータの参照と差分スナップショットの作成を指令する。   In S4, if there is no data to be referenced in the DB buffer 140, the process proceeds to S5 as in FIG. 9 of the first embodiment. On the other hand, if the data to be referenced already exists in the DB buffer 140, the process proceeds to S51 to determine whether the data to be updated. The query plan created in S2 is analyzed, and it is determined whether or not to update after reading the corresponding data into the server 1. In the case of updating, the process proceeds to S52 to set a tagged reference command in order to create a differential snapshot. In S52, a tagged reference command is set for the data in the DB buffer 140, and the process proceeds to S7 to instruct the storage 2 to refer to the data and create a differential snapshot.

一方、S51の判定で、更新する必要がない場合には、既に読み込み済みである旨を通知するためS11に進む。   On the other hand, if it is not necessary to update in the determination of S51, the process proceeds to S11 to notify that it has already been read.

以上のように、DBMS100が読み込むデータがDBバッファ140上に存在する場合でも、当該データがサーバ1へ読み込まれた後に、更新が行われるまたは更新が予想される場合には、タグ付き参照コマンドを発行して当該データの差分スナップショットを作成しておく。これにより、更新が予想されるデータに対してDBMS100が更新を行って、ストレージ2へ書き込みを要求すると、このデータは既に差分スナップショットの作成が事前に完了しているので、そのまま書き込みが行われることになる。これにより、ストレージ2では、書き込みを要求されたデータについて差分スナップショットを作成する時間が不要になって書き込み処理の高速化を図ることが可能となる。   As described above, even when data to be read by the DBMS 100 exists on the DB buffer 140, if the data is updated to the server 1 or is expected to be updated after the data is read to the server 1, the tagged reference command is used. Issue a differential snapshot of the data. As a result, when the DBMS 100 updates the data that is expected to be updated and requests writing to the storage 2, the data is already written because the creation of the differential snapshot has already been completed in advance. It will be. As a result, in the storage 2, it is not necessary to create a differential snapshot for the data requested to be written, and the writing process can be speeded up.

<第3実施形態>
また、上記の実施例の他に、ストレージコントローラ20が、図15に例示する退避ボリューム設定テーブルを管理する実施例がある。ストレージコントローラ20は、メモリ22に差分退避属性テーブル223を格納する。退避ボリューム設定テーブル223には、参照されたデータを差分ボリュームへ退避するボリューム名を格納する。なお、この差分退避属性テーブル223は、管理端末6等から設定される。
<Third Embodiment>
In addition to the above embodiment, there is an embodiment in which the storage controller 20 manages the save volume setting table illustrated in FIG. The storage controller 20 stores the differential save attribute table 223 in the memory 22. The save volume setting table 223 stores the volume name for saving the referenced data to the differential volume. The difference saving attribute table 223 is set from the management terminal 6 or the like.

ストレージ制御部210は、サーバ1から参照コマンドを受信すると、コマンドに指定されたボリュームが退避ボリューム設定テーブル223に設定されているか否かを判定する。コマンドに指定されたボリュームが退避ボリューム設定テーブル223に設定されていれば、プライマリボリュームのデータを差分ボリュームに退避してから、データをサーバ1に送信する。   When the storage control unit 210 receives a reference command from the server 1, the storage control unit 210 determines whether the volume specified in the command is set in the save volume setting table 223. If the volume specified in the command is set in the save volume setting table 223, the data of the primary volume is saved in the differential volume, and then the data is transmitted to the server 1.

このような実施例においても、データ参照時にプライマリボリュームのデータを差分ボリュームに退避し、プライマリボリュームに対する負荷を軽減することができる。   Even in such an embodiment, it is possible to reduce the load on the primary volume by saving the data of the primary volume to the differential volume at the time of data reference.

なお、本明細書では、データアクセスをするアプリケーションプログラムとしてDBMSを用いて説明したが、アプリケーションプログラムはDBMSに限定されない。   In this specification, the DBMS is used as an application program for accessing data, but the application program is not limited to the DBMS.

以上のように、本発明によればデータ参照の際にデータの退避をすることで、ストレージ装置の負荷を軽減することが可能である。     As described above, according to the present invention, it is possible to reduce the load on the storage apparatus by saving data when referring to data.

本発明の第1の実施形態を示す計算機システムのブロック図。The block diagram of the computer system which shows the 1st Embodiment of this invention. サーバのDBMSと、外部記憶装置のストレージ制御部の機能ブロック図。FIG. 2 is a functional block diagram of a server DBMS and a storage control unit of an external storage device. データ領域管理テーブルの一例を示す説明図。Explanatory drawing which shows an example of a data area management table. DBバッファの一例を示す説明図。Explanatory drawing which shows an example of DB buffer. ボリューム管理テーブルの一例を示す説明図。Explanatory drawing which shows an example of a volume management table. データベースの内容を示す説明図。Explanatory drawing which shows the content of a database. 差分管理テーブルの一例を示す説明図。Explanatory drawing which shows an example of a difference management table. 退避管理テーブルの一例を示す説明図。Explanatory drawing which shows an example of an evacuation management table. サーバのDBMSで実行される処理の一例を示すフローチャート。The flowchart which shows an example of the process performed by DBMS of a server. 外部記憶装置のストレージ制御部で実行される処理の一例を示し、参照コマンドまたはタグ付き参照コマンドを受信したときのフローチャート。The flowchart when an example of the process performed by the storage control part of an external storage device is shown, and a reference command or a tagged reference command is received. 外部記憶装置のストレージ制御部で実行される処理の一例を示し、書き込みコマンドを受信したときのフローチャート。The flowchart when an example of the process performed by the storage control part of an external storage device is shown, and the write command is received. 外部記憶装置のストレージ制御部で実行される処理の一例を示し、データ退避コマンドを受信したときのフローチャート。The flowchart when an example of the process performed in the storage control part of an external storage device is shown, and the data saving command is received. コマンドとタグの説明図。Explanatory drawing of a command and a tag. 第2の実施形態を示し、サーバのDBMSで実行される処理の一例を示すフローチャート。The flowchart which shows 2nd Embodiment and shows an example of the process performed by DBMS of a server. 第3の実施形態を示し、外部記憶装置のストレージ制御部で管理される差分退避属性テーブルの一例を示す説明図。Explanatory drawing which shows 3rd Embodiment and shows an example of the difference save attribute table managed by the storage control part of an external storage device.

符号の説明Explanation of symbols

1 サーバ
2 ストレージ
20 ストレージコントローラ
30 ドライブ1
31 ドライブ2
100 DBMS
101 データベース
102 差分データ
110 SQL実行部
120 バッファ管理部
130 退避指示追加部
140 DBバッファ
210 ストレージ制御部
220 退避指示判定部
211 ボリューム管理テーブル
221 差分管理テーブル
222 退避管理テーブル
1 server 2 storage 20 storage controller 30 drive 1
31 Drive 2
100 DBMS
101 Database 102 Difference Data 110 SQL Execution Unit 120 Buffer Management Unit 130 Save Instruction Addition Unit 140 DB Buffer 210 Storage Control Unit 220 Save Instruction Determination Unit 211 Volume Management Table 221 Difference Management Table 222 Save Management Table

Claims (4)

第1のボリュームと第2のボリュームを備えるストレージ装置のデータを管理する方法であって、A method for managing data in a storage device comprising a first volume and a second volume,
サーバ装置が、端末計算機からデータの操作指示を受信するステップと、  A step in which the server device receives a data operation instruction from the terminal computer;
前記サーバ装置が、前記データの操作指示に基づいて操作対象のデータを決定するステップと、  The server device determining operation target data based on an operation instruction of the data;
前記サーバ装置が、前記操作対象のデータが更新用か参照用かを判定するステップと、  The server device determining whether the operation target data is for update or for reference; and
前記サーバ装置が、当該サーバ装置に設定されたバッファに、前記操作対象のデータが読み込まれているか否かを判定するステップと、  The server device determining whether or not the operation target data is read in a buffer set in the server device;
前記操作対象のデータが参照用で、かつ、前記操作対象のデータが前記バッファに読み込まれていない場合に、前記サーバ装置が、前記第1のボリュームから読み出された前記操作対象のデータを前記バッファに読み込むステップと、  When the operation target data is for reference and the operation target data is not read into the buffer, the server device reads the operation target data read from the first volume. Reading into the buffer;
前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれてない場合に、前記サーバ装置が、前記ストレージ装置に、前記第1のボリュームから前記操作対象のデータを読み出し、かつ、前記操作対象のデータを前記第2のボリュームに退避することを指示する第1のコマンドを発行し、前記ストレージ装置から前記操作対象のデータを受信して前記バッファに格納し、当該バッファにおいて更新を実行するステップと、  When the operation target data is for update and the operation target data is not read into the buffer, the server device stores the operation target data from the first volume to the storage device. Read and issue a first command for instructing to save the operation target data to the second volume, receive the operation target data from the storage device, store the data in the buffer, Performing an update in the buffer;
前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれている場合に、前記サーバ装置が、前記ストレージ装置に、前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避することを指示する第2のコマンドを発行し、前記バッファにおいて更新を実行するステップと、  When the operation target data is for update and the operation target data is read into the buffer, the server device stores the operation target data in the storage device from the first volume. Issuing a second command instructing to save to the second volume, and executing an update in the buffer;
を含むストレージ装置のデータ管理方法。  Data management method for storage device including
前記サーバ装置が前記端末計算機から受付けるデータの操作指示は、SQL文を含み、  The data operation instruction received by the server device from the terminal computer includes an SQL statement,
前記サーバ装置が前記操作対象のデータが更新用か参照用かを判定するステップは、操作指示に含まれるSQL文の種類に応じて判定をする、  The step in which the server device determines whether the operation target data is for update or for reference is determined according to the type of SQL sentence included in the operation instruction.
請求項1に記載のストレージ装置のデータ管理方法。  The data management method for a storage apparatus according to claim 1.
第1のボリュームと第2のボリュームを備えるストレージ装置と、サーバ装置と、を含む計算機システムであって、  A computer system including a storage device having a first volume and a second volume, and a server device,
前記サーバ装置は、端末計算機からデータの操作指示を受信し、  The server device receives data operation instructions from a terminal computer,
前記サーバ装置は、前記データの操作指示に基づいて操作対象のデータを決定し、  The server device determines operation target data based on an operation instruction of the data,
前記サーバ装置は、前記操作対象のデータが更新用か参照用かを判定し、  The server device determines whether the operation target data is for update or reference;
前記サーバ装置は、当該サーバ装置に設定されたバッファに、前記操作対象のデータが読み込まれているか否かを判定し、  The server device determines whether or not the operation target data is read in a buffer set in the server device,
前記操作対象のデータが参照用で、かつ、前記操作対象のデータが前記バッファに読み込まれていない場合に、前記サーバ装置は、前記第1のボリュームから読み出された前記操作対象のデータを前記バッファに読み込み、  When the operation target data is for reference and the operation target data is not read into the buffer, the server device reads the operation target data read from the first volume. Read into the buffer,
前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれてない場合に、前記サーバ装置は、前記ストレージ装置に、前記第1のボリュームから前記操作対象のデータを読み出し、かつ、前記操作対象のデータを前記第2のボリュームに退避することを指示する第1のコマンドを発行し、前記ストレージ装置から前記操作対象のデータを受信して前記バッファに格納し、当該バッファにおいて更新を実行し、  When the operation target data is for update and the operation target data is not read into the buffer, the server device stores the operation target data from the first volume in the storage device. Read and issue a first command for instructing to save the operation target data to the second volume, receive the operation target data from the storage device, store the data in the buffer, Perform updates in the buffer,
前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれている場合に、前記サーバ装置は、前記ストレージ装置に、前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避することを指示する第2のコマンドを発行し、前記バッファにおいて更新を実行し、  When the operation target data is for updating and the operation target data is read into the buffer, the server device stores the operation target data in the storage device from the first volume. Issue a second command instructing to save to the second volume, execute an update in the buffer,
前記第1のコマンド及び第2のコマンドの一方のコマンドを受信した前記ストレージ装置は、前記操作対象のデータが退避済みであるか否かを前記一方のコマンドに従って判定し、退避済みでない場合に前記一方のコマンドに従って前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避する、  The storage apparatus that has received one of the first command and the second command determines whether or not the operation target data has been saved according to the one command. According to one command, the operation target data is saved from the first volume to the second volume.
計算機システム。  Computer system.
前記サーバ装置が前記端末計算機から受付けるデータの操作指示は、SQL文を含み、  The data operation instruction received by the server device from the terminal computer includes an SQL statement,
前記サーバ装置は、前記操作指示に含まれるSQL文の種類に応じて前記操作対象のデータが更新用か参照用かを判定する、  The server device determines whether the operation target data is for update or for reference according to the type of SQL statement included in the operation instruction.
請求項3に記載の計算機システム。  The computer system according to claim 3.
JP2006141379A 2006-05-22 2006-05-22 Data management method and computer system for storage apparatus Expired - Fee Related JP4839133B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006141379A JP4839133B2 (en) 2006-05-22 2006-05-22 Data management method and computer system for storage apparatus
US11/454,088 US7610460B2 (en) 2006-05-22 2006-06-16 Buffer updates and data evacuation in a storage system using differential snapshots

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006141379A JP4839133B2 (en) 2006-05-22 2006-05-22 Data management method and computer system for storage apparatus

Publications (2)

Publication Number Publication Date
JP2007310788A JP2007310788A (en) 2007-11-29
JP4839133B2 true JP4839133B2 (en) 2011-12-21

Family

ID=38713265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006141379A Expired - Fee Related JP4839133B2 (en) 2006-05-22 2006-05-22 Data management method and computer system for storage apparatus

Country Status (2)

Country Link
US (1) US7610460B2 (en)
JP (1) JP4839133B2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380143B2 (en) 2002-05-01 2013-02-19 Dali Systems Co. Ltd Power amplifier time-delay invariant predistortion methods and apparatus
US8811917B2 (en) 2002-05-01 2014-08-19 Dali Systems Co. Ltd. Digital hybrid mode power amplifier system
JP4809040B2 (en) * 2005-11-08 2011-11-02 株式会社日立製作所 Storage apparatus and snapshot restore method
CN102017553B (en) 2006-12-26 2014-10-15 大力系统有限公司 Method and system for baseband predistortion linearization in multi-channel wideband communication systems
US7908268B2 (en) * 2007-02-06 2011-03-15 International Business Machines Corporation Predictive database pool preparation
US8148236B2 (en) 2007-11-30 2012-04-03 Semiconductor Energy Laboratory Co., Ltd. Display device and method for manufacturing thereof
JP5544897B2 (en) * 2010-01-22 2014-07-09 富士通株式会社 Storage device, control device, and control method of storage device
JP5549243B2 (en) * 2010-01-29 2014-07-16 富士通株式会社 Storage device, storage device control method, and storage device control program
US8848766B2 (en) 2010-08-17 2014-09-30 Dali Systems Co. Ltd. Neutral host architecture for a distributed antenna system
KR101829517B1 (en) 2010-09-14 2018-02-14 달리 시스템즈 씨오. 엘티디. Remotely Reconfigurable Distributed Antenna System and Methods
JP2013029911A (en) * 2011-07-27 2013-02-07 Fujitsu Ltd Control device, control method, and storage device
US10365950B2 (en) * 2011-12-30 2019-07-30 Veritas Technologies Llc Resource throttling and automated policy management in a virtual machine environment
US9921954B1 (en) * 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US20140082313A1 (en) * 2012-09-14 2014-03-20 International Business Machines Corporation Storage class memory evacuation
JP6690829B2 (en) * 2015-08-28 2020-04-28 国立大学法人 東京大学 Computer system, power saving method and computer
US9967337B1 (en) * 2015-12-29 2018-05-08 EMC IP Holding Company LLC Corruption-resistant backup policy

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826076A (en) * 1994-05-13 1998-10-20 Liant Software Corporation Computer-based information access method and apparatus to permit SQL-based manipulation of programming language-specific data files
DE60044409D1 (en) * 1999-03-19 2010-07-01 Hitachi Ltd System to duplicate data
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
US6401178B1 (en) * 1999-12-23 2002-06-04 Emc Corporatiion Data processing method and apparatus for enabling independent access to replicated data
JP2002230189A (en) * 2001-02-02 2002-08-16 Hitachi Ltd Service providing system
JP2003345514A (en) * 2002-05-29 2003-12-05 Hitachi Ltd Computer system
JP4311532B2 (en) 2003-03-12 2009-08-12 株式会社日立製作所 Storage system and snapshot management method in the same system
US7124243B2 (en) * 2003-05-16 2006-10-17 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
US7032089B1 (en) * 2003-06-09 2006-04-18 Veritas Operating Corporation Replica synchronization using copy-on-read technique
US20050010726A1 (en) * 2003-07-10 2005-01-13 Rai Barinder Singh Low overhead read buffer
JP4463042B2 (en) * 2003-12-26 2010-05-12 株式会社日立製作所 Storage system having volume dynamic allocation function
JP2005242403A (en) * 2004-02-24 2005-09-08 Hitachi Ltd Computer system
JP2005292865A (en) * 2004-03-31 2005-10-20 Hitachi Ltd Storage system and backup method for storage system
US7159069B2 (en) * 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
JP2006113927A (en) * 2004-10-18 2006-04-27 Hitachi Ltd Storage device, storage system, snapshot maintenance method and command
US7716420B2 (en) * 2006-04-28 2010-05-11 Network Appliance, Inc. Methods of converting traditional volumes into flexible volumes

Also Published As

Publication number Publication date
US20070271426A1 (en) 2007-11-22
US7610460B2 (en) 2009-10-27
JP2007310788A (en) 2007-11-29

Similar Documents

Publication Publication Date Title
JP4839133B2 (en) Data management method and computer system for storage apparatus
US7698319B2 (en) Database system management method, database system, database device, and backup program
US6587933B2 (en) Method, system, and program for discarding data in a storage system where updates to a primary storage device are shadowed in a secondary storage device
JP4949088B2 (en) Remote mirroring between tiered storage systems
US8060711B2 (en) Storage system
JP2008217209A (en) Difference snapshot management method, computer system and nas computer
US20060167895A1 (en) Database system and method for adapting a main database components in a main memory thereof
JP2009116796A (en) Method for reading data, data management system, and storage system
JP2016536694A (en) Method and system for autonomous memory retrieval
CN104238963A (en) Data storage method, device and system
JP2007079774A (en) Method for constructing file system
JP2009205333A (en) Computer system, storage device, and data management method
US8850148B2 (en) Data copy management for faster reads
US20130325812A1 (en) System and method for archive in a distributed file system
US20130325814A1 (en) System and method for archive in a distributed file system
US7549029B2 (en) Methods for creating hierarchical copies
JP5721056B2 (en) Transaction processing apparatus, transaction processing method, and transaction processing program
JP4937863B2 (en) Computer system, management computer, and data management method
US8683130B2 (en) Fabricating key fields
US20080320062A1 (en) Method of transferring file system, file system transference program, and file system transference device
JP2009064160A (en) Computer system, management computer, and data management method
US7676644B2 (en) Data processing system, storage apparatus and management console
US20130325813A1 (en) System and method for archive in a distributed file system
US20100023713A1 (en) Archive system and contents management method
JP2019185296A (en) Data managing device, data managing program and data managing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110803

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees