KR20030094328A - 저장된 데이터를 재편성하는 시스템 및 방법 - Google Patents

저장된 데이터를 재편성하는 시스템 및 방법 Download PDF

Info

Publication number
KR20030094328A
KR20030094328A KR10-2003-7013169A KR20037013169A KR20030094328A KR 20030094328 A KR20030094328 A KR 20030094328A KR 20037013169 A KR20037013169 A KR 20037013169A KR 20030094328 A KR20030094328 A KR 20030094328A
Authority
KR
South Korea
Prior art keywords
file
log
record
destination
data
Prior art date
Application number
KR10-2003-7013169A
Other languages
English (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 컴퓨터 어소시에이츠 싱크, 인코포레이티드
Publication of KR20030094328A publication Critical patent/KR20030094328A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

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

Abstract

데이터를 재편성하는 방법을 개시한다. 이 방법은, 소스 파일의 각각의 레코드를 판독하는 단계와 이 각각의 레코드를 목적 파일에 기록하는 단계를 포함한다. 또한, 이 방법은, 선택된 로그 레코드를 포함하는 로그 파일을 생성하는 단계를 포함한다. 각각의 로그 레코드는 목적 파일에 대해 행하여진 변경과 관련되어 있다. 이 방법은, 로그 파일의 각각의 로그 레코드를 판독하는 단계와 상기 관련 변경을 목적 파일에 적용하도록 로그 파일의 각각의 레코드를 처리하는 단계를 더 포함한다. 또한, 이 방법은, 소스 파일을 목적 파일로 대체하는 단계를 더 포함한다. 또한, 상기 방법의 단계들을 구현하기 위한 장치 및 제품도 개시한다.

Description

저장된 데이터를 재편성하는 시스템 및 방법{SYSTEM AND METHOD FOR REORGANIZING STORED DATA}
컴퓨터는 방대한 양의 정보를 저장하고 관리하며, 이 정보에의 액세스를 제공하는 강력한 수단이다. 컴퓨터 데이터베이스는 컴퓨터 상에 정보를 저장하는 한편, 유저(user)에게 액세스를 제공하는 보편적인 메커니즘 중 하나이다. 컴퓨터로 구현되는 통상의 데이터베이스는 데이터와 인덱스를 각종의 파일이나 오브젝트에 저장한다.
일반적으로, 유저는, 데이터베이스를 구성하는 데이터 및/또는 인덱스가 저장되어 있는 오브젝트에 직접 액세스하지 못한다. 유저에게는 데이터베이스 관리 시스템(database management system : DBMS)이나 DBMS와 통신하는 애플리케이션을 통한 데이터 및 인덱스에의 간접 액세스가 제공되곤 한다. DBMS는 유저나 애플리케이션으로부터의 요구에 응하여 데이터를 변경, 갱신, 삭제하거나, 이를 물리적오브젝트에 삽입할 책임이 있다. 이러한 방식으로, DBMS는 엔드 유저(end-user)와 물리적 데이터 저장 메커니즘 간의 버퍼로서의 역할을 수행함으로써, 엔드 유저가 사용하는 테이블의 기초적인 하드웨어 레벨의 상세를 그 엔드 유저가 알거나 고려할 필요가 없게 한다.
예컨대 데이터의 저장 및 액세스를 위해 테이블스페이스 오브젝트 및 인덱스 오브젝트를 채택하는 DB2를 포함하여, 몇 개의 통상적인 데이터베이스 관리 시스템이 있다. 통상적인 DBMS 구현예의 또 다른 예로는, 데이터의 저장 및 액세스를 위해 데이터베이스 오브젝트 및 인덱스 오브젝트를 채택하는 IMS가 있다.
전형적인 데이터베이스 환경에서, 유저 데이터는 테이블의 행에 배속되고, 데이터베이스 혹은 테이블스페이스 등의 데이터 오브젝트로 유지된다. 유저 데이터를 저장하는 오브젝트는 저마다 하나 이상의 인덱스를 가질 수 있다. 각각의 인덱스는 키(key)에 의거하여 테이블의 행에 용이하게 액세스할 수 있게 하는 것이다. 인덱스의 키는 테이블의 하나 이상의 열에서의 데이터인 것이 보통이다. 데이터 행은, 새로운 데이터를 판독, 갱신, 삭제, 삽입하기 위한 배치(batch) 애플리케이션 및 온라인 애플리케이션에 유용하다. 한 행의 데이터가 삽입되거나 삭제될 때, 모든 관련된 인덱스에 대해, 해당 삽입 또는 삭제가 실행된다. 키 열이 갱신되면, 대응하는 모든 인덱스도 갱신된다.
전형적인 테이블과 인덱스는 수천개의 레코드를 포함할 수 있다. 대다수의 DBMS에서는, 오브젝트의 모든 변경, 갱신, 삭제, 및 삽입이 로그 파일에 기록된다. 로그 함수는, 오브젝트에 대한 다량의 기록 및 대규모의 변경으로 인해, DBMS에서가장 빈번하게 사용되는 함수 중 하나이다. 전형적인 DBMS 로그 함수는 로그 출구(exit)를 허용하기도 한다. 즉, DBMS는, 각각의 로그 레코드를 기입하기 전에, 로그 출구 루틴(log exit routine)을 호출하고, 해당 로그 레코드의 주소를 그 루틴으로 보낸다.
시간이 지남에 따라, 테이블 및/또는 인덱스에 대한 추가 및 삭제는, 저장되어 있는 데이터의 편성(organization)을 비효율적이게 하며, DBMS가 엔드 유저 및 애플리케이션으로부터의 요구에 적시에 응답하는 능력에 영향을 미칠 수 있다. 데이터 저장 및 액세스를 효율적으로 유지하기 위해, 데이터 오브젝트 및 인덱스 오브젝트를 재편성하는 유틸리티(utility)가 개발되어 왔다. 이러한 재편성 유틸리티(reorganization utility)는, 재편성 유틸리티가 마지막으로 실행된 이후에 요구를 처리하면서 유발되는 데이터의 비효율적인 편성을 수정하기 위해 주기적으로 실행될 수 있다. 재편성 유틸리티는 데이터를 재편성하는 데 필요한 시간과 자원으로 인해 주기적으로 채택되는 것이다.
재편성 유틸리티의 실행 중에, 재편성되고 있는 데이터 오브젝트 및/또는 인덱스 오브젝트에 액세스할 필요가 있는 배치 애플리케이션 및 온라인 애플리케이션이 동시에 실행될 수 있다. 이러한 이유로, 재편성 유틸리티는 대상 오브젝트를 2 단계(phase)로 검사 및 재편성하는 것이 통상적이다. 제1 단계에서는, 재편성 유틸리티가 실행될 때까지 발생된 모든 변경을 고려하여 대상 오브젝트를 재편성한다.
제2 단계에서는, 통상적인 재편성 유틸리티는, 재편성 유틸리티의 실행 중에발생된 모든 변경을 고려한다. 이는, 동시에 실행되는 배치 애플리케이션 및 온라인 애플리케이션이 요구한 변경을 반영하는 모든 로그 파일 레코드를 검토함으로써, 이루어진다. 재편성을 완료하기 이전에, 재편성 유틸리티는 로그 파일에 기입된 모든 변경을 처리함으로써, 대상 데이터 오브젝트 또는 인덱스 오브젝트에 대한 최신의 재편성을 제공한다.
도 1에는 전형적인 DBMS 환경이 예시되어 있다. 도시된 바와 같이, 이 환경은 저장된 정보를 유지하고 그 정보에 액세스할 수 있는 데이터베이스(110)를 포함한다. 데이터베이스(110)는 적어도 하나의 데이터 오브젝트(112)를 포함하며, 이 데이터 오브젝트는 데이터를 수개의 행과 열로 저장하고 있다. 데이터베이스(110)는 데이터 오브젝트(112)에 연관되는 하나 이상의 인덱스(114 및 116)를 포함하는 것이 바람직한데, 이 인덱스는 데이터 오브젝트에 저장된 데이터에 액세스하는 것을 돕는다. 물론, 인덱스(114 및 116)는 선택 사항이며, 데이터 오브젝트(112)는 어떤 인덱스도 필요로 하지 않을 수 있다.
데이터베이스(110)에의 액세스는 데이터베이스 관리 시스템(DBMS)(120)에 의해 제공된다. 또한, DBMS(120)는 유저(130)가 데이터베이스(110)에 액세스할 수 있게 해 준다. 또한, DBMS(120)는 유저(150)가 애플리케이션(140)을 통해 간접적으로 데이터베이스(110)에 액세스할 수 있게 해 준다. 또한, DBMS(120)는 데이터베이스(110)에 저장되어 있는 데이터를 판독, 추가, 삭제, 변경하기 위한 루틴을 포함한다. 또한, DBMS(120)는 DBMS(120)에 의해 관리되는 임의의 오브젝트에 대한 모든 변경을 로깅(logging)하는 적어도 하나의 루틴을 포함한다. 로그 함수는 데이터 오브젝트(124) 및 인덱스 오브젝트(126)를 포함하는 로그 데이터베이스(122)를 이용할 수 있다. 변경을 로깅하는 루틴 외에도, DBMS(120)는 데이터 오브젝트(112)와 인덱스(114 및 116)에 저장되어 있는 데이터의 무결성(integrity)을 유지하기 위한 유틸리티를 더 포함한다. 어떤 유틸리티는 데이터베이스(110) 내의 파일이나 오브젝트가 손상된 경우에 이들을 재구성(rebuilding)하는 데 사용되기도 한다. 다른 유틸리티, 구체적으로는 재편성 유틸리티는, 보다 효율적인 액세스를 위해, 데이터베이스(110)에 저장되어 있는 데이터를 재배열하는 데 사용되기도 한다. 재편성 유틸리티는 데이터 오브젝트(112), 인덱스(114), 인덱스(116), 및 이들의 임의의 조합에 대해 동작할 수 있다.
이제 도 2를 참조하면, 데이터 또는 인덱스 엔트리(entry)가 추가, 삭제, 또는 변경될 때마다 종래의 DBMS 로그 루틴이 실행되는 스텝들이 도시되어 있다. 스텝 210에서는, 로그 파일에 로그 레코드가 생성된다. 로그 파일은, DBMS에 의해 데이터 오브젝트 및/또는 인덱스 오브젝트에 행하여진 변경을 포함한다. 로그 레코드는 변경된 데이터 오브젝트 또는 인덱스 오브젝트를 식별하고, 변경된 파일의 레코드를 식별하며, 이 레코드에 대한 변경으로 인한 활동 유형(type of activity)을 기술한다. 스텝 212에서는, 로그 출구 루틴이 호출된다. 로그 출구 루틴은 로그 레코드가 기입되기 전에 호출되며, 로그 레코드의 주소는 이 호출의 일부로서 보내어진다. 스텝 214에서는, 로그 레코드가 로그 파일에 실제로 기입된다.
도 3a 및 도 3b를 참조하면, 종래의 재편성 유틸리티가 보다 효율적으로 데이터를 저장하기 위해 실행하는 스텝들을 예시하는 블럭도가 도시되어 있다. 이스텝들은 총괄적으로 참조 번호 300으로 표시되어 있다. 종래의 재편성 유틸리티는 데이터 오브젝트와 인덱스 오브젝트 양자에 대해 동작하지만, 도 2, 도 3a, 및 도 3b는 데이터 오브젝트를 재편성하는 관점에서 도시하고 있다. 물론, 인덱스를 재편성하는 경우에도 유사한 스텝들이 수행된다.
재편성 유틸리티(300)는 2 단계로 동작한다. 도 3a에 도시된 제1 단계 시에는, 이 유틸리티가, 재편성이 개시될 때 존재하는 데이터 오브젝트에서의 각각의 레코드를 각각 복사(copy)한다. 도 3b에 도시된 제2 단계 시에는, 재편성 유틸리티는 제1 단계에서 처리 중인 데이터 오브젝트에 대해 행하여진 어떤 변경에 대해서도 고려한다. 이러한 변경은, 재편성의 제1 단계의 처리와 동시에 데이터 오브젝트에의 액세스를 요구하는 유저, 온라인 애플리케이션, 또는 배치 애플리케이션에 의해 요청된 것일 수 있다.
이제 도 3a를 참조하면, 종래의 재편성 유틸리티의 제1 단계의 스텝들이 도시되어 있다. 스텝 310에서는, 재편성 유틸리티는 재편성될 실제 데이터 오브젝트의 포맷에 기초하여 빈(empty) "섀도우(shadow)" 데이터 오브젝트를 생성한다. 스텝 312에서는, 실제 데이터 오브젝트의 각각의 레코드가 판독된다. 결정 블럭 314에 나타나 있는 바와 같이, 스텝 312에서 실제 데이터 오브젝트로부터 한 레코드를 판독하려 하는 경우가 파일 끝(End-of-File) 상태이면, 재편성 유틸리티는 제2 단계의 처리를 개시한다. 스텝 312에서 레코드가 성공적으로 판독되면, 스텝 316에서 이 레코드는 섀도우 데이터 오브젝트에 기록된다.
이제 도 3b를 참조하면, 종래의 재편성 유틸리티의 제2 단계의 스텝들이 도시되어 있다. 제2 단계의 처리에 들어가면, 스텝 318에서, 재편성 유틸리티는, 재편성 유틸리티가 실행된 이후에, 로깅된 변경이 행하여진 재편성된 데이터 오브젝트의 레코드에 관계되는 로그 파일의 제1 레코드를 검색한다. 순차 반복하여, 스텝 318에서는, 재편성된 데이터 오브젝트의 레코드에 관계되는 로그 파일의 그 다음 레코드를 검색한다. 스텝 320에서는, 로그 파일로부터 그 레코드가 판독된다.
결정 블럭 322에 나타나 있는 바와 같이, 스텝 320에서 로그 파일로부터 한 레코드를 판독하려 하는 경우가 파일 끝 상태이면, 재편성 유틸리티는 스텝 326을 수행함으로써 재편성 처리를 완료한다. 스텝 320에서 로그 파일 레코드가 성공적으로 판독되면, 스텝 324에서는 로그 파일 레코드에 의해 기술된 변경이 섀도우 인덱스에 적용되고, 처리는 다시 스텝 318로 이행된다. 데이터 오브젝트에 대해 동시에 행하여진 모든 변경이 적용된 이후, 단계 326에서는 새롭게 재편성된 섀도우 데이터 오브젝트가 재명명되어, 실제 데이터 오브젝트로 되며, 이로써, 재편성된 데이터 오브젝트에의 액세스가 허용된다.
결과적으로, 재편성 유틸리티를 종래의 재편성 유틸리티보다 더욱 고효율로 동작할 수 있게 하는 개선된 데이터 재편성 방법 및 시스템이 필요하다. 구체적으로는, 재편성되는 동안에 파일에 행하여지는 변경으로 인한 영향에 관계된 처리를 감소시킬 방법 및 시스템이 필요하다.
개시되는 본 발명의 시스템 및 방법은 일반적으로, 정보 처리 환경과, 데이터베이스 또는 파일 액세스를 위한 시스템 및 방법에 관한 것이다. 보다 상세히는, 개시되는 본 발명의 시스템 및 방법은 테이블스페이스(tablespace) 또는 인덱스를 재편성(reorganizing)하는 것을 개선한 시스템 및 방법에 관한 것이다.
개시되는 본 발명의 방법 및 시스템과 그 장점들을 보다 완전하게 이해할 수 있도록, 이하의 설명과 관련하여 첨부된 도면을 참조한다. 이 도면들에서는 유사한 참조 번호는 유사한 특징부를 지칭한다 :
도 1은 전형적인 DBMS 환경을 예시하는 개략적 블럭도.
도 2는 종래의 DBMS 로그 루틴에 의해 채택되는 주요 스텝들을 예시하는 기능상 흐름도.
도 3a 및 도 3b는 종래의 재편성 유틸리티에 의해 전형적으로 채택되는 주요 스텝들을 예시하는 기능상 흐름도.
도 4는 개시되는 본 발명의 방법 및 시스템의 일 실시예의 환경을 예시하는개략적 블럭도.
도 5a 및 도 5b는 개시되는 본 발명의 재편성 방법에 따른 재편성 유틸리티의 일 실시예의 주요 스텝들을 예시하는 기능상 흐름도.
도 6은 개시되는 본 발명의 재편성 방법에 따른 DBMS 로그 루틴의 일 실시예의 주요 스텝들을 예시하는 기능상 흐름도.
데이터를 재편성하는 방법을 개시한다. 이 방법은, 소스 파일(source file)의 각각의 레코드를 판독하는 단계와 이 각각의 레코드를 목적 파일(destinationfile)에 기입하는 단계를 포함한다. 또한, 이 방법은, 선택된 로그 레코드(log record)들을 포함하는 로그 파일(log file)을 생성하는 단계를 포함한다. 각각의 로그 레코드는 목적 파일에 대해 행하여진 변경과 관련되어 있다. 이 방법은, 로그 파일의 각각의 로그 레코드를 판독하는 단계와 상기 관련 변경을 목적 파일에 적용하도록 로그 파일의 각각의 레코드를 처리하는 단계를 더 포함한다. 또한, 이 방법은, 소스 파일을 목적 파일로 대체하는 단계를 더 포함한다.
또한, 데이터베이스 관리 시스템에 의해 변경을 로깅하는 방법을 개시한다. 이 방법은, 로깅될 변경을 식별하는 단계와 이 변경에 기초하여 로그 레코드를 생성하는 단계를 포함한다. 또한, 이 방법은 상기 변경이 재편성 처리에 영향을 미치는지의 여부를 판정하는 단계를 포함한다. 만일 상기 변경이 재편성 처리에 영향을 미친다면, 해당 로그 레코드는 제1 로그 파일에 저장된다. 제1 로그 파일은 선택된 변경만을 기록한다. 이 방법은, 상기 로그 레코드를 제2 로그 파일에 저장하는 단계를 더 포함한다. 제2 로그 파일은 모든 변경을 기록한다.
또한, 데이터를 재편성하는 제1 장치를 개시한다. 이 장치는, 소스 파일의 각각의 레코드를 판독하는 수단과 이 각각의 레코드를 목적 파일에 기입하는 수단을 포함한다. 또한, 이 장치는, 선택된 로그 레코드들을 포함하는 로그 파일을 생성하는 수단을 포함한다. 각각의 로그 레코드는 목적 파일에 행하여지는 변경에 관련된다. 이 장치는, 로그 파일의 각각의 로그 레코드를 판독하는 수단과 상기 관련된 변경이 상기 목적 파일에 적용되도록 상기 로그 파일의 각각의 레코드를 처리하는 수단을 더 포함한다. 또한, 이 장치는 소스 파일을 목적 파일로 대체하는수단을 더 포함한다.
데이터를 재편성하는 제2 장치를 개시한다. 제2 장치는 프로세서와 이 프로세서에 접속되는 메모리를 포함한다. 메모리는, 데이터를 재편성하는 상술한 방법의 단계들을 수행하는 프로세서의 동작을 제어하는 프로그램을 저장한다.
또한, 제품(acticle of manufacture)을 개시한다. 이 제품은 데이터를 재편성하는 상술한 방법을 구현하는 처리 명령(processing instruction)로 인코딩된 컴퓨터 판독 가능한 저장 매체이다.
개시되는 본 발명의 방법 및 시스템의 목적, 특성, 장점들은 첨부된 도면과 관련하여 이하의 바람직한 실시예에 대한 상세한 설명으로부터 보다 용이하게 이해될 것이다.
환경
도 4에 도시된 바와 같은 환경에서 데이터를 재편성하는 본 발명의 방법이 실시되는 것이 바람직하다. 도시된 바와 같이, 이 환경은, 적어도 하나의 데이터 오브젝트(412)와, 이러한 데이터 오브젝트(412)에 관련되며 데이터 오브젝트에 저장되어 있는 데이터에 액세스하는 것을 돕기 위한 하나 이상의 인덱스(414 및 416)로 이루어진 데이터베이스(410)를 포함한다. 물론, 인덱스(414 및 416)는 선택 사항이며, 데이터 오브젝트(412)는 어떤 인덱스도 필요로 하지 않을 수 있다.
데이터베이스(410)에의 액세스는 데이터베이스 관리 시스템(DBMS)(420)에 의해 제공된다. DBMS(420)는 유저(430)가 데이터베이스(410)에 액세스할 수 있게 해 준다. 또한, DBMS(420)는 유저(450)가 애플리케이션(440)을 통해 간접적으로 데이터베이스(410)에 액세스할 수 있게 해 준다. DBMS(420)는 데이터베이스(410)에 저장되어 있는 데이터를 판독, 추가, 삭제, 변경하기 위한 루틴을 포함한다.
DBMS(420)의 로깅 루틴은, 데이터 오브젝트(424) 및 인덱스 오브젝트(426)를 포함하는 로그 데이터베이스(422)에, DBMS(420)에 의해 관리되는 임의의 오브젝트에 행하여진 모든 변경을 로깅한다. 변경을 로깅하는 루틴 외에도, DBMS(420)는 데이터 오브젝트(412)와 인덱스(414 및 416)에 저장되어 있는 데이터의 무결성을 유지하기 위한 유틸리티를 더 포함한다. 어떤 유틸리티는 데이터베이스(410) 내의 파일이나 오브젝트가 손상된 경우에 이들을 재구성하는 데 사용되기도 한다. 다른 유틸리티, 구체적으로는 재편성 유틸리티는, 보다 효율적인 액세스를 위해, 데이터베이스(410)에 저장되어 있는 데이터를 재배열하는 데 사용되기도 한다. 재편성 유틸리티는 데이터 오브젝트(412), 인덱스(414), 인덱스(416), 및 이들의 임의의 조합에 대해 동작할 수 있다. 재편성 유틸리티는, 로그 데이터 오브젝트(428)와 로그 인덱스 오브젝트(429)를 포함하는 로그 데이터베이스(427)를 사용한다. 로그 데이터베이스(427)는 로그 데이터베이스(422)에 로깅된 변경들의 부분집합을 저장한다.
이제 도 5a 및 도 5b를 참조하면, 본 발명에 따른 재편성 유틸리티의 일 실시예의 스텝들을 예시하는 블럭도가 도시되어 있다. 이 스텝들은 총괄적으로 참조 번호 500으로 표시되어 있다. 본 발명의 재편성 유틸리티는 데이터 오브젝트와 인덱스 오브젝트 양자에 대해 동작할 수 있지만, 도 5a, 도 5b, 및 도 6은 데이터 오브젝트를 재편성하는 관점에서 도시하고 있다. 물론, 인덱스를 재편성하는 경우에도 유사한 스텝들이 수행되며, 본 발명의 방법 및 시스템의 범주 내로 간주된다.
개선된 재편성 유틸리티(500)는 2 단계로 동작한다. 도 5a에 도시된 제1 단계 시에는, 개선된 재편성 유틸리티는, DBMS 로그 루틴에 의해 사용될 프로그램 콜(program call)을 설정(establishing)하고, 재편성이 개시될 때 존재하는 데이터오브젝트에서의 각각의 레코드를 각각 복사한다. 도 5b에 도시된 제2 단계 시에는, 개선된 재편성 유틸리티는 제1 단계 중에 데이터 오브젝트에 대해 행하여진 변경을 고려하기 위해 로그 레코드들의 복제된(duplicated) 부분집합을 이용한다.
이제 도 5a를 참조하면, 개선된 재편성 유틸리티의 제1 단계의 스텝들이 도시되어 있다. 스텝 510에서는, 개선된 재편성 유틸리티는, 재편성될 실제 데이터 오브젝트의 포맷에 기초하여, 빈 섀도우 데이터 오브젝트를 생성한다. 스텝 512에서는, 개선된 재편성 유틸리티는, 도 6을 참조하여 보다 상세히 설명될 DBMS 로그 루틴에 의해 사용될 프로그램 콜을 설정한다. 설정된 프로그램 콜은 로그 레코드를 조사하고, 재편성될 오브젝트에 대한 변경에 관련되는 로그 레코드들의 복사본을 작성한다. 이와 같이 선택된 로그 레코드들은 로그 파일에 저장될 수도 있지만, 재편성 유틸리티의 효율을 개선하기 위해서는 메모리에 저장되는 것이 보다 바람직하다. 메모리 이용 시, 임계치에 도달하면, 로그 레코드는 DASD에 저장될 수 있다. 따라서, 메모리와 복제 로그 파일은 재편성 유틸리티에 의해 처리될 로그 레코들을 포함할 뿐이며, 이로써, 제2 단계의 처리가 보다 효율적이게 된다.
스텝 514에서는, 실제 데이터 오브젝트의 각각의 레코드가 판독된다. 결정 블럭 516에 나타나 있는 바와 같이, 스텝 514에서 실제 데이터 오브젝트로부터 한 레코드를 판독하려 하는 경우가 파일 끝 상태이면, 개선된 재편성 유틸리티는 제2 단계의 처리를 개시한다. 스텝 514에서 레코드가 성공적으로 판독되면, 스텝 518에서 이 레코드는 섀도우 데이터 오브젝트에 기입된다.
이제 도 5b를 참조하면, 개선된 재편성 유틸리티의 제2 단계의 스텝들이 도시되어 있다. 제2 단계의 처리에 들어가면, 스텝 520에서, 재편성 유틸리티는, 제2 단계 처리에 관련되는 레코드들을 포함하는 메모리 영역 및/또는 복제 로그 파일에 액세스하여, 제1 로그 레코드를 판독한다. 순차 반복하여, 스텝 520에서는, 상기 로그 파일의 그 다음 레코드를 판독한다.
결정 블럭 522에 나타나 있는 바와 같이, 개선된 재편성 유틸리티는 스텝 520에서 파일 끝 상태에 있는지의 여부를 판정한다. 만일 EOF 상태에 있다면, 재편성 유틸리티는 스텝 526에서 처리를 계속 진행한다. 만일 스텝 520에서 로그 파일 레코드가 성공적으로 판독되었다면, 스텝 524에서 이 로그 파일 레코드에 기술되어 있던 변경이 섀도우 인덱스에 적용되고, 처리는 다시 스텝 520으로 진행한다. 데이터 오브젝트에 대한, 로깅된 모든 변경이 적용된 이후, 스텝 526에서는 프로그램 콜이 제거되고, 스텝 528에서는 새롭게 재편성된 섀도우 데이터 오브젝트가 재명명되어, 실제 데이터 오브젝트로 되며, 이로써, 재편성된 데이터 오브젝트에의 액세스가 가능하게 된다.
이제 도 6을 참조하면, 본 발명의 방법 및 시스템에 따라, 데이터 또는 인덱스 엔트리가 추가, 삭제, 또는 변경될 때마다 개선된 DBMS 로그 루틴이 실행되는 스텝들이 도시되어 있다. 스텝 610에서는, 데이터 오브젝트 및/또는 인덱스 오브젝트에 대해 DBMS에 의해 행하여진 변경을 포함하는 로그 파일에 로그 레코드가 생성된다. 스텝 612에서는, 로그 출구 루틴이 호출되고, 로그 레코드의 주소가 이 호출의 일부로서 보내어진다. 결정 블럭 614에 나타나 있는 바와 같이, 개선된 재편성 유틸리티에 의해 프로그램 콜이 설정되었다면, 도 5a의 스텝 512를 참조하여앞서 설명한 바와 같이, 로그 루틴은 스텝 616을 처리한다.
스텝 616에서는, 로그 레코드가, 파일에 대한 재편성과 동시에 변경을 나타내는 경우, 로그 레코드는 재편성의 제2 단계에서 사용될 복제 로그 파일로 복사된다. 어떤 프로그램 콜도 설정되지 않았거나, 스텝 616의 처리가 완료되었다면, 스텝 618에서 로그 레코드는 기존의 로그 파일에 기입된다.
이상의 설명으로부터, 본 기술 분야에서 숙련된 기술을 가진 자라면, 개시된 본 발명의 방법 및 시스템에 대한 개량, 변경, 변형을 인지할 수 있을 것이다. 본 기술 분야의 기술 내에서의 이러한 개량, 변경, 변형은 이후의 특허청구범위에 의해서 커버되도록 의도된 것이다.
따라서, 본 개시 중의 도면과 상세한 설명이 개시된 본 발명의 방법 및 시스템에 대한 이해를 용이하게 하도록 제공된 것이며, 그 범위가 이에 한정되도록 구성된 것이 아님을 이해하여야 한다. 이후의 특허청구범위에 의해서만 규정되는 본 발명의 방법 및 시스템의 사상과 범위에서 벗어나지 않고도, 다양한 변경, 치환, 대체 등이 가능하다는 것을 이해하여야 한다.

Claims (27)

  1. 데이터를 재편성(reorganizing)하는 방법에 있어서,
    소스 파일(source file)의 각각의 레코드를 판독하는 단계;
    각각의 레코드를 목적 파일(destination file)에 기입하는 단계;
    선택된 로그 레코드(log record)들을 포함하는 로그 파일(log file)을 생성하는 단계 - 상기 로그 레코드 각각은 상기 목적 파일에 행하여진 변경에 관련됨 -;
    상기 로그 파일의 각각의 로그 레코드를 판독하는 단계;
    상기 목적 파일에 상기 관련된 변경을 적용하도록 상기 로그 파일의 각각의 레코드를 처리하는 단계; 및
    상기 소스 파일을 상기 목적 파일로 대체하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 소스 파일은 인덱스 파일인 방법.
  3. 제1항에 있어서,
    상기 소스 파일은 데이터 파일인 방법.
  4. 제1항에 있어서,
    로그 파일을 생성하는 상기 단계는, DBMS 로그 루틴(DBMS log routine)의 명령(instruction)들에 따라 실행되는 방법.
  5. 제4항에 있어서,
    상기 로그 파일은 상기 DBMS 로그 루틴에 의해 처리되는 모든 레코드의 부분집합을 포함하는 방법.
  6. 제4항에 있어서,
    상기 로그 파일 레코드는 재편성 유틸리티(reorganization utility)에 의해 설정(establishing)되는 프로그램 콜(program call)에 기초하여 선택되는 방법.
  7. 제6항에 있어서,
    상기 프로그램 콜은 상기 재편성 유틸리티의 종료 이전에 제거되는 방법.
  8. 데이터베이스 관리 시스템에 의해 변경을 로깅(logging)하는 방법에 있어서,
    로깅될 변경을 식별하는 단계;
    상기 변경에 기초하여 로그 레코드를 생성하는 단계;
    상기 변경이 재편성 처리에 영향을 미치는지의 여부를 판정하는 단계;
    상기 변경이 재편성 처리에 영향을 미친다면, 상기 로그 레코드를, 선택된변경을 기록하는 제1 로그 파일에 저장하는 단계; 및
    상기 로그 레코드를, 모든 변경을 기록하는 제2 로그 파일에 저장하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 제1 로그 파일은 가상 저장 장치(virtual storage)에 상주(residing)하는 방법.
  10. 제8항에 있어서,
    상기 제1 로그 파일은 데이터스페이스(dataspace)에 상주하는 방법.
  11. 제8항에 있어서,
    상기 제1 로그 파일은 하이퍼스페이스(hiperspace)에 상주하는 방법.
  12. 제8항에 있어서,
    상기 제1 로그 파일은 DASD에 상주하는 방법.
  13. 데이터를 재편성하는 장치에 있어서,
    소스 파일의 각각의 레코드를 판독하는 수단;
    각각의 레코드를 목적 파일에 기입하는 수단;
    선택된 로그 레코드들을 포함하는 로그 파일을 생성하는 수단 - 상기 로그 레코드 각각은 상기 목적 파일에 행하여진 변경에 관련됨 -;
    상기 로그 파일의 각각의 로그 레코드를 판독하는 수단;
    상기 목적 파일에 상기 관련된 변경을 적용하도록 상기 로그 파일의 각각의 레코드를 처리하는 수단; 및
    상기 소스 파일을 상기 목적 파일로 대체하는 수단
    을 포함하는 장치.
  14. 제13항에 있어서,
    상기 소스 파일은 인덱스 파일인 장치.
  15. 제13항에 있어서,
    상기 소스 파일은 데이터 파일인 장치.
  16. 제13항에 있어서,
    상기 로그 파일은 DBMS 로그 루틴의 명령들에 따라 생성되는 장치.
  17. 제16항에 있어서,
    상기 로그 파일은 상기 DBMS 로그 루틴에 의해 처리되는 모든 레코드의 부분집합을 포함하는 장치.
  18. 제16항에 있어서,
    상기 로그 파일 레코드는 재편성 유틸리티에 의해 설정되는 프로그램 콜에 기초하여 선택되는 장치.
  19. 제18항에 있어서,
    상기 프로그램 콜은 상기 재편성 유틸리티의 종료 이전에 제거되는 장치.
  20. 데이터를 재편성하는 장치에 있어서,
    프로세서; 및
    상기 프로세서에 접속되어 있으며, 상기 프로세서의 동작을 제어하는 프로그램을 저장하는 메모리
    를 포함하고,
    상기 프로세서는 상기 메모리에 저장된 상기 프로그램과 동작하여,
    소스 파일의 각각의 레코드를 판독하고;
    각각의 레코드를 목적 파일에 기입하며;
    선택된 로그 레코드들을 포함하는 로그 파일을 생성하고 - 상기 로그 레코드 각각은 상기 목적 파일에 행하여진 변경에 관련됨 -;
    상기 로그 파일의 각각의 로그 레코드를 판독하며;
    상기 목적 파일에 상기 관련된 변경을 적용하도록 상기 로그 파일의 각각의레코드를 처리하고;
    상기 소스 파일을 상기 목적 파일로 대체하는 장치.
  21. 제20항에 있어서,
    상기 소스 파일은 인덱스 파일인 장치.
  22. 제20항에 있어서,
    상기 소스 파일은 데이터 파일인 장치.
  23. 제20항에 있어서,
    상기 프로세서는 또한 상기 메모리에 저장된 상기 프로그램과 동작하여, DBMS 로그 루틴의 명령들에 따라 로그 파일을 생성하는 장치.
  24. 제23항에 있어서,
    상기 로그 파일은 상기 DBMS 로그 루틴에 의해 처리되는 모든 레코드의 부분집합을 포함하는 장치.
  25. 제20항에 있어서,
    상기 프로세서는 또한 상기 메모리에 저장된 상기 프로그램과 동작하여, 재편성 유틸리티에 의해 설정되는 프로그램 콜에 기초하여 상기 로그 파일 레코드를선택하는 장치.
  26. 제23항에 있어서,
    상기 프로세서는 또한 상기 메모리에 저장된 상기 프로그램과 동작하여, 상기 재편성 유틸리티의 종료 이전에 상기 프로그램 콜을 제거하는 장치.
  27. 데이터를 재편성하는 방법을 구현하는 처리 명령(processing instruction)들로 인코딩된 컴퓨터 판독 가능한 저장 매체에 있어서,
    상기 처리 명령들은
    소스 파일의 각각의 레코드를 판독하는 단계;
    각각의 레코드를 목적 파일에 기입하는 단계;
    선택된 로그 레코드들을 포함하는 로그 파일을 생성하는 단계 - 상기 로그 레코드 각각은 상기 목적 파일에 행하여진 변경에 관련됨 -;
    상기 로그 파일의 각각의 로그 레코드를 판독하는 단계;
    상기 목적 파일에 상기 관련된 변경을 적용하도록 상기 로그 파일의 각각의 레코드를 처리하는 단계; 및
    상기 소스 파일을 상기 목적 파일로 대체하는 단계
    를 컴퓨터가 실행하도록 지시하는 저장 매체.
KR10-2003-7013169A 2001-04-09 2002-04-09 저장된 데이터를 재편성하는 시스템 및 방법 KR20030094328A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/829,164 2001-04-09
US09/829,164 US7225206B2 (en) 2001-04-09 2001-04-09 System and method for reorganizing stored data
PCT/US2002/011254 WO2002082276A1 (en) 2001-04-09 2002-04-09 System and method for reorganizing stored data

Publications (1)

Publication Number Publication Date
KR20030094328A true KR20030094328A (ko) 2003-12-11

Family

ID=25253712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7013169A KR20030094328A (ko) 2001-04-09 2002-04-09 저장된 데이터를 재편성하는 시스템 및 방법

Country Status (10)

Country Link
US (1) US7225206B2 (ko)
EP (1) EP1379955A4 (ko)
JP (1) JP2004524632A (ko)
KR (1) KR20030094328A (ko)
CN (1) CN1555527A (ko)
BR (1) BR0208783A (ko)
CA (1) CA2443495A1 (ko)
IL (2) IL158292A0 (ko)
WO (1) WO2002082276A1 (ko)
ZA (1) ZA200307863B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085787B2 (en) * 2002-07-19 2006-08-01 International Business Machines Corporation Capturing data changes utilizing data-space tracking
KR100644612B1 (ko) * 2004-04-26 2006-11-10 삼성전자주식회사 유알엘 정보 변경 방법, 라스트유알엘 정보 변경 장치 및 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체
US8131674B2 (en) * 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
WO2006015536A1 (fr) * 2004-08-08 2006-02-16 Huawei Technologies Co. Ltd. Procede de notification d'une operation d'enregistrement
US7774304B2 (en) * 2005-01-31 2010-08-10 International Business Machines Corporation Method, apparatus and program storage device for managing buffers during online reorganization
DE102005019153A1 (de) * 2005-04-25 2007-06-06 Robert Bosch Gmbh Verfahren und System zum Verarbeiten von Daten
JP4683546B2 (ja) * 2005-07-15 2011-05-18 国立大学法人 東京大学 データベースの再編成方法及びデータベース再編成システム
US20070118574A1 (en) * 2005-11-22 2007-05-24 Franklin William J Reorganizing data with update activity
US7958091B2 (en) * 2006-02-16 2011-06-07 Ingrian Networks, Inc. Method for fast bulk loading data into a database while bypassing exit routines
JP2008204141A (ja) * 2007-02-20 2008-09-04 Nec Corp インデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラム
US8225204B2 (en) 2008-03-27 2012-07-17 Kai Kei Cheng System and method of document reuse
US8234316B2 (en) * 2008-09-30 2012-07-31 Microsoft Corporation Nested file system support
US8166038B2 (en) * 2009-06-11 2012-04-24 Kaufman Mark A Intelligent retrieval of digital assets
KR101587995B1 (ko) * 2009-10-28 2016-01-22 삼성전자주식회사 적응적 로깅 장치 및 방법
US8527481B2 (en) * 2010-03-29 2013-09-03 International Business Machines Corporation Methods and systems for obtaining and correcting an index record for a virtual storage access method keyed sequential data set
CN102970158B (zh) * 2012-11-05 2017-02-08 广东睿江云计算股份有限公司 日志存储与处理的方法及日志服务器
US10521309B1 (en) * 2013-12-23 2019-12-31 EMC IP Holding Company LLC Optimized filesystem walk for backup operations
US10657275B2 (en) * 2015-06-02 2020-05-19 K2View Ltd Encryption directed database management system and method
CN111913916A (zh) * 2020-07-07 2020-11-10 泰康保险集团股份有限公司 一种文件重组的方法及设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0465019B1 (en) * 1990-06-29 1997-05-14 Oracle Corporation Method and apparatus for managing state identifiers for efficient recovery
US5565316A (en) * 1992-10-09 1996-10-15 Educational Testing Service System and method for computer based testing
US6460036B1 (en) * 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
US5721915A (en) 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US5832508A (en) 1996-09-18 1998-11-03 Sybase, Inc. Method for deallocating a log in database systems
US6070170A (en) * 1997-10-01 2000-05-30 International Business Machines Corporation Non-blocking drain method and apparatus used to reorganize data in a database
US6173292B1 (en) * 1998-03-04 2001-01-09 International Business Machines Corporation Data recovery in a transactional database using write-ahead logging and file caching
US6119128A (en) * 1998-03-30 2000-09-12 International Business Machines Corporation Recovering different types of objects with one pass of the log
US6122640A (en) 1998-09-22 2000-09-19 Platinum Technology Ip, Inc. Method and apparatus for reorganizing an active DBMS table
US6351744B1 (en) 1999-05-28 2002-02-26 Unisys Corporation Multi-processor system for database management
CA2302981C (en) * 2000-03-29 2004-06-01 Ibm Canada Limited-Ibm Canada Limitee Online database table reorganization
US6775679B2 (en) * 2001-03-20 2004-08-10 Emc Corporation Building a meta file system from file system cells
US7117229B2 (en) * 2001-05-31 2006-10-03 Computer Associates Think, Inc. Method and system for online reorganization of databases
US6985914B2 (en) * 2002-02-20 2006-01-10 Emc Corporation Cluster meta file system of file system cells managed by respective data movers of a network file server

Also Published As

Publication number Publication date
BR0208783A (pt) 2004-06-22
US20020147736A1 (en) 2002-10-10
CN1555527A (zh) 2004-12-15
EP1379955A4 (en) 2006-07-12
JP2004524632A (ja) 2004-08-12
CA2443495A1 (en) 2002-10-17
WO2002082276A1 (en) 2002-10-17
EP1379955A1 (en) 2004-01-14
ZA200307863B (en) 2004-10-08
US7225206B2 (en) 2007-05-29
IL158292A (en) 2008-07-08
IL158292A0 (en) 2004-05-12

Similar Documents

Publication Publication Date Title
CN110799960B (zh) 数据库租户迁移的系统和方法
US6243718B1 (en) Building indexes on columns containing large objects
US5999943A (en) Lob locators
US6738790B1 (en) Approach for accessing large objects
US5625815A (en) Relational database system and method with high data availability during table data restructuring
US8626717B2 (en) Database backup and restore with integrated index reorganization
KR20030094328A (ko) 저장된 데이터를 재편성하는 시스템 및 방법
US8768977B2 (en) Data management using writeable snapshots in multi-versioned distributed B-trees
US6460048B1 (en) Method, system, and program for managing file names during the reorganization of a database object
US4498145A (en) Method for assuring atomicity of multi-row update operations in a database system
KR100556594B1 (ko) 데이터베이스에 관한 방법
EP2746971A2 (en) Replication mechanisms for database environments
US8103624B2 (en) Apparatus and method for automating the logging of table changes in a database
CA2455348A1 (en) Integrating tablespaces with different block sizes
WO2016192496A1 (zh) 数据迁移处理方法及装置
US7200625B2 (en) System and method to enhance availability of a relational database
EP0336548A2 (en) Supporting long fields of recoverable database records in a computer system
US7421456B2 (en) Method and system for data processing with database reorganization for the same
US20120317384A1 (en) Data storage method
US6792435B1 (en) Method and apparatus for recovering the definitions of dropped database objects
US8510269B2 (en) Uninterrupted database index reorganization/movement
KR102214697B1 (ko) 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램
AU2002256151A1 (en) System and method for reorganizing stored data
Mejia Alvarez et al. Databases and the Memory System
Aoyama et al. Dajfs: A new file system with per-directory adaptive journaling

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid