WO2014061847A1 - Apparatus and method for logging and recovering transaction of database built in mobile environment - Google Patents

Apparatus and method for logging and recovering transaction of database built in mobile environment Download PDF

Info

Publication number
WO2014061847A1
WO2014061847A1 PCT/KR2012/008714 KR2012008714W WO2014061847A1 WO 2014061847 A1 WO2014061847 A1 WO 2014061847A1 KR 2012008714 W KR2012008714 W KR 2012008714W WO 2014061847 A1 WO2014061847 A1 WO 2014061847A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
log
file
manager
hash
Prior art date
Application number
PCT/KR2012/008714
Other languages
French (fr)
Korean (ko)
Inventor
김신유
한혁
진성일
김재광
Original Assignee
주식회사 리얼타임테크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리얼타임테크 filed Critical 주식회사 리얼타임테크
Publication of WO2014061847A1 publication Critical patent/WO2014061847A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability

Definitions

  • the present invention relates to a logging and recovery technique that satisfies the ACIlXAtomicity, Consistency, Isolation, Durability attributes of a transaction in a Database Management System (DBMS).
  • DBMS Database Management System
  • the present invention relates to a transaction logging and recovery device for a database and a method thereof for improving efficiency in terms of processing speed and storage capacity when logging a complex transaction composed of changes.
  • WAL Write-Ahead Logging
  • the log file is stored in the changed case code unit along with LSN Log Sequence Number) information for each database change operation.
  • the number of I / Os is very frequent and large storage space is consumed.
  • the conventional logging method adopts a random recording method, and the flash memory used in the mobile device has a very slow performance compared to the sequential recording method, which degrades the overall performance.
  • the present invention has been made to solve the above problems, by using the hash data structure and LRU algorithm to log the change transaction of the database to minimize the file I / O on the mobile terminal to prevent shortening the life of flash memory
  • the database built in the mobile environment can be used efficiently.
  • the purpose of the present invention is to provide an apparatus and method for transaction logging and recovery. ⁇
  • the database file is stored in a storage medium;
  • a log file stored in a storage medium;
  • a database file manager for controlling the database file using a page identifier;
  • a log file manager controlling the log file using LSN information;
  • Has a hash data structure that manages information about changed pages, controls access to or changes to pages that have already been changed through the log buffer manager, and access to unchanged pages through the database file manager. Is a hash manager;
  • a log buffer for managing some of the pages of the log file on main memory, and performing the targeting on the log buffer for access to a page that has already been changed or for page change.
  • a log buffer manager for performing page replacement with the log file if not present; And all the pages stored in the log file using the hash data structure are controlled to record all the pages not written to the log file among the pages in the log buffer, for the Commit request from the upper models. And a recovery manager that reads and controls the data to be sequentially written to the database file, and records the state of the database file in a predetermined area.
  • the database file is stored in a storage medium; A log file stored in a storage medium; A database file manager for controlling the database file using a page identifier; A log file manager controlling the log file using LSN information; For a Write request from a parent model, if the page is not registered in the hash data structure, the page identifier of the page and the LSN information generated by the log buffer manager are registered in the hash data structure, and the page writes to the log buffer manager.
  • a hash manager that makes a request to write the page to the log buffer manager using the registered information if a request is made; For a write request from the hash manager, if the same page as the page exists in the log buffer, the page is written to the corresponding page, and if not, the target page is selected by a least recently used (LRU) page replacement algorithm.
  • LRU least recently used
  • a log buffer manager that makes a Write request and writes the page to the log buffer; And controlling all the pages not recorded in the log file among the pages in the log buffer for the Commit request from the upper mode, and reading all the pages stored in the log file by using the hash data structure.
  • a recovery manager which controls to record sequentially to the database file, and records the state that has been completely progressed to the present in the predetermined area of the database file.
  • the hash manager requests a read request of the page to the log buffer manager if the page is registered in the hash data structure for a read request from the parent. If it is not registered, the database file manager requests a read request of the page, and the log buffer manager reads the page from the log buffer for a read request from the hash manager, If there is no identical page, the LRU page replacement algorithm replaces the same page in the log file.
  • the hash data structure is a hash function consisting of a MOD operation that uses a page identifier as an input value, and specifies a starting position of a bucket corresponding to the hash key.
  • a bucket block including a hash table, which is a list set of hash nodes, and a page identifier and LSN information as components of a bucket.
  • the log buffer manager comprises: a hash table for configuring a hash chain to access the log buffer; And a buffer control block including a hash chain for searching for a page corresponding to a page identifier, an LRU chain for an LRU page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer.
  • the log buffer manager In the transaction logging and recovery device for a database built in a mobile environment, the log buffer manager generates LSN information in a sequential manner when the LSN information for a page selected as a target page is not yet set. The write request is made to the log file manager.
  • the recovery manager In a transaction logging and recovery device for a database built in a mobile environment, the recovery manager, when booted after a system error, has progressed to the present state recorded in a predetermined area of the database file. Data ", and reads all pages stored in the log file and writes them to the database file, and initializes the log file when" transaction start "or" migration commit complete ".
  • a transaction logging and recovery method for a database constructed in a mobile environment includes: (a) For a write request from a higher model, the page is not registered in the hash data structure. If the page identifier and LSN information is registered in the hash data structure, and the corresponding page is written to the log buffer, but the target page selected by the L ⁇ RULeast recently used page replacement algorithm is recorded in the log file; (b) For a Write request from a higher model, if the page is registered in the hash data structure, if the same page as the page exists in the log buffer, write to the page at that location; otherwise, replace the LRU page.
  • the page In the transaction logging and leaning method for a database built in a mobile environment, in the case of a read request from (al) higher parents before step (c), the page is not included in the hash data structure. Reading a corresponding page from the database file; And (bl) for a Read request from higher parents, if the page is registered in the hash data structure, the page is read from the log buffer, and if the log buffer does not have the same page as the page, the LRU page is replaced. And replacing the same page as the corresponding page in the log file by the algorithm.
  • the hash data structure is a hash function consisting of a MOD operation that uses a page identifier as an input value, and specifies a starting position of a bucket for a hash key.
  • a bucket block including a hash table, which is a list set of hash nodes, and a page identifier and LSN information as components of a bucket.
  • a transaction logging and recovery method for a database built in a mobile environment comprising: a hash table for constructing a hash chain as a data structure for accessing the log buffer; And a buffer control block comprising a hash chain for searching for a page corresponding to a page identifier, an LRU chain for an LRU page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer.
  • step (a) is characterized in that the LSN information for the page selected as the target page is generated in a sequential manner.
  • FIG. 1 illustrates the overall configuration of a transaction logging and recovery device for a database constructed in a mobile environment according to the present invention.
  • FIG. 2 illustrates a hash data structure used by a hash manager according to the present invention
  • FIG. 3 shows a data structure for a log buffer manager according to the present invention to access a log buffer.
  • FIG. 5 is a view illustrating a method of ensuring data consistency in a system error situation in a transaction logging and recovery method for a database constructed in a mobile environment according to the present invention.
  • a preferred embodiment of a transaction logging and recovery device for a database built in a mobile environment includes a database file 20, a log file 30, a database file manager 40, a log file manager 50, A hash manager 60, a log buffer manager 70, and a recovery manager 80.
  • the mobile environment refers to an environment provided by a device that guarantees mobility, and is provided by various mobile terminals, including smart phones, navigation terminals, personal digital assistants (PDAs), and the like. It should be interpreted broadly.
  • the database file 20 and the log file 30, which are components of the present invention, are passive components, respectively, and are stored in a storage medium separate from the main memory.
  • the storage medium used in the present invention is preferably implemented as a flash memory, but is not necessarily limited thereto.
  • the database file manager 40, the log file manager 50, the hash manager 60, the log buffer manager 70, and the recovery manager 80, which are components of the present invention, respectively, provide an information processing apparatus provided to a mobile environment. It is an active component that can be implemented as a complex of various hardware and software, which are described below. It is defined by the functional features it provides.
  • the database file manager 40 manages the database file 20 and provides a control interface to the recovery manager 80.
  • the database file manager 40 performs the overall file control function for the database file 20 using the page identifier (ID).
  • ID the page identifier
  • the file number is the identification number of the database file
  • the page size is the page size of the database file
  • the log file manager 50 manages the log file 30 and provides a control interface to the rare manager 80.
  • the log file manager 50 performs an overall file control function for the log file 30 by using LSNCLog Sequence Number information.
  • LSN information is implemented including the file number, LSN size, and LSN number for the log file
  • the file number is the log file's identification number
  • the LSN size is the log file's page size
  • the hash manager 60 manages the information about the changed page in the hash data structure 62, and provides the recovery manager 80 with a control interface.
  • the hash data structure 62 is shown as an external configuration of the hash manager 60, but it is obvious that the hash data structure 62 may also be set as an internal configuration of the hash manager 60. As shown in FIG.
  • the hash manager 60 detects whether the requested page ID exists in the hash data structure 62, and if so, the log buffer manager. The page read request is made to (70). If not, the page read request is made to the database file manager (40).
  • the hash manager 60 registers the page ID and LSN information in the hash data structure 62, and the log buffer manager 70 I perform the requested page Write 3 ⁇ 4 ⁇ '. Therefore, according to the present invention, all write operations occurring during the execution of the transaction are excluded from the database file 20 and are written only to the log file 30. In addition, duplicate page IDs are not registered when a page ID is registered in the hash when a write request is made using the characteristics of the hash. Therefore, only the last page image is managed, thus saving storage space. In addition, the hash manager 60 manages the logs recorded by sorting the page IDs registered in the hash data structure 62 to reflect the information logged in the log file 30 in the original database file 20 ( When migrating, you can use the sequential recording method.
  • the log buffer manager 70 includes a log buffer 72 to cache the changed page image and provide a control interface to the hash manager 60 and the recovery manager 80. That is, the log buffer manager 70 stores some of the page images to be stored in the log file 30 in order to minimize file I / O. Cache function is performed on (Log buffer). Although the log buffer 72 is shown as an external configuration of the log buffer manager 70 in FIG. 1, it is obvious that the log buffer 72 may also be set as an internal configuration of the log buffer manager 70.
  • the log buffer manager 70 When a read or write request is received from the hash manager 60, the log buffer manager 70 means that the same page as the corresponding page (not the page content but the page ID is the same in the log buffer 72), even in the following description. If there is, read or write the page at the location, if not, select the target page (Victim) by LRU Least recently used) page replacement algorithm and request Read or Write to the log file manager 50. do.
  • the log buffer manager 70 makes a write request to the log file manager 50
  • the LSN information of the page selected as Victim in the hash data structure is initialized, logging is performed by generating sequential LSN information. Sequential recording can also be used.
  • the LSN information generated by the log file manager 50 is reflected in the hash data structure 62 in which an initialization value is set when it is registered, and is then used when the page is recorded again in the log file 30.
  • the recovery manager 80 collectively manages the database file manager 40, the log file manager 50, the hash manager 60, and the log buffer manager 70, and performs a system error situation (operating system down, When the database management system is restarted due to power down, user program down, etc.), it plays a role of ensuring the consistency of the original database file 20.
  • the recovery manager 80 hides the four managers from view in the upper module 10 and serves as an interface to the upper modules 10.
  • the APKApplication Program Interface for Commit defines Commit in two stages: LogCommit and MigrationCommit.
  • the recovery manager 80 includes a database file manager 40, a log file manager 50, a hash manager 60, and a log buffer manager 70 therein. Of course, it is meant to emphasize functionality and may actually be implemented as separate modules.
  • the recovery manager 80 controls to log all the pages in the log buffer that are not written to the log file 30 for the Commit request from the upper module 10 (LogCommit), Using the hash data structure 62, all pages stored in the log file 30 are read and sequentially recorded in the database file 20 (MigrationCommit), and a predetermined area of the database file 20 is read. Record the complete progress to date.
  • FIG. 2 illustrates a hash data structure 62 used by the hash manager 60 according to the present invention.
  • the hash data structure 62 used in the present invention is composed of a hash function, a hash table 64 and a bucket block 66.
  • Hash table 64 is a set of hash nodes that specify the starting position of the bucket against the hash key.
  • Bucket block 66 is a means to avoid the hash stratification that occurs when having the same hash function value for different input values, a number of buckets (68) connected by the pointer of the hash node (68) ).
  • the input value of the hash function used by the hash manager 60 is a page ID, and the hash function may be implemented by a mod operation.
  • the components of bucket 68 that are stored in bucket block 66 are page ID and LSN definitions. show.
  • the page ID is an ID managed by the upper models 10 and is a value transmitted through the interface of the recovery manager 80 and has information for accessing the database file 20.
  • the LSN information is an ID generated by the log buffer manager 70 and has information for accessing the log file 30. These IDs can be used to calculate the physical location where the page is stored on the storage medium during read or write.
  • the hash manager 60 does not allow duplicate values for the page ID during the insert operation, only the last version of the page image can be managed. Therefore, in the present invention, the storage space for logging can be efficiently used.
  • 3 shows a data structure for log buffer manager 70 to access log buffer 72.
  • the data structure managed by the log buffer manager 70 includes a log buffer 72, a buffer control block 74, and a hash table 76.
  • Log buffer 72 is a space in main memory where pages to be actually cached are stored.
  • the buffer control block 74 includes a hash chain 741 for quickly retrieving a page corresponding to a page ID, an LRU chain 743 for an LRU-based page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer. 745).
  • the hash chain 741 and the LRU chain 743 are each composed of pointers pointing from one buffer control block to another.
  • Hash table 76 is a table for constructing hash chain 741.
  • the hash chain 741 is updated when the target page is selected by the LRU page replacement algorithm.
  • the LRU chain 743 is updated on every read or write. At this time, the LRU chain 743 is updated so that the buffer control block 74 indicating the recently accessed page is located at the top, and the page indicated by the buffer control block 74 located at the bottom is selected as the target page (Victim). do.
  • FIGS. 1 to 3 the logging equivalent according to the present invention will be described in detail.
  • the hash manager 60 generates a page identifier of the page and the log buffer manager 70 if the page is not registered in the hash data structure 62 through a search (a) on the hash data structure 62.
  • LSN Information Hash Data Structures (62) (B) (In the initial registration, the hash information of the page in the hash data structure 62 has an initialized value.
  • the log buffer manager 70 records the corresponding page in the log buffer 72 (c), and selects a target page using a least recently used (LRU) page replacement algorithm to select a log page manager (50). ),
  • LRU least recently used
  • the log buffer manager 70 When the log buffer manager 70 makes a write request to the log file manager 50, when the LSN information of the page selected as Victim in the hash data structure 62 is an initialized value, the log buffer manager 70 sequentially LSN information is generated. The LSN information generated by the log file manager 50 is reflected in the hash data structure 62 in which an initialization value is set when it is registered, and is then used when writing the corresponding page back to the log file 30.
  • the hash manager 60 through the search (a) of the hash data structure 62, if the page is registered in the hash data structure 62, corresponds to the log buffer manager 70 using the registered information. Write request of the page. Thereafter, if the log buffer 72 has the same page as the page in the log buffer 72, the log buffer manager 70 selects the target page by the LRU page replacement algorithm. Write to the log file manager 50 and write the page to the log buffer 72 (d). The log file manager 50 writes the write requested page to the log file 30.
  • Hash manager 60 via search (a) on hash data structure 62, requests a page that has not been changed in the hash data structure 62 (i.e., has not changed in a transaction). The read request of the page to the database file manager 40 (e).
  • Hash manager (60) performs a search (a) on hash data structure (62), if the page is registered in hash data structure (62) (i.e. if the page has already changed more than once in a transaction). Read request of the page to the log buffer manager (70). Log buffer manager 70 reads the page from log buffer 72
  • the Commit step in the process of executing a transaction is performed as follows.
  • the hash data structure 62 and the log buffer 72 managed by the recovery manager are initialized, and the transaction status is stored in a specific area (header page) of the original database file 20.
  • the logging operation such as «]-is performed.
  • Commit phase is phase 2 (LogCommit phase and MigrationCommit phase). Step).
  • Step 1 is the LogCommit step, which writes changed pages that have been used by the upper parents (10) and have not yet been saved (SI 10), and are not recorded in the log file 30 among the pages in the log buffer 72. All logging operations are completed only when all pages (which can be distinguished from pages which have not been used by using the Dirty bit or are already recorded in the log file 30) are recorded (S120).
  • Step 2 is the MigrationCommit step, which uses a hash data structure (more precisely, a log written by sorting the hash data structure (62)) to read pages from the log file (30) and convert them to the original database file (20). Migrate them (S140). After that, execute Flush (Sync) operation so that the original database file is completely recorded. In the specified area (header page) of the original database file 20, the state of progress (“Migration commit completed") that has been completed so far is recorded (S150), and Flush (Sync) is performed once again.
  • a hash data structure more precisely, a log written by sorting the hash data structure (62)
  • the rollback operation does not change the original database file (20), so you only need to clean up the log file (30) that has been recorded.
  • all cached pages used in the upper modules 10 should be cleaned up. Referring to FIG. 5, a method of ensuring data consistency in a system error situation (operating system down, power down, application down, etc.) will be described below.
  • the DBMS can efficiently use the storage space for logging when performing transactions in the DBMS, minimize file I / O, and improve performance by sequentially recording when writing to a file. Can be.
  • minimizing file I / O not only improves performance but also prevents shortening the life of flash memory.

Abstract

The present invention relates to an apparatus and a method for logging and recovering a transaction of a database which can increase the efficiency in terms of processing speed according to logging and storage capacity, when processing a complex transaction due to a large-scale database change in a mobile environment with limited computing resources.

Description

【명세서】  【Specification】
【발명의 명칭】  [Name of invention]
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장 치 및 그 방법  Transaction logging and recovery device for database built in mobile environment, and its method
【기술분야】  Technical Field
본 발명은 데이터베이스 관리 시스템 (DataBase Management System : DBMS)에서 트랜잭션의 ACIlXAtomicity, Consistency, Isolation, Durability) 속성을 만족하게 하는 로깅 및 회복 기술에 관한 것으로, 특히 컴 퓨팅 자원이 제한적인 모바일 환경에서 대량의 데이터베이스 변경으로 구성된 복합 트랜잭션 처리 시 로깅에 따른 처리 속도 및 저장 용량 관점의 효율성을 높일 수 있는 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법에 관한 것이다.  The present invention relates to a logging and recovery technique that satisfies the ACIlXAtomicity, Consistency, Isolation, Durability attributes of a transaction in a Database Management System (DBMS). The present invention relates to a transaction logging and recovery device for a database and a method thereof for improving efficiency in terms of processing speed and storage capacity when logging a complex transaction composed of changes.
【배경기술]  Background technology
WAL(Write -Ahead Logging)은 트랜잭션의 ACID 속성을 만족하게 하 기 위하여 트랜잭션에 의해 데이터베이스 변경 (Modification)이 발생한 경우, 원본 데이터베이스에 변경 내용을 반영하기 전에 REDO 및 UNDO 정보를 로 그에 기록하는 트랜잭션 로깅 및 회복 방법이다.  Write-Ahead Logging (WAL) is a transaction logging that writes REDO and UNDO information to the log before reflecting the changes to the source database when a database modification occurs by the transaction to satisfy the ACID attribute of the transaction. And recovery method.
그런데, 종래의 로깅 방법에 의하면, 수만 개의 데이터베이스 변경 연산 들로 구성된 대용량 복합 트랜잭션의 경우, 각각의 데이터베이스 변경 연산에 대하여 LSN Log Sequence Number) 정보와 함께 변경된 례코드 단위로 로그 파일을 저장하므로, 파일 I/O 횟수가 매우 빈번해지고, 큰 저장 공간이 소비된 다.  However, according to the conventional logging method, in the case of a large-volume complex transaction consisting of tens of thousands of database change operations, the log file is stored in the changed case code unit along with LSN Log Sequence Number) information for each database change operation. The number of I / Os is very frequent and large storage space is consumed.
한편 대부분의 모바일 장치는 플래시 메모리를 기본적인 저장 매체로 사용하는데, 빈번한 파일 I/O 횟수는 플래시 메모리의 수명을 단축시키고, 성능 또한 저하시키게 된다.  Most mobile devices, on the other hand, use flash memory as their primary storage medium. Frequent file I / Os can reduce flash memory life and reduce performance.
또한 종래의 로깅 방식은 랜덤 기록 방식을 채택하는데, 모바일 장치에 서 사용되는 플래시 메모리는 순차 기록 방식에 비하여 랜덤 기록 방식의 성능 이 매우 느려 전체적인 성능을 저하시킨다.  In addition, the conventional logging method adopts a random recording method, and the flash memory used in the mobile device has a very slow performance compared to the sequential recording method, which degrades the overall performance.
【발명의 상세한 설명】  [Detailed Description of the Invention]
본 발명은 상기의 문제점을 해결하기 위하여 안출된 것으로, 해쉬 자료 구조와 LRU 알고리즘을 활용하여 데이터베이스의 변경 트랜잭션에 대한 로깅 을 수행하여 모바일 단말 상에서 파일 I/O를 최소화함으로써 플래시 메모리의 수명 단축을 방지하고 성능을 증대시키고, 순차 기록 방식을 도입하여 랜덤 기 록 방식에 의한 성능 저하를 보완하고, 마지막 버전의 페이지 이미지만을 관리 함으로써 저장 공간을 효율적으로 사용할 수 있는, 모바일 환경에 구축된 데이 터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법을 제공함을 그 목적 으로 한다. ·  The present invention has been made to solve the above problems, by using the hash data structure and LRU algorithm to log the change transaction of the database to minimize the file I / O on the mobile terminal to prevent shortening the life of flash memory In order to compensate for the performance degradation caused by the random recording method by introducing a sequential recording method, and to manage only the last page image, the database built in the mobile environment can be used efficiently. The purpose of the present invention is to provide an apparatus and method for transaction logging and recovery. ·
상기의 목적들을 달성하기 위하여, 본 발명에 의한 모바일 환경에 구축 된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치는, 저장 매체에 저장되는 데이터베이스 파일; 저장 매체에 저장되는 로그 파일; 페이지 식별자를 이용하 여 상기 데이터베이스 파일을 제어하는 데이터베이스 파일 관리자; LSN 정보 를 이용하여 상기 로그 파일을 제어하는 로그 파일 관리자; 변경된 페이지에 대한 정보를 관리하는 해쉬 자료구조를 구비하고, 이미 변경된 페이지에 대한 액세스 또는 페이지 변경은 로그 버퍼 관리자를 통해 수행하고, 변경되지 않은 페이지에 대한 액세스는 데이터베이스 파일 관리자를 통해 수행하도록 제어하 는 해쉬 관리자; 상기 로그 파일의 페이지들 중 일부를 메인 메모리 상에 관리 하는 로그 버퍼를 구비하고, 이미 변경된 페이지에 대한 액세스 또는 페이지 변경에 대웅하여 상기 로그 버퍼를 대상으로 하여 수행하되, 상기 로그 버퍼에 해당 페이지가 없으면 상기 로그 파일과 LRlKLeast recently used) 방식의 페이지 교체를 수행하는 로그 버퍼 관리자; 및 상위 모들로부터의 Commit 요 청에 대하여, 상기 로그 버퍼 내의 페이지들 중 상기 로그 파일에 기록되지 않 은 페이지들올 모두 기록하도록 제어하고, 상기 해쉬 자료구조를 이용하여 상 기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 순차 적으로 기록하도록 제어하고, 상기 데이터베이스 파일의 소정의 영역에 현재까 지 완벽히 진행된 상태를 기록하는 회복 관리자;를 포함하여 구성된다. In order to achieve the above object, a transaction logging and recovery device for a database built in a mobile environment according to the present invention, the database file is stored in a storage medium; A log file stored in a storage medium; A database file manager for controlling the database file using a page identifier; A log file manager controlling the log file using LSN information; Has a hash data structure that manages information about changed pages, controls access to or changes to pages that have already been changed through the log buffer manager, and access to unchanged pages through the database file manager. Is a hash manager; And a log buffer for managing some of the pages of the log file on main memory, and performing the targeting on the log buffer for access to a page that has already been changed or for page change. A log buffer manager for performing page replacement with the log file if not present; And all the pages stored in the log file using the hash data structure are controlled to record all the pages not written to the log file among the pages in the log buffer, for the Commit request from the upper models. And a recovery manager that reads and controls the data to be sequentially written to the database file, and records the state of the database file in a predetermined area.
상기의 목적들을 달성하기 위하여, 본 발명에 의한 모바일 환경에 구축 된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치는, 저장 매체에 저장되는 데이터베이스 파일; 저장 매체에 저장되는 로그 파일; 페이지 식별자를 이용하 여 상기 데이터베이스 파일을 제어하는 데이터베이스 파일 관리자; LSN 정보 를 이용하여 상기 로그 파일을 제어하는 로그 파일 관리자; 상위 모들로부터의 Write 요청에 대하여, 해당 페이지가 해쉬 자료구조에 등록되어 있지 않으면 해당 페이지의 페이지 식별자와 로그 버퍼 관리자에 의해 생성된 LSN 정보를 해쉬 자료구조에 등록하고 로그 버퍼 관리자에 해당 페이지의 Write 요청을 하 고, 등록되어 있으면 등록된 정보를 이용하여 로그 버퍼 관리자에 해당 페이지 의 Write 요청을 하는 해쉬 관리자; 상기 해쉬 관리자로부터의 Write 요청에 대하여, 로그 버퍼에 해당 페이지와 동일한 페이지가 있으면 그 위치에 해당 페이지에 기록하고, 없으면 LRU(Least recently used) 페이지 교체 알고리즘 에 의해 대상 페이지를 선정하여 로그 파일 관리자에 Write 요청을 하고 로그 버퍼에 해당 페이지를 기록하는 로그 버퍼 관리자; 및 상위 모들로부터의 Commit 요청에 대하여, 상기 로그 버퍼 내의 페이지들 중 상기 로그 파일에 기록되지 않은 페이지들을 모두 기록하도톡 제어하고, 상기 해쉬 자료구조를 이용하여 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 순차적으로 기록하도록 제어하고, 상기 데이터베이스 파일의 소정의 영 역에 현재까지 완벽히 진행된 상태를 기록하는 회복 관리자;를 포함하여 구성 된다.  In order to achieve the above object, a transaction logging and recovery device for a database built in a mobile environment according to the present invention, the database file is stored in a storage medium; A log file stored in a storage medium; A database file manager for controlling the database file using a page identifier; A log file manager controlling the log file using LSN information; For a Write request from a parent model, if the page is not registered in the hash data structure, the page identifier of the page and the LSN information generated by the log buffer manager are registered in the hash data structure, and the page writes to the log buffer manager. A hash manager that makes a request to write the page to the log buffer manager using the registered information if a request is made; For a write request from the hash manager, if the same page as the page exists in the log buffer, the page is written to the corresponding page, and if not, the target page is selected by a least recently used (LRU) page replacement algorithm. A log buffer manager that makes a Write request and writes the page to the log buffer; And controlling all the pages not recorded in the log file among the pages in the log buffer for the Commit request from the upper mode, and reading all the pages stored in the log file by using the hash data structure. And a recovery manager which controls to record sequentially to the database file, and records the state that has been completely progressed to the present in the predetermined area of the database file.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장 치에 있어서, 상기 해쉬 관리자는 상위 모들로부터의 Read 요청에 대하여, 해 당 페이지가 해쉬 자료구조에 등록되어 있으면 로그 버퍼 관리자에 해당 페이 지의 Read 요청을 하고, 등록되어 있지 않으면 데이터베이스 파일 관리자에 해당 페이지의 Read 요청을 하고, 상기 로그 버퍼 관리자는 상기 해쉬 관리자 로부터의 Read 요청에 대하여, 해당 페이지를 상기 로그 버퍼에서 읽되, 상기 로그 버퍼에 해당 페이지와 동일한 페이지가 없으면 LRU 페이지 교체 알고리 즘에 의해 로그 파일에서 해당 페이지와 동일한 페이지를 교체하는 것을 특징 으로 한다.  In the transaction logging and recovery device for a database built in a mobile environment, the hash manager requests a read request of the page to the log buffer manager if the page is registered in the hash data structure for a read request from the parent. If it is not registered, the database file manager requests a read request of the page, and the log buffer manager reads the page from the log buffer for a read request from the hash manager, If there is no identical page, the LRU page replacement algorithm replaces the same page in the log file.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장 치에 있어서, 상기 해쉬 자료구조는 입력값으로 페이지 식별자가 사용되는 MOD 연산으로 이루어진 해쉬 함수와, 해쉬키에 대응하는 버킷의 시작 위치를 지정하는 해쉬 노드들의 리스트 집합인 해쉬 테이블과, 페이지 식별자와 LSN 정보를 버킷의 구성요소로 하는 버킷 블럭을 구비하는 것을 특징으로 한다. 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장 치에 있어서, 상기 로그 버퍼 관리자는 상기 로그 버퍼에 액세스하기 위하여, 해쉬 체인 구성을 위한 해쉬 테이블; 및 페이지 식별자에 해당하는 페이지를 검색하기 위한 해쉬 체인과 LRU 방식의 페이지 교체 알고리즘을 위한 LRU 체인과 로그 버퍼 내의 해당 페이지를 가리키는 페이지 포인터로 이루어진 버 퍼 제어 블럭;을 구비하는 것을 특징으로 한다. In the transaction logging and recovery device for a database built in a mobile environment, the hash data structure is a hash function consisting of a MOD operation that uses a page identifier as an input value, and specifies a starting position of a bucket corresponding to the hash key. And a bucket block including a hash table, which is a list set of hash nodes, and a page identifier and LSN information as components of a bucket. Transaction logging and recovery for databases deployed in mobile environments Wherein the log buffer manager comprises: a hash table for configuring a hash chain to access the log buffer; And a buffer control block including a hash chain for searching for a page corresponding to a page identifier, an LRU chain for an LRU page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장 치에 있어서, 상기 로그 버퍼 관리자는 대상 페이지로 선정된 페이지에 대한 LSN 정보가 아직 설정되어 있지 않은 경우, 순차적인 방식으로 LSN 정보를 생성하여 상기 로그 파일 관리자에 Write 요청을 하는 것을 특징으로 한다. 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장 치에 있어서, 상기 회복 관리자는 시스템 오류 상황 이후 부팅 시에, 상기 데이 터베이스 파일의 소정의 영역에 기록된 현재까지 진행된 상태가 "로그 커밋 완 료"인 경우, 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이 스 파일에 기록하도록 제어하고, "트랜잭션 시작" 또는 "Migration 커밋 완료" 인 경우 상기 로그 파일을 초기화하는 것을 특징으로 한다.  In the transaction logging and recovery device for a database built in a mobile environment, the log buffer manager generates LSN information in a sequential manner when the LSN information for a page selected as a target page is not yet set. The write request is made to the log file manager. In a transaction logging and recovery device for a database built in a mobile environment, the recovery manager, when booted after a system error, has progressed to the present state recorded in a predetermined area of the database file. Data ", and reads all pages stored in the log file and writes them to the database file, and initializes the log file when" transaction start "or" migration commit complete ".
상기의 목적들을 달성하기 위하여, 본 발명에 의한 모바일 환경에 구축 된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방법은, (a) 상위 모들로부터의 Write 요청에 대하여, 해당 페이지가 해쉬 자료구조에 등록되어 있지 않은 경 우 페이지 식별자와 LSN 정보를 해쉬 자료구조에 등톡하고, 해당 페이지를 로그 버퍼에 기록하되 L^RULeast recently used) 페이지 교체 알고리즘에 의 해 선정된 대상 페이지는 로그 파일에 기록하는 단계; (b) 상위 모들로부터의 Write 요청에 대하여, 해당 페이지가 상기 해쉬 자료구조에 등록되어 있는 경 우, 상기 로그 버퍼에 해당 페이지와 동일한 페이지가 있으면 그 위치에 해당 페이지에 기록하고, 없으면 LRU 페이지 교체 알고리즘에 의해 선정된 대상 페 이지를 상기 로그 파일에 기록하고 해당 페이지는 상기 로그 버퍼에 기록하는 단계; (c) 상위 모들로부터의 Commit 요청에 대하여, 상기 로그 버퍼 내의 페 이지들 중 상기 로그 파일에 기톡되지 않은 페이지들을 모두 기록한 후, 데이 터베이스 파일의 소정의 영역에 현재까지 진행된 상태를 기록하고, 상기 해쉬 자료구조를 이용하여 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데 이터베이스 파일에 순차적으로 기록한 후 상기 데이터베이스 파일의 소정의 영역에 현재까지 진행된 상태를 기록하는 단계;를 포함하여 구성된다. In order to achieve the above objects, a transaction logging and recovery method for a database constructed in a mobile environment according to the present invention includes: (a) For a write request from a higher model, the page is not registered in the hash data structure. If the page identifier and LSN information is registered in the hash data structure, and the corresponding page is written to the log buffer, but the target page selected by the L ^ RULeast recently used page replacement algorithm is recorded in the log file; (b) For a Write request from a higher model, if the page is registered in the hash data structure, if the same page as the page exists in the log buffer, write to the page at that location; otherwise, replace the LRU page. Writing a target page selected by an algorithm to the log file and writing the page to the log buffer; (c) recording all pages not written in the log file among pages in the log buffer, for a Commit request from higher parents, and recording the state of the present so far in a predetermined area of the database file; And reading all the pages stored in the log file using the hash data structure and sequentially recording the pages in the database file, and recording the state of the database file up to now in a predetermined area of the database file.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 희복 방 법에 있어서, 상기 (c) 단계 이전에 (al) 상위 모들로부터의 Read 요청에 대하 여, 해당 페이지가 상기 해쉬 자료구조에 둥록되어 있지 않은 경우, 상기 데이 터베이스 파일에서 해당 페이지를 읽는 단계; 및 (bl) 상위 모들로부터의 Read 요청에 대하여, 해당 페이지가 상기 해쉬 자료구조에 등록되어 있는 경 우, 해당 페이지를 상기 로그 버퍼에서 읽되, 상기 로그 버퍼에 해당 페이지와 동일한 페이지가 없으면 LRU 페이지 교체 알고리즘에 의해 로그 파일에서 해 당 페이지와 동일한 페이지를 교체하는 단계;를 더 포함하는 것을 특징으로 한 다.  In the transaction logging and leaning method for a database built in a mobile environment, in the case of a read request from (al) higher parents before step (c), the page is not included in the hash data structure. Reading a corresponding page from the database file; And (bl) for a Read request from higher parents, if the page is registered in the hash data structure, the page is read from the log buffer, and if the log buffer does not have the same page as the page, the LRU page is replaced. And replacing the same page as the corresponding page in the log file by the algorithm.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방 법에 있어서, 상기 해쉬 자료구조는 입력값으로 페이지 식별자가 사용되는 MOD 연산으로 이루어진 해쉬 함수와, 해쉬키에 대웅하는 버킷의 시작 위치를 지정하는 해쉬 노드들의 리스트 집합인 해쉬 테이블과, 페이지 식별자와 LSN 정보를 버킷의 구성요소로 하는 버킷 블럭을 구비하는 것을 특징으로 한다. 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방 법에 있어서, 상기 로그 버퍼에 액세스하기 위한 자료구조로 해쉬 체인 구성을 위한 해쉬 테이블; 및 페이지 식별자에 해당하는 페이지를 검색하기 위한 해쉬 체인과 LRU 방식의 페이지 교체 알고리즘을 위한 LRU 체인과 로그 버퍼 내 의 해당 페이지를 가리키는 페이지 포인터로 이루어진 버퍼 제어 블럭;을 구비 하는 것을 특징으로 한다. In the transaction logging and recovery method for a database built in a mobile environment, the hash data structure is a hash function consisting of a MOD operation that uses a page identifier as an input value, and specifies a starting position of a bucket for a hash key. And a bucket block including a hash table, which is a list set of hash nodes, and a page identifier and LSN information as components of a bucket. A transaction logging and recovery method for a database built in a mobile environment, the method comprising: a hash table for constructing a hash chain as a data structure for accessing the log buffer; And a buffer control block comprising a hash chain for searching for a page corresponding to a page identifier, an LRU chain for an LRU page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방 법에 있어서, 상기 (a) 단계는 대상 페이지로 선정된 페이지에 대한 LSN 정보 를 순차적인 방식으로 생성하는 것을 특징으로 한다.  In the transaction logging and recovery method for a database built in a mobile environment, step (a) is characterized in that the LSN information for the page selected as the target page is generated in a sequential manner.
모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방 법에 있어서, (d) 시스템 오류 상황 이후 부팅 시에, 상기 데이터베이스 파일의 소정의 영역에 기록된 현재까지 진행된 상태가 "로그 커밋 완료"인 경우, 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 기록하 고, "트랜잭션 시작" 또는 "Migration 커밋 완료"인 경우 상기 로그 파일을 초 기화하는 단계;를 더 포함함을 특징으로 한다.  In the method of logging and recovering a transaction for a database built in a mobile environment, (d) when the system progresses to the present state recorded in a predetermined area of the database file at boot time after the system error condition is "log commit completed". And reading all the pages stored in the log file and writing them to the database file, and initializing the log file in the case of "transaction start" or "migration commit completed".
【도면의 간단한 설명】  [Brief Description of Drawings]
도 1은 본 발명에 의한 모바일 환경에 구축된 데이터베이스에 대한 트 랜잭션 로깅 및 회복 장치의 전체적인 구성을 도시한 것이고,  1 illustrates the overall configuration of a transaction logging and recovery device for a database constructed in a mobile environment according to the present invention.
도 2는 본 발명에 의한 해쉬 관리자에 의해 사용되는 해쉬 자료구조를 도시한 것이고,  2 illustrates a hash data structure used by a hash manager according to the present invention;
도 3은 본 발명에 의한 로그 버퍼 관리자가 로그 버퍼에 액세스하기 위 한 자료 구조를 도시한 것이다.  3 shows a data structure for a log buffer manager according to the present invention to access a log buffer.
도 4는 트랜잭션이 수행되는 과정에서 Commit 단계를 설명하기 위한 것이고,  4 is for explaining a Commit step in the course of performing a transaction,
도 5는 본 발명에 의한 모바일 환경에 구축된 데이터베이스에 대한 트 랜잭션 로깅 및 회복 방법에서 시스템 오류 상황에서 데이터 일관성을 보장하 는 방법을 설명하기 위한 것이다.  5 is a view illustrating a method of ensuring data consistency in a system error situation in a transaction logging and recovery method for a database constructed in a mobile environment according to the present invention.
【실시예】  EXAMPLE
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.  Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1에 의하면, 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치의 바람직한 일 실시예는 데이터베이스 파일 (20), 로그 파일 (30), 데이터베이스 파일 관리자 (40), 로그 파일 관리자 (50), 해쉬 관리자 (60), 로그 버퍼 관리자 (70) 및 회복 관리자 (80)를 포함하여 구성된다.  1, a preferred embodiment of a transaction logging and recovery device for a database built in a mobile environment includes a database file 20, a log file 30, a database file manager 40, a log file manager 50, A hash manager 60, a log buffer manager 70, and a recovery manager 80.
여기서 모바일 환경이라 함은, 이동성을 보장하는 장치가 제공하는 환 경을 의미하는 것으로, 스마트 폰, 내비게이션 단말기, PDA(personal digital assistants) 등을 포함하는 현재 또는 미래의 각종 모바일 단말이 제공하는 환 경으로 넓게 해석되어야 할 것이다.  Here, the mobile environment refers to an environment provided by a device that guarantees mobility, and is provided by various mobile terminals, including smart phones, navigation terminals, personal digital assistants (PDAs), and the like. It should be interpreted broadly.
본 발명의 구성요소인 데이터베이스 파일 (20)과 로그 파일 (30)은 각각 수동적인 구성요소로서, 메인 메모리와는 별개의 저장 매체에 저장된다. 본 발 명에서 사용되는 저장 매체는 플래시 메모리로 구현되는 것이 바람직하지만, 반드시 이에 한정되는 것은 아니다.  The database file 20 and the log file 30, which are components of the present invention, are passive components, respectively, and are stored in a storage medium separate from the main memory. The storage medium used in the present invention is preferably implemented as a flash memory, but is not necessarily limited thereto.
본 발명의 구성요소인 데이터베이스 파일 관리자 (40), 로그 파일 관리자 (50), 해쉬 관리자 (60), 로그 버퍼 관리자 (70) 및 회복 관리자 (80)는 각각 모바 일 환경으로 제공되는 정보처리장치를 구성하는 각종 하드웨어 및 소프트웨어 의 복합체로 구현될 수 있는 능동적인 구성요소로서, 이하에서 각 구성요소가 제공하는 기능적 인 특징 에 의해 정의된다. The database file manager 40, the log file manager 50, the hash manager 60, the log buffer manager 70, and the recovery manager 80, which are components of the present invention, respectively, provide an information processing apparatus provided to a mobile environment. It is an active component that can be implemented as a complex of various hardware and software, which are described below. It is defined by the functional features it provides.
데이터베이스 파일 관리자 (40)는 데이터베이스 파일 (20)을 관리하는 역 할을 하며 , 회복 관리자 (80)에 게 제어용 인터페이스를 제공한다. 데이터베이스 파일 관리자 (40)는 페이지 식별자 (ID)를 이용하여 데이터 베이스 파일 (20)에 대 한 전반적 인 파일 제어 기능을 수행한다. 여기서 페이지 식별자 (ID)는 데이터 베이스 파일에 대한 파일 번호, 페이지 크기, 페이지 번호를 포함하여 구현되는 데, 파일 번호는 데이터베이스 파일의 식별번호이고, 페이지 크기는 데이터베이 스 파일의 페이지 크기 이고, 페이지 번호는 해당 데이터 베이스 파일 중 해당 페이지의 번호를 나타낸다. 따라서 , 페이지 식별자에 의해 해당 페이지의 데이 터 베이스 파일 (20) 내에서 의 물리 적 인 오프셋 (Offset)(= 페 이지 크기 * 페이지 번호)을 계산할 수 있다.  The database file manager 40 manages the database file 20 and provides a control interface to the recovery manager 80. The database file manager 40 performs the overall file control function for the database file 20 using the page identifier (ID). Where the page identifier (ID) is implemented including the file number, page size, and page number for the database file, the file number is the identification number of the database file, the page size is the page size of the database file, and the page The number represents the number of the page in the database file. Therefore, the physical offset (= page size * page number) in the database file 20 of the page can be calculated by the page identifier.
로그 파일 관리자 (50)는 로그 파일 (30)을 관리하는 역할을 하며, 희복 관리자 (80)에 게 제어용 인터페이스를 제공한다. 로그 파일 관리자 (50)는 LSNCLog Sequence Number) 정보를 이용하여 로그 파일 (30)에 대한 전반적 인 파일 제어 기능을 수행한다. 여 기서 LSN 정보는 로그 파일에 대한 파일 번호, LSN 크기 , LSN 번호를 포함하여 구현되는데, 파일 번호는 로그 파일의 식 별번호이고, LSN 크기는 로그 파일의 페이지 크기 이고, LSN 번호는 해당 로그 파일 중 해당 페이지 의 번호를 나타낸다. 따라서, LSN 식별자에 의해 해당 페이지 의 로그 파일 (30) 내에서의 물리 적 인 오프셋 (Offset)(= LSN 크기 * LSN 번호)을 계산할 수 있다.  The log file manager 50 manages the log file 30 and provides a control interface to the rare manager 80. The log file manager 50 performs an overall file control function for the log file 30 by using LSNCLog Sequence Number information. Where LSN information is implemented including the file number, LSN size, and LSN number for the log file, the file number is the log file's identification number, the LSN size is the log file's page size, and the LSN number is the log file. Indicates the page number. Therefore, the physical offset (= LSN size * LSN number) in the log file 30 of the corresponding page can be calculated by the LSN identifier.
해쉬 관리자 (60)는 변경 된 페이지에 대한 정보를 해쉬 자료구조 (62)로 관리하며 , 회복 관리자 (80)에 게 제어용 인터페 이스를 제공한다. 도 1에서는 해쉬 자료구조 (62)가 해쉬 관리자 (60)의 외부 구성으로 도시되 어 있으나, 도 2 에 도시 된 바와 같이 해쉬 관리자 (60)의 내부 구성으로도 설정될 수 있음은 당 연하다.  The hash manager 60 manages the information about the changed page in the hash data structure 62, and provides the recovery manager 80 with a control interface. In FIG. 1, the hash data structure 62 is shown as an external configuration of the hash manager 60, but it is obvious that the hash data structure 62 may also be set as an internal configuration of the hash manager 60. As shown in FIG.
상위 모들 (10)로부터 특정 페이지 ID에 해당하는 페이지의 Read 요청 이 들어 왔을 때 , 해쉬 관리자 (60)는 해쉬 자료구조 (62) 내에 요청 된 페이지 ID 가 존재하는지를 검 색해 보고, 존재하면 로그 버퍼 관리자 (70)에 게 페이지 Read 요청을 수행하고, 존재하지 않으면 데이터베이스 파일 관리자 (40)에 게 페 이지 Read 요청을 수행한다.  When a read request for a page corresponding to a specific page ID is received from the parent model 10, the hash manager 60 detects whether the requested page ID exists in the hash data structure 62, and if so, the log buffer manager. The page read request is made to (70). If not, the page read request is made to the database file manager (40).
상위 모들 (10)로부터 특정 페이지 ID에 해당하는 페 이지의 Write 요청 이 들어왔을 때, 해쉬 관리자 (60)는 해쉬 자료구조 (62) 내에 페이지 ID와 LSN 정보를 등록하고, 로그 버퍼 관리자 (70)에 게 페이지 Write 요청을 수행 ¾·'다. 따라서 본 발명에 의하면, 트랜잭션 수행 중에 발생하는 모든 Write 연 산은 데이터베이스 파일 (20)을 배제하고, 로그 파일 (30)에 만 기록하게 된다. 또한 해쉬 의 특성을 이용하여 Write 요청 시 페이지 ID를 해쉬 에 등록할 때 중복된 페이지 ID는 등록되지 않으므로, 마지 막 버 전의 페이지 이미지만을 관 리하게 되어 저장 공간이 절약된다. 또한, 해쉬 관리자 (60)는 해쉬 자료구조 (62) 내에 등록된 페이지 ID를 정 렬 (Sorting)하여 기록한 로그를 관리함으로써 로그 파일 (30)에 로깅된 정보를 원본 데이터베이스 파일 (20)에 반영 (Migration)할 때 순차 기록 방식을 사용할 수 있다. When a write request of a page corresponding to a specific page ID is received from the upper modules 10, the hash manager 60 registers the page ID and LSN information in the hash data structure 62, and the log buffer manager 70 I perform the requested page Write ¾ · '. Therefore, according to the present invention, all write operations occurring during the execution of the transaction are excluded from the database file 20 and are written only to the log file 30. In addition, duplicate page IDs are not registered when a page ID is registered in the hash when a write request is made using the characteristics of the hash. Therefore, only the last page image is managed, thus saving storage space. In addition, the hash manager 60 manages the logs recorded by sorting the page IDs registered in the hash data structure 62 to reflect the information logged in the log file 30 in the original database file 20 ( When migrating, you can use the sequential recording method.
로그 버퍼 관리자 (70)는 로그 버퍼 (72)를 구비하여 변경된 페이지 이미 지를 캐싱하고, 해쉬 관리자 (60)와 회복 관리자 (80)에 게 제어용 인터페이스를 제공한다. 즉, 로그 버퍼 관리자 (70)는 파일 I/O를 최소화하기 위해서 로그 파 일 (30)에 저장되어야 할 페이지 이미지들 중 일부를 메인 메모리의 일정 공간 (로그 버퍼 ) 상에 캐쉬 해 두는 기능을 수행한다. 도 1에서는 로그 버퍼 (72)가 로그 버퍼 관리자 (70)의 외부 구성으로 도시되어 있으나, 로그 버퍼 관리자 (70)의 내부 구성으로도 설정될 수 있음은 당연하다. The log buffer manager 70 includes a log buffer 72 to cache the changed page image and provide a control interface to the hash manager 60 and the recovery manager 80. That is, the log buffer manager 70 stores some of the page images to be stored in the log file 30 in order to minimize file I / O. Cache function is performed on (Log buffer). Although the log buffer 72 is shown as an external configuration of the log buffer manager 70 in FIG. 1, it is obvious that the log buffer 72 may also be set as an internal configuration of the log buffer manager 70.
해쉬 관리자 (60)로부터 Read 또는 Write 요청 이 들어오면, 로그 버퍼 관리자 (70)는 로그 버퍼 (72) 내에 해당 페이지와 동일한 페이지 (페이지 내용이 아니라 페이지 ID가 동일한 것을 의미 한다, 이하의 설명 에서도 마찬가지 이다) 가 있으면 그 위치에 해당 페이지에 대한 Read 또는 Write를 수행하고, 없으 면 LRU Least recently used) 페이지 교체 알고리즘에 의해 대상 페이지 (Victim)를 선정하여 로그 파일 관리자 (50)에 Read 또는 Write를 요청 한다. 특히, 로그 버퍼 관리자 (70)가 로그 파일 관리자 (50)에 게 Write 요청을 할 때 , 해쉬 자료구조에서 Victim으로 선정된 페 이지의 LSN 정보가 초기화된 값인 경우, 순차적 인 LSN 정보를 생성 함으로써 로깅 시 에도 순차 기록 방식을 사용할 수 있다. 로그 파일 관리자 (50)에 의해 생성 된 LSN 정보는 등록될 때 초기화 값이 설정된 해쉬 자료구조 (62)에 반영되어, 이후 해당 페 이지를 로그 파일 (30)에 다시 기록할 때 사용된다.  When a read or write request is received from the hash manager 60, the log buffer manager 70 means that the same page as the corresponding page (not the page content but the page ID is the same in the log buffer 72), even in the following description. If there is, read or write the page at the location, if not, select the target page (Victim) by LRU Least recently used) page replacement algorithm and request Read or Write to the log file manager 50. do. In particular, when the log buffer manager 70 makes a write request to the log file manager 50, when the LSN information of the page selected as Victim in the hash data structure is initialized, logging is performed by generating sequential LSN information. Sequential recording can also be used. The LSN information generated by the log file manager 50 is reflected in the hash data structure 62 in which an initialization value is set when it is registered, and is then used when the page is recorded again in the log file 30.
회복 관리자 (80)는 데이터 베이스 파일 관리자 (40), 로그 파일 관리자 (50), 해쉬 관리자 (60) 및 로그 버퍼 관리자 (70)를 총괄하여 관리하는 기능을 수행하며 , 시스템 오류 상황 (운영체제 다운, Power 다운, 웅용 프로그램 다운 등)이 발생하여 데이 터 베이스 관리 시스템이 재가동하였을 때 원본 데이터베 이스 파일 (20)의 일관성 (Consistency)을 보장해 주는 역할을 수행한다. 추가 적으로 회복 관리자 (80)는 상기 4개의 관리자들을 상위 모듈 (10)에서 보이지 않도록 가려주며, 상위 모들 (10)에 대한 인터페이스 역할을 수행한다. 인터페 이스 중 특히 Commit에 대한 APKApplication Program Interface)에서는 Commit를 LogCommit와 MigrationCommit의 2단계로 구분하여 정의 한다. 도 1에서는 회복 관리자 (80)가 내부에 데이터베이스 파일 관리자 (40), 로그 파 일 관리자 (50), 해쉬 관리자 (60) 및 로그 버퍼 관리자 (70)를 포함하는 것으로 도시되어 있으나, 이는 관리 적 인 기능을 강조하기 위 한 것이고 실제로는 별개 의 모들로 구현될 수도 있음은 물론이다.  The recovery manager 80 collectively manages the database file manager 40, the log file manager 50, the hash manager 60, and the log buffer manager 70, and performs a system error situation (operating system down, When the database management system is restarted due to power down, user program down, etc.), it plays a role of ensuring the consistency of the original database file 20. In addition, the recovery manager 80 hides the four managers from view in the upper module 10 and serves as an interface to the upper modules 10. Among the interfaces, the APKApplication Program Interface for Commit, in particular, defines Commit in two stages: LogCommit and MigrationCommit. In FIG. 1, the recovery manager 80 includes a database file manager 40, a log file manager 50, a hash manager 60, and a log buffer manager 70 therein. Of course, it is meant to emphasize functionality and may actually be implemented as separate modules.
따라서, 회복 관리자 (80)는 상위 모듈 (10)로부터의 Commit 요청에 대 하여 , 로그 버퍼 내의 페 이지들 중 로그 파일 (30)에 기록되지 않은 페 이지들을 모두 기록하도톡 제어하고 (LogCommit), 해쉬 자료구조 (62)를 이용하여 로그 파일 (30)에 저 장된 모든 페이지를 읽어서 데이터 베이스 파일 (20)에 순차적으로 기록하도록 제어하고 (MigrationCommit), 데이터 베이스 파일 (20)의 소정의 영 역에 현재까지 완벽히 진행된 상태를 기록한다.  Accordingly, the recovery manager 80 controls to log all the pages in the log buffer that are not written to the log file 30 for the Commit request from the upper module 10 (LogCommit), Using the hash data structure 62, all pages stored in the log file 30 are read and sequentially recorded in the database file 20 (MigrationCommit), and a predetermined area of the database file 20 is read. Record the complete progress to date.
도 2는 본 발명에 의한 해쉬 관리자 (60)에 의해 사용되는 해쉬 자료구 조 (62)를 설명 한다.  2 illustrates a hash data structure 62 used by the hash manager 60 according to the present invention.
본 발명에서 사용되는 해쉬 자료구조 (62)는 해쉬 함수, 해쉬 테이블 (64) 그리고 버킷 블럭 (66)으로 구성된다. 해쉬 테이블 (64)은 해쉬 키에 대웅하는 버 킷의 시작 위치를 지 정하는 해쉬 노드들의 리스트 집합이다. 버 킷 블럭 (66) 은 서로 다른 입 력 값에 대하여 동일한 해쉬 함수 값을 갖게 되는 경우 발생되 는 해쉬 층돌을 회피하게 위한 수단으로, 해쉬 노드의 포인터에 의해 연결되는 다수의 버 킷 (Bucket)(68)들을 구비 한다.  The hash data structure 62 used in the present invention is composed of a hash function, a hash table 64 and a bucket block 66. Hash table 64 is a set of hash nodes that specify the starting position of the bucket against the hash key. Bucket block 66 is a means to avoid the hash stratification that occurs when having the same hash function value for different input values, a number of buckets (68) connected by the pointer of the hash node (68) ).
해쉬 관리자 (60)가 사용하는 해쉬 함수의 입 력값은 페이지 ID이며, 해 쉬 함수는 Mod 연산으로 구현될 수 있다.  The input value of the hash function used by the hash manager 60 is a page ID, and the hash function may be implemented by a mod operation.
버 킷 블럭 (66)에 저장되는 버 킷 (68)의 구성요소는 페이지 ID와 LSN 정 보이다. 페이지 ID는 상위 모들 (10)에서 관리하는 ID로서, 회복 관리자 (80)의 인터페이스를 통해 전달되는 값이고, 데이터베이스 파일 (20)을 액세스하기 위 한 정보를 가지고 있다. LSN 정보는 로그 버퍼 관리자 (70)에 꾀해 생성되는 ID이며, 로그 파일 (30)을 액세스하기 위한 정보를 가지고 있다. 이들 ID를 이 용하여 Read또는 Write 시 저장 매체에서 해당 페이지가 저장된 물리적 위치 를 계산할 수 있다. The components of bucket 68 that are stored in bucket block 66 are page ID and LSN definitions. show. The page ID is an ID managed by the upper models 10 and is a value transmitted through the interface of the recovery manager 80 and has information for accessing the database file 20. The LSN information is an ID generated by the log buffer manager 70 and has information for accessing the log file 30. These IDs can be used to calculate the physical location where the page is stored on the storage medium during read or write.
해쉬 관리자 (60)는 삽입 연산시 페이지 ID에 대한 중복값을 허용하지 않으므로, 항상 마지막 버전의 페이지 이미지만을 관리할 수 있도록 한다. 따 라서 본 발명에서는 로깅을 위한 저장 공간올 효율적으로 사용할 수 있게 된 다.  Since the hash manager 60 does not allow duplicate values for the page ID during the insert operation, only the last version of the page image can be managed. Therefore, in the present invention, the storage space for logging can be efficiently used.
Commit 시점에서는 해쉬 자료구조 (62)에 등록되어 있는 모든 페이지 ID에 해당하는 페이지들이 바로 변경된 페이지들이고, 로깅이 완료된 후 (LogCommit) 로그 파일 (30)에는 모든 변경된 페이지들이 마지막 버전의 이미 지로 기록되어 있게 된다. 따라서 해쉬 자료구조 (62) 내에 등록된 모든 버킷 들을 페이지 ID순서로 정렬하여 Migration 작업 시에 사용하면 순차 기록하는 효과를 얻을 수 있다.  At the time of Commit, pages corresponding to all page IDs registered in the hash data structure (62) are changed pages immediately. After logging is completed (LogCommit), all changed pages are recorded as the image of the last version. Will be. Therefore, if all buckets registered in the hash data structure (62) are sorted in page ID order and used during migration, the effect of sequentially recording can be obtained.
도 3은 로그 버퍼 관리자 (70)가 로그 버퍼 (72)에 액세스하기 위한 자료 구조를 도시한 것이다.  3 shows a data structure for log buffer manager 70 to access log buffer 72.
로그 버퍼 관리자 (70)가 관리하는 자료구조에는 로그 버퍼 (72), 버퍼 제 어 블럭 (74) 및 해쉬 테이블 (76)이 구비된다.  The data structure managed by the log buffer manager 70 includes a log buffer 72, a buffer control block 74, and a hash table 76.
로그 버퍼 (72)는 실제로 캐쉬될 페이지들이 저장되는 메인 메모리 내의 공간이다.  Log buffer 72 is a space in main memory where pages to be actually cached are stored.
버퍼 제어 블럭 (74)은 페이지 ID에 해당하는 페이지를 빠르게 검색하기 위한 해쉬 체인 (741)과, LRU 방식의 페이지 교체 알고리즘을 위한 LRU 체인 (743)과, 로그 버퍼 내의 해당 페이지를 가리키는 페이지 포인터 (745)로 이루 어진다. 해쉬 체인 (741)과 LRU체인 (743)은 각각 하나의 버퍼 제어 블럭에서 다른 버퍼 제어 블럭을 가리키는 포인터로 구성된다.  The buffer control block 74 includes a hash chain 741 for quickly retrieving a page corresponding to a page ID, an LRU chain 743 for an LRU-based page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer. 745). The hash chain 741 and the LRU chain 743 are each composed of pointers pointing from one buffer control block to another.
해쉬 테이블 (76)은 해쉬 체인 (741)을 구성하기 위한 테이블이다.  Hash table 76 is a table for constructing hash chain 741.
여기서 해쉬 체인 (741)은 LRU페이지 교체 알고리즘에 의해 대상 페이 지 (Victim)가 선정되었을 때 갱신된다.  Here, the hash chain 741 is updated when the target page is selected by the LRU page replacement algorithm.
LRU 체인 (743)은 모든 Read 또는 Write 시에 갱신된다. 이 때, 최근 에 액세스된 페이지를 가리키는 버퍼 제어 블럭 (74)은 최상위에 위치하도록 LRU 체인 (743)이 갱신되고, 최하위에 위치한 버퍼 제어 블럭 (74)이 가리키는 페이지는 대상 페이지 (Victim)로 선정된다.  The LRU chain 743 is updated on every read or write. At this time, the LRU chain 743 is updated so that the buffer control block 74 indicating the recently accessed page is located at the top, and the page indicated by the buffer control block 74 located at the bottom is selected as the target page (Victim). do.
이하에서 도 1 내지 3을 참조하여, 본 발명에 의한 로깅 등작올 상세히 설명하기로 한다.  Hereinafter, referring to FIGS. 1 to 3, the logging equivalent according to the present invention will be described in detail.
내비게이션과 같은 모바일 단말기에 구축된 데이터베이스에서 이루어지 는 트랜잭션의 경우, 하나의 트랜잭션에 수만 개의 Read 또는 Write가 복합적 으로 구성될 수 있다. 본 발명은 이와 같은 환경에서 유용하게 적용될 수 있 다.  In the case of a transaction performed in a database built on a mobile terminal such as a navigation system, tens of thousands of reads or writes may be combined in one transaction. The present invention can be usefully applied in such an environment.
상위 모들 (10)로부터의 Write 요청이 있는 경우에는 다음과 같이 수행 된다.  If there is a Write request from the upper models 10, it is executed as follows.
해쉬 관리자 (60)는 해쉬 자료구조 (62)에 대한 검색 (a)을 통하여 해당 페이지가 해쉬 자료구조 (62)에 등록되어 있지 않으면, 해당 페이지의 페이지 식별자와 로그 버퍼 관리자 (70)에 의해 생성된 LSN 정보를 해쉬 자료구조 (62) 에 등톡하고 (b), 로그 버퍼 관리자 (70)에 해당 페이지 의 Write 요청을 한다 (초 기 등록 시에 해쉬 자료구조 (62)에서 해당 페이지의丄 SN 정보는 초기화된 값 을 가지고 있다가, 나중에 해당 페이지가 Victim으로 선정되어 로그 파일 (30) 에 기록될 때 로그 버퍼 관리자 (70)에 의해 생성된 LSN 정보로 갱신된다). 이후, 로그 버퍼 관리자 (70)는 로그 버퍼 (72)에 해당 페 이지를 기록하고 (c), LRU(Least recently used) 페이지 교체 알고리즘에 의해 대상 페 이지 (Victim)를 선정하여 로그 파일 관리자 (50)에 Write 요청을 하고, 로그 파일 관리자 (50)는 Write 요청 된 페이지를 로그 파일 (30)에 기록한다 (d). The hash manager 60 generates a page identifier of the page and the log buffer manager 70 if the page is not registered in the hash data structure 62 through a search (a) on the hash data structure 62. LSN Information Hash Data Structures (62) (B), and write request of the page to the log buffer manager 70. (In the initial registration, the hash information of the page in the hash data structure 62 has an initialized value. When the page is selected as Victim and written to the log file 30, it is updated with the LSN information generated by the log buffer manager 70). Subsequently, the log buffer manager 70 records the corresponding page in the log buffer 72 (c), and selects a target page using a least recently used (LRU) page replacement algorithm to select a log page manager (50). ), The log file manager 50 writes the write requested page to the log file 30 (d).
로그 버퍼 관리자 (70)가 로그 파일 관리자 (50)에 게 Write 요청을 할 때 해쉬 자료구조 (62)에서 Victim으로 선정된 페 이지의 LSN 정보가 초기화된 값인 경우, 로그 버퍼 관리자 (70)는 순차적 인 LSN 정보를 생성 한다. 로그 파 일 관리자 (50)에 의해 생성된 LSN 정보는 등록될 때 초기화 값이 설정된 해쉬 자료구조 (62)에 반영되어, 이후 해당 페이지를 로그 파일 (30)에 다시 기록할 때 사용된다.  When the log buffer manager 70 makes a write request to the log file manager 50, when the LSN information of the page selected as Victim in the hash data structure 62 is an initialized value, the log buffer manager 70 sequentially LSN information is generated. The LSN information generated by the log file manager 50 is reflected in the hash data structure 62 in which an initialization value is set when it is registered, and is then used when writing the corresponding page back to the log file 30.
해쉬 관리자 (60)는 해쉬 자료구조 (62)에 대한 검 색 (a)을 통하여, 해당 페이지가 해쉬 자료구조 (62)에 등록되어 있으면, 등록된 장보를 이용하여 로그 버퍼 관리자 (70)에 해당 페이지 의 Write 요청을 한다. 이후, 로그 버 퍼 관리 자 (70)는 로그 버 퍼 (72)에 해당 페이지와 동일한 페이지가 있으면 그 위치에 해당 페 이지 에 기록하고, 없으면 LRU 페이지 교체 알고리즘에 의해 대상 페이 지 (Victim)를 선정하여 로그 파일 관리자 (50)에 Write 요청을 하고 로그 버퍼 (72)에 해당 페이지를 기록한다 (d). 로그 파일 관리자 (50)는 Write 요청된 페 이지를 로그 파일 (30)에 기록한다.  The hash manager 60, through the search (a) of the hash data structure 62, if the page is registered in the hash data structure 62, corresponds to the log buffer manager 70 using the registered information. Write request of the page. Thereafter, if the log buffer 72 has the same page as the page in the log buffer 72, the log buffer manager 70 selects the target page by the LRU page replacement algorithm. Write to the log file manager 50 and write the page to the log buffer 72 (d). The log file manager 50 writes the write requested page to the log file 30.
상위 모들 (10)로부터의 Read 요청 이 있는 경우에는 다음과 같이 수행 된다.  If there is a Read request from the upper models 10, it is executed as follows.
해쉬 관리자 (60)는 해쉬 자료구조 (62)에 대한 검 색 (a)을 통하여, 해당 페 이지 가 해쉬 자료구조 (62)에 등록되어 있지 않으면 (즉, 트랜잭션에서 변경 된 적 이 없는 페이지를 요청하는 경우), 데이터베이스 파일 관리자 (40)에 해당 페 이지 의 Read 요청을 하여 읽는다 (e).  Hash manager 60, via search (a) on hash data structure 62, requests a page that has not been changed in the hash data structure 62 (i.e., has not changed in a transaction). The read request of the page to the database file manager 40 (e).
해쉬 관리자 (60)는 해쉬 자료구조 (62)에 대한 검 색 (a)을 통하여, 해당 페 이지가 해쉬 자료구조 (62)에 등록되어 있으면 (즉, 트랜잭션에서 해당 페 이지 가 이미 한번 이상 변경된 경우), 로그 버퍼 관리자 (70)에 해당 페이지의 Read 요청을 한다. 로그 버퍼 관리자 (70)는 해당 페이지를 로그 버퍼 (72)에서 읽되 Hash manager (60) performs a search (a) on hash data structure (62), if the page is registered in hash data structure (62) (i.e. if the page has already changed more than once in a transaction). Read request of the page to the log buffer manager (70). Log buffer manager 70 reads the page from log buffer 72
(f) , 로그 버퍼 (72)에 해당 페이지와 동일한 페이지가 없으면 LRU 페 이지 교체 알고리즘에 의해 로그 파일 (30)에서 해당 페이지와 동일한 페이지를 교체한다(f) If the log buffer 72 does not have the same page as the page, the LRU page replacement algorithm replaces the same page in the log file 30 with the page.
(g) . (g).
도 4를 참조하여 트랜잭션이 수행되는 과정에서 Commit 단계를 설명하 면 다음과 같이 수행된다.  Referring to FIG. 4, the Commit step in the process of executing a transaction is performed as follows.
먼저, 트랜잭션 시작 단계에서는 회복 관리자에 의해 관리되는 해쉬 자 료구조 (62) 및 로그 버퍼 (72)를 초기화하고, 원본 데이 터 베이스 파일 (20)의 특 정 영 역 (헤더 페이지 )에 트랜잭션 상태를 "트랜잭션 시 작"으로 기록하고 (S100), 시스템 차원에서 버퍼 링 된 부분이 완전히 파일에 기록되도록 Flush(Sync) 작 업을 수행한다.  First, in the transaction start phase, the hash data structure 62 and the log buffer 72 managed by the recovery manager are initialized, and the transaction status is stored in a specific area (header page) of the original database file 20. Write as "Start transaction" (S100), and perform a flush (Sync) operation so that the buffered portion is completely written to the file at the system level.
이후, DMLCdata manipulation language) Query 단계에서는 상기 한 «]- 와 같은 로깅 작업 이 수행된다.  Subsequently, in the DMLCdata manipulation language) Query step, the logging operation such as «]-is performed.
마지 막으로 Commit 단계는 2단계 (LogCommit단계와 MigrationCommit 단계)로 구분되어 진행된다. Finally, the Commit phase is phase 2 (LogCommit phase and MigrationCommit phase). Step).
1단계는 LogCommit단계로서, 상위모들 (10)에서 사용하고 아직 저장하 지 않은 변경된 페이지들을 Write 시켜주고 (SI 10), 로그 버퍼 (72) 내의 페이지 들 중 로그 파일 (30)에 기록되지 않은 페이지들 (Dirty 비트를 사용하여 사용되 지 않았거나 이미 로그 파일 (30)에 기록이 완료된 페이지들과 구분할 수 있다) 을 모두 기록하여야 비로소 모든 로깅 작업이 완료된다 (S120).  Step 1 is the LogCommit step, which writes changed pages that have been used by the upper parents (10) and have not yet been saved (SI 10), and are not recorded in the log file 30 among the pages in the log buffer 72. All logging operations are completed only when all pages (which can be distinguished from pages which have not been used by using the Dirty bit or are already recorded in the log file 30) are recorded (S120).
하지만 시스템 차원에서 파일 캐쉼 기법을 사용하므로 여전히 파일에 완전히 기록되었다고 보장할 수는 없다. 따라서, 시스템 차원에서 버퍼링된 부 분도 완전히 파일로 기록되도록 Flush(Sync) 작업을 수행한다. 원본 데이터베 이스 파일 (20)의 특정 영역 (헤더 페이지)에 현재까지 완벽히 진행된 트랜잭션 상태 ("로그 커밋 완료")를 기록하고 (S130), 다시 한번 Flush(Sync) 작업을 수 행한다.  However, because of the system-wide file caching technique, there is still no guarantee that the file will be written completely. Therefore, the system flushes the buffered part to the file completely. In the specified area (header page) of the original database file 20, the transaction status ("log commit completed") that has been completed so far is recorded (S130), and Flush (Sync) operation is performed once again.
2단계는 MigrationCommit 단계로서, 해쉬 자료구조 (보다 정확히는, 해 쉬 자료구조 (62)를 정렬하여 기톡한 로그)를 이용하여, 로그 파일 (30)에서 페이 지를 읽어서 원본 데이터베이스 파일 (20)로 변경된 페이지들을 이주 (Migration)시키는 작업을 수행한다 (S140). 이후 원본 데이터베이스파일이 완 전히 기록되도록 Flush(Sync) 작업을 수행한다. 원본 데이터베이스 파일 (20) 의 특정영역 (헤더페이지)에 현재까지 완벽히 진행된 상태 ("Migration 커밋 완료 ")를 기록하고 (S150), 다시 한번 Flush(Sync) 작업을 수행한다.  Step 2 is the MigrationCommit step, which uses a hash data structure (more precisely, a log written by sorting the hash data structure (62)) to read pages from the log file (30) and convert them to the original database file (20). Migrate them (S140). After that, execute Flush (Sync) operation so that the original database file is completely recorded. In the specified area (header page) of the original database file 20, the state of progress ("Migration commit completed") that has been completed so far is recorded (S150), and Flush (Sync) is performed once again.
여기까지 진행되었다면 해당 트랜잭션이 정상적으로 수행을 마친 것이 다.  If so far, the transaction has completed successfully.
Rollback 연산은 원본 데이터베이스 파일 (20)이 바뀌지 않았으므로 그 동안 기록해오던 로그 파일 (30)을 clean up만 하면 된다. 추가적으로, 상위 모들 (10)에서 캐쉬하고 있던 변경된 페이지들이 존재할 가능성이 있으므로, 상 위 모들 (10)에서 사용 중이던 캐쉬된 모든 페이지들올 clean up 해주어야 한 다. 도 5를 참조하여, 시스템 오류 상황 (운영체제 다운, 전원 다운, 응용 프 로그램 다운 등)에서 데이터 일관성을 보장하는 방법에 대하여 설명하면 다음 과 같다.  The rollback operation does not change the original database file (20), so you only need to clean up the log file (30) that has been recorded. In addition, since there may be modified pages cached in the upper models 10, all cached pages used in the upper modules 10 should be cleaned up. Referring to FIG. 5, a method of ensuring data consistency in a system error situation (operating system down, power down, application down, etc.) will be described below.
트랜잭션의 마지막 상태값을 원본 데이터베이스 파일 (10)의 헤더페이지 에 기록함으로써, 시스템 오류 상황 발생시 데이터의 일관성을 보장할 수 있다. 트랜잭션을 성공적으로 시작한 후 1단계 커밋이 완료되기 전에 오류가 발생하였다면 (트랜잭션의 마지막 상태값이 "트랜잭션 시작"인 경우) (S200), 재 부팅 시 이전의 트랜잭션이 를백되었음을 웅용 프로그램에 알리고, 모든 로그 파일 (30)을 clean up한 후 (S240), 정상적인 부팅과정을 계속 진행하게 된다 (S250).  By recording the last state value of the transaction in the header page of the original database file 10, it is possible to guarantee the consistency of data in the event of a system error. If an error occurs after the successful start of the transaction but before the first phase commit is complete (if the last status of the transaction is "Start transaction") (S200), the utility informs the master that the previous transaction was back at reboot. After cleaning up the log file 30 (S240), the normal booting process is continued (S250).
트랜잭션을 성공적으로 2단계 커밋이 완료하여 정상적으로 수행을 마친 후에 오류가 발생하였다면 (트랜잭션의 마지막 상태값이 "Migration 커밋 완료" 인 경우) (S210), 재부팅 시 모든 로그 파일 (30)을 clean up한 후 (S240), 정상 적인 부팅과정을 계속 진행하면 된다 (S250).  If an error occurs after the transaction has been successfully completed by two-phase commit and completed normally (if the last status of the transaction is "Migration commit completed") (S210), all log files (30) are cleaned up on reboot. After (S240), you can continue the normal booting process (S250).
이에 비하여, 만약 1단계 커밋이 완료되고 2단계 커밋 (Migration)수행 중 오류가 발생하였다면 (트랜잭션의 마지막 상태값은 "로그 커밋 완료"인 경 우) (S220), 재부팅시 다시 Migration작업을 수행한 후 (S230), 모든 로그 파일 (30)을 clean up하여 (S240), 정상적인 부팅과정을 계속 진행하게 된다 (S250). 【산업상이용가능성】 On the contrary, if the first stage commit is completed and an error occurs during the second stage migration (when the final status value of the transaction is "log commit completed") (S220), the migration is performed again on reboot. After (S230), to clean up all log files (30) (S240), the normal booting process continues (S250). 【Industrial Availability】
이상 설명한 바와 같이 본 발명에 따르면, DBMS에서 트랜잭션 수행 시 로깅을 위한 저장 공간을 효율적으로 사용할 수 있으며, 파일 I/O를 최소화하 고, 파일에 기록할 때 순차 기록함으로써 성능이 개선되는 효과를 얻을 수 있 다.  As described above, according to the present invention, the DBMS can efficiently use the storage space for logging when performing transactions in the DBMS, minimize file I / O, and improve performance by sequentially recording when writing to a file. Can be.
특히 모바일 단말기 상에서는 파일 I/O를 최소화함으로써 성능이 개선 되는 효과 뿐만 아니라 플래시 메모리의 수명 단축을 방지할 수 있는 효과도 얻을 수 있다.  In particular, on a mobile terminal, minimizing file I / O not only improves performance but also prevents shortening the life of flash memory.

Claims

【청구의범위】 [Claim]
【청구항 1】  [Claim 1]
저장 매체에 저장되는 데이터베이스 파일;  A database file stored in a storage medium;
저장 매체에 저장되는 로그 파일;  A log file stored in a storage medium;
페이지 식별자를 이용하여 상기 데이터베이스 파일을 제어하는 데이터 베이스 파일 관리자;  A database file manager for controlling the database file using a page identifier;
LSN 정보를 이용하여 상기 로그 파일을 제어하는 로그 파일 관리자; 변경된 페이지에 대한 정보를 관리하는 해쉬 자료구조를 구비하고, 이 미 변경된 페이지에 대한 액세스 또는 페이지 변경은 로그 버퍼 관리자를 통해 수행하고, 변경되지 않은 페이지에 대한 액세스는 데이터베이스 파일 관리자를 통해 수행하도록 제어하는 해쉬 관리자;  A log file manager controlling the log file using LSN information; Has a hash data structure to manage information about changed pages, controls access to or changes to pages that have already been changed through the log buffer manager, and access to unchanged pages through the database file manager. A hash manager;
상기 로그 파일의 페이지들 중 일부를 메인 메모리 상에 관리하는 로그 버퍼를 구비하고, 이미 변경된 페이지에 대한 액세스 또는 페이지 변경에 대웅 하여 상기 로그 버퍼를 대상으로 하여 수행하되, 상기 로그 버퍼에 해당 페이 지가 없으면 상기 로그 파일과 LRU(Least recently used) 방식의 페이지 교 체를 수행하는 로그 버퍼 관리자; 및  And a log buffer for managing some of the pages of the log file on main memory, and performing the targeting on the log buffer in response to a page change or an access to a page which has already been changed. A log buffer manager for performing page replacement of the log file with a least recently used (LRU) method if not present; And
상위 모들로부터의 Commit 요청에 대하여, 상기 로그 버퍼 내의 페이 지들 중 상기 로그 파일에 기톡되지 않은 페이지들을 모두 기록하도록 제어하 고, 상기 해쉬 자료구조를 이용하여 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 순차적으로 기록하도록 제어하고, 상기 데이 터베이스 파일의 소정의 영역에 현재까지 완벽히 진행된 상태를 기록하는 회복 관리자;를 포함하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치.  In response to a Commit request from upper layers, control to record all pages not written to the log file among pages in the log buffer, and read all pages stored in the log file using the hash data structure to read the database. And a recovery manager that controls to record sequentially to a file and records the state of the database in a predetermined area of the database file. .
【청구항 2】  [Claim 2]
저장 매체에 저장되는 데이터베이스 파일;  A database file stored in a storage medium;
저장 매체에 저장되는 로그 파일;  A log file stored in a storage medium;
페이지 식별자를 이용하여 상기 데이터베이스 파일을 제어하는 데이터 베이스 파일 관리자;  A database file manager for controlling the database file using a page identifier;
LSN 정보를 이용하여 상기 로그 파일을 제어하는 로그 파일 관리자; 상위 모들로부터의 Write 요청에 대하여, 해당 페이지가 해쉬 자료구조 에 등록되어 있지 않으면 해당 페이지의 페이지 식별자와 로그 버퍼 관리자에 의해 생성된 LSN 정보를 해쉬 자료구조에 등록하고 로그 버퍼 관리자에 해당 페이지의 Write 요청을 하고, 등록되어 있으면 등록된 정보를 이용하여 로그 버퍼 관리자에 해당 페이지의 Write요청을 하는 해쉬 관리자;  A log file manager controlling the log file using LSN information; For a write request from a parent model, if the page is not registered in the hash data structure, the page identifier of the page and the LSN information generated by the log buffer manager are registered in the hash data structure, and the page writes to the log buffer manager. A hash manager that makes a request to write a corresponding page to the log buffer manager using the registered information if the request is registered;
상기 해쉬 관리자로부터의 Write 요청에 대하여, 로그 버퍼에 해당 페 이지와 동일한 페이지가 있으면 그 위치에 해당 페이지에 기록하고, 없으면 LRUCLeast recently used) 페이지 교체 알고리즘에 의해 대상 페이지를 선정 하여 로그 파일 관리자에 Write 요청을 하고 로그 버퍼에 해당 페이지를 기록 하는 로그 버퍼 관리자; 및  For a write request from the hash manager, if the same page as the page exists in the log buffer, the page is written to the page, and if not, the target page is selected by the page replacement algorithm and written to the log file manager. A log buffer manager that makes requests and writes those pages to the log buffer; And
상위 모들로부터의 Commit 요청에 대하여, 상기 로그 버퍼 내의 페이 지들 중 상기 로그 파일에 기록되지 않은 페이지들을 모두 기록하도록 제어하 고, 상기 해쉬 자료구조를 이용하여 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 순차적으로 기록하도록 제어하고, 상기 데이 터베이스 파일의 소정의 영역에 현재까지 완벽히 진행된 상태를 기록하는 회복 관리자;를 포함하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 In response to a Commit request from a higher model, control to record all pages not written to the log file among pages in the log buffer, and read all pages stored in the log file using the hash data structure to read the database. And a recovery manager which controls to write sequentially to the file, and records the state of the state which has been completely progressed up to now in a predetermined area of the database file.
어초파영랜대한 트랜잭션 로깅 및 회복 장치. Echo waves for transaction logging and recovery.
【하기잭역일청구항 3】  【Hagi Jack Station Claim 3】
고화에에션  Solidified Essence
제 2항에 있어서, 상기 해쉬 관리자는  The hash manager of claim 2, wherein the hash manager is
상위 모들로부터의 Read 요청에 대하여, 해당 페이지가 해쉬 자료구조 에 등록되어 있으면 로그 버퍼 관리자에 해당 페이지의 Read 요청을 하고, 등 록되어 있지 않으면 데이터베이스 파일 관리자에 해당 페이지의 Read 요청을 하고,  For a read request from the parent model, if the page is registered in the hash data structure, the read request of the page is made to the log buffer manager. If not, the read request of the page is made to the database file manager.
상기 로그 버퍼 관리자는  The log buffer manager
상기 해쉬 관리자로부터의 Read요청에 대하여, 해당 페이지를 상기 로 그 버퍼에서 읽되, 상기 로그 버퍼에 해당 페이지와 동일한 페이지가 없으면 LRU 페이지 교체 알고리즘에 의해 로그 파일에서 해당 페이지와 동일한 페이 지를 교체하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치.  For a Read request from the hash manager, if a corresponding page is read from the log buffer and there is no same page as the corresponding page in the log buffer, the same page as the corresponding page is replaced in the log file by an LRU page replacement algorithm. Transaction logging and recovery device for a database built in a mobile environment.
【청구항 4】  [Claim 4]
제 2항 또는 제 3항에 있어서, 상기 해쉬 자료구조는  4. The hash data structure of claim 2 or 3, wherein the hash data structure
입력값으로 페이지 식별자가 사용되는 MOD 연산으로 이루어진 해쉬 함수와'  A hash function consisting of a MOD operation that uses a page identifier as input,
해쉬키에 대웅하는 버킷의 시작 위치를 지정하는 해쉬 노드들의 리스트 집합인 해쉬 테이블과,  A hash table that is a list of hash nodes that specify the starting position of the bucket against the hash key;
페이지 식별자와 LSN 정보를 버킷의 구성요소로 하는 버킷 블럭을 구 비하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭 션 로깅 및 회복 장치.  A transaction logging and retrieval device for a database built in a mobile environment, comprising a bucket block having page identifiers and LSN information as components of a bucket.
【청구항 5】  [Claim 5]
게 2항 또는 게 3항에 있어서, 상기 로그 버퍼 관리자는 상기 로그 버퍼 에 액세스하기 위하여,  According to claim 2 or 3, wherein the log buffer manager to access the log buffer,
해쉬 체인 구성을 위한 해쉬 테이블; 및  A hash table for hash chain construction; And
페이지 식별자에 해당하는 페이지를 검색하기 위한 해쉬 체인과 LRU 방식의 페이지 교체 알고리즘을 위한 LRU 체인과 로그 버퍼 내의 해당 페이지 를 가리키는 페이지 포인터로 이루어진 버퍼 제어 블럭;을 구비하는 것을 특징 으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치.  And a buffer control block comprising a hash chain for retrieving a page corresponding to a page identifier, an LRU chain for an LRU page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer. Logging and retrieval device for partitioned databases.
【청구항 6】  [Claim 6]
거 12항 또는 제 3항에 있어서, 상기 로그 버퍼 관리자는  The method according to claim 12 or 3, wherein the log buffer manager
대상 페이지로 선정된 페이지에 대한 LSN 정보가 아직 설정되어 있지 않은 경우, 순차적인 방식으로 LSN 정보를 생성하여 상기 로그 파일 관리자에 Write 요청을 하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치.  If the LSN information for the page selected as the target page is not yet set, transaction logging for the database built in the mobile environment, which generates the LSN information in a sequential manner and writes to the log file manager And recovery device.
【청구항 7】  [Claim 7]
제 2항 또는 제 3항에 있어서, 상기 회복 관리자는  The method of claim 2 or 3, wherein the recovery manager
시스템 오류 상황 이후 부팅 시에, 상기 데이터베이스 파일의 소정의 기록된 현재까지 진행된 상태가 "로그 커밋 완료' '인 경우, 상기 로그 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 기록하도록 제 , "트랜잭션 시작" 또는 "Migration 커밋 완료' '인 경우 상기 로그 파일을 하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트 로깅 및 회복 장치. Upon booting after a system error condition, if the progress to the predetermined recorded present time of the database file is "log commit completed", the "start transaction" to read all the pages stored in the log and write them to the database file. Device for logging and recovery for a database built in a mobile environment, characterized in that said log file when "Migration commit complete".
【청구항 8】 [Claim 8]
(a) 상위 모들로부터의 Write 요청쎄 대하여, 해당 페이지가 해쉬 자료 구조에 등록되어 있지 않은 경우, 페이지 식별자와 LSN 정보를 해쉬 자료구조 에 등톡하고, 해당 페이지를 로그 버퍼에 기록하되 LRUCLeast recently used) 페이지 교체 알고리즘에 의해 선정된 대상 페이지는 로그 파일에 기록하는 단 계;  (a) For a Write request from a parent model, if the page is not registered in the hash data structure, write the page identifier and LSN information into the hash data structure, and write the page to the log buffer, but use LRUCLeast recently used. Writing the target page selected by the page replacement algorithm to a log file;
(b) 상위 모들로부터의 Write 요청에 대하여, 해당 페이지가 상기 해쉬 자료구조에 등톡되어 있는 경우, 상기 로그 버퍼에 해당 페이지와 동일한 페이 지가 있으면 그 위치에 해당 페이지에 기록하고, 없으면 LRU 페이지 교체 알 고리즘에 의해 선정된 대상 페이지를 상기 로그 파일에 기록하고 해당 페이지 는 상기 로그 버퍼에 기록하는 단계;  (b) For a Write request from a higher model, if the page is registered in the hash data structure, if the same page as the page exists in the log buffer, the page is written to that page; Writing a target page selected by a algorithm in the log file and writing the page to the log buffer;
(c) 상위 모들로부터의 Commit요청에 대하여, 상기 로그 버퍼 내의 페 이지들 증 상기 로그 파일에 기록되지 않은 페이지들을 모두 기록한 후, 데이 터베이스 파일의 소정의 영역에 현재까지 진행된 상태를 기록하고, 상기 해쉬 자료구조를 이용하여 상기 로그 파일에 저장된 모든 페이지를 읽어서 상기 데 이터베이스 파일에 순차적으로 기록한 후, 상기 데이터베이스 파일의 소정의 영역에 현재까지 진행된 상태를 기록하는 단계;를 포함하는 것을 특징으로 하 는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방법. (c) recording a page in the log buffer for a Commit request from higher parents, recording all pages not recorded in the log file, and recording the status so far in a predetermined area of the database file; And reading all the pages stored in the log file using the hash data structure and sequentially recording the pages in the database file, and recording the status of the database file up to date in a predetermined area of the database file. Transaction logging and recovery methods for databases deployed in mobile environments.
【청구항 9】 [Claim 9]
제 8항에 있어서, 상기 (c) 단계 이전에  The method according to claim 8, wherein before step (c)
(al) 상위 모듈로부터의 Read 요청에 대하여, 해당 페이지가 상기 해쉬 자료구조에 등록되어 있지 않은 경우, 상기 데이터베이스 파일에서 해당 페이 지를 읽는 단계; 및  (al) in response to a Read request from an upper module, reading the page from the database file if the page is not registered in the hash data structure; And
(bl) 상위 모들로부터의 Read 요청에 대하여, 해당 페이지가 상기 해쉬 자료구조에 등록되어 있는 경우, 해당 페이지를 상기 로그 버퍼에서 읽되, 상기 로그 버퍼에 해당 페이지와 동일한 페이지가 없으면 LRU 페이지 교체 알고리 즘에 의해 로그 파일에서 해당 페이지와 동일한 페이지를 교체하는 단계;를 더 포함하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜 잭션 로깅 및 회복 방법.  (bl) For a Read request from higher parents, if the page is registered in the hash data structure, the page is read from the log buffer, and if there is no page identical to the page in the log buffer, the LRU page replacement algorithm And replacing the same page as the corresponding page in the log file by the transaction method.
【청구항 10]  [Claim 10]
제 8항 또는 제 9항에 있어서, 상기 해쉬 자료구조는  10. The method of claim 8 or 9, wherein the hash data structure
입력값으로 페이지 식별자가 사용되는 MOD 연산으로 이루어진 해쉬 함수와,  A hash function consisting of a MOD operation that uses a page identifier as input,
해쉬키에 대웅하는 버킷의 시작 위치를 지정하는 해쉬 노드들의 리스트 집합인 해쉬 테이블과,  A hash table, which is a list of hash nodes that specify the starting position of the bucket against the hash key,
페이지 식별자와 LSN 정보를 버킷의 구성요소로 하는 버킷 블럭을 구 비하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭 션 로깅 및 회복 방법.  A transaction logging and retrieval method for a database built in a mobile environment, comprising a bucket block having page identifiers and LSN information as components of a bucket.
【청구항 11】  [Claim 11]
제 8항 또는 제 9항에 있어서,  The method according to claim 8 or 9,
상기 로그 버퍼에 액세스하기 위한 자료구조로  To a data structure for accessing the log buffer
해쉬 체인 구성을 위한 해쉬 테이블; 및  A hash table for hash chain construction; And
페이지 식별자에 해당하는 페이지를 검색하기 위한 해쉬 체인과 LRU 방식의 페이지 교체 알고리즘을 위한 LRU 체인과 로그 버퍼 내의 해당 페이지 를 가리키는 페이지 포인터로 이루어진 버파 제어 블럭;을 구비하는 것을 특징 으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 방법. And a buffer control block comprising a hash chain for retrieving a page corresponding to a page identifier, an LRU chain for an LRU page replacement algorithm, and a page pointer pointing to a corresponding page in a log buffer. Transaction logging and recovery methods for databases deployed in mobile environments.
【청구항 12】  [Claim 12]
제 8항 또는제 9항에 있어서, 상기 (a) 단계는  The method of claim 8 or 9, wherein step (a)
대상 페이지로 선정된 페이지에 대한 LSN 정보를 순차적인 방식으로 생성하는 것을 특징으로 하는 모바일 환경에 구축된 데이터베이스에 대한 트랜 잭션 로깅 및 회복 방법.  A transaction logging and recovery method for a database built in a mobile environment, characterized by generating LSN information for a page selected as a target page in a sequential manner.
【청구항 13]  [Claim 13]
제 8항 또는 제 9항에 있어서,  The method according to claim 8 or 9,
(d) 시스템 오류 상황 이후 부팅 시에, 상기 데이터베이스 파일의 소정 의 영역에 기록된 현재까지 진행된 상태가 "로그 커밋 완료"인 경우, 상기 로 그 파일에 저장된 모든 페이지를 읽어서 상기 데이터베이스 파일에 기록하고, "트랜잭션 시작'' 또는 "Migration 커밋 완료"인 경우 상기 로그 파일을 초기화 하는 단계;를 더 포함함을 특징으로 하는 모바일 환경에 구축된 데이터베이스 에 대한 트랜잭션 로깅 및 회복 방법.  (d) When booting after a system error condition, if the progress progressed so far recorded in a predetermined area of the database file is "log commit completed", all pages stored in the log file are read and written to the database file. And initializing the log file when “transaction start” or “migration commit is completed”. 8. The method of claim 2, further comprising: initializing the log file.
PCT/KR2012/008714 2012-10-17 2012-10-23 Apparatus and method for logging and recovering transaction of database built in mobile environment WO2014061847A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120115453A KR101419428B1 (en) 2012-10-17 2012-10-17 Apparatus for logging and recovering transactions in database installed in a mobile environment and method thereof
KR10-2012-0115453 2012-10-17

Publications (1)

Publication Number Publication Date
WO2014061847A1 true WO2014061847A1 (en) 2014-04-24

Family

ID=50488396

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/008714 WO2014061847A1 (en) 2012-10-17 2012-10-23 Apparatus and method for logging and recovering transaction of database built in mobile environment

Country Status (2)

Country Link
KR (1) KR101419428B1 (en)
WO (1) WO2014061847A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109791541A (en) * 2018-11-29 2019-05-21 袁振南 Log serial number generation method, device and readable storage medium storing program for executing
CN113239012A (en) * 2021-05-17 2021-08-10 挂号网(杭州)科技有限公司 Database migration method and device, electronic equipment and storage medium
CN117573378A (en) * 2024-01-15 2024-02-20 摩尔线程智能科技(北京)有限责任公司 Memory management method, device, equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080027660A (en) * 2006-09-25 2008-03-28 주식회사 비티웍스 Apparatus and method for management of electronic filing document
KR20100062562A (en) * 2008-12-02 2010-06-10 한국과학기술원 Database system based on hybrid storage device nand flash memory and non-volatile ram, and method of updating data in the database system
KR20120017644A (en) * 2010-08-19 2012-02-29 (주)씨디네트웍스 Method for downloading file and record media recorded program for realizing the same
KR20120110871A (en) * 2011-03-30 2012-10-10 주식회사 케이티 Method for determining and searching storage server in distributed file system
KR20120113584A (en) * 2011-04-05 2012-10-15 삼성전자주식회사 Memory device, computer system having the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080027660A (en) * 2006-09-25 2008-03-28 주식회사 비티웍스 Apparatus and method for management of electronic filing document
KR20100062562A (en) * 2008-12-02 2010-06-10 한국과학기술원 Database system based on hybrid storage device nand flash memory and non-volatile ram, and method of updating data in the database system
KR20120017644A (en) * 2010-08-19 2012-02-29 (주)씨디네트웍스 Method for downloading file and record media recorded program for realizing the same
KR20120110871A (en) * 2011-03-30 2012-10-10 주식회사 케이티 Method for determining and searching storage server in distributed file system
KR20120113584A (en) * 2011-04-05 2012-10-15 삼성전자주식회사 Memory device, computer system having the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109791541A (en) * 2018-11-29 2019-05-21 袁振南 Log serial number generation method, device and readable storage medium storing program for executing
CN109791541B (en) * 2018-11-29 2023-11-24 袁振南 Log serial number generation method and device and readable storage medium
CN113239012A (en) * 2021-05-17 2021-08-10 挂号网(杭州)科技有限公司 Database migration method and device, electronic equipment and storage medium
CN113239012B (en) * 2021-05-17 2023-02-03 挂号网(杭州)科技有限公司 Database migration method and device, electronic equipment and storage medium
CN117573378A (en) * 2024-01-15 2024-02-20 摩尔线程智能科技(北京)有限责任公司 Memory management method, device, equipment and storage medium

Also Published As

Publication number Publication date
KR20140049327A (en) 2014-04-25
KR101419428B1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
US11210220B2 (en) Log-structured storage for data access
US11921684B2 (en) Systems and methods for database management using append-only storage devices
US11132350B2 (en) Replicable differential store data structure
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
EP3170106B1 (en) High throughput data modifications using blind update operations
CN103765393B (en) Storage system
WO2017190604A1 (en) Transaction recovery method in database system and database management system
Depoutovitch et al. Taurus database: How to be fast, available, and frugal in the cloud
EP2590078B1 (en) Shadow paging based log segment directory
EP1503290A2 (en) Transaction consistent copy-on-write database
US20060224639A1 (en) Backup system, program and backup method
CN109871386A (en) Multi version concurrency control (MVCC) in nonvolatile memory
Graefe et al. Instant recovery with write-ahead logging
Son et al. SSD-assisted backup and recovery for database systems
US11188516B2 (en) Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point
US20220398232A1 (en) Versioned metadata using virtual databases
KR101419428B1 (en) Apparatus for logging and recovering transactions in database installed in a mobile environment and method thereof
CN108369549B (en) Versioned record management computing system, method and computer readable medium
US20230297510A1 (en) Write-behind optimization of covering cache
CN114579604B (en) Database transaction implementation method and system of application layer
CN115576494A (en) Data storage method and computing device

Legal Events

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

Ref document number: 12886773

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12886773

Country of ref document: EP

Kind code of ref document: A1