KR100236675B1 - Method of exchanging cost-base object buffer for object-orient database system - Google Patents

Method of exchanging cost-base object buffer for object-orient database system Download PDF

Info

Publication number
KR100236675B1
KR100236675B1 KR1019960066427A KR19960066427A KR100236675B1 KR 100236675 B1 KR100236675 B1 KR 100236675B1 KR 1019960066427 A KR1019960066427 A KR 1019960066427A KR 19960066427 A KR19960066427 A KR 19960066427A KR 100236675 B1 KR100236675 B1 KR 100236675B1
Authority
KR
South Korea
Prior art keywords
buffer
cost
replacement
database system
page
Prior art date
Application number
KR1019960066427A
Other languages
Korean (ko)
Other versions
KR19980047901A (en
Inventor
황규영
박종목
Original Assignee
윤덕용
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤덕용, 한국과학기술원 filed Critical 윤덕용
Priority to KR1019960066427A priority Critical patent/KR100236675B1/en
Publication of KR19980047901A publication Critical patent/KR19980047901A/en
Application granted granted Critical
Publication of KR100236675B1 publication Critical patent/KR100236675B1/en

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Abstract

본 발명은 객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법에 관한 것으로서, 상세하게는 객체지향 데이터베이스 시스템의 객체 버퍼에서는 객체들의 크기와 교체 비용이 객체마다 일정하지 않으므로 객체들의 크기와 교체 비용을 모두 고려하여 단위 시간 및 단위 공간당 발생하는 총 비용이 최소가 되도록 하는 객체들을 교체시키는 것이다.The present invention relates to a cost-based object buffer replacement method for an object-oriented database system. Specifically, in the object buffer of an object-oriented database system, the size and the replacement cost of objects are not constant for each object. It takes into account the replacement of objects so that the total cost incurred per unit time and unit space is minimized.

본 발명에서 객체에 대한 비용은 객체를 인출하는 비용뿐만 아니라 객체를 교체하는 비용을 포함하여 계산하며, 이 값을 객체의 크기와 앞으로 참조가 예상되는 시점까지의 거리의 곱으로 나눔으로써 단위 비용을 계산한다.In the present invention, the cost for the object is calculated including not only the cost of retrieving the object but also the cost of replacing the object, and the unit cost is divided by the product of the object's size and the distance to the point where future reference is expected. Calculate

본 발명은 기존의 객체 버퍼 교체 방법들에서 객체의 크기와 교체 비용을 고려하도록 일반화시킨 방법이므로 기존의 방법들이 적용된 어떤 응용에도 적용될 수 있으며, 특히 교체 비용이 버퍼 폴트 회수에 비례하지 않는 객체지향 데이터 베이스 시스템에 효율적으로 활용될 수 있다.Since the present invention generalizes to consider the size and replacement cost of an object in existing object buffer replacement methods, the present invention can be applied to any application to which the existing methods are applied. In particular, object-oriented data in which replacement cost is not proportional to the number of buffer faults. It can be used efficiently in the base system.

Description

객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법Cost-Based Object Buffer Replacement for Object-Oriented Database Systems

본 발명은 객체지향 데이터베이스 시스템을 위한 객체 버퍼 교체 방법에 관한 것으로서, 상세하게는 객체들의 크기와 교체 비용을 모두 고려하여 단위 시간 및 단위 공간당 발생하는 총 비용이 최소가 되도록 하는 객체들을 교체시키는 것이다.The present invention relates to a method of replacing an object buffer for an object-oriented database system. In detail, the present invention relates to replacing objects for minimizing total costs incurred per unit time and unit space in consideration of both size and replacement cost of objects. .

일반적으로 데이터베이스 관리 시스템(Database Management System : 이하 DBMS라 한다)의 구성요소(component)인 버퍼 관리자(buffer manager)는 데이터베이스를 구성하는 디스크(disk)의 물리적인 액세스(access) 단위인 페이지(page)들을 주기억 장치상에서 액세스할 수 있도록 하는 데이터베이스 버퍼(database buffer 또는 간략히 버퍼)를 관리한다.Generally, a buffer manager, a component of a database management system (hereinafter referred to as a DBMS), is a page, which is a unit of physical access of a disk, which constitutes a database. Manage database buffers (or database buffers) to make them accessible on main memory.

버퍼 관리자는 DBMS의 하위 구성요소(low-level component)로서 상위 구성요소(high-level component)로부터 액세스하고자 하는 데이터에 대한 요청을 받아서 해당 데이터가 저장된 디스크 페이지를 디스크로부터 인출(fetch)하여 버퍼에 상주시킨다. 버퍼의 용량은 한정되어 있으므로 요청된 데이터가 상주할 기억 공간이 부족할 경우, 버퍼 관리자는 이미 버퍼에 상주한 페이지들 중에서 가장 사용될 가능성이 적은 것(희생자(victim)라고도 함)을 선정하여 그 페이지가 차지하던 기억공간을 활용한다. 만약 희생자로 선정된 페이지가 변경되었을 경우 그것을 다시 디스크에 기록(write)한다. 이와 같이 기존에 상주한 페이지를 선정하여 그 기억 공간을 재활용하는 과정을 교체(replacement)라고 한다.The buffer manager is a low-level component of the DBMS that receives a request for data from a high-level component and fetches the disk page where the data is stored from the disk to the buffer. Resident Because of the limited capacity of the buffer, if there is not enough storage space for the requested data to reside, the buffer manager selects the least likely one of the pages already in the buffer (also called the victim), Use the memory you occupied. If the victim's page changes, it writes it back to disk. As such, the process of selecting an existing page and reusing the storage space is called a replacement.

디스크에서 페이지를 액세스하는 시간은 주기억 장치에 상주한 데이터를 액세스하는 것 보다 훨씬 크므로 버퍼 관리자는 주어진 크기의 버퍼와 요청된 데이터들에 의해서 발생하는 비용(cost)인 디스크 액세스 회수를 최소화하는 것을 목표로 한다. 기존의 관계형 DBMS나 네트웍 DBMS들에서는 데이터베이스 버퍼가 물리적인 디스크 페이지의 크기에 해당하는 페이지들로 이루어진 영역으로 관리되고, 데이터의 논리적인 단위가 되는 튜플(또는 레코드)들에 대한 요청들은 곧 해당 튜플(tuple) 또는 레코드가 저장된 페이지의 요청이 되므로 버퍼에서의 인출과 교체는 모두 물리적인 페이지의 단위로 이루어진다.Since accessing pages on disk is much larger than accessing data residing on main memory, the buffer manager can help minimize the number of disk accesses that are incurred by buffers of a given size and the requested data. Aim. In traditional relational or network DBMSs, a database buffer is managed as an area consisting of pages corresponding to the size of a physical disk page, and requests for tuples (or records), which are logical units of data, are called corresponding tuples. (tuple) or a request for the page where the record is stored, so both fetching and replacing in the buffer is in physical pages.

요청된 페이지가 버퍼에 상주하지 않을 경우 버퍼 폴트(buffer fault)가 일어난다고 하고, 페이지의 단위 요청당 버퍼 폴트가 발생하는 비율을 버퍼 폴트율(page fault rate)이라 한다. 페이지 기반 버퍼에서는 교체 방법에 의해 발생하는 비용이 대체로 버퍼 폴트 회수에 비례한다. 그 이유는 전체 비용은 버퍼 폴트를 일으킨 페이지를 인출하는 인출 비용(fetch cost)과 희생자들을 교체하는 교체 비용(replacement cost)으로 이루어지는데, 교체 비용은 인출 비용의 일정한 분수로 나타나기 때문이다. 따라서, 페이지 기반 버퍼에서는 버퍼 폴트율을 최소화하는 것이 곧 전체 비용을 최소화하는 것이다.If the requested page does not reside in the buffer, a buffer fault occurs. The rate at which a buffer fault occurs per unit request of a page is called a buffer fault rate. In page-based buffers, the cost of replacement is usually proportional to the number of buffer faults. The reason is that the total cost consists of the fetch cost of fetching the page that caused the buffer fault and the replacement cost of replacing the victims, since the replacement cost is represented as a constant fraction of the fetch cost. Therefore, minimizing the buffer fault rate in page-based buffers minimizes the overall cost.

한편, 대부분의 객체지향 데이터베이스 시스템(Object-Oriented Database Management System : 이하 OODBMS라 한다)에서는 기존의 DBMS들과 달리 데이터베이스 버퍼를 객체 버퍼(object buffer)와 페이지 버퍼(page buffer)로 나누어서 관리한다.On the other hand, unlike most existing DBMSs, the object-oriented database system (Object-Oriented Database Management System: OODBMS) manages the database buffer is divided into an object buffer (page buffer) and a page buffer (page buffer).

객체 버퍼는 논리적인 단위가 되는 객체들을 관리하기 위한 버퍼이며, 페이지 버퍼는 객체가 저장된 물리적인 단위의 페이지들을 관리하고 실제로 디스크를 액세스하기 위한 버퍼이다. OODBMS의 상위 구성요소에서는 객체 버퍼에 상주한 객체들만을 액세스하며, 객체 버퍼에 상주하지 않은 객체를 액세스하려고 할 때에는 객체 버퍼 관리자가 페이지 버퍼 관리자에게 객체가 저장된 페이지를 요청하여 페이지 버퍼로부터 객체를 인출한다. 기억 공간이 부족하면, 객체 버퍼 관리자는 객체 버퍼에서 교체할 객체들을 선정하여 다시 페이지 버퍼에 기록한다. 이러한 버퍼 관리 방식을 이중 버퍼링(dual buffering)이라고 한다.An object buffer is a buffer for managing objects that are logical units, and a page buffer is a buffer for managing physical pages and storing disks. The parent component of the OODBMS only accesses objects that reside in the object buffer. When attempting to access an object that does not reside in the object buffer, the object buffer manager requests the page where the object is stored and retrieves the object from the page buffer. do. If there is not enough space, the object buffer manager selects objects to replace in the object buffer and writes them back to the page buffer. This buffer management method is called dual buffering.

이중 버퍼링 방식에서 객체 버퍼에는 페이지 버퍼와는 다른 몇 가지 특징이 있다. 첫째, 객체 버퍼에 상주한 객체들은 크기가 서로 다를 수 있다. 객체 버퍼 내에는 서로 다른 클래스(class)에 속하는 객체들이 존재할 수 있으며 같은 클래스에 속한 객체들도 가변길이 속성을 가질 경우 크기가 서로 다를 수 있다.In the double buffering method, the object buffer has some characteristics different from the page buffer. First, objects residing in object buffers can be of different sizes. Objects belonging to different classes may exist in the object buffer, and objects belonging to the same class may have different sizes if they have variable length attributes.

둘째, 객체에 대해 수행된 연산들은 객체가 버퍼에 상주하는 동안 누적된다. 즉, 객체의 속성(attribute)을 변경하는 연산을 여러번 수행하더라도 객체 버퍼에 상주한 객체에만 기록되고 페이지 버퍼에는 즉시 반영되지 않으며, 객체가 교체되는 시점에서 페이지 버퍼에 기록된다. 만약 객체의 변경된 속성에 대해서 인덱스가 정의되어 있으면, 객체 버퍼 관리자는 질의 처리기가 변경된 객체를 인덱스로 검색할 수 있도록 하기 위해서 해당 속성에 대한 인덱스도 함께 갱신한다.Second, operations performed on an object are accumulated while the object resides in a buffer. That is, even if the operation for changing the attribute of the object is performed several times, it is written only to the object residing in the object buffer and not immediately reflected in the page buffer, but is written to the page buffer when the object is replaced. If an index is defined for a changed property of an object, the object buffer manager also updates the index for that property so that the query processor can retrieve the changed object by index.

기존의 DBMS에서는 객체 버퍼가 존재하기 않기 때문에 레코드나 튜플의 내용이 변경될 때마다 그것이 저장된 페이지와 함께 인덱스를 갱신해야 하지만, OODBMS에서는 객체 버퍼가 존재하므로 인덱스 갱신 오버헤드를 감소시키기 위해 객체가 교체되는 시점에서 인덱스를 갱신한다.In an existing DBMS, because an object buffer does not exist, every time the contents of a record or tuple changes, the index must be updated with the page it is stored in. In an OODBMS, an object buffer exists so that objects are replaced to reduce index update overhead. Update the index when it is done.

상기한 바와 같은 객체 버퍼의 특징들로 인하여 객체 버퍼에서는 객체마다 교체 비용이 일정하지 않으므로 교체 방법에 의해 발생되는 비용이 버퍼 폴트율에 비례한다는 가정은 더 이상 성립하지 않는다. 객체의 크기가 페이지 크기를 넘어서면 객체가 교체될 때 객체의 내용이 여러 개의 페이지에 기록되어야 하는데, 이에 따라서 여러 개의 페이지들에 대한 디스크 액세스가 수반될 수 있다. 사실상 객체의 내용은 페이지 버퍼에 상주한 페이지에 반영되지만 페이지 교체에 의해서 해당 페이지가 디스크에 기록 될 때 실제 디스크 액세스가 일어나며, 페이지가 버퍼에 상주하지 않을 경우에는 해당 페이지를 디스크에서 인출해야 하므로 디스크 액세스가 일어난다. 또한 객체의 속성들에 대하여 구축된 인덱스의 개수나 각 인덱스를 갱신하는데 필요한 디스크 페이지의 액세스 회수는 객체마다 다를 수 있다.Due to the characteristics of the object buffer as described above, the replacement cost is not constant for each object in the object buffer, so the assumption that the cost incurred by the replacement method is proportional to the buffer fault rate no longer holds. If the size of an object exceeds the page size, the contents of the object must be written to multiple pages when the object is replaced, which may entail disk access to multiple pages. In fact, the contents of the object are reflected in the page residing in the page buffer, but the actual disk access occurs when the page is written to disk by page replacement, and if the page does not reside in the buffer, the page must be fetched from disk. Access takes place. In addition, the number of indexes established for attributes of an object or the number of accesses of a disk page required to update each index may vary from object to object.

따라서 객체 버퍼를 위한 교체 방법은 버퍼 폴트율뿐만 아니라 교체 비용을 함께 고려해야 한다.Therefore, the replacement method for the object buffer must consider the replacement cost as well as the buffer fault rate.

그러나 현재까지 이중 버퍼링 방식에서의 객체 교체 방법에 관한 연구는 매우 미흡하며, 현재까지 제안된 교체 방법들은 모두 교체 비용을 무시하고 버퍼 폴트율만을 최소화하는 것을 목표로 한다.However, until now, studies on the method of replacing objects in the double buffering method are very insufficient, and all of the proposed replacement methods aim at ignoring the replacement cost and minimizing only the buffer fault rate.

그 대표적인 교체 방법으로서 Least Recently Used(LRU)는 가장 오래 전에 사용된 페이지를 희생자로 선정하는 방법이다. 이 밖에 LRU의 변형으로 CLOCK, LRU-K, 2Q가 있다. CLOCK은 LRU를 단순화한 방법으로서 참조 비트를 사용하여 가장 최근에 참조된 페이지들을 구별한다. LRU-k는 LRU의 일반화된 방법으로서 마지막 k번째 참조 시점이 가장 오래된 페이지를 희생자로 선정하며, 2Q는 LRU-2와 동일하지만 더 단순한 데이터 구조를 사용하는 방법이다.As a representative replacement method, Least Recently Used (LRU) is a method of selecting a longest used page as a victim. Other LRU variants include CLOCK, LRU-K, and 2Q. CLOCK is a simplified method of LRU that uses the reference bit to distinguish the most recently referenced pages. LRU-k is a generalized method of LRU, which selects the oldest page with the last k th reference point as the victim, and 2Q is the same as LRU-2 but uses a simpler data structure.

이러한 방법들은 모두 페이지 교체 방법으로는 적합하지만 교체 비용이 버퍼 폴트 회수에 비례하지 않는 객체 버퍼에는 적합하지 않다.All of these methods are suitable for page replacement, but not for object buffers where the replacement cost is not proportional to the number of buffer faults.

대부분의 상용 OODBMS들에서는 간단한 방법에 의존하거나 기존의 페이지 기반 방법들을 객체 버퍼에 적용해서 사용한다. 예를 들어, 미국의 Microelectronics and Computer Technology Corporation(MCC)에서 개발한 ORION과 UniSQL사에서 UniSQL에서는 간단한 불필요 정보 수집(garbage collection) 방법에 의존하여 현재 사용되지 않는 객체들을 모두 교체시킨다. 그러나 불필요 정보 수집은 앞으로 사용될 가능성이 있는 객체들도 모두 교체시키므로 많은 비용을 유발시킬 수 있다.Most commercial OODBMSs rely on simple methods or apply existing page-based methods to object buffers. For example, ORION and UniSQL, developed by Microelectronics and Computer Technology Corporation (MCC) in the United States, UniSQL relies on simple garbage collection to replace all objects that are not currently in use. However, gathering unnecessary information can also be costly because it replaces any objects that may be used in the future.

Versant Object Technology사의 Versant와 Servio사의 GemStone은 기존 페이지 기반 방법인 LRU를 사용한다.Versant's Versant and Servio's GemStone use LRU, an existing page-based method.

상기와 같은 문제점을 해결하기 위한 본 발명의 객체 버퍼 교체 방법은 인출 비용 뿐아니라 객체의 크기와 교체 비용을 포함하는 전체 비용을 최소화하는 비용기반 객체 버퍼 교체 방법(Cost-based object buffer replacement algorithm : Cobra)을 제공하는데 그 목적이 있다.The object buffer replacement method of the present invention for solving the above problems is a cost-based object buffer replacement algorithm (Cobra) based on the cost of minimizing the total cost including the size and replacement of the object as well as the retrieval cost. The purpose is to provide).

도 1은 본 발명의 비용기반 객체 버퍼 교체 방법이 구현되는 시스템의 개략 블록 구성도1 is a schematic block diagram of a system in which a cost-based object buffer replacement method of the present invention is implemented.

도 2는 본 발명의 일 실시예에 따른 객체 버퍼 교체 과정을 나타낸 흐름도2 is a flowchart illustrating a process of replacing an object buffer according to an embodiment of the present invention.

도 3은 본 발명의 성능평가 수행시에 사용된 변수들을 설정한 표3 is a table for setting parameters used in performing the performance evaluation of the present invention.

도 4는 도 3의 변수를 이용하여 007 벤치마크로 성능평가를 수행한 결과도4 is a result of performing the performance evaluation with the 007 benchmark using the variable of FIG.

도 5는 도 4를 수치화하여 나타낸 표5 is a table showing the numerical value of FIG.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

10 : CPU20 : 메모리10: CPU20: Memory

21 : 응용 프로그램22 : 객체지향 데이터베이스 시스템21: Application 22: Object-Oriented Database System

22-1 : 객체 버퍼 관리자 22-2 : 페이지 버퍼 관리자22-1: Object Buffer Manager 22-2: Page Buffer Manager

23 : 객체 버퍼24 : 페이지 버퍼23: object buffer 24: page buffer

100 : 컴퓨터200 : 디스크100: computer 200: disk

본 발명의 비용기반 객체 버퍼 교체 방법(Cobra)이 구현되는 시스템 구성은 도 1에 나타낸 바와 같이 중앙처리장치인 CPU(Central Process Unit : 10)와 응용 프로그램(21) 및 OODBMS(22), 객체 버퍼(23) 및 페이지 버퍼(24)의 상주 영역이 존재하는 메모리(20) 등으로 이루어 진 컴퓨터(100)와 데이터베이스가 저장된 디스크(200)로 구성된다.As shown in FIG. 1, a system configuration in which a cost-based object buffer replacement method (Cobra) is implemented is a central processing unit (CPU) 10, an application program 21, an OODBMS 22, and an object buffer. And a disk 100 in which a database is stored, and a computer 100 formed of a memory 20 or the like in which the resident area of the page buffer 24 is located.

상기 메모리(20) 내의 객체 버퍼(23)는 논리적인 단위가 되는 객체들을 관리하기 위한 것이고, 페이지 버퍼(24)는 객체가 저장된 물리적인 단위의 페이지들을 관리하고 실제로 디스크를 액세스하기 위한 것이며, 객체 버퍼(23)는 객체 버퍼 관리자(22-1)에 의해, 페이지 버퍼(24)는 페이지 버퍼 관리자(22-2)에 의해 관리된다.The object buffer 23 in the memory 20 is for managing objects that are logical units, the page buffer 24 is for managing pages in a physical unit in which an object is stored and actually accessing a disk. The buffer 23 is managed by the object buffer manager 22-1, and the page buffer 24 is managed by the page buffer manager 22-2.

상기의 시스템에서 구현되는 본 발명 Cobra의 설명에 앞서 필요한 몇 가지 용어를 정의한다.Before defining the Cobra of the present invention implemented in the above system, several terms are defined.

데이터베이스에 저장된 객체들의 집합을 N = { 1, ... , n}이라 할 때, OODBMS의 상위 구성요소로부터 발생하는 객체 요청들의 순열(sequence)을 참조 스트링(reference string)이라 정의하고, w = r1r2... rt..., rt∈ N 와 같이 표현한다.When the set of objects stored in the database is N = {1, ..., n}, the sequence of object requests originating from the parent component of the OODBMS is defined as a reference string, and w = r 1 r 2 ... r t ..., r t ∈ N

여기서 rt= x는 t번째 요청에서 객체 x를 참조함을 의미한다. t는 순열상의 위치를 나타내지만 이산(discrete) 시간 축상에서의 하나의 시점으로 해석할 수도 있다. 즉, 시점 t에서 객체 x가 참조되었다고 볼 수 있다.Where r t = x refers to the object x in the t th request. t represents the position of the permutation but can also be interpreted as a point in time on a discrete time axis. That is, the object x may be referred to at the time t.

객체 x가 시점 t에서부터 앞으로 참조될 때까지의 시간 차이(또는 거리)를 전방거리(forward distance)라 정의하고 dt(x)로 표시한다. 만약 시점 t를 포함하여 그 이후로 시작하여 i(i≥0)번째 시점에서 x가 처음 참조되었다면( 즉, rt+i= x 이면), dt(x) = i이고, 한 번도 참조가 안되었다면 dt(x) = ∞ 이다. 예를 들면, 참조 스트링이 1 2 1 4 3 2라고 할 때, 객체 2에 대한 전방거리는 r6= 2이므로 d3(2) = 6-3 = 3이 된다.The time difference (or distance) from the time point t until the object x is referred to as forward distance is defined as d t (x). If x was first referenced (i.e. r t + i = x) at the i (i≥0) th time, starting after and including the time point t, then d t (x) = i If not, then d t (x) = ∞. For example, when the reference string is 1 2 1 4 3 2, the forward distance to the object 2 is r 6 = 2, so d 3 (2) = 6-3 = 3.

페이지 x가 시점 t에서부터 그 이전에 마지막 k번째 참조된 시점까지의 시간 사이(또는 거리)를 후방 k-거리(backward k-distance)라고 하고 bt(x,k)로 표시한다.The time (or distance) from page t to the last k-th point referenced before is called backward k-distance and denoted by b t (x, k).

만약 시점 t로부터 뒤로 j(j≥1)번째 시점에서 x가 마지막 k 번째로 참조되었다면(즉 rt-j= x이고 그 이후로 t시점 이전까지 k-1번 참조되었으면 ) bt(x,k) = j이고 x가 한 번도 참조되지 않았으면 bt(x,k) = ∞ 라고 정의한다.If x was referenced as the last kth time after j (j≥1) th from time t (i.e. r tj = x and thereafter k-1 times before t ), then b t (x, k) If = j and x is never referenced, we define b t (x, k) = ∞.

예를 들면 참조 스트링 1 2 1 4 3 2에서 시점 t=6에서 페이지 x = 1에 대한 후방 2-거리는 6-1 = 5가 된다.For example, the rear two-distance for page x = 1 at time point t = 6 at reference string 1 2 1 4 3 2 would be 6-1 = 5.

객체 버퍼 교체 방법 A를 사용하는 OODBMS에서 길이가 T(T>0)인 참조 스트링 w = r1...rT와 크기가 m(m>0)인 객체 버퍼에 대해서 발생하는 총 비용을 Ctotal(A, m, w)라고 할 때, 총 비용은 수학식 1로 표현할 수 있다.In an OODBMS using object buffer replacement method A, the total cost incurred for a reference string of length T (T> 0) w = r 1 ... r T and an object buffer of size m (m> 0) Suppose that (A, m, w), the total cost can be expressed by the equation (1).

[수학식 1][Equation 1]

여기서, Cmin(w)은 객체 버퍼의 공간이 무한한 상황에서 참조 스트링 w에 의해 발생될 수 있는 최소한의 비용이다. 객체 버퍼 관리자는 w를 처리한 후 최종적으로 모든 객체들을 교체시킨다고 가정하면 Cmin(w)은 w가 참조한 객체들을 객체 버퍼에 최초로 인출하는 비용과 이들을 마지막으로 교체하는 비용으로 구성된다.Here, Cmin (w) is the minimum cost that can be incurred by the reference string w in a situation where the space of the object buffer is infinite. Assuming that the object buffer manager will eventually replace all objects after processing w, Cmin (w) consists of the cost of initially fetching the objects referenced by w into the object buffer and the cost of replacing them last.

Cextra(A, m, w)는 버퍼 공간이 부족할 때 객체 버퍼 교체 방법 A가 앞으로 다시 참조될 객체들을 교체함으로써 발생하는 비용이다. 이것은 객체들의 교체 비용과 교체된 객체들이 다시 참조될 때 발생하는 인출 비용으로 구성된다. 즉, 어떤 시점 t에서 교체되는 객체들의 집합을 Xt, 인출되는 객체들의 집합을 Yt라고 하면 Xt에 속한 객체들 중에서 앞으로 다시 참조될 객체들의 집합 X't= { x ∈ Xtpdt(x)≠∞}이고, Yt에 속한 객체들 중에서 이전에 교체되었던 객체들의 집합 Y't= { y ∈ Ytpy ∈X't', t' = t - bt(y, 1), bt(y,1)"`∞}가 된다.Cextra (A, m, w) is the cost incurred by object buffer replacement method A replacing objects that will be referenced again in the event of insufficient buffer space. This consists of the replacement cost of the objects and the withdrawal costs that occur when the replaced objects are referenced again. That is, if a set of objects to be replaced at time t is X t , and a set of objects to be drawn is Y t , a set of objects that will be referenced again among the objects belonging to X t X ' t = {x ∈ X t pd t (x) ≠ ∞}, the set of previously replaced objects among objects belonging to Y t Y ' t = {y ∈ Y t py ∈ X' t ' , t' = t-b t (y, 1) , b t (y, 1) "` ∞}.

이 때 객체 x에 대한 인출 비용과 교체 비용을 각각 Cfetch(x)와 Crep(x)라고 하면, Cextra(A, m, w)는 수학식 2로 표현할 수 있다.In this case, if the fetch cost and replacement cost for the object x are called Cfetch (x) and Crep (x), Cextra (A, m, w) can be expressed by Equation 2.

[수학식 2][Equation 2]

객체 x에 대한 Cfetch(x)와 Crep(x)는 객체 x의 크기, 객체의 속성에 인덱스 생성 여부, 객체의 수정 여부, 그리고 OODBMS의 하부 저장 시스템의 저장 모델에 의해서 결정된다.Cfetch (x) and Crep (x) for object x are determined by the size of object x, whether an index is created on the object's attributes, whether the object is modified, and the storage model of the underlying storage system of OODBMS.

수학식 2에서 X't에 속한 객체 x는 반드시 Y't+dt(x)에 속함을 알 수 있다. 따라서, 어떤 객체 x를 기준으로 비용을 살펴보면 어떤 시점 t에서 x가 교체됨으로 인해서 발생하는 비용은 dt(x) 시간동안 Cfetch(x) + Crep(x)라고 할 수 있다.In Equation 2, it can be seen that the object x belonging to X ' t belongs to Y' t + dt (x) . Therefore, when looking at the cost based on an object x, the cost incurred by replacing x at a point in time t can be called Cfetch (x) + Crep (x) for d t (x) time.

이것을 단위시간당의 비용으로 환산하면 단위시간당 (Cfetch(x) + Crep(x))/ dt(x)가 된다.Convert this to cost per unit time: (Cfetch (x) + Crep (x)) / d t (x) per unit time.

따라서, 객체 버퍼 교체 방법 A는 모든 시점에서 단위 시간당 발생하는 비용이 최소가 되도록 함으로써 Cextra(A, m, w)가 최소가 되게 할 수 있다.Accordingly, the object buffer replacement method A can minimize Cextra (A, m, w) by minimizing the cost incurred per unit time at every point in time.

그런데 가변길이 객체를 취급하는 방법에서는 어떤 시점 t에서 교체될 객체를 선정할 때 단위 공간당 발생하는 비용도 함께 고려해야 한다. 그 이유는 단위 시간당의 비용이 같은 객체들 중에서도 크기가 큰 객체를 교체하는 것이 더 많은 공간을 확보하므로 교체가 일어나는 회수를 줄일 수 있기 때문이다. 따라서 객체 x의 크기를 size(x)라고 하면 어떤 시점 t에서 x를 교체하면 객체 x가 다시 참조되는 시점까지 단위 시간과 단위 공간당 (Crep(x) + Cfetch(x) )/size(x)·dt(x)) 만큼씩의 비용이 발생한다. 이 때, 어떤 시점 t에서 dt(x)는 미리 알 수 없으므로 이 값을 예측할 수 있어야 한다.However, when dealing with variable-length objects, the cost incurred per unit space must be taken into consideration when selecting the object to be replaced at some time t. The reason for this is that replacing large objects, even among objects with the same cost per unit time, frees up more space, thus reducing the number of replacements. Therefore, if the size of the object x is called size (x), replacing x at some point in time t (Crep (x) + Cfetch (x)) / size (x) per unit time until the point at which object x is referenced again Incurred by d t (x)) At this time, since d t (x) is not known at some time t, this value should be predictable.

본 발명의 객체 버퍼 교체 방법인 Cobra는 수학식 3으로 표현되는 어떤 시점 t에서 앞으로 예상되는 단위 시간과 단위 공간당 비용이 최소가 되는 객체 x를 교체함으로써 Cextra(A, m, w)가 최소가 되도록 한다.Cobra, an object buffer replacement method of the present invention, has a minimum value of Cextra (A, m, w) by replacing an object x, which becomes the minimum unit time and cost per unit space, which is expected at a certain time t expressed by Equation 3. Be sure to

[수학식 3][Equation 3]

여기서, E[dt(x)]는 전방거리의 기대값에 대한 접근치이다.Where E [d t (x)] is the approach to the expected value of the forward distance.

상기 수학식 3으로 표현되는 어떤 시점 t에서 앞으로 예상되는 단위 시간과 단위 공간당 비용을 계산하려면 전방거리의 기대값에 대한 접근치인 E[dt(x)]를 추정할 수 있어야 한다.In order to calculate the expected unit time and cost per unit space at a certain time t expressed by Equation 3, E [d t (x)], which is an approach value to the expected value of the forward distance, must be estimated.

Cobra 에서는 전방거리의 기대값을 접근하기 위해 LRU-k의 방식을 사용한다.Cobra uses the LRU-k approach to approach the forward distance expectations.

즉, 어떤 시점 t에서 객체 x에 대한 전방거리의 기대값은 x가 마지막 k번째로 참조된 시점까지의 거리 bt(x,k)를 사용하여 추정한다. Cobra에서는 특히 LRU-2의 방법을 사용하는데 LRU-2의 경우 전방거리의 기대값에 대한 접근치는 마지막 두 번째 참조 시점까지의 bt(x,2)거리가 된다.That is, the expected value of the forward distance for the object x at a certain time t is estimated using the distance b t (x, k) to the time point at which x was last referred to. Cobra uses the method of LRU-2 in particular, where LRU-2 is the distance b t (x, 2) to the last reference point.

또한, Cobra를 구현하려면 주기억장치 메모리상에서 각 객체마다 HIST(x,1)과 HIST(x,2) 및 COST(x)와 같은 정보가 유지되어야 한다.Also, to implement Cobra, information such as HIST (x, 1), HIST (x, 2), and COST (x) must be maintained for each object in main memory.

HIST(x,1)과 HIST(x,2)는 객체 x가 마지막으로 참조된 두 개의 시점들로서 HIST(x,1)는 가장 최근에 참조된 시점을, HIST(x,2)는 마지막 두 번째 참조된 시점을 저장한다. 객체가 한 번만 참조된 경우에는 HIST(x,2)의 값은 ∞를 나타내고, 객체가 한 번도 참조되지 않은 경우에는 HIST(x,1)과 HIST(x,2)는 모두 ∞이다.HIST (x, 1) and HIST (x, 2) are the two viewpoints at which object x was last referenced, where HIST (x, 1) is the most recently referenced viewpoint, and HIST (x, 2) is the last second Save the referenced time point. If the object is referenced only once, the value of HIST (x, 2) represents ∞. If the object is never referenced, both HIST (x, 1) and HIST (x, 2) are ∞.

COST(x)는 객체 x에 의해 발생하는 비용을 저장하며, 이 비용은 Crep(x) + Cfetch(x)로 계산된다.COST (x) stores the cost incurred by object x, which is calculated as Crep (x) + Cfetch (x).

이하, 첨부 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 도 1의 시스템에서 구현되는 객체지향 데이터베이스 시스템의 일 실시예에 따른 응용 프로그램(21) 수행 중에 시점 t에서 객체 x를 객체 버퍼 관리자(22-1)에게 요청할 때 객체 버퍼 관리자(22-1)가 요청된 객체를 본 발명의 방법에 따라서 반환하는 과정을 나타낸 흐름도이다.FIG. 2 shows an object buffer manager 22-1 when requesting an object x to the object buffer manager 22-1 at a time point t during execution of an application 21 according to an embodiment of the object-oriented database system implemented in the system of FIG. 1. 1) is a flowchart illustrating a process of returning the requested object according to the method of the present invention.

우선 객체 x가 시점 t에서 참조되면 객체 버퍼 관리자(22-1)는 현재 시점 t에 맞추어서 객체 x가 마지막으로 참조된 두 개의 시점 HIST(x,1)와 HIST(x,2) 값들을 갱신한다(S10).First, when object x is referenced at time point t, object buffer manager 22-1 updates the two time-points HIST (x, 1) and HIST (x, 2) values for which object x was last referenced, according to the current time point t. (S10).

이어서 객체 x가 객체 버퍼(23)에 존재하는지 검사하여(S20), 상기 객체 x가 존재하면 단계(S70)로 이행하여 객체를 반환하고 객체 x에 대한 요청을 종료한다. 그러나 객체 x가 객체 버퍼(23)에 존재하지 않으면 객체 x를 페이지 버퍼(24)에서 읽어와 적재하기 전에 객체 버퍼(23)에 객체 x를 적재(load)할 여분의 공간이 있는지 판단한다(S30). 객체 버퍼(23)에 여분의 공간이 없으면 여분의 공간이 확보될 때까지 단계(S40)(S50)를 수행하여 비용기반으로 객체들을 교체한다.Subsequently, it is checked whether the object x exists in the object buffer 23 (S20). If the object x exists, the process proceeds to step S70 to return the object and terminate the request for the object x. However, if the object x does not exist in the object buffer 23, it is determined whether there is extra space for loading the object x in the object buffer 23 before the object x is read from the page buffer 24 and loaded (S30). ). If there is no extra space in the object buffer 23, the steps S40 and S50 are performed until the extra space is secured to replace the objects on a cost basis.

이를 상세히 설명하면 단계(S40)에서는 현재 객체 버퍼에 존재하는 모든 객체에 대해서 단위 시간 및 단위 공간당 비용인 COST(y)/(size(y)*(t-HIST(y,2))를 계산하고 이 값이 가장 작은 객체 y를 교체 대상으로 선정한다. 여기서 COST(y)는 앞서 설명한 객체 y에 의해 발생하는 비용이고, size(y)는 객체 y의 크기이며, t - HIST(y,2)는 전방거리의 기대값에 대한 접근치 E[dt(y)]이다.In detail, in step S40, COST (y) / (size (y) * (t-HIST (y, 2)), which is a unit time and a cost per unit space, is calculated for all objects currently present in the object buffer. The object y with the smallest value is selected for replacement, where COST (y) is the cost incurred by object y described above, size (y) is the size of object y, and t-HIST (y, 2 ) Is the approach E [d t (y)] to the expected value of the forward distance.

단계(S50)에서는 선정된 객체 y를 교체하고, y가 갱신되었다면 페이지 버퍼(24)에 기록(write)하고, 객체 y를 교체가 끝난 다음에는 다시 단계(S30)로 이행하여 여분의 공간이 확보되었는지 검사한다.In step S50, the selected object y is replaced, and if y is updated, it is written in the page buffer 24, and after the replacement of the object y, the process proceeds to step S30 again to secure extra space. Check if it is

비용기반으로 객체를 교체한 결과(S40)(S50), 객체 버퍼(23)에 여분의 공간이 확보되면 객체 x를 페이지 버퍼(24)로부터 읽어서 여분의 공간에 적재시킨(S60) 다음, 객체 x를 응용프로그램(21)에 반환함으로써 객체 x에 대한 응용프로그램(21)의 요청을 처리하는 모든 단계들을 종료한다(S70).As a result of replacing the object on a cost basis (S40) (S50), if the extra space is secured in the object buffer 23, the object x is read from the page buffer 24 and loaded into the extra space (S60), and then the object x By returning to the application 21, all the steps of processing the request of the application 21 for the object x is terminated (S70).

이상에서 설명한 Cobra의 개념은 LRU, LRU-k, 2Q 방법들의 기반이 되는 Denning-Chen -Shedler의 최적 방법에서 객체의 크기와 교체 비용을 감안하도록 일반화시킨 것이다.The concept of Cobra described above is generalized to consider the size of object and replacement cost in Denning-Chen-Shedler's optimal method, which is based on LRU, LRU-k, and 2Q methods.

Denning-Chen-Shedler의 방법은 페이지 기반 알고리즘으로서 버퍼에 존재하는 페이지들 중에서 E[dt(x)]가 최대인, 즉 1/(E[dt(x)])이 최소가 되는 페이지 x를 교체시키는 방법이므로, Crep(x) = 0, Cfetch(x) = 1, size(x) = 1로 설정한 Cobra의 특수한 경우가 된다. 따라서 Cobra는 기존의 페이지 기반 방법들이 사용되는 어떤 응용에도 쉽게 적용될 수 있다.Denning-Chen-Shedler's method is a page-based algorithm, where pages x in which E [d t (x)] is maximum, that is, 1 / (E [d t (x)]) is the smallest of the pages in the buffer. This is a special case of Cobra that sets Crep (x) = 0, Cfetch (x) = 1, and size (x) = 1 because it replaces. Cobra can therefore be easily adapted to any application where traditional page-based methods are used.

본 발명의 객체 버퍼 교체 방법 Cobra에 대해 Wisconsin 대학에서 제안한 객체지향 데이터베이스 시스템 성능평가 기준인 007 벤치마크(benchmark)를 사용하여 성능평가를 수행하고, 불필요 정보 수집(GARBAGE), LRU, LRU-2와 비교하였다.In the object buffer replacement method Cobra of the present invention, performance evaluation is performed using a 007 benchmark, which is an object-oriented database system performance evaluation standard proposed by the University of Wisconsin, collecting unnecessary information (GARBAGE), LRU, LRU-2 Compared.

도 3과 같은 변수를 설정하여 007 벤치마크를 수행한 결과 인덱스 갱신을 수반하는 T3B 연산의 경우 불필요 정보 수집(GARBAGE), LRU, LRU-2 그리고 Cobra는 각각 도 4와 같은 결과를 보였다. 도 5는 도 4의 결과를 수치로 표현한 것이다.As a result of performing the 007 benchmark by setting the variable as shown in FIG. 3, in the case of T3B operation involving index update, unnecessary information collection (GARBAGE), LRU, LRU-2, and Cobra showed the same results as in FIG. 4. 5 is a numerical representation of the result of FIG. 4.

성능 평가를 수행한 결과에 따르면 본 발명의 방법은 기존의 불필요 정보 수집(GARBAGE), LRU, LRU-2 등의 유명한 페이지 기반 버퍼 교체 방법에 비해 항상 동등하거나 우수한 결과를 보인다.According to the results of the performance evaluation, the method of the present invention always shows the same or better result than the conventional page-based buffer replacement methods such as GARBAGE, LRU, and LRU-2.

상술한 바와 같이 본 발명의 비용기반 객체 버퍼 교체 방법(Cobra)은 LRU, LRU-k, 2Q 방법들의 기반이 되는 Denning-Chen-Shedler의 최적 방법에서 객체의 크기와 교체 비용을 감안하도록 일반화시켰으므로 기존의 페이지 기반 방법들이 사용되는 어떤 응용에도 쉽게 적용될 수 있다.As described above, the cost-based object buffer replacement method (Cobra) of the present invention is generalized to consider the size and replacement cost of the object in the optimal method of Denning-Chen-Shedler, which is the base of LRU, LRU-k, and 2Q methods. It can be easily adapted to any application where existing page-based methods are used.

특히, 본 발명은 교체 비용이 일정하지 않은 객체지향 데이터버스 관리 시스템의 객체 버퍼 교체 방법으로서 효과적으로 활용될 수 있으며, 단위시간 및 단위 공간당 발생하는 총 비용을 최소화하는 것을 목적으로 하므로 교체 비용이 버퍼 폴트율에 비례하지 않는 상황에서는 기존의 페이지 기반의 교체 방법들보다 좋은 성능을 얻을 수 있다. 또한 간단한 데이터 구조를 사용하므로 쉽게 구현될 수 있어서 실제 상용 객체지향 데이터베이스 관리 시스템에서도 활용될 수 있다.In particular, the present invention can be effectively used as an object buffer replacement method of an object-oriented data bus management system in which replacement cost is not constant, and the replacement cost is buffered because it aims to minimize the total cost incurred per unit time and unit space. In situations that are not proportional to the fault rate, better performance can be achieved than traditional page-based replacement methods. In addition, because it uses a simple data structure, it can be easily implemented and used in a real commercial object-oriented database management system.

Claims (4)

객체지향 데이터베이스 시스템을 위한 객체 버퍼 교체 방법에 있어서, 객체들 중에서 교체시 발생하는 단위시간 및 단위 공간당 비용을 계산하여 그 값이 최소가 되는 객체를 선정하여 교체하는 것을 특징으로 하는 객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법.In the object buffer replacement method for an object-oriented database system, an object-oriented database system characterized by calculating the unit time and the cost per unit space occurring during the replacement among the objects to select and replace the object is the minimum value Cost-based Object Buffer Replacement for Windows. 제 1항에 있어서, 상기 단위시간 및 단위 공간당 비용은 객체를 인출할 때 발생하는 인출비용과 객체를 교체할 때 발생하는 교체비용의 합을 객체의 크기와 객체에 대한 전방거리의 기대값에 대한 접근치의 곱으로 나누는 것을 특징으로 객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법.The method of claim 1, wherein the cost per unit time and unit space is a sum of a withdrawal cost incurred when the object is withdrawn and a replacement cost incurred when the object is replaced with an expected value of the size of the object and the forward distance to the object. Cost-based object buffer replacement method for an object-oriented database system, characterized by dividing by the product of access values. 제 2항에 있어서, 상기 전방거리의 기대값에 대한 접근치는 객체가 교체되는 시점으로부터 객체가 마지막 두 번째에 참조된 시점까지의 거리로 계산하는 것을 특징으로 하는 객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법.The cost-based object for an object-oriented database system according to claim 2, wherein the approach value for the forward distance value is calculated as the distance from the time point at which the object is replaced to the time point at which the object is last referenced. How to replace the buffer. 객체지향 데이터 베이스 시스템을 위한 객체 버퍼 교체 방법에 있어서, 객체 x에 대한 응용프로그램(21)의 요청에 대해 객체 x가 시점 t에서 참조되면 현재 시점 t에 맞추어서 객체 x가 마지막으로 참조된 두 개의 시점 HIST(x,1)와 HIST(x,2) 값들을 갱신하는 단계와; 객체 x가 객체 버퍼(23)에 존재하는지 검사하는 단계와; 상기 검사 결과 객체 x가 존재하면 객체를 반환하고, 객체 x가 존재하지 않으면 객체 버퍼(23)에 객체 x를 적재할 여분의 공간이 있는지 판단하는 단계와; 상기 판단 결과 객체 버퍼(23)에 여분의 공간이 없으면 여분의 공간이 확보될 때까지 제 1항 내지 제 3항의 방법을 이용하여 비용기반으로 객체들을 교체하고, 교체되는 버퍼가 갱신되었다면 페이지 버퍼(24)에 기록하는 단계와; 비용기반으로 객체를 교체한 결과, 객체 버퍼(23)에 여분의 공간이 확보되면 객체 x를 페이지 버퍼(24)로부터 읽어서 여분의 공간에 적재시키는 단계와; 객체 x를 응용프로그램(21)에 반환하는 단계를 포함하여 이루어지는 것을 특징으로 하는 객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법.In the object buffer replacement method for an object-oriented database system, if an object x is referenced at a time point t in response to a request of the application 21 for the object x, the two time points at which the object x was last referenced in accordance with the current time point t Updating the HIST (x, 1) and HIST (x, 2) values; Checking whether the object x exists in the object buffer 23; Returning an object if the object x exists as a result of the inspection, and determining whether there is an extra space for loading the object x in the object buffer 23 if the object x does not exist; As a result of the determination, if there is no extra space in the object buffer 23, objects are replaced based on cost using the method of claim 1 until the extra space is secured, and if the replaced buffer is updated, the page buffer ( Recording at 24); As a result of replacing the object on a cost basis, if the extra space is secured in the object buffer 23, reading the object x from the page buffer 24 and loading it into the extra space; Cost-based object buffer replacement method for an object-oriented database system comprising the step of returning the object x to the application (21).
KR1019960066427A 1996-12-16 1996-12-16 Method of exchanging cost-base object buffer for object-orient database system KR100236675B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960066427A KR100236675B1 (en) 1996-12-16 1996-12-16 Method of exchanging cost-base object buffer for object-orient database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960066427A KR100236675B1 (en) 1996-12-16 1996-12-16 Method of exchanging cost-base object buffer for object-orient database system

Publications (2)

Publication Number Publication Date
KR19980047901A KR19980047901A (en) 1998-09-15
KR100236675B1 true KR100236675B1 (en) 2000-01-15

Family

ID=19488233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960066427A KR100236675B1 (en) 1996-12-16 1996-12-16 Method of exchanging cost-base object buffer for object-orient database system

Country Status (1)

Country Link
KR (1) KR100236675B1 (en)

Also Published As

Publication number Publication date
KR19980047901A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
US10564850B1 (en) Managing known data patterns for deduplication
US6385699B1 (en) Managing an object store based on object replacement penalties and reference probabilities
US5778430A (en) Method and apparatus for computer disk cache management
US7818346B2 (en) Database heap management system with variable page size and fixed instruction set address resolution
US10229161B2 (en) Automatic caching of scan and random access data in computing systems
US7418544B2 (en) Method and system for log structured relational database objects
US8429134B2 (en) Distributed database recovery
EP2478442B1 (en) Caching data between a database server and a storage system
US7711916B2 (en) Storing information on storage devices having different performance capabilities with a storage system
US8700674B2 (en) Database storage architecture
US6470330B1 (en) Database system with methods for estimation and usage of index page cluster ratio (IPCR) and data page cluster ratio (DPCR)
US8819074B2 (en) Replacement policy for resource container
CN107491523B (en) Method and device for storing data object
WO2010120457A2 (en) Dynamic hash table for efficient data access in a relational database system
JP2002540502A (en) Method and apparatus for pointer relocation optimization of virtual memory mapping and transaction management in a database system
EP2336901B1 (en) Online access to database snapshots
Viglas Adapting the B+-tree for asymmetric I/O
KR101806394B1 (en) A data processing method having a structure of the cache index specified to the transaction in a mobile environment dbms
CN109002400B (en) Content-aware computer cache management system and method
US10417215B2 (en) Data storage over immutable and mutable data stages
KR100236675B1 (en) Method of exchanging cost-base object buffer for object-orient database system
US6851021B2 (en) Methods and systems for efficiently managing persistent storage
CN114207602A (en) Reducing requests using probabilistic data structures
RU2647648C1 (en) Method of organizing storage of historical deltas of records
US11789951B2 (en) Storage of data structures

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee