WO1993003436A1 - Method and apparatus for reducing lock period of shared buffer - Google Patents

Method and apparatus for reducing lock period of shared buffer Download PDF

Info

Publication number
WO1993003436A1
WO1993003436A1 PCT/JP1992/000996 JP9200996W WO9303436A1 WO 1993003436 A1 WO1993003436 A1 WO 1993003436A1 JP 9200996 W JP9200996 W JP 9200996W WO 9303436 A1 WO9303436 A1 WO 9303436A1
Authority
WO
WIPO (PCT)
Prior art keywords
shared buffer
buffer
copying
memory
database
Prior art date
Application number
PCT/JP1992/000996
Other languages
English (en)
French (fr)
Inventor
Katzumi Hayashi
Masaaki Mitani
Yoshinori Shimogai
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to EP92916959A priority Critical patent/EP0551528B1/en
Priority to JP05503476A priority patent/JP3107094B2/ja
Priority to DE69228297T priority patent/DE69228297T2/de
Publication of WO1993003436A1 publication Critical patent/WO1993003436A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Definitions

  • the present invention relates to a method and an apparatus for shortening a lock period of a shared buffer.
  • a lock period of an intervening shared buffer is used.
  • a lock period for writing back the contents of a shared buffer shared by a plurality of transactions to a database can significantly reduce the waiting time for other transactions to wait.
  • the present invention relates to a method and an apparatus for shortening a possible process of shortening a lock loss of a shared buffer.
  • database means a shared file that integrates information so that it can be used by various tasks or users.
  • the software that manages this database is called a database management system.
  • the application program refers to a procedure that can be executed by a computer to refer to or update a database according to input data via this database management system, that is, to perform a transaction. Therefore, a transaction is an execution unit when multiplexing the types of application programs as database references, searches, updates, etc. 0
  • transactions access data on an overnight basis.
  • the transaction prior to this access transfers the database information from the disk to the shared buffer if it has already been transferred and processed on the shared buffer, otherwise the information on the disk is transferred to the shared buffer.
  • Such database information is stored in both the disk and the shared buffer group. Therefore, data used by transactions one after another over a long period of time will reside in the shared buffer.
  • the present invention provides a method and apparatus for shortening the lock period shortening process, which enables the lock period of the shared buffer to be only the waiting period for memory copying. About the installation. Disclosure of the invention
  • One embodiment of the present invention is a method for shortening the lock period of a shared buffer in a data processing system
  • the process of reserving the copy memory used when making the contents of the shared buffer non-volatile, the process of temporarily hacking the target shared buffer, and the contents of the shared buffer to be made non-volatile to the copy memory A copying process, a process of unlocking the shared buffer after copying to the copying memory, and a process of making the content of the copying memory non-volatile.
  • the content of the shared buffer is copied to the copying memory. Lock the shared buffer before copying, and unlock (ie, unlock) the shared buffer after completing the copy and before making the contents of the copy memory non-volatile. It is characterized by.
  • the present invention further comprises a step of determining whether or not the shared buffer to be non-volatile has a possibility of updating. When there is no possibility of updating, a copy memory is secured. Without writing to the copy memory, the contents of the target shared buffer are written back to the database and made non-volatile.
  • Another embodiment of the present invention relates to a database management system that provides and manages a function of accessing a database, a shared buffer (group) commonly used by a plurality of transactions, a log before update and a log after update temporarily.
  • a data processing system comprising a log buffer for storing logs, a log file for storing pre-update logs and post-update logs, and a database for storing various data.
  • the data processing system further includes a copy memory for temporarily holding the contents of the shared buffer
  • the database management system further includes a replacement control unit that controls the copying of the contents of the target shared buffer to the copy memory, a process selection unit that determines the possibility of updating the target shared buffer, and a target control unit.
  • An exclusive control unit that performs exclusive control of the shared buffer, and a log control unit that collects a pre-update log or a post-update log.
  • the feature is to shorten the lock period of the shared buffer.
  • the processing selection unit predicts whether there is a possibility that the shared buffer to be written back may be updated by any of the transactions during the write-back period, and copies the buffer when there is no possibility of updating. Writes the contents of the target shared buffer back to the database and makes it non-volatile without securing the memory for use and without performing the copy process to the copy memory.
  • FIG. 1 is an explanatory diagram of conventional shared buffer control.
  • FIG. 2 is an explanatory diagram of writing back to a database according to the prior art.
  • FIG. 3 is an explanatory diagram of the time transition of the transaction processing according to the conventional technique.
  • FIG. 4 is a basic configuration diagram of the present invention.
  • FIG. 5 is a processing flowchart as one embodiment of the present invention.
  • FIG. 6 shows an example of database write-back according to one embodiment of the present invention.
  • FIG. 7 is an explanatory diagram of the time transition of the transaction processing according to the embodiment of the present invention.
  • FIG. 8 is an explanatory diagram of an effect comparison between the present invention and the conventional technique. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 is an explanatory diagram of conventional shared buffer control.
  • API and AP 2 are application programs related to database reference or execution of update transactions
  • 11 is a database management system that provides a database access function and manages the database.
  • MEM is the memory of the data processing system
  • Bl and B2 are shared buffers shared by multiple transactions
  • 16 stores information such as pre-update log or post-update log.
  • Reference numeral 19 denotes a log file for storing the contents of the buffer 16
  • reference numeral 20 denotes a database.
  • the application program AP 1 is trying to acquire information in the database 20 using the database management system 11 1, while the application program AP 2 is in the database 2 It is assumed that information of 0 is acquired, and further information of database 20 is to be updated.
  • the database management system 11 When the application program AP 1 issues a command to the database management system 11 to obtain predetermined information (that is, the record Z column), the database management system 11 as shown in FIG. If a predetermined page (block) exists in the shared buffer group, the page of the database 20 storing the content is stored in the shared buffer B1 as it is if it does not exist, and shared. Return the required information from buffer B 1 to the abrication program AP 1 o Similarly, suppose that the application * program AP2 issues a command to the database management system to acquire information on the same page as the application and programmer APIs. In such a case, the data base management system II does not need to retrieve the information from the database 20 again into the shared buffer, but instead retrieves the necessary information in the shared buffer B 1 previously retrieved from the database 20. Application ⁇ Return to program AP 2.
  • the shared buffer is a buffer that can be shared in parallel among multiple transactions for the reference system.
  • the update system for example, when a transaction updates the contents of the shared buffer B2 by an instruction of the application program AP2, the page number taken into the shared buffer B2 is unified. In order to lock the transaction, the transaction by the update instruction of the application program AP2 waits until the lock is released.
  • the release of the lip is performed in such a manner that the database management system 11 releases the lip after the transaction of the application program AP1 commits.
  • the application fetches the lip for updating by the transaction of the program AP2 and updates its shared buffer B2. In this way, even in the updating system, the shared buffer can be shared between a plurality of application-programs API and AP2.
  • the log buffer 16 is a buffer for temporarily storing the pre-update log and the post-update log in the shared buffer B2, and is stored in the log file 19 at a predetermined time and is made nonvolatile. .
  • FIG. 2 is an explanatory diagram of writing back to a database according to the prior art.
  • TRN 1 and TRN 2 are transactions
  • 70 is a lock control mechanism in the database management system 11
  • 30 is a bitmap in a shared buffer
  • 31 is an overflow in the database 20.
  • Page, and 20 ' is a database that makes the contents of the shared buffer non-volatile.
  • This example is an example of managing the use and non-use of overflow pages using a bitmap. That is, for example, the use and non-use of the overflow page 31 stored in a predetermined format is managed by the bitmap 30.
  • the bitmap 30 is a mapping table in which a bit ON is represented as an overflow page 31 being used, and a bit OFF is represented as an overburst port page 31 unused. Bitmap overflows 'use page' is updated as normal data in data during unused transaction
  • bitmap 30 As the bits are updated by the bitmap 30, the log is accumulated in the log file and the non-volatile memory. However, in order to recover bitmap 30 by a system crash, the smaller the number of updated logs, the lower the cost of recovery. Therefore, an update for recovery from a failure that causes the shared buffer to evaporate Bitmap 30 is written back to the disk (database 20 ') to reduce the amount of backlog.
  • bitmap that manages overflow is frequently accessed from transactions (called a hot spot), once it is read on the common buffer, it is accessed continuously and unless a forced write-back process is performed. There is little chance that writing back to disk (database 20 ') will occur spontaneously. As described above, in order to reduce the cost of recovery when the shared buffer of data is lost, the data is forcibly written back to the database 20 'in order to reduce the number of post-update logs required for recovery.
  • FIG. 3 is an explanatory diagram of the time transition of the transaction processing according to the conventional technique.
  • the overflow 'Transaction TRN 1 or TRN 2 trying to acquire page 31 is a database 20' from bitmap 30. It is in a standby state until the writing back to is completed. That is, when the write-back process of the bitmap 30 is started, as shown in the figure, the update requests by the transactions TRN 1 and TRN 2 are in a standby state waiting for the end of the write-back state.
  • the transaction response adds the write-back time of the shared buffer and the write time of the pre-update log to the original transaction response at the maximum.
  • the response (response time) of the transaction includes, in addition to the response of the original transaction, the maximum time required to write back the shared buffer to the database. This is the time that is added to the time to write the pre-update entry of the running transaction that updated the shared buffer to the log file.
  • the awaited transaction usually occupies many resources besides these resources. For example, another page in the database, memory, etc., including the page to be forcibly written out as a hot spot. Therefore, behind the waiting transaction, there is a possibility that the transaction may wait further waiting for the release of the resources held by this transaction.
  • the awaited transaction is basically not using any resources effectively.
  • Shadow paging means that if an update transaction is activated when a page is wrapped and the page cannot be shared by any transaction. Immediately allocate unused pages on disk (database) for write-back during updates before committing the transaction.
  • the database consists of a table showing the correspondence between page numbers and locations on the disk, and the page data.
  • the commit of the transaction uses the page correspondence table after the successful write-back of all updated pages. This is realized by changing from a page to a newly allocated page in this transaction. Talkback is simply done by discarding what is allocated to the update page.
  • Shadow 'paging is similar to the present invention in that a write-back area is allocated, but the former is allocation on disk, eliminating the sharing of updated pages, and improving write-back performance. No consideration has been given.
  • the latter method using the multi-version 'concurrency' control is described below.
  • the update transaction has its own copy and does not release other transactions to the commit without guaranteeing alignment when actually applied.
  • the reference transaction is allowed to refer to the latest committed copy in parallel. 'The reference after the update has been committed is switched to the new version. Both are in the middle of a transaction Not a clean copy. Also, various levels of integrity can be achieved by restricting certain commit and reference orders.
  • the present invention is similar to the latter method at first glance in that it copies at first glance, but does not solve any problem with forced writeback. It is an equally effective means.
  • An object of the present invention is to provide a multi-transaction system that can significantly reduce the waiting time for other transactions due to a lock period for writing back the contents of a shared buffer shared by a plurality of transactions to a database.
  • a method and apparatus for shortening the processing are provided.
  • the present invention it is possible to speed up the response on the update side of the target buffer, and further to increase the response speed when it is determined that there is no transaction for updating the target buffer. This eliminates processing such as copying to a copy memory, and as a result, the performance of the system can be further improved compared to the standard case using copying.
  • FIG. 4 is a basic configuration diagram of the present invention.
  • Reference numeral 10 denotes a data processing system including a CPU and memory
  • reference numeral 11 denotes a database management system that provides and manages an access function to a database and is configured by software.
  • reference numeral 12 denotes a replacement control unit for copying the contents of the target buffer, thereby shortening the period of the talk
  • reference numeral 13 denotes the target buffer.
  • a processing selection unit that determines whether or not the update of the key is performed.14 is an exclusive control unit that performs exclusive control of the target buffer.15 is a log before update or a log after update. It is a log control unit.
  • 16 is a log buffer that stores the pre-update log and the post-update log
  • 17 is 18 is a shared buffer (group) that is commonly used by a number of transactions.
  • 18 is a copy memory for temporarily holding the contents of the shared bap-up 17
  • 19 is a disk or non-volatile memory, etc.
  • a log file is configured
  • 20 is a database configured by a disk or a nonvolatile memory.
  • the shared buffer 17 used in the present invention is a work area commonly used by a plurality of transactions, and is not limited to the one described below, as long as it stores contents that need to be non-volatile. However, it may be of any kind.
  • the method for shortening the lock period of the shared buffer according to the present invention has the following steps. That is,
  • the replacement control unit 12 copies the same size as the hatched portion of the shared buffer 17 to be written back. Then, the replacement control unit 12 requests the exclusive control unit 14 for processing, and locks the target shared buffer 17.
  • the term “hook processing” refers to the period during which a transaction that updates the target buffer actually updates the buffer (however, the period during which the update is guaranteed), the non-volatility of the target buffer, Refers to the process for serializing the communication and other periods.
  • a transaction lock is a transaction.
  • a granule lock that directly guarantees the ACID characteristics of a transaction. For example, a transaction uses a logical page number or a logical record number of a database as a key. Locking, that is, before a transaction references or updates the contents of a database page, licks the page or record with a logically allocated number and commits the transaction. After completion It means unlocking.
  • the present invention further includes a determination step. That is, the present invention predicts whether or not there is a possibility of updating a shared buffer to be non-volatile, that is, predicts that any transaction will update that part of the database. The process of determining whether there is a possibility of updating if it is during the operation hours of the search process, or if there is a wide area shared lock, etc. When there is no possibility of updating, the contents of the target shared buffer are written back to the database without securing the copy memory and without performing the copy processing to the copy memory. To make it non-volatile.
  • the replacement control unit 12 includes a process selection unit 13.
  • the processing selection unit 13 determines the possibility of updating the shared buffer 17 to be nonvolatile.
  • the determination of the possibility of this update can be performed, for example, by using the exclusive control of the transaction lock. That is, it is possible to confirm and determine whether or not the target page of the shared buffer 17 is in transaction lock in the non-shared mode, whether or not there is a lock request in the non-shared mode, and the like. . If there is a possibility of updating, as described above, a copy memory 18 used for making the contents of the shared buffer 17 non-volatile is secured, and the target shared buffer is temporarily stored.
  • step (2) the processing control unit 13 in the replacement control unit 12 becomes the shared buffer 1 to be written back (non-volatile).
  • step (3) the processing in step (2) is optional, and the write-back (non-volatization) by the copy memory 18 can be performed unilaterally without confirming the possibility of updating.
  • the shared buffer 17 to be locked is temporarily locked by the exclusive control unit 14 and the pre-update log is written to the log file 19 via the log buffer 16 by the log control unit 15.
  • the input buffer 16 is a buffer (non-volatile memory) for storing the pre-update log and the post-update log. Further, the contents of the shared buffer 17 are written to the database 20 and are made non-volatile. When such processing is completed, the lock is released (unlocked) by the exclusive control unit 14 and the processing is completed.
  • the exclusive control unit 14 unlocks (unlocks) the shared buffer 17.
  • a transaction response is defined as ⁇ in addition to the original transaction response, the maximum time required to write back the shared buffer to the database and the update of the running transaction that updated the shared buffer. Since the time required to write the previous log to the log file 19 is added to J, the "time to write the shared buffer back to the database at the maximum" can be reduced, and a great effect can be obtained.
  • the possibility of updating the shared buffer 17 is investigated by the processing 1 in the processing selecting unit 13 and if there is no possibility of updating, In this case, the processing that does not use the copying memory is performed by the processing unit, so that unnecessary copying memory is not secured, so that the system performance can be further increased compared to the standard case using the copying. Can be improved.
  • the post-update log may be non-volatile. Note that this document only refers to the scope of the processing that accompanies the rewriting, but does not mention the necessity / unnecessity of using the portal outside this purpose. In other words, when it is necessary to make the pre-update log non-volatile, there is a running transaction that updates the shared buffer 17 that is subject to non-volatization, and that transaction updates the shared buffer 17. And there is a pre-update log.
  • the case where the non-volatization of the pre-update log is not necessary means that the transaction that has updated the non-volatile shared buffer 17 has already committed, or for example, after the overflow / page is newly allocated. This is a case where the current state is not reflected, such as the first write of data in which data is assembled on the shared buffer 17 regardless of the state of the original page of the disk (database 20) in the first writeback.
  • FIG. 5 is a processing flowchart as one embodiment of the present invention. The following describes each stage. The process enclosed by the dotted line indicates the lock period.
  • the processing selection unit 13 determines whether there is a possibility of updating the target shared buffer 17 to be made non-volatile. If there is no possibility of updating, proceed to processing (b). If there is possibility, proceed to processing (f). In addition, this process (a) is omitted, and the copy memory 18 is taken each time to make it non-volatile without confirming the possibility of updating. You may.
  • the target shared buffer 17 is temporarily waked up by the exclusive control unit 14. This lock is used to temporarily serialize the period during which the content of the target shared buffer 17 is actually updated and the period during which memory is copied for writing back to the database.
  • the pre-update log of the shared buffer is stored in the log file 19 via the log buffer 16 by the log control unit 15 and is made non-volatile.
  • the determination of the update possibility in the above process (a) uses the information of exclusive control (that is, transaction lock) to store the shared buffer 17 of the target page in the non-shared mode. This can be done depending on whether the transaction is locked in transaction mode or not, and whether it is a lock request in non-shared mode. That is, there is no possibility of updating-when there is no non-shared transaction lock in the lock or lock request for the target page. On the other hand, there is a possibility of updating when there is a non-shared transaction lock in the lock or lock request for the target page.
  • exclusive control that is, transaction lock
  • FIG. 6 is an example of database writeback according to one embodiment of the present invention.
  • TRN and TRN 2 are transactions
  • 30 is a bitmap
  • 18 is memory for replication
  • 31 is an overflow' page.
  • c above is intended to replicate the bit Tomatsupu shared buffer for copying memory 1 8.
  • the shared buffer is not targeted for page-fault, and the memory is not saved in the database. It will be resident in.
  • Such a shared buffer The state of the key is called the hot spot state.
  • Bitmap 30 that manages 31 is data that tends to be hot spots because the density of information is deeper in access units called pages. Even for such data, the general data described in the present invention describes the effects of forced write-back processing of the shared buffer that is performed so that a large amount of updated data is not required for recovery. By securing and implementing the copy memory 18 within the framework of the base management system, it is possible to minimize it.
  • the lock on the bitmap 30 is released, so that the transactions TRN1 and TRN2 using the bit-by-bit transaction lock can use the bitmap 30. become.
  • the transactions TRN 1 and TR 2 are in the standby state at the maximum during the period in which the bitmap 30 is copied to the copy memory 18 at the maximum, so that the talk period is shorter than in the conventional method. It can be significantly shortened.
  • drastic improvement in throughput can be expected since the occurrence of convoy is expected to be almost eliminated.
  • FIG. 7 is an explanatory diagram of the time transition of the transaction processing according to the embodiment of the present invention. As shown in the figure, time is plotted on the horizontal axis, and transaction processing is indicated by line segments. As described above, in the prior art, while bitmap 30 is being written back to database 20 ′, transactions TRN 1 and TRN 2 that attempt to update bitmap 30 are in a standby state. I was
  • transactions TRN 1 and TRN 2. Has no dependency on the process of writing bitmap 30 back to database 20 '.
  • the transaction is performed only during the period of copying (memory copying) from bitmap 30 to the copying memory, that is, during the period of memory copying from t1 to t2. This is the standby time for TRN 1 and TRN 2.
  • the period for copying the non-volatile contents to the memory is significantly shorter than the period for actually writing back the bitmap 30 to the database 20 ′. There will be very little oral competition during the period.
  • FIG. 8 is an explanatory diagram of an effect comparison between the present invention and the conventional technique.
  • (A) is a prior art
  • (B) is the present invention.
  • the write-back lock is necessary for the entire period of the write-back of the shared buffer, and it is necessary to make it exclusive to the update lock. Therefore, a transaction that updates the shared buffer waits for the completion of the write-back during the write-back of the shared buffer, which delays the transaction response.
  • the content of the shared buffer is made volatile
  • the content is temporarily copied to a temporarily secured memory
  • the copied content is made nonvolatile.
  • it is possible to significantly reduce the period of time required for the non-volatile use of the shared buffer, and to improve the response of the update side of the shared buffer by orders of magnitude.
  • a drastic improvement in throughput can also be expected.
  • the present invention when the application program accesses the database through the database management system, the lock period of the intervening shared buffer is significantly reduced. For example, in a data processing system using a computer, there is no need to wait for another transaction due to a lock period of a shared buffer shared by a plurality of transactions.
  • the industrial throughput can be greatly expected because the throughput of the system can be greatly improved.
  • the invention significantly shortens the write-back period, equivalent to handling traffic accidents that completely hinders the flow of transactions.
  • the occurrence of convoys can be expected to be almost eliminated, and a drastic improvement in indirect throughput rather than the response effect can be expected.

Landscapes

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

Description

明 細 書 共用バッファのロ ッ ク期間短縮処理方法及び装置
技術分野
本発明は共用バッファのロック期間短縮処理方法及び装置に関し- 特に、 データべ一ス管理システムを介してアプリケ一シヨ ン ' プロ グラムがデータベースをアクセスする場合に、 介在する共用バッフ ァのロッ ク期間を短縮する方法及び装置であって、 例えば、 複数の トランザクショ ンが共用する共用バッファの内容をデータベースに 書き戻すためのロッ ク期間によって他のトランザクショ ンが待機す る待機時間を著しく短縮することが可能な共用バッファのロッ ク崩 間短縮処理短縮方法及び装置に関する。
背景技術
近年、 コンピュータを使用したデータ処理システムにおいて、 「データベース」 なる用語が多用されている。 「データべ一ス」 と は種々の業務又はユーザが利用できるように情報を統合化した共用 ファイルをいう。 そして、 このデータベースを管理するソフ トゥェ ァをデータベース管理システムと称している。 また、 アプリケーシ ヨ ン . プログラムとは、 このデータベース管理システムを介して入 力データに応じたデータベースの参照や更新、 即ち、 トランザクシ ヨ ンを行うためにコンピュータにて実行可能な手順をいう。 従って. トランザクショ ンはアプリケーショ ン · プログラムの種類をデータ ベースの参照、 検索、 更新等として多重処理する際の実行単位であ 0
ところで、 トランザクショ ンがデ一夕ベースの情報をァクセスす るときには、. このアクセスに先立つトランザクショ ンにより、 ディ スクからデータベースの情報が既に共用バッファ上に転送され処理 されている場合にはそれを、 そうでない場合はディスク上の情報を 共用バッファに転送し、 データベース管理システムを介してこの共 用バッファの内容を参照や更新する。 このようなデータベースの情 報はディスクと共用バッファ群を合わせて保持される。 従って、 長 期に渡って次々にトランザクションが利用するデータは共用バッフ ァに常駐することになる。
しかし、 共用バッファ群は高速で揮発性メモリ上に確保されるの で、 ディスクに書き戻していない状態で完結したトランザクショ ン 処理の結果を、 システム異常等の原因で共用バッファの最新内容が 失われた場合に備えて更新後ログとして不揮髡性メモリに記億して おかねばならない。 この更新後ログによりディスク上の情報を利用 して最新の共用バッファの内容のリカバリが可能である。 従って、 更新後ログの量に比例したリカバリ時間が必要となるので、 リカバ リに関与する更新後ログを削減する必要がある。 ディスクの情報を 補う更新後ログだけでリカバリできるので、 多くの更新後ログが関 与する共用バッファの内容を時々ディスクに書き戻すことにより、 これを実現することができる。 この書き戻しのための期間を共用バ ッファのロック期間という。
共用バッファは一般に複数のトランザクショ ンにより共用されて いるので、 複数のトランザクションが共用バッファを使用すること になるが、 この場合、 従来、 ロック期間はこの共用バッファをァク セスする トランザクショ ンは逐次化のため書き戻し処理の待ち状態 に置かれることになつていた。
本発明はこの共有バッファのロ ッ ク期間をメモリ複写のための待 機期間だけにすることが可能なロック期間短縮処理短縮方法及び装 置に関する。 発明の開示
本発明の 1つの形態は、 データ処理システムにおける共用バヅ フ ァのロック期間短縮処理方法であって、 本発明の方法は、
共用バッファの内容を不揮発化する際に使用する複写用メモリを 確保する過程と、 対象となる共用バッファを一時的に口ックする過 程と、 不揮発化する共用バッファの内容を複写用メモリに複写する 過程と、 複写用メモリへの複写後に該共用バッファをアンロッ クす る過程と、 複写用メモリの内容を不揮発化する過程とを備えており. 共用バッファの内容を該複写用メモリに複写する前に、 対象とな る共用バッ ファをロックし、 複写を完了した後で複写用メモリ の内 容を不揮発化する前に、 共用バッファをアンロッ ク (即ち、 ロッ ク の解除) を行うことを特徴とする。
また、 本発明では不揮発化の対象となる共用バッ ファに更新の可 能性があるか否かを判定する過程をさらに備えており、 更新の可能 性がないときに、 複写用メモリを確保せず、 かつその複写用メモリ への複写処理を行わずに、 対象となる共用バッファの内容をデータ ベースに書き戻して不揮発化する。
本発明の他の形態は、 データベースへのアクセス機能を提供し管 理するデータベース管理システムと、 複数の トランザクショ ンが共 通に使用する共用バッファ (群) と、 一時的に更新前ログ及び更新 後ログを格納する口グバッファ と、 更新前ログ及び更新後ログを格 納するログファイルと、 諸データを格納するデータベースとを備え るデータ処理シスデムにおいて、 本発明の他の形態によれば、
データ処理システムは、 さらに一時的に前記共用バッ ファの内容 を保持するための複写用メモリを備え、 データベース管理システムは、 さらに対象となる共用バッファの 内容を複写用メモリに複写する制御を行う置換制御部と、 対象とな る共用バッファの更新の可能性を判定する処理選択部と、 対象とな る共用バッファの排他制御を行う排他制御部と、 更新前ログ又は更 新後ログを採取する口グ制御部とを備え、
共甩バッファの内容を複写甩メモリに複写する前に、 対象となる 共用バッファをロックし、 複写を完了した後で前記複写用メモリの 内容を不揮発化する前に、 共用バッファをアンロックし、 共用バッ ファのロック期間の短縮を図ることを特徵とする。
そして、 処理選択部は、 書き戻し対象となる共用バッファが書き 戻し期間中に何れかのトランザクショ ンにより更新対象となる可能 性があるかどうか予想して、 更新の可能性がないときに、 複写用メ モリを確保せず、 かつその複写用メモリへの複写処理を行わずに、 対象となる共用バッファの内容をデータベースに書き戻して不揮発 化する。 図面の簡単な説明
図 1 は従来の共用バッファ制御の説明図である。
図 2は従来技術によるデータベースへの書き戻しの説明図である。 図 3は従来技術による トランザクショ ン処理の時間遷移の説明図 である。
図 4は本発明の基本構成図である。
図 5は本発明の一実施例としての処理フローチヤ一トである。
図 6は本発明の一実施例によるデータベースの書き戻しの例であ る O
図 7は本発明 実施例による トランザクショ ン処理の時間遷移の 説明図である。 図 8は本発明と従来技術との効果比較の説明図である。 発明を実施するための最良の形態
本発明の実施例を説明する前に従来技術とその問題点を以下に説 明する。
図 1 は従来の共用バッファ制御の説明図である。 図中、 A P I , A P 2はデータベースの参照又は更新トランザクショ ンの実行に関 わるアプリケーショ ン ' プログラムであり、 1 1 はデータベースへ のアクセス機能を提供し、 データベースを管理するデータベース管 理シスデムでありソフ トウヱァで構成され、 M E Mはデータ処理シ ステムのメモリであり、 B l, B 2は複数の トランザクショ ンが共 用する共用バッファであり、 1 6は更新前ログ又は更新後ログ等の 情報を格納する口グバッ ファであり、 1 9は口グバッ ファ 1 6 の内 容を保存するログファイルであり、 2 0はデータベースである。
ここで、 アプリケーショ ン · プログラム A P 1 はデータべ一ス管 理システム 1 1 を利用してデータベース 2 0の情報を取得しよう と しており、 一方、 アプリケーショ ン ' プログラム A P 2はデータべ ース 2 0の情報を取得し、 さらにデータベース 2 0の情報を更新し よう としているものとする。
アプリケーショ ン · プログラム A P 1がデータベース管理システ ム 1 1 に対して、 所定の情報 (即ち、 レコー ド Zカラム) を取得す る命令を発した場合に、 図示のように、 データベース管理システム 1 1 は、 共用バッファ群に所定のページ (ブロッ ク) が存在してい ればそのまま、 存在しなければその内容が格納されているデータべ —ス 2 0のぺージを共用バッ ファ B 1 に取り込み、 共用バッ ファ B 1から必要な情報をアブリケ一シヨ ン · プログラム A P 1 に返却す る o 同様に、 アプリケーショ ン * プログラム A P 2が、 アプリケーシ ヨン , プログラムァ A P I と同一ページにある情報を取得する命令 をデータベース管理システムに発したとする。 このような場合、 デ 一夕ベース管理システム I I は、 デ一夕ベース 2 0から再度、 共用 バッファに情報を取り込む必要はなく、 先にデータベース 2 0から 取り込んだ共用バッファ B 1 における必要な情報をアプリケーショ ン · プログラム A P 2に返却する。
また、 ページ番号をキーにして口ックするという方針が多く採用 されている。 この場合、 共用バッファは参照系については、 複数の トランザクショ ン間で並行して共用できるバッファである。 一方、 更新系については、 例えば、 アプリケーショ ン · プログラム A P 2 の命令でトランザクショ ンが共用バッファ B 2の内容を更新する場 合に、 共用バッファ B 2に取り込んだページ番号をキ一にして口ッ クするために、 アプリケーショ ン ' プログラム A P 2の更新命令に よる トランザクションは、 そのロックが解除されるまで待機状態と なる。
口ックの解除は、 アプリケーショ ン ' プログラム A P 1 のトラン ザクシヨ ンがコ ミ ッ トした後に、 データベース管理システム 1 1 が その口ックを解除するようにして行われる。 口ックが解除されたな らば、 アプリケーショ ン ' プログラム A P 2の トランザクショ ンに よる更新のために口ックを取り、 その共用バッファ B 2を更新する。 このように更新系においても共用バッファは複数のアブリケーショ ン - プログラム A P I , A P 2間で共用することができる。
また、 共用バッファのロックの範囲を、 例えば、 サブページ単位 又はレコード単位というように、 ページ単位よりも小さくすること により、 複数のアプリケーシヨン ' プログラム A P I , A P 2が共 用バッファを並行して更新することができるようになる。 そして、 上述のようにして更新した共用バッファの内容 (ページ) を所定の時期にディスク (データベース 2 0 ) に書き戻すことによ り、 ページを最後に読み書きした後に、 ログとして保持されていた 更新内容をディスクに反映し、 これを共用バッファ揮発時のリカバ リに使用する必要を無くすことができる。 ここで、 ログバッファ 1 6は共用バッファ B し B 2での更新前ログ及び更新後ログを一時 的に格納するバッファであり、 所定の時期にログファイル 1 9に格 納されて不揮発化される。
図 2は従来技術によるデータベースへの書き戻しの説明図である。 T R N 1 , T R N 2はトラ ンザクショ ンであり、 7 0はデータべ一 ス管理システム 1 1 におけるロック制御機構、 3 0は共用バッファ 内のビッ トマップであり、 3 1 はデータベース 2 0内のオーバーフ ロー . ページであり、 2 0 ' は共用バッファの内容を不揮発化する データベースである。 本例はビッ トマップを使用してオーバーフロ 一 · ページの使用と未使用を管理する例である。 即ち、 例えば、 所 定の形式で格納されたオーバーフロー · ページ 3 1 の使用と未使用 をビッ トマップ 3 0で管理する。 ビッ トマップ 3 0は、 ビッ トのォ ンをオーバ一フロー · ページ 3 1 の使用中とし、 ビッ トのオフをォ 一バーフ口― · ページ 3 1 の未使用として表現したマッ ピング表で ある。 ビッ トマップはオーバーフロー ' ページを使用 ' 未使用とす る トランザクショ ンの中でデータ中の通常のデータとして更新され る
ビッ トマップ 3 0によるビッ トの更新により、 そのログがログフ アイルゃ不揮発化メモリに蓄積されていく。 しかし、 システムクラ ッシュによるビッ トマップ 3 0のリカバリのためには、 更新後ログ が少なければ少ないほど、 リカバリの低コス ト化が図れる。 そこで、 共用バッファが揮発するような障害に対する リカバリのための更新 後口グ量を削減するためにビッ トマップ 3 0のディスク (データべ ース 2 0 ' ) への書き戻しが行われる。
オーバーフローを管理するビッ トマップはトランザクショ ンから も頻繁にアクセスされる (ホッ トスポッ トと称する) ので、 共通バ ッファ上に一旦読み込まれると引き続きアクセスされて強制的に書 き戻し処理を実行しない限り、 ディスク (データベース 2 0 ' ) へ の書き戻しが自然に発生する機会は殆どない。 このようにデータの 共用バッファ喪失時のリカバリを低コスト化する上で、 リカバリに 必要な更斩後ログを削減するために、 強制的にデータベース 2 0 ' に書き戻しを行っている。
図 3は従来技術による トランザクショ ン処理の時間遷移の説明図 である。 例えば、 図 2に示すビッ トマップ 3 0を強制的に書き戻し の間、 オーバーフロー ' ページ 3 1 を獲得しょう とする トランザク シヨン T R N 1又は T R N 2は、 ビッ トマップ 3 0によるデータべ ース 2 0 ' への書き戻し終了するまで待機状態となる。 即ち、 ビッ トマップ 3 0の書き戻し処理が開始されると、 図示のように、 トラ ンザクシヨ ン T R N 1, T R N 2による更新要求は書き戻し状態の 終了を待つ待機状態となっている。
ところで、 図 2に示すビッ トマップ 3 0に限らず、 前述のように、 デ一夕ベースを更新する場合、 共用バッファ上のホッ トスポッ トを 強制的に書き戻し途中で、 トランザクションが勝手にこのバッファ の更新を行うと、 ディスク上にはメモリ上で更新途中のデータが書 き込まれるおそれがある。 共用バッファの内容が喪失するシステム · クラッシュが発生した後、 これをリカバリするためには、 構造的に 制約を課してアイデンポテント性を持つ (若干のログの喪失があつ ても、 より古いログで代行できるという性質) 特殊なログ方式を前 提にする必要がある。 本発明では一般的な更新前口グ、 更新後口グの喪失を許さない口 グ方式を想定しているので、 書き戻しされる共用バッファ と同期し た口グ書き出しは不可能であるので、 書き戻し開始以前にその共用 バッファに関わる全ログ取得が終了し、 書き戻し中のこの共有バッ ファへのトランザクショ ンの更新は禁止せざるを得ない。
このように、 共用バッファをデータベースに書き戻している期間. その共用バッファを更新しょう とする他の トランザクショ ンを待機 状態とする必要がある。 従って、 トランザクショ ンのレスポンスが 悪化する問題が発生している。 ここで、 トランザクショ ンのレスポ ンスは、 本来の トランザクショ ンのレスポンスに最大で共用バッフ ァの書き戻し時間と更新前ログの書き出し時間が加算される。 即ち. トランザクショ ンが更新する共用バッファをデータベースに書き戻 す場合、 その トランザクショ ンのレスポンス (応答時間) は、 本来 の トランザクショ ンのレスポンスに加えて、 最大で共用バッ ファを データベースに書き戻す時間とその共用バッフ ァを更新した実行中 の トランザクショ ンの更新前口グをログフアイルに書き出す時間が 加算された時間である。
ところで、 待ちに入った トランザクショ ンは、 この資源以外にも 多くの資源を専有しているのが普通である。 ホッ トスポッ トである 強制書き出し対象のページを含めて、 例えば、 データベースの別の ページ、 メモリ等が考えられる。 従って、 待ちに入った トランザク シヨ ンの背後で、 この トランザクショ ンの保有する資源の開放を待 っトランザクショ ンが更に待ちに入る可能性がある。 待ちに入った トランザクショ ンは基本的にはどの資源も有効利用していないので.
M I P S能力 ( 1秒間に 1 0 0万回の命令能力) の高い装置を持つ てきても最初の待ちが解消しない限り、 どの資源も有効利用できな い。 このような現象は道路上の交通渋滞と全く同じであり、 コンポ ィ現象として知られている。 なお、 他のデータベースのバッファ制 御に関係する従来技術としてシャ ドウ · ページングによる方法と、 マルチバージョン · コンカレンシ ' コントロールによる方法とがあ る。 これらの方法は後述する本発明、 即ち、 共用バッファを複写す る点で類似する方法であるが、 以下の説明から明らかなように本発 明とは相違する方法である。
シャ ドウ .ページングとは、 ぺージ単位で口ックされ更新トラン ザクシヨンが動作する場合は、 そのページをどのトランザクション も共用できない。 トランザクショ ンのコミ ツ ト以前の更新途中での 書き戻しのために、 直ちにディスク (データベース) 上に未使用べ ージを割り付ける。 データベースはページ番号とディスク上の位置 の対応を示す表と、 ページデータからなっており、 トランザクショ ンのコミ ッ トは、 全ての更新ページの書き戻しの成功後に、 ページ の対応表を元のぺ一ジからこのトランザクショ ンで新たに割りつけ たページに変更することで実現される。 口一ルバックは単に更新べ ージに割り当てたものを放棄することで済ませられる。 シャ ドウ ' ページングでは、 書き戻し用の領域を割り付ける点で本発明と類似 しているが、 前者はディスク上での割り付けであり、 更新ページの 共用を排除しており、 書き戻し性能の向上に関する配慮は全くなさ れていない。
後者のマルチバージョン ' コンカレンシ ' コン トロールによる方 法を以下に説明する。 この方法では、 実際に適用する場合に整列 性を保証しないで、 更新トランザクションは専用のコピーを持ち、 コミ ツ 卜まで他のトランザクショ ンを開放しない。 しかし、 参照ト ランザクショ ンは最新にコ ミ ッ トされたコピ一を並行して参照する ことが許される。'更新がコミ ッ トされた後の参照は新しいパージョ ンに切り換えられる。 どちらも トランザクショ ン途上にあるダ一テ ィなコピーではない。 また、 一定のコ ミ ッ ト順や参照順に制限を付 けることにより、 種々のレベルのインテグリティを達成することが できる。 本発明は一見してコピーする点でこの後者の方式に類似す るが、 強制書き戻しに関して何らかの問題を解決するものではない < 本発明はマルチパージヨ ンにも、 最も厳密な伝統的な排他制御のも とでも等しく有効な手段である。
本発明の目的は、 複数のトランザクショ ンが共用する共用バッフ ァの内容をデータベースに書き戻すためのロッ ク期間によって他の トランザクショ ンが待機する待機時間を著しく短縮することが可能 な複数トランザクショ ンの処理短縮方法及び装置を提供することに のる。
本発明によれば対象となるバッファの更新側のレスポンスの高速 化が可能となり、 さらに、 対象となるバッファを更新する トランザ クシヨ ンのないことが判定されると、 レスポンスの高速化を図るた めに複写用メモリに写す等の処理を省略し、 その結果システムの性 能を、 複写を利用する標準的な場合より も、 さらにスループッ トを 向上させることができる。
図 4は本発明の基本構成図である。 1 0は C P U及びメモ リ等か らなるデータ処理システムであり、 1 1 はデータベースへのァクセ ス機能を提供し管理するデータべ一ス管理システムでありソフ トゥ エアで構成される。 データベース管理システム 1 1 において、 1 2 は対象となるバッファの内容の複写を行い、 その結果口ッ ク期間を 短縮することを可能とする置換制御部であり、 1 3は対象となるバ ッフ ァの更新が行われるか否かを判定する処理選択部であり、 1 4 は対象となるバッ ファの排他制御を行う排他制御部であり、 1 5は 更新前ログ又は更新後ログを採取するログ制御部である。 1 6は更 新前ログ及び更新後ログを格納するログバッ ファであり、 1 7は複 数のトランザクションが共通に使用する共用バッファ (群) であり. 1 8は一時的に共用バップア 1 7の内容を保持するための複写用メ モリであり、 1 9はディスク又は不揮発性メモリ等により構成され るログファイルであり、 2 0はディスク又は不揮発性メモリ等によ り構成されるデータベースである。
なお、 本発明で使用する共用バッファ 1 7は、 複数のトランザク ショ ンが共通に使用する作業領域であり、 不揮発化する必要のある 内容を記億するものであれば、 後述するものに限らず、 如何なる種 類のものであってもよい。
' このような構成において、 本発明による共用バッファのロック期 間短縮処理方法は、 以下のような過程を有する。 即ち、
共用バッファ ( 1 7 ) の内容を不揮発化する際に使用する複写用 メモリ ( 1 8 ) を確保する過程 (③) と、
対象となる共用バッファをトランザクション · ロックの下位の口 ックで一時的にロックする過程 (④) と、
書き戻し (不揮発化) する共用バッファの内容を複写用メモリに 複写する過程 (⑤) と、 - 複写用メモリへの複写後に共用バッファをアンロックする過程
(⑥) と、
複写用メモリの内容を書き戻し (不揮発化) する過程 (⑧) とを 備えており、
共用パッファの内容を複写用メモリに複写する前に、 対象となる 共用バッファをロックし、 複写を完了した後、 複写用メモリの内容 を書き戻し (不揮発化) する前に、 共用バッファをアンロック (即 ち、 ロックの解除) を行うことを特徵とする。
さらに、 書き戻し (不揮発化) の対象となる共用バッファの更新 の可能性があるか否か、 即ち、 何れかの トランザクショ ンがデータ ベースのその個所を更新することが予測できるので更新の可能性が あるか否か、 を判定する過程を備えており、
更新の可能性がないときに、 複写用メモリを確保せず、 かつその 複写用メモリへの複写処理を行わずに、 対象となる共用バッ ファの 内容をデータベースに書き戻して不揮発化することを特徵とする。
これらの過程はデータベース管理システム 1 1 において処理され るので、 個々の機能についてさらに詳しく説明する。 置換制御部 1 2は共用バッファ 1 7の内容を不揮発化する際、 即ち、 データべ一 ス 2 0に書き戻す際に、 書き戻しの対象となる共用バッファ 1 7の 斜線部分と同一サイズの複写用メモリ 1 8をメモリ領域に確保する, 次に、 置換制御部 1 2は排他制御部 1 4 に処理を依頼し、 対象とな る共用バッファ 1 7をロッ ク処理する。 ここで、 口ッ ク処理とは、 対象のバッファを更新する トランザクショ ンが実際にバッファを更 新する期間 (但し、 更新されたことが保証される期間) と、 対象と なるバッファに対する不揮発化や通信等を行う期間とをシリアライ ズするための処理を指す。
なお、 ここでいうロ ッ クは、 トランザクショ ン-ロッ クを指すもの ではなく、 データベースをアクセスするためのアクセスモジュール におけるバッファ制御機能と、 共用バッ ファの内容をディスク (デ 一夕べ一ス) に書き戻す機能とが同時並列的に処理を行わないため のロックを意味する。 ところで、 トランザクショ ンロッ クとは、 ト ランザクシヨ ンの A C I D特性を直接的に保証する トランザクショ ン . グラニュールでのロックであり、 例えば、 トランザクショ ンが データベースの論理ページ番号、 論理レコー ド番号等をキーにして ロックすること、 即ち、 トランザクショ ンがデータベースのページ の内容を参照、 更新する前にそのページ又はレコ一 ドを論理的に割 り振られた番号で口ックし、 トランザクショ ンのコ ミ ッ ト完了後に アンロックすることを意味する。
そして、 排他制御部 1 4によつて共用バッファ 1 7をロックした ならば、 その不揮発化する内容を複写用メモリ 1 8に複写し、 不揮 発化する内容を複写用メモリ 1 8に複写した後に、 再度、 排他制御 部 1 4を呼び出し、 共用バッファ 1 7をアンロックする。
その後に、 更新前口グの不揮発化や更新後ログの不揮発化が必要 ならば、 その不揮発化を行い、 複写用メモリ 1 8の内容をデータべ ース 2 0に書き戻すこ とにより不揮発化を行う。 共用バッファ 1 7 を不揮発化したならば、 不要となった複写用メモリ 1 8を開放する c 前述したように、 本発明ではさらに判定過程を備えている。 即ち、 本発明は不揮発化の対象となる共用バッファの更新の可能性がある か否か、 即ち、 何れかの トランザクショ ンがデータベースのその個 所を更新することが予測できる、 即ち、 例えば、 バッチ検索処理の 運用時間帯に入っている場合、 また、 広域の共用ロックが出ている 場合等では確実に更新しないということを予想できるので、 更新の 可能性があるか否か、 を判定する過程を備えており、 更新の可能性 がないときに、 複写用メモリを確保せず、 かつその複写用メモリへ の複写処理を行わずに対象となる共用バッファの内容をデータべ一 スに書き戻して不揮発化する。
この判定過程ついてさらに詳しく説明する。 図 4構成に示すよう に、 置換制御部 1 2は処理選択部 1 3を備えている。 処理選択部 1 3は不揮発化の対象となる共用バッファ 1 7の更新の可能性を判定 する。 この更新の可能性の判定ば、 例えば、 トランザクショ ンロッ クの排他制御を利用して行うことができる。 即ち、 対象となるぺ一 ジの共用バッファ 1 7を非共用モードでトランザクショ ンロック中 であるか否か、 非共用モー ドのロッ ク要求があるか否か等により確 認し判定することができる。 そして、 更新の可能性があれば、 前述のように、 共用バッ フ ァ 1 7の内容を不揮発化する際に使用する複写用メモリ 1 8を確保し、 対象となる共用バッファを一時的に口ック し、 不揮発化する共用バ ッファの内容を複写用メモリに複写する、 等の過程を取ることにな る。 また、 更新の可能性がないときは複写用メモリ 1 8を確保せず、 従って、 複写用メモリ 1 8への複写を行わずに、 対象となる共用バ ッファ 1 7の内容を不揮発化する。
図 4構成の①〜⑨はデータ処理装置の処理手順を示している。 以 下にこれらの処理を個々に説明する。 図中の同一番号は同一の処理 を示す。
① 例えば、 共用バッファ 1 7の斜線部分を書き戻し (不揮発化) しょう とした場合に、 置換制御部 1 2内の処理制御部 1 3は書き戻 し (不揮発化) の対象となる共用バッファ 1 7について更新の可能 性があるか否かを確認する。 更新の可能性がなければ次の②を行い、 更新の可能性があれば処理③へ進む。 なお、 図の下方の①で示すよ うに、 この①の処理は選択的であり、 一方的に更新の可能性を確認 せずに複写用メモリ 1 8による書き戻し (不揮発化) を行うことが できるし、 一方、 上述のように更新の可能性を判定してから、 その 判定に従って書き戻し (不揮発化) してもよい。
② 対象となる共用バッファ 1 7を排他制御部 1 4により一時的 にロックし、 更新前ログを口グ制御部 1 5により口グバッファ 1 6 を経て口グファイル 1 9に書き込む。 ここで、 口グバッファ 1 6は 更新前ログと更新後ログを格納するバッファ (不揮発メモリ) であ る。 さらに、 共用バッファ 1 7の内容をデータベース 2 0に書き込 み、 不揮発化する。 このような処理が終了したならば排他制御部 1 4によりロックを解除 (アンロッ ク) し、 処理を完了する。
③ 共用バッファ 1 7に トランザクショ ンによる更新要求があれ ば、 共用バッファ 1 7の斜線部分と同一サイズ又はこれより大きい サイズの複写用メモリ 1 8を確保する。
④ 排他制御部 1 4によって共用バッファ 1 7をロックする。
⑤ 不萍発化する共用バッファ 1 7の内容を複写用メモリ 1 8 に 複写する。
⑥ 複写が完了すると、 直ちに排他制御部 1 4により共用バッフ ァ 1 7のロックを解除する (アンロック) する。
⑦ 口グバッファ 1 6に格納されている更新前口グをログフアイ ル 1 9 に格納し、 不揮発化する。
⑧ 複写用メモリ 1 8の内容をデータベース 2 0 に書き込み不揮 発化する。
⑨ 複写用メモリ 1 8の不揮発化が完了すれば複写用メモリ 1 8 の領域を開放する。
上述したように、 処理④において共用バッファ 1 7をロックした 後、 処理⑤において共用バッファ 1 7の斜線部分で示す不揮発化す る内容を複写用メモリ 1 8に複写し、 複写が完了した後、 直ちに処 理⑥において共用バッファ 1 7をアンロックする。 従って、 共用バ ッファ 1 7のロック期間は非常に短時間になり、 共用バッファを更 新する トランザクションのレスポンスを向上させることができる。 前述のように、 トランザクショ ンのレスポンスとは、 「本来のトラ ンザクショ ンのレスポンスに加えて、 最大で共用バッファをデータ ベースに書き戻す時間とその共用バッファを更新した実行中の トラ ンザクショ ンの更新前ログをログフアイル 1 9に書き出す時間が加 算されるもの J であるから、 「最大で共用バッファをデータベース に書き戻す時間』 が削減できるので大きな効果が得られる。
また、 処理選択部 1 3における処理①により、 共用バッファ 1 7 についての更新の可能性について調査し、 更新の可能性がない場合 には、 処理②により複写用メモリを用いない処理を行うので、 不必 要な複写用メモリを確保することがないので、 システムの性能を複 写を利用する標準的な場合より も、 さらにスループッ トを向上させ ることができる。
ところで、 上記の処理②及び⑦における更新前ログの不揮発化は 必ずしも必要でない。 更新前ログの不揮発化が必要な場合と、 必要 でない場合を以下に説明する。 また、 形式によっては更新後ログの 不揮発化もあり得る。 なお、 ここでは書き戻しに付帯した処理の範 囲に言及しているだけであって、 この目的外の口グ利用に関しての 必要 · 不必要については言及していない。 即ち、 更新前ログの不揮 発化が必要な場合とは、 不揮発化の対象となる共用バッファ 1 7を 更新する実行中のトランザクショ ンが存在し、 その トランザクショ ンが共用バッファ 1 7を更新しており、 更新前ログがある場合であ る。 また、 更新前ログの不揮発化が不必要な場合とは、 不揮発化す る共用バッファ 1 7を更新した トランザクショ ンが既にコ ミ ッ ト し ている場合、 又は例えば、 オーバーフロー · ページの新規割り付け 後の初めての書き戻しでディスク (データベース 2 0 ) の元のぺー ジの状態に無関係に共用バッファ 1 7上でデータを組み立てたデー 夕の初回書込みのような、 現状反映のない場合である。
図 5は本発明の一実施例としての処理フローチャー トである。 以 下に各段階ごとに説明する。 なお、 点線で囲った過程はロッ ク期間 を示す。
( a ) 処理選択部 1 3は対象となる不揮発化しよう とする共用 バッファ 1 7について更新の可能性があるか否かを判定する。 更新 の可能性がなければ、 処理 (b ) に進み、 可能性があれば、 処理 ( f ) へ進む。 なお、 この処理 ( a ) を省き、 更新の可能性を確認す ることなく、 毎回、 複写用メモリ 1 8を取り不揮発化するようにし てもよい。
( b ) 対象となる共用バッファ 1 7を排他制御部 1 4により一 時的に口ックする。 このロックは、 対象となる共用バッ フ ァ 1 7の 内容を実際に更新する期間と、 データベースへの書き戻しのための メモリ複写の期間とを、 一時的にシリアライズするためである。
( c ) 必要な場合には、 共用バッファの更新前ログをログ制御 部 1 5により口グバッファ 1 6を経てログフアイル 1 9に格納し、 不揮発化する。
( d ) 対象となる共用バッファの不揮発化、 通信等の処理を行 ラ 0 '
( e ) 処理が終了したならば排他制御部 1 4によりロックを解 除 (アンロック) し、 処理を完了する。
( f ) 対象となる共用バッファに更新の可能性がある場合には、 共用バッファの対象領域と同一サイズの複写用メモリ 1 8を確保す る o
( g ) 排他制御部 1 4によって共用バッファ 1 7をロックする。 このロックにより トランザクシヨシの共用バッファ域へのァクセス が一時的に禁止される。
( h ) 共用バッファ 1 7の不揮発化する内容 (図 4参照、 斜線 部分) を複写用メモリ 1 8 に複写する。
( i ) 複写が完了すると、 直ちに排他制御部 1 4により共用バ ッファ 1 7のロックをアンロックする。
( j ) 口グバッファ 1 6に格納されている更新前ログをログフ アイル 1 9 に格納し、 不揮発化する。
( k ) 対象となる共用バッファの不揮発化、 通信等の処理を行 う o
( 1 ) 複写用メモリ 1 8の不揮発化が完了すれば複写用メモリ 1 8の領域を開放する。
前述したように、 上記の処理 ( a ) における更新の可能性の判定 は、 排他制御 (即ち、 トランザクショ ンロッ ク) の情報を利用し、 対象となるページの共用バッファ 1 7を、 非共用モ一 ドでトランザ クシヨ ンロック中であるか否か、 非共用モー ドのロック要求である か否かによって行うことができる。 即ち、 更新の可能性がないのは- 対象ページに対する口ック若しくはロック要求に、 非共用の トラン ザクシヨ ンロッ クがない場合である。 一方、 更新の可能性があるの は、 対象ページに対するロック若しく はロッ ク要求に、 非共用の ト ランザクシヨ ンロッ クがある場合である。
例えば、 ある対象ページに対して、 共用モー ドでロッ ク中の 1 つ 又は複数のトランザクショ ンがある場合には直接書き戻しのための 口ッ ク期間中に更新のための待ちの可能性が低いと推定することが できる。 一方、 ある対象ページに対して、 非共用モー ドでロッ ク中 或いはロック待ち トランザクショ ンがある場合には、 直接書き戻し のためのロック期間に更新のための待ち発生の可能性が高いと推定 することができる。 この推定を根拠に更新の可能性の判定を行う。
図 6は本発明の一実施例によるデータベースの書き戻しの例であ る。 図 2 と同様に、 T R N し T R N 2はトランザクショ ンであり、 3 0はビッ トマップであり、 2 0, 2 0 ' はデータベースであり、 1 8は複写用メモリであり、 3 1 はオーバーフロー ' ページである c 前述のように、 共用バッファのビッ トマツプを複写用メモリ 1 8 に 複写するものとする。
ところで、 データベースにおいて、 ある共用バッファを更新する 頻度が他に比べて著しく高い場合には、 その共用バッファはページ ァゥ トの対象とならないため、 データベース内に更新内容が保存さ れないままでメモリに常駐した状態となる。 このような共用バッフ ァの状態をホッ トスポッ トの状態と称する。
図 2に示す従来技術で説明したように、 オーバーフロー · ページ
3 1を管理するビッ トマップ 3 0は情報の密度がページというァク セス単位で比較して濃いために、 ホッ トスポッ トなりやすいデータ である。 このようなデータについても、 大量の更新後口グをリカバ リに必要とすることのないように実施される共用バッファの強制的 な書き戻し処理による影響を、 本発明で述べた一般的なデータべ一 ス管理システムの枠内で複写用メモリ 1 8を確保して実施すること により最小限に押さえることが可能になる。
そして、 複写が完了するとビッ トマップ 3 0のロックは解除され るので、 ビッ ト単位のトランザクショ ン · ロッ クを利用している ト ランザクシヨン TRN 1, TRN2はビッ トマップ 3 0を使用する ことができるようになる。 即ち、 トランザクショ ン TRN 1 , TR 2が待機状態となるのは、 最大でもビッ トマップ 3 0を複写用メ モリ 1 8に複写する期間だけとなるので、 従来の方式に比べて口ッ ク期間を著しく短縮することができる。 本発明では従来に比べて 1 万分の 1から 1 0万分の 1の程度まで短縮することができ、 トラン ザクションのレスポンスを桁違いに改善することができる。 さらに、 コンボイの発生が殆ど無くなると期待できることから、 スループッ トの抜本的な改善も期待できる。
図 7は本発明の実施例による トランザクショ ン処理の時間遷移の 説明図である。 図示のように、 横軸に時間を取り、 トランザクショ ン処理を線分で示している。 前述のように、 従来技術ではビッ トマ ップ 3 0をデータベース 2 0 ' に書き戻ししている間は、 ビッ トマ ップ 3 0を更新しょう とする トランザクション TRN 1 , TRN 2 は待機状態となっていた。
本発明の実施例によれば、 トランザクショ ン TRN 1 , TRN 2. はビッ トマップ 3 0をデータベース 2 0 ' に書き戻す処理との依存 関係はない。 ビッ トマップ 3 0をデータベース 2 0 ' に書き戻す準 備として、 ビッ トマップ 3 0から複写用メモリに複写 (メモリ複写) を行う期間、 即ち、 t 1から t 2のメモリ複写の期間だけ トランザ クシヨ ン T R N 1 , T R N 2の待機時間となる。
そして、 不揮発化する内容をメモリ に複写する期間は、 ビッ トマ ップ 3 0をデータベース 2 0 ' に実際に書き戻す期間に比べて桁違 いに短いことから、 t 1カヽら t 2までの期間の口ッ クの競合は極め て少ないものとなる。
図 8は本発明と従来技術との効果比較の説明図である。 (A ) は 従来技術であり、 ( B ) は本発明である。 図示のように、 (A ) の 場合は共用バッファの書き戻しの全期間にわたって書き戻しによる 口ッ クが必要であり、 更新による口ックとの間で排他的にする必要 がある。 従って、 共用バッファを更新する トランザクショ ンは共用 バッファの書き戻し中はその書き戻しの完了を待つこ とになり、 ト ランザクショ ンのレスポンスが遅れることになる。
これに対して、 ( B ) では共用バッファの書き戻しのためのロッ クは、 書き戻しの準備としてのメモリ複写の期間だけである。 従つ て、 入出力を伴う実際の書き戻し中にはロ ッ クは解除されるので、 共用バッ ファを更新する トランザクショ ンは、 図示からも明らかな ようにほとんど待たされることはない。
以上説明したように、 本発明によれば、 共用バッ フ ァの内容を不 揮発化する際に、 一時的に確保したメモリにその内容を一旦複写し、 その複写した内容を不揮発化するようにしているので、 共用バッフ ァの不揮発化による口ッ ク期間を大幅に短縮することができ、 共用 ノくッファの更新側のレスポンスを桁違いに向上させることができる。 さらに、 コンボイの発生が殆ど無くなると期待できることから、 ス ループッ トの抜本的な改善も期待できる。 産業上の利用可能性
本発明 (こよる共用バッファのロック期間短縮処理方法及び装置に よれば、 データベース管理システムを介してアプリケージヨ ン ' プ 口グラムがデータベースをアクセスする場合に、 介在する共用バッ ファのロック期間を著しく短縮することができるので、 例えば、 複 数のトランザクショ ンが共用する共用バッファのロック期間によつ て他のトランザクショ ンが待機することがなくなる。 従って、 コン ピュー夕を使用したデータ処理システムにおいて、 システムのスル ープッ トを大幅に向上させることができるので産業上の利用性は大 いに期待することができる。 現在の 0 L T Pオンライン ' トランザ クション処理では、 1 0 0 0多重以上の同時処理は極めて普通にな りつつあり、 ホッ トスポッ トでの待ちは直ちにコンボイに結びつく ことは、 正に過密化している世界の都市の交通渋滞から容易に類推 することができる。 本発明により トランザクショ ンの流れを完結的 に妨げる交通事故処理に相当する書き戻し期間の大幅な短縮により、 コンボイの発生が殆ど無くなると期待できることから、 レスポンス 効果よりも、 むしろ間接的なスループッ トの抜本的な改善を期待す ることができる。

Claims

請 求 の 範 囲
1 . データ処理システムにおける共用バッファのロ ッ ク期間短縮 処理方法において、 該方法は以下の過程、 即ち、
共用バッファ ( 1 7 ) の内容を不揮発化する際に使用する複 写用メモリ ( 1 8 ) を確保する過程 (⑧) と、
対象となる共用バッファを一時的にロックする過程 (④) と 不揮発化する共用バッファの内容を該複写用メモリに複写す る過程 (⑤) と、
該複写用メモリへの複写後に該共用バッファをアンロッ クす る過程 (⑥) と、
該複写用メモリの内容を不揮発化する過程 (⑧) とを備えて おり、
該共用バッファの内容を該複写用メモリ に複写する前に、 対 象となる共用バッ ファをロッ ク し、 複写を完了した後、 該複写用メ モリの内容を不揮発化する前に、 共用バッ フ ァをアンロ ッ クするこ とを特徵とするデータ処理システムにおける共用バッフ ァのロッ ク 期間短縮処理方法。
2 . 不揮発化の対象となる共用バッファに更新の可能性があるか 否かを判定する過程をさらに備えており、
更新の可能性がないときに、 該複写用メモリを確保せず、 かつそ の複写用メモリへの複写処理を行わずに、 対象となる共用バッファ の内容をデータベースに書き戻して不揮発化することを特徵とする 請求の範囲 1項に記載のデータ処理システムにおける共用バッファ のロッ ク期間短縮処理方法。
3 . データベースへのアクセス機能を提供し管理するデータべ一 ス管理システム ( 1 1 ) と、 複数の トランザクショ ンが共通に使用 する共用バッファ (群) ( 1 7) と、 一時的に更新前ログ及び更新 後ログを格納するログバッファ ( 1 6 ) と、 更新前ログ及び更新後 ログを格納するログファイル ( 1 9 ) と、 諸データを格納するデー 夕ベース (2 0 ) とを備えるデータ処理システムにおいて、
前記データ処理システムは、 さらに一時的に前記共用バッフ Ύ ( 1 7) の内容を保持するための複写用メモリ ( 1 8 ) を備え、 前記データベース管理システムは、 さらに対象となる共用バッフ ァの内容を前記複写用メモリに複写する制御を行う置換制御部 ( 1 2) と、 対象となる共用バッファの更新の可能性を判定す.る処理選 択部 ( 1 3) と、 対象となる共用バッファの排他制御を行う排他制 - 御部 ( 1 4 ) と、 更新前口グ又は更新後ログを採取する口グ制御部 ( 1 5) とを備え、
前記共用バッファの内容を前記複写用メモリに複写する前に、 対 象となる共用バッファをロックし、 前記複写を完了した後で前記複 写用メモリの内容を不撣発化する前に、 共用バッファをアンロック し、 共用バッファのロック期間の短縮を図るようにしたことを特徵 とするデータ処理システム。
4. 前記処理選択部 ( 1 3 ) は、 不揮発化の対象となる共用バッ ファに更新の可能性があるか否かを判定するに際して、 更新の可能 性がないときに、 前記複写用メモリを確保せず、 かつその複写用メ モリへの複写処理を行わずに、 対象となる共用バッファの内容をデ 一夕ベースに書き戻して不揮発化することを特徵とする請求の範囲 3項に記載のデータ処理システム。
PCT/JP1992/000996 1991-08-06 1992-08-05 Method and apparatus for reducing lock period of shared buffer WO1993003436A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP92916959A EP0551528B1 (en) 1991-08-06 1992-08-05 Method and apparatus for reducing lock period of shared buffer
JP05503476A JP3107094B2 (ja) 1991-08-06 1992-08-05 共用バッファのロック期間短縮処理方法及び装置
DE69228297T DE69228297T2 (de) 1991-08-06 1992-08-05 Verfahren und vorrichtung zur reduzierung der sperrzeit eines gemeinsamen puffers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP19649791 1991-08-06
JP3/196497 1991-08-06

Publications (1)

Publication Number Publication Date
WO1993003436A1 true WO1993003436A1 (en) 1993-02-18

Family

ID=16358753

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1992/000996 WO1993003436A1 (en) 1991-08-06 1992-08-05 Method and apparatus for reducing lock period of shared buffer

Country Status (4)

Country Link
EP (1) EP0551528B1 (ja)
JP (1) JP3107094B2 (ja)
DE (1) DE69228297T2 (ja)
WO (1) WO1993003436A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009522638A (ja) * 2005-12-30 2009-06-11 マイクロソフト コーポレーション デルタページャを使用した状態の管理

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510281B2 (en) * 2008-12-18 2013-08-13 Sap Ag Ultimate locking mechanism
US9794340B2 (en) 2014-09-15 2017-10-17 Ge Aviation Systems Llc Mechanism and method for accessing data in a shared memory
JP6272556B2 (ja) * 2015-04-02 2018-01-31 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
US10037166B2 (en) 2016-08-03 2018-07-31 Ge Aviation Systems Llc Tracking memory allocation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245347A (ja) * 1986-04-18 1987-10-26 Hitachi Ltd データベースシステムおよびその処理方法
JPS62245348A (ja) * 1986-04-18 1987-10-26 Hitachi Ltd データベース更新方法
JPS63133240A (ja) * 1986-11-25 1988-06-06 Hitachi Ltd 常駐テ−ブルの内容保証方式
JPS6468850A (en) * 1987-09-10 1989-03-14 Fujitsu Ltd System crush recovery processing system
JPH033046A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd ログ記録管理方式
JPH0418646A (ja) * 1990-05-11 1992-01-22 Fujitsu Ltd データベース処理方式
JPH0424750A (ja) * 1990-05-15 1992-01-28 Fujitsu Ltd データベース管理処理方式

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245347A (ja) * 1986-04-18 1987-10-26 Hitachi Ltd データベースシステムおよびその処理方法
JPS62245348A (ja) * 1986-04-18 1987-10-26 Hitachi Ltd データベース更新方法
JPS63133240A (ja) * 1986-11-25 1988-06-06 Hitachi Ltd 常駐テ−ブルの内容保証方式
JPS6468850A (en) * 1987-09-10 1989-03-14 Fujitsu Ltd System crush recovery processing system
JPH033046A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd ログ記録管理方式
JPH0418646A (ja) * 1990-05-11 1992-01-22 Fujitsu Ltd データベース処理方式
JPH0424750A (ja) * 1990-05-15 1992-01-28 Fujitsu Ltd データベース管理処理方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0551528A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009522638A (ja) * 2005-12-30 2009-06-11 マイクロソフト コーポレーション デルタページャを使用した状態の管理

Also Published As

Publication number Publication date
JP3107094B2 (ja) 2000-11-06
DE69228297D1 (de) 1999-03-11
EP0551528B1 (en) 1999-01-27
EP0551528A4 (ja) 1994-01-05
EP0551528A1 (en) 1993-07-21
DE69228297T2 (de) 1999-06-02

Similar Documents

Publication Publication Date Title
US4823261A (en) Multiprocessor system for updating status information through flip-flopping read version and write version of checkpoint data
US5276835A (en) Non-blocking serialization for caching data in a shared cache
US11386065B2 (en) Database concurrency control through hash-bucket latching
US6493837B1 (en) Using log buffers to trace an event in a computer system
US5715447A (en) Method of and an apparatus for shortening a lock period of a shared buffer
US7266669B2 (en) File system with file management function and file management method
JP2505939B2 (ja) デ―タのキャストアウトを制御する方法
JP2505112B2 (ja) トランザクション管理方法
JP2559959B2 (ja) 複数の非同期的プロセスによりレコードを更新する方法
CN1755635B (zh) 事务型存储器访问的混合硬件软件实现
US5247672A (en) Transaction processing system and method with reduced locking
US6463503B1 (en) Method and system for increasing concurrency during staging and destaging in a log structured array
JP2000284995A (ja) データ処理装置及び記録媒体
JPH0827754B2 (ja) コンピュータシステムにおけるファイル管理方法及びファイル管理システム
JPH0713813B2 (ja) データアクセス方法及びデータ処理システム
JPH10301834A (ja) 共用メモリの管理方法
CN1510567A (zh) 用于使用记录板机制处理加载锁定指令的方法和装置
US6658541B2 (en) Computer system and a database access method thereof
US7831642B1 (en) Page cache management for a shared file
WO1993003436A1 (en) Method and apparatus for reducing lock period of shared buffer
JPH0559463B2 (ja)
JPH0588954A (ja) データベースの更新方法
JP4131579B2 (ja) データ管理システムおよびデータ管理方法
JPH10143412A (ja) データベース管理システム
JP2933011B2 (ja) ファイルの排他制御システム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): DE FR GB

WWE Wipo information: entry into national phase

Ref document number: 1992916959

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1992916959

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1992916959

Country of ref document: EP