KR20010022027A - 데이터베이스 내에 엘리먼트를 기억시키는 방법 - Google Patents

데이터베이스 내에 엘리먼트를 기억시키는 방법 Download PDF

Info

Publication number
KR20010022027A
KR20010022027A KR1020007000595A KR20007000595A KR20010022027A KR 20010022027 A KR20010022027 A KR 20010022027A KR 1020007000595 A KR1020007000595 A KR 1020007000595A KR 20007000595 A KR20007000595 A KR 20007000595A KR 20010022027 A KR20010022027 A KR 20010022027A
Authority
KR
South Korea
Prior art keywords
container
belonging
database
elements
overfilled
Prior art date
Application number
KR1020007000595A
Other languages
English (en)
Other versions
KR100529995B1 (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 KR20010022027A publication Critical patent/KR20010022027A/ko
Application granted granted Critical
Publication of KR100529995B1 publication Critical patent/KR100529995B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • 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/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • 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)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은, 데이터베이스 내에 엘리먼트들을 기억시키고, 그 기억된 엘리먼트들을 탐색하는 방법에 관한 것이다. 데이터베이스내의 데이터 엘리먼트 기억을 위한 기억 공간에 대한 참조는, 수학적 함수에 의해 계산되는데, 상기 함수의 입력 데이터는 상기 엘리먼트에 속하는 외부키이고, 상기 수학적 함수에 의해 얻어진 결과는 데이터베이스내의 엘리먼트 내부위치를 지적한다. 상기 결과는 적어도 3부분들(A, B, C)로 분할되어 있다. 제1 부분(A)은 데이터베이스에 속하는 프래그먼트(A4)에 대한 참조를 이루고, 제2 부분(B)은 프래그먼트(A4)내의 페이지(B4)에 대한 참조를 이루며, 제3 부분(C)은 페이지(B4)에 속하는 이른바 버켓(C4)에 대한 참조를 이룬다. 버켓(C4)은, 엘리먼트가 저장될 수 있거나 저장된, 적어도 하나의 컨테이너로 이루어져 있다. 컨테이너들에는, 컨테이너의 사이즈와 이 컨테이너에 속하는 엘리먼트들에 상응하는 사이즈가 주어져 있고, 상기 사이즈는 엘리먼트 량과 관련하여 변화한다. 최대 컨테이너의 사이즈는, 데이터베이스 내에서 동작하거나 또는 데이터베이스를 사용하는 제어기에 속하는 캐시 메모리로 단번에 읽어들일 수 있는 데이터-정보량과 가장 비슷하도록, 제한된다.

Description

데이터베이스 내에 엘리먼트를 기억시키는 방법{A METHOD OF STORING ELEMENTS IN A DATABASE}
상이한 데이터 구조들의 도움으로 데이터베이스 내에 데이터를 저장하는 것은 이미 알려져 있다. 이들 구조들은, 이를테면, 사용된 기억 공간에 대해서 여러 가지 장점을 제공하고, 신속한 탐색을 수행할 수 있도록 한다.
한가지 공지된 구조는, 데이터베이스내 테이블내의 엘리먼트 랜덤 분포(random distribution)를 계산할 수 있도록 하는 이른바 헤시 함수에 근거하고 있다.
하나의 엘리먼트는 데이터베이스에 있어서 내부 어드레스를 포함할 수 있다. 엘리먼트는, 이를테면 전화번호 등의 외부 키에 연결된다. 테이블에 새로운 전화 번호를 입력할 경우, 헤시 함수의 도움으로, 전화 번호의 내부 어드레스가 놓이게 되는 엘리먼트에 관한 계산이 이루어진다.
헤시 함수의 목적은, 어드레스들을 테이블 내에 균일하게 분포시키기 위해, 테이블 내에 어드레스를 랜덤하게 분포시키는 것이다. 상기 헤시 함수는, 이후 특정 어드레스를 탐색할 경우 정확한 엘리먼트를 탐색하도록 이용된다.
키(key)에 헤시 함수를 이용할 경우, 정규적으로 32비트를 포함하는 데이터-워드(data-word)로 구성된 헤시 값(hash value)이 얻어진다.
이점에서 이용되는 알고리즘의 한가지 타입은, 리니어 해싱(linear hashing, LH)인데, 상기 함수로부터 얻어진 데이터-워드는 이른바 다른 것들 중에 LH-비트들을 포함한다. 간단하게 말해서, 구해진 LH-비트들은, 데이터베이스내의 페이지를 지적할 수 있거나, 또는 상기 위치가 페이지를 지적하는 레지스터내 위치를 지적할 수 있으며, 탐색된 엘리먼트는 이 페이지상의 어딘가에 위치한다.
보다 효과적인 엘리먼트에 대한 검색을 위해, 두 단계로 헤싱을 수행하는 것이 공지되어 있다. 구해진 데이터-워드는 이들 두 단계에서 두 그룹의 비트들로 분리된다.
제1 그룹의 비트들은, 이를테면, 벡터내의 인덱스(index)를 지적하고, 이 인덱스는 새로운 벡터를 지적할 수 있다. 제2 그룹의 비트들은 새로운 벡터내의 인덱스를 지적하는데, 이 새로운 인덱스는, 이를테면, 링크된(linked) 리스트(list)의 엘리먼트들 중 첫 번째 엘리먼트를 지적한다. 탐색된 엘리먼트는, 이후 이 링크된 리스트의 엘리먼트들 중 어딘가에서 탐색된다.
이 링크된 리스트들은 서로 상이한 길이를 가지고 있다. 내부 어드레스는 각 엘리먼트에 존재한다. 다양한 링크들이, 메모리 내에서 전적으로 상이한 위치에 물리적으로 배치되지만, 포인터(pointer)들에 의해서 함께 링크된다.
따라서, 소정의 엘리먼트를 탐색할 경우, 링크리스트의 엘리먼트들 헤더가 구해진다. 원하는 내부 어드레스가 제1 엘리먼트내에서 탐색되지 않으면, 상기 링크된 리스트내 다음 엘리먼트에서 탐색은 계속된다. 링크된 리스트내 다음 엘리먼트가 물리적으로 메모리내 그밖의 어딘가에 위치하기 때문에, 메모리에 대한 다른 엑세스가 정규적으로 요구되어, 이 다음 엘리먼트를 픽업(pick-up)할 수 있다.
따라서, 소정의 엘리먼트를 탐색하는 사람은 상기 리스트들의 길이에 따라 매우 비용이 많이 드는 프로세스(process)인 몇몇 캐시-미스(cache-miss)들을 경험하게 된다. 다음의 발생 제어기(generation processor)들에 있어서, 캐시-미스는 수백의 명령에 의해서 시간방향에 대응될 것이다.
그러므로, 캐시-미스들의 수를 최소화시키는 것이 바람직하다. 이상적인 상황은 메모리가 먼저 엑세스될 경우 탐색된 엘리먼트가 발견될 수 있는 상황이다.
전술한 바에 따르면, 데이터 베이스 내에서 동적인 변경이 이루어질 수 있도록, 헤시 값이, 레지스터내의 위치를 지적하거나 또는 더욱이 데이터베이스 내에서 이 위치의 값이 지적하는 벡터를 지적하도록 함으로써, 새로운 헤시 값을 엘리먼트에 지정할 필요없이, 예컨대, 이 엘리먼트용 레지스터내 값에 대한 연이은 변경 상태의, 상이한 페이지들 사이에서 엘리먼트가 이동할 수 있다는 것은 공지되어 있다.
분산형 데이터베이스는 공통 데이터베이스 내에 공통 시스템을 형성하는 다수의 노드를 포함할 것이라는 것도 또한 공지되어 있다. 분산형 데이터베이스내의 정보는, 포함된 상이한 노드들 내에 분산되어 있다.
노드는, 데이터베이스의 하나 이상의 부분에 대한 1차 복사와 그 데이터베이스의 하나 이상의 다른 부분에 대한 2차 복사를 포함할 수 있다. 연합된 2차 복사를 포함한 1차 복사는 통상 프래그먼트(fragment)로 언급된다.
다음의 간행물들은 이 특정 분야에 있어서의 공지된 기술에 대한 이해를 돕기 위한 것으로 생각할 수 있다.
1994년, M. Stonebraker(ed.), Morgan Kaufman에 의한 2판인, Reading in Database Systems내의 VLDB-80으로부터 재판된, W. Litwin에 의한 "Linear Hashing: A New Tool for File and Tables Addressing"
1993년, Management of Data에 대한 ACM SIGMOD 국제 회담에 있어서, W. Litwin, M.-A. Neimat, D.A. Schneider에 의한, "LH*-Linear Hashing for Distributed Files"
W. Litwin, M.-A. Neimat.에 의한 "High-Availability LH*Schemes with Mirroring"
Extending Database Technology(EDBT '96)에 대한 5번째 국제 회담에 있어서, J.S. Karlsson, W. Litwin, T. Risch에 의한 "LH*LH: A Scalable High Performance Data Structure for Switched Microcomputers"
1988년 4월 ACM 통신의 P.-A. Larsson에 의한 "Dynamic Hash Tables"
1993년 3월 스웨덴의 링코핑 대학, M. Pettersson에 의한 "Main-Memory Linear Hashing-Some Enhancements of Larson's Algorithm"
본 발명은 데이터베이스 내에 엘리먼트들(elements)을 기억시키고 그 기억된 엘리먼트들을 탐색하는 방법에 관한 것이다. 데이터베이스내의 데이터 엘리먼트 기억을 위한 기억공간에 대한 참조는 헤시 함수(hash function) 등의 수학적 함수에 의해 계산되며, 여기서, 함수 입력 데이터는 엘리먼트에 속한 외부 키(external key)로 이루어져 있고, 상기 수학적 함수에서 얻어진 결과는 상기 엘리먼트용 데이터베이스내의 내부 위치를 지적한다. 본 발명은, 또한 상기 함수의 결과를 상이한 부분들로 분할함에 기반을 두고 있다.
도 1은, 외부키의 내부키로의 변환에 있어서 수학적 함수의 사용을 개략적으로 예시한 도면,
도 2는, 수학적 함수에 의한, 엘리먼트 위치에 대한 간접적인 참조로 얻어진 결과의 분할을 개략적으로 예시한 도면,
도 3은, 버켓 구조에 대한 대략적인 예시도,
도 4는, 프래그먼트에 속하는 페이지들의 분할을 개략적으로 예시하는 도면,
도 5는, 제1 경우에 있어서의 엘리먼트 구조를 개략적으로 예시하는 도면,
도 6은, 제2 경우에 있어서의 엘리먼트 구조를 개략적으로 예시하는 도면.
현재의 기술 상태를 전술한 바와 같다고 생각할 때, 기술적 문제는, 방법의 제공에 의해, 대부분의 경우에 있어 캐시-미스 또는, 몇몇 경우에 있어 단지 하나의 캐시-미스로 끝나지 않고, 엘리먼트는, 기억, 탐색, 및 재-탐색될 수 있다는 것을, 알 수 있을 것이다.
다른 기술적인 문제는, 엘리먼트를 탐색할 경우 레절루션(resolution)이 높아질 수 있으므로, 캐시-메모리로 읽어들이는 제1 경우나, 또는 예외적인 제2 판독 상황에서, 탐색된 엘리먼트를 판독할 가능성을 제공할 수 있다는 것이다.
다른 기술적인 문제는, 하나의 방법을 제공함으로써, 이와 같은 레절루션 및 탐색을 가능하게 하는 데이터 구조를 형성할 수 있다는 것이다.
다른 기술적인 문제는, 1차 및 2차 복사와 같은 프래그먼트에 속하는 엘리먼트의 모든 복사가, 엘리먼트 탐색시 발견될 수 있다는 것이다.
다른 기술적인 문제는, 다수의 엘리먼트를 저장할 수 있고 온전히 그대로 캐시 메모리로 읽어들일 수 있는, 기억 구조 포맷(여기서는 지정 컨테이너(container))을 안출하는 것이다.
관련된 기술적인 문제는, 이후, 수학적 함수에 따라서, 이미 가득찬 컨테이너에 기억될 엘리먼트를 기억시킬 수 있다는 것이다.
또 다른 기술적인 문제는, 수학적 함수에 따라서, 이미 가득찬 페이지에 기억될 엘리먼트를 기억시킬 수 있다는 것에 있다.
더욱이 다른 기술적인 문제는, 컨테이너의 기억공간에 엘리먼트를 더 부가하거나 또는 그 공간으로부터 존재하는 엘리먼트를 제거함으로써, 사이즈에 있어 증가 또는 감소하는 컨테이너의 기억을 위한 이용 가능 페이지 공간에 대해서 간단하고 효과적인 처리를 제공한다는 것이다.
다른 기술적인 문제는, 다수의 컨테이너가 할당된 메모리 공간을 채우지 않는 이용 가능 메모리에 대해서 효과적으로 사용할 수 있다는 것이다.
이점에 있어서, 기술적인 문제는, 컨테이너들 각각이 시간이 지남에 따라 사이즈에 있어서 증가 또는 감소할 경우, 이와 같은 사용을 할 수 있다는 것이다.
따라서, 다른 기술적인 문제는, 특정한 가장 큰 허용 사이즈를 가진 컨테이너, 즉, 최대 컨테이너에 적합한 공간에 대해서 이중으로 사용할 수 있다는 것이다.
또 다른 기술적인 문제는, 수학적 함수에 따라서, 컨테이너 내에 존재하게 될 모든 엘리먼트들이 실제로 존재하는지의 여부에 대한 필요 정보와, 컨테이너내의 수용공간을 발견할 수 없는 엘리먼트가 어디에 위치하고 있는 지에 관한 필요정보를 제공하는, 컨테이너 포맷을 제공함으로써, 이와 같은 엘리먼트들에 대한 탐색이 단지 단일 캐시-미스만을 발생할 수 있다는 것이다.
기술적 문제는, 수용되지 않는 엘리먼트 또는 엘리먼트들이 컨테이너와 같은 페이지 또는 다른 페이지에 위치하는지의 여부에 관계없이, 이와 같은 정보를 제공할 수 있는 능력에 있다.
다른 기술적인 문제는, 엘리먼트를, 이 엘리먼트에 영향을 미치는 트랜잭션과 관련하여 상이한 타입의 로킹(locking)으로 이용할 수 있도록, 필요 정보를 제공하는 엘리먼트 포맷을 제공한다는 것이다.
다른 기술적인 문제는, 엘리먼트가, 서로 상이한 사이즈의 키들과 같은 다이나믹한 속성을 가질 수 있다는 것이다.
또 다른 기술적 문제는, 엘리먼트를 다수의 상이한 복사 프로세스들에 참여시킬 수 있는 지에 대한, 필요 정보를 제공한다는 것이다.
다른 기술적인 문제는, 엘리먼트를 프래그먼트 분할 또는 몇몇 프래그먼트의 결합에 참여시킬 수 있는지에 대한, 필요정보를 제공한다는 것이다.
전술한 방법으로부터 시작하여, 하나 이상의 전술한 기술적 문제들에 대한 해결책을 제공할 목적으로, 본 발명에 따라서, 수학적 함수로 얻어지는 결과가 적어도 3부분들로 분할됨이 제안되는데, 여기서, 제1 부분은 데이터베이스에 속한 프래그먼트에 대한 직접 또는 간접 참조를 이루고, 제2 부분은 프래그먼트내의 페이지에 대한 직접 또는 간접 참조를 이루며, 제3 부분은 상기 페이지에 속한 버켓(bucket)에 대한 직접 또는 간접 참조를 이룬다.
이와 같은 버켓은, 엘리먼트를 저장할 수 있거나, 이미 저장하고 있는, 또는 상기 엘리먼트에 대한 직접 또는 간접 참조를 기억하는, 적어도 하나의 컨테이너를 포함할 것이다.
영향을 받는 프래그먼트들, 페이지들, 버켓 또는 엘리먼트들을, 수학적 함수로부터 새로운 값을 계산할 필요없이 상이한 방법으로 변경할 수 있도록 하기 위해, 본 발명은 직접 또는 간접 참조를 선택적으로 이용하는 가능성을 제안한다.
직접참조라는 것은, 될 수 있는 대로 어드레스 정보를 재-프로세싱(re-processing)을 통해, 예컨대, 더욱이 수학적 함수를 통해 직접 의도한 위치를 지적하는 내부 어드레스를 의미한다. 간접참조라는 것은, 의도한 위치를 직접 지적하는 관련 내부 어드레스가 이용될 수 있는, 테이블 또는 레지스터 등을 지적하는, 포인터를 의미한다.
의도한 엘리먼트들에 대한 엑세스가능성은 다음의 사실에 의해서 부분적으로 달성될 수 있다:
- 제1 부분은 참조를 통해 모든 복사를 가능하게 하는 프래그먼트에 속하는 모든 복사에 대한 간접적인 참조를 형성한다.
- 제2 부분은 상이한 페이지들에 대한 포인터 백터로 이루어진 레지스터를 지적한다.
- 제3 부분은 수학적 함수를 통해 상기 페이지에 속하는 버켓을 지적한다.
이와 같이 지적된 버켓은 가능한 한 관련된 지나치게 채워진-컨테이너를 포함한다.
데이터베이스 내에서 동작하거나 또는 상기 데이터베이스를 이용하는 제어기에 속한 캐시 메모리(cache memory)로 전체 컨테이너가 읽어지도록 하기 위해, 본 발명에 따라, 컨테이너 포맷을 특별한 방법으로 설계하는 것을 제안하였다. 컨테이너들 각각을, 컨테이너 헤더 사이즈 및, 그 컨테이너에 속하는 엘리먼트들의 사이즈에 상응하는 사이즈로 할당한다.
여기서 최대 컨테이너로 언급된, 컨테이너가 증가하도록 허용된 최대 사이즈가, 데이터베이스 내에서 동작하거나 또는, 상기 데이터베이스를 이용하는 제어기에 속하는 캐시 메모리로, 일시에 그리고 동시에 읽어들일 수 있는 사이즈로 제한될 지라도, 컨테이너에 속한 엘리먼트의 넘버(number)에 따라 사이즈는 변화한다.
페이지들 각각에 이용할 수 있는 기억공간을 효율적인 방법으로 사용함과 아울러, 탐색된 버켓을 쉽게 찾도록 하기 위해, 본 발명에 따라서, 페이지들을 다수의 버퍼로 분할하는 것이 제한되었다. 버퍼들 각각은, 이른바 사용 가능도-리스트-경계(availability-list-limit)에 대한 제1 부분과, 제2 부분으로 분할된다.
버퍼들 각각은 다음을 포함하도록 적응된다:
- 제1 및 제2 부분들 전체를 수용하는 최대 컨테이너; 또는
- 제1 부분에서 시작하여 제2 부분으로 확장하는 제1 비-최대 컨테이너 (first non-maximum container); 또는
- 제1 부분에서 시작하는 제1 비-최대 컨테이너, 그리고 제2 부분에서 시작하는 가능 제2 비-최대 컨테이너(possible second non-maximum container).
제1 넘버의 버퍼들은 정적 버퍼들(static buffers)로 이루어져 있고, 제2 넘버의 버퍼들은 자유 버퍼들(free buffers)로 이루어져 있다. 상기 정적 버퍼들에 속하는 제1 부분은 컨테이너를 포함하도록 적응되고, 상기 정적 버퍼들에 속하는 제2 부분과 상기 자유 버퍼들에 속하는 양쪽 부분들은 지나치게 채워진 컨테이너를 포함하도록 적응된다.
수학적 함수의 효과에 의해, 다수의 컨테이너들은 최대보다 작게 될 것이고, 한편 다수의 컨테이너들은 심지어 최대의 반으로 될 것이며, 이들 후자의 컨테이너들은 버퍼의 한 부분을 차지할 것임을 의미한다.
다시 말해서, 이는, 많은 버퍼들이 두 컨테이너들에 대한 공간을 제공할 수 있다는 것을 의미한다. 이 경우에 있어서, 본 발명에 따라서, 제1 부분에 놓인 컨테이너는, 제1 부분의 초기에서 시작하여, 다른 엘리먼트가 컨테이너에 부가될 경우, 관련 버퍼의 중앙을 향해 증가하며, 제2 부분 내에 놓인 컨테이너는, 상기 제2 부분의 끝부분에서 시작하여, 다른 엘리먼트가 컨테이너에 부가될 경우, 관련 버퍼의 중앙을 향해 증가하는 것을 제안하였다.
그 밖의 모든 것에도 불구하고 수학적 함수가 이미 최대로 채워진 컨테이너내의 위치에 엘리먼트를 지정할 경우, 본 발명에 따라서, 관련 버켓은 지나치게 채워진 컨테이너를 포함하도록 적응되고, 이와 다른 엘리먼트는 지나치게 채워진 컨테이너 내의 위치로 할당되는 것이 제안되었다.
페이지내의 이용가능 기억공간의 처리를 더욱 단순화시키고, 이 처리를 더욱 효과적으로 하기 위해, 본 발명에 따라서, 사용가능도-리스트가, 정적 버퍼들에 속하는 모든 이용가능 제2 부분과, 페이지상의 자유 버퍼들에 속하는 모든 이용가능 제1 및 제2 부분들을 포함하는 것이 제안되었다.
버퍼에 속하는 이용가능 제2 부분은, 대응하는 제1 부분내의 비-최대 컨테이너가 사이즈에 있어서 사용가능-리스트-경계를 초과할 경우, 사용가능-리스트로부터 제거된다.
버퍼에 속하는 이용가능 제2 부분은, 사이즈에 있어서 사용가능-리스트-경계를 더욱 일찍 초과한 대응하는 제1 부분내의 컨테이너가, 감소하고, 더 이상 사용가능-리스트-경계를 초과하지 않을 경우, 사용가능-리스트에 부가된다.
최대 컨테이너용 버퍼내의 양쪽 부분이 점유되기 때문에, 본 발명에 따라서, 지나치게 채워진 컨테이너를, 사용가능-리스트 상에서 이용가능한 부분의 위치로 할당하고, 상기 이용가능한 부분을, 이 할당에 있어서 상기 사용가능-리스트로부터 제거하는 것이 제안되었다.
또한, 본 발명에 따라서, 상기 프래그먼트에 속하는 페이지들 중 하나가, 단지 자유 버퍼들만을 포함하는 지나치게 채워진 페이지로 이루어져 있는 것이 제안되었다. 상기 지나치게 채워진 컨테이너는, 어떠한 부분들도 자신의 페이지내의 사용가능-리스트 상에 이용할 수 없을 경우, 지나치게 채워진 페이지 상의 버퍼에 속하는 부분의 위치로 할당된다.
컨테이너 헤더는 4개의 정보 반송 필드(information carrying field)들을 포함한다.
제1 정보 반송 필드는 정보 관련 컨테이너 사이즈를 포함한다.
버켓이 단지 하나의 컨테이너를 포함할 경우:
- 제2 정보 반송 필드는 지나치게 채워진 가능 컨테이너가 동일 페이지 상에 존재함을 나타내고;
- 제3 정보 반송 필드는 어떠한 지나치게 채워진 컨테이너도 존재하지 않음을 나타내며;
- 제4 정보 반송필드는 사용되지 않는다.
버켓이 동일 페이지 상에 컨테이너 및 지나치게 채워진 컨테이너를 포함할 경우:
- 제2 정보 반송 필드는 동일 페이지 상에 지나치게 채워진 가능 컨테이너가 존재함을 나타내고;
- 제3 정보 반송 필드는 지나치게 채워진 컨테이너가 존재함을 나타내며;
- 제4 정보 반송 필드는 지나치게 채워진 컨테이너를 지적한다.
버켓이 지나치게 채워진 페이지 상에 지나치게 채워진 컨테이너를 포함할 경우:
- 제2 정보 반송 필드는 지나치게 채워진 페이지 상에 지나치게 채워진 컨테이너가 존재함을 나타내고;
- 제3 정보 반송 필드는 지나치게 채워진 페이지를 지적하는 포인터를 포함하며;
- 제4 정보 반송 필드는 지나치게 채워진 컨테이너를 지적하는 포인터를 포함한다.
필드 각각의 사이즈는 각각의 상황에 적응된다.
컨테이너 내에서 최대 공간의 사용을 할 수 있도록, 본 발명에 따라서, 컨테이너에 속하는 엘리먼트들을, 컨테이너에 있어서, 헤더 바로 뒤의 위치 그리고, 서로의 뒤에 할당시키는 것이 제안되었다.
또한, 수학적 함수를 통해 지적된 전체 컨테이너를, 엘리먼트를 요청하는 제어기에 속하는 캐시 메모리로 읽어들이는 것이 제안되었다.
캐시 메모리로 읽혀진 컨테이너 내에서 엘리먼트가 발견되지 않으면, 그 지나치게 채워진 컨테이너 전체를 캐시 메모리로 읽어들인다.
프래그먼트들의 복사, 이동, 결합 또는 분할시에 엘리먼트의 처리를 가능하게 하기 위해, 본 발명에 따라서, 엘리먼트들 각각을 특정 포맷으로 할당하는 것이 제안되었다.
이 포맷에 따라서, 엘리먼트는 엘리먼트 헤더 및 5개 그룹의 정보를 포함할 것이다.
엘리먼트가 트랜잭션에 이용될 수 있을 경우:
- 제1 그룹은 수학적 함수에 의해 얻어진 결과의 일부를 포함할 것이고;
- 제2 그룹은 엘리먼트 상태 비트들을 포함할 것이며;
- 제3 그룹은 엘리먼트가 로크(lock)되지 않았다는 취지의 정보를 포함할 것이며;
- 제4 그룹은 상기 엘리먼트에 속하는 로컬 키(local key)의 길이와 관련한 정보를 포함할 것이며;
- 제5 그룹은 상기 엘리먼트에 속하는 엘리먼트 키의 길이와 관련한 정보를 포함할 것이다.
엘리먼트가, 상기 엘리먼트에 영향을 주는 진행중인 트랜잭션에 기인한 트랜잭션들에 대해 로크되어 있을 경우:
- 제1 및 제2 그룹들은, 트랜잭션에 속하는 트랜잭션 레지스터를 지적하는 포인터를 포함할 것이고;
- 제3 그룹은 엘리먼트가 로크되어 있다는 취지의 정보를 포함할 것이며;
- 제4 그룹은 로컬 키의 길이와 관련한 정보를 포함할 것이며;
- 제5 그룹은 엘리먼트 키의 길이와 관련한 정보를 포함할 것이다.
상기 엘리먼트에 영향을 주는 트랜잭션에 속하는 트랜잭션 레지스터는, 함수, 상태 비트들, 엘리먼트에 적용된 로크의 타입, 즉 로크 모드에 의해, 얻어진 결과 부분을 포함할 것이다.
또한, 엘리먼트는 로컬 키 및 엘리먼트-키를 포함한다.
엘리먼트 해더는 4바이트로 이루어져 있고, 제1 그룹은 19비트로 이루어져 있으며, 제2 그룹은 4비트로 이루어져 있으며, 제3 그룹은 1비트로 이루어져 있으며, 제4 그룹은 4비트로 이루어져 있으며, 제5 그룹은 또한, 4비트로 이루어져 있다.
상태 비트들은, 프래그먼트 복사 프로세스에서와 같은, 엘리먼트 복사 프로세스에 이용된다. 비트들 각각은 엘리먼트가 복사되는지 안 되는지의 여부를 나타낸다.
따라서, 다수의 동시 복사 프로세스들(예: 4개의 프로세스들)은 각기 개별적인 상태 비트를 사용할 수 있다.
수학적 함수에 의해 얻어진 결과부분은 프래그먼트-분할 프로세스들 및 프래그먼트-결합 프로세스들에 사용된다.
본 발명의 방법에 의해 제공된 첫 번째 장점은, 요구된 엘리먼트들을 단지 단일 메모리 엑세스로 탐색하는 능력에 있고, 또는 요구된 엘리먼트가 지나치게 채워진 컨테이너에 위치할 경우, 단지 두 개의 메모리 엑세스로 탐색하는 능력에 있다. 헤시 함수를 통해 정확한 컨테이너가 나타내어진다.
컨테이너 사이즈는, 컨네이너 전체가 메모리에 대한 단일 엑세스에 의해서 캐시 메모리로 읽혀질 수 있도록 적응된다. 일단 캐시 메모리에서 정확한 컨테이너가 탐색되면, 현재의 제어기들의 도움으로, 컨테이너 내에 직렬로 저장된 엘리먼트들 사이에서 정확한 엘리먼트가 신속히 탐색될 수 있다.
본 발명의 방법에 있어서의 첫 번째 특징적인 양상은 다음의 청구항 1의 특징 절에서 설명할 것이다.
본 발명과 관련된 특징을 포함하는 방법은, 첨부된 도면을 참조하여 예로서 보다 상세히 설명될 것이다.
도 1은, 수학적 함수(f(x))에 대한 입력 데이터로서, 엘리먼트(E)에 속하는 전화 번호(T)등의 외부키 사용을 나타내고 있다.
함수(f(x))에 의해 얻어진 결과(y)는 데이터베이스(D)내 엘리먼트(E)의 내부 위치를 지적한다. 결과(y)는 적어도 3개의 부분(A, B, C)으로 분할되어 있다.
도 2는, 제1 부분(A)이 데이터베이스(D)에 속하는 프래그먼트(A4)에 대해 간접적인 참조(A1)를 이룸을 나타내려고 한다. 이 참조(A1)는 상이한 프래그먼트들을 커버하는 테이블(A2)내의 위치를 지적하는데, 여기서 프래그먼트(A4)에 속하는 모든 복사 값이 어디에 기억되는지를 밝히는 정보(A3)가 이용될 수 있다.
제2 부분(B)은 프래그먼트(A4)내의 페이지(B4)에 대한 간접적인 참조(B1)를 이룬다. 이 참조(B1)는, 하나가 페이지(B4)인, 상이한 페이지들에 대한 포인터(B3) 백터로 이루어진, 레지스터(B2)를 지적하는 포인터로 이루어져 있다.
제3 부분(C)은 페이지(B4)에 속하는 이른바 버켓(C2)에 대해 직접적인 참조(C1)를 이룬다.
이와 같은 방식으로, 수학적인 함수(f(x))에 의해 얻어진 값(y)은 특정 버켓(C2)에 직접 어드레스를 제공한다.
도 3에 의하면, 버켓들(C2) 각각은, 컨테이너(C5), 그리고 가능한 한 버켓(C4)에 속하는 지나치게 채워진 컨테이너(C6)를 또한 포함한다.
도 3은, 헤더(CH)의 사이즈와, 컨테이너(C6)에 속하는 엘리먼트들(E1, E2, E3, ...)의 사이즈에, 상응하는 사이즈로 컨테이너들(C6) 각각을 할당함을 나타내고 있다.
최대 컨테이너의 사이즈를, 데이터베이스 내에서 동작하거나 또는 상기 데이터베이스를 이용하는 제어기에 속하는 캐시 메모리로 한번에 읽어들일 수 있는 사이즈와 같도록 제한하였음에도 불구하고, 이 사이즈는 엘리먼트들의 수에 따라 가변 할 수 있다.
통상, 현재의 제어기들은 한번에 캐시 메모리로 128바이트를 읽어들일 수 있고, 다음의 설명은 이 값에 근거하고 있다. 그러나, 본 발명에 따른 컨테이너의 사이즈와, 다음의 설명에 열거된 다른 치수는, 요구된 결과를 얻기 위해, 소정시간에 관련 제어기들의 캐시 메모리로 얼마나 많이 읽어질 수 있는 지에 따라서, 적응될 것이다.
본 발명에 의한 앞으로의 적용에 있어 주목할 필요가 있는 다른 파라미터는, 캐시 메모리로 읽어들이는 정보의 내용을 처리하는데 걸리는 시간이다. 처리시간이 캐시-미스에 대한 시간을 초과할 경우, 한번에 캐시 메모리로 얼마나 많은 정보를 읽어들일 수 있는지에 대해 관계없이, 컨테이너의 사이즈, 그리고 다른 치수들을, 컨테이너의 처리가 캐시-미스에 대한 시간 경과보다 짧은 시간이 소요될 사이즈로 제한하는 것이 적당하다.
도 4에 의하면, 페이지(B4)는 다수의 버퍼들(B41, B42, B43, ..., B466)로 분할된다. 버퍼들 각각은, 이른바 사용가능-리스트-경계(B4C)에 대한 제1 부분(B4A) 및 제2 부분(B4B)으로 나뉘어져 있고, 버퍼들 각각은 다음을 포함하도록 적응된다:
- 제1 부분(B4A) 및 제2 부분(B4B) 전체를 수용하는 최대 컨테이너(C51); 또는
- 제1 부분(B4A)에서 시작되어 제2 부분(B4B)으로 확장되는 제1 비-최대 컨테이너(C52); 또는
- 제1 부분(B4A)에서 시작되는 제1 비-최대 컨테이너(C53)와, 제2 부분(B4B)에서 시작되는 가능 제2 비-최대 컨테이너(C61).
제1 넘버의 버퍼들은 정적 버퍼들(B4S)로 구성되어 있고, 제2 넘버의 버퍼들은 자유 버퍼들(B4F)로 구성되어 있다.
도 4에 따른 예는 8k바이트(8192 바이트)를 가지는 페이지를 포함하고 있다. 이 페이지는, 8바이트를 가지는 헤더(C3)와, 각기 124 바이트인, 64개의 정적 버퍼들(B4S) 및 2개의 자유 버퍼들(B4F)을 포함하고 있다.
이 구조는, 특정 버켓의 주소지정 및 특정 버퍼의 주소지정을 할 수 있도록 하고, 버퍼들의 번호인, 1(일)과 64(육십-사) 사이에 랜덤한 번호 "a"를 형성하도록 이 결과부분을 적응시킴으로써 얻어질 수학적 함수(f(x))에 의해 얻어진 결과(y)의 제3 부분(C)으로 구성되어 있다. 이 번호 "a"에는 124(각 버퍼에 있어서의 바이트 수)가 곱해지고, 번호 8(팔)은 이후, 상기 결과에 가산되며, 이는 헤더(C3)내의 바이트 넘버이다.
따라서, 본 예에서 "a"*124+8인, 수학적 함수 매체를 통할지라도, 수학적 함수(f(x))의 제3 부분(C)은, 의도된 위치를 직접 지적하는 주소를 이룬다는 것을 알 수 있다.
수학적 함수(f(x))에 따라 지적된 랜덤 버퍼 및 이 버퍼 내에 위치하는 버켓이 있다.
정적 버퍼들(B4S)에 속하는 제1 부분(B4A)은 컨테이너(C5)를 포함하도록 적응되고, 정적 버퍼들(B4S)에 속하는 제2 부분(B4B)과, 자유 버퍼들(B4F)에 속하는 양 부분들(B4A, B4B)은 지나치게 채워진 컨테이너(C6)를 포함하도록 적응된다.
제1 부분(B4A)에 위치한 컨테이너(C5)는, 제1 부분(B4A)의 시작부분에서 시작되어, 다른 엘리먼트(E)가 컨테이너(C5)에 부가될 경우, 할당된 버퍼의 중심을 향해 커진다.
제2 부분(B4B)에 위치한 컨테이너(C6)는, 제2 부분(B4B)의 끝에서 시작되어,다른 엘리먼트(E)가 컨테이너(C6)에 부가될 경우, 할당된 버퍼의 중심을 향해 커진다.
이는, 버퍼가 실제로 최대 허용 사이즈의 한 컨테이너만을 간직하도록 적응됨에도 불구하고, 두 개의 컨테이너들을 공통 버퍼내에 간직하도록 한다.
효과적인 수학적 함수(f(x))의 경우에 있어서, 존재하는 모든 엘리먼트들(E)은, 존재하는 컨테이너(C5) 내에서 랜덤하게 그리고 동등하게 분할될 것이며, 다수의 컨테이너들(C5)이, 그것들의 허락된 만큼 최대로 채워지지 않을 것임을 의미한다. 다수의 이들 컨테이너는, 또한 사용가능-리스트-경계(B4C) 밑에 놓여질 것이며, 몇몇 가득 채워진 컨테이너들(C6)에 대해 다수의 다른 부분들(B4B)이 이용됨을 의미한다.
본 발명의 바람직한 실시예에 따라서, 하나의 컨테이너가 사용가능-리스트-경계를 초과하는지의 여부에 관계없이, 버퍼내의 공간이 공통 버퍼를 공유하는 두 개의 컨테이너들 사이에서 어느 정도 분할되는 지를 확인하는 점검을 이들 두 개의 컨테이너에 위임하는 것을 제안하였다. 따라서, 버퍼가 두 개의 컨테이너들에 대해서 효과적인 공간을 제공할 수 있으면, 매우 작은 지나치게 채워진 컨테이너(C6)는, 컨테이너(C5)가 사용가능-리스트-경계를 초과하는 범위까지 증가하게 할 수 있다.
다른 엘리먼트(E)가 최대 허용 사이즈의 컨테이너(C5)에 부가되고, 상기 버켓에 속할 경우, 관련 버켓(C2)은 지나치게 채워진 컨테이너(C6)를 포함하도록 적응되며, 여기에서 상기 다른 엘리먼트는 상기 지나치게 채워진 컨테이너(C6)내의 위치에 할당된다.
사용가능 리스트는, 상기 정적 버퍼들(B4S)에 속하는 모든 이용가능 제2 부분(B4B), 페이지(B4)내의 자유 버퍼들(B4F)에 속하는 모든 이용가능 제1 부분들(B4A) 및 이용가능 제2 부분들(B4B)을 포함하도록 적응된다. 페이지(B4)에 대한 헤더(C3)는 다른 것들 중에서 이 사용가능 리스트에 포인터를 포함한다.
사용가능 리스트는, 이용가능 부분들의 링크 리스트 내에 모든 이용가능 부분들을 포함함으로써 수단이 부여될 수 있고, 여기에서 이용가능 부분들 각각은 상기 링크된 리스트내의 다음 이용가능 부분에 포인터를 포함하고 있다. 헤더내의 포인터는 제1 이용가능 부분을 지적한다.
버퍼(B44)에 속하는 이용가능 제2 부분(B4B')은, 대응하는 제1 부분내의 비-최대 컨테이너(C54)가 사이즈에 있어서 사용가능-리스트-경계(B4C)를 초과할 경우, 사용가능-리스트로부터 제거된다.
사이즈에 있어서 사용가능-리스트-경계(B4C)를 보다 일찍 초과한 대응하는 제1 부분내의 컨테이너(C55)가 감소하고, 사용가능-리스트-경계를 더 이상 초과하지 않을 경우, 버퍼(B45)에 속하는 이용가능 제2 부분(B4B")은, 사용가능-리스트에 부가된다.
제2 부분이, 사이즈에 있어서 증가하거나 감소하는 제1 부분 내의 컨테이너와 관련하여 사용가능-리스트로부터 제거되거나 또는 그 사용가능-리스트에 부가될 경우, 소정의 히스테리시스(histeresis)를 도입하는 것이 또한 가능하다.
이를테면, 제2 부분은, 제1 부분내의 컨테이너가 미리 지정된 값만큼 사용가능-리스트-경계를 초과한 후에 만, 사용가능-리스트로부터 제거될 것이다.
유사하게, 제2 부분은, 사이즈에 있어서 컨테이너가 감소하여, 미리 정해진 마진(margin) 만큼 사용가능-리스트-경계 밑에 놓일 경우에 만, 컨테이너 사이즈에 있어서의 감소와 관련하여 사용가능-리스트에 부가될 수 있다.
이 히스테리시스는, 몇몇 이유로 사이즈에 있어서 주기적인 사용가능-리스트-경계 부근으로의 컨테이너의 즉각적인 증가 및 감소와 관련하여, 발생하는 발진 효과를 차단할 수 있다.
지나치게 채워진 컨테이너(C61)는 사용가능-리스트에 이용할 수 있는 부분(B4B''')내의 위치에 할당되고, 이 할당이 이루어질 경우, 초기의 이용가능 부분(B4B''')은 사용가능-리스트로부터 제거된다.
어떠한 부분도 사용가능-리스트 상에서 이용되지 않는 상황에 대한 보호를 위해, 본 발명에 따라서, 프래그먼트(A4)에 속하는 페이지 중 하나가 지나치게 채워진 페이지(B5)로 이루어져 있는 것이 제안되었다. 이 지나치게 채워진 페이지(B5)는 단지 자유 버퍼들(B5F) 만을 포함하고 있다. 지나치게 채워진 컨테이너(C62)는, 어떠한 페이지들도 사용가능-리스트에 이용되지 않는 경우에, 지나치게 채워진 페이지(B5) 상의 버퍼(B53)에 속하는 부분내 위치에 할당된다.
도 3에 따르면, 컨테이너(C5)에 속하는 헤더(CH)는 4개의 정보 반송 필드들(CH1, CH2, CH3, CH4)을 포함하고 있고, 여기에서 제1 정보 반송 필드(CH1)는 컨테이너 사이즈에 관한 정보를 포함하고 있다.
버켓(C2)이 단지 하나의 컨테이너를 포함할 경우:
- 제2 정보 반송 필드(CH2)는 지나치게 채워진 가능 컨테이너(C6)가 동일 페이지(B4)에 존재함을 나타내고;
- 제3 정보 반송 필드(CH3)는 지나치게 채워진 어떠한 컨테이너(C6)도 존재하지 않음을 나타내며;
- 제4 정보 반송 필드(CH4)가 사용되지 않는다.
버켓(C2)이 동일 페이지(B4)상에 컨테이너(C5) 및 지나치게 채워진 컨테이너(C6)를 포함할 경우:
- 제2 정보 반송 필드(CH2)는 동일 페이지(B4) 상에 지나치게 채워진 가능 컨테이너(C6)가 존재함을 나타내고;
- 제3 정보 반송 필드(CH3)는 지나치게 채워진 컨테이너(C6)가 존재함을 나타내며;
- 제4 정보 반송 필드(CH4)는 지나치게 채워진 컨테이너(C6)를 지적한다.
버켓(C5)이 지나치게 채워진 페이지(B5) 상에 지나치게 채워진 컨테이너(C6)를 포함할 경우:
- 제2 정보 반송 필드(CH2)는 지나치게 채워진 페이지(B5) 상에 지나치게 채워진 컨테이너(C6)가 존재함을 나타내고;
- 제3 정보 반송 필드(CH3)는 지나치게 채워진 페이지(B5)를 지적하는 포인터를 포함하며;
- 제4 정보 반송 필드(CH4)는 지나치게 채워진 컨테이너(C6)를 지적하는 포인터를 포함한다.
필드들(CH1, CH2, CH3, CH4) 각각의 사이즈는 각 상황에 적응된다.
수학적 함수에 의해 얻어진 결과의 제3 부분과 유사하게, 제4 정보 반송 필드내의 포인트는, 1과 64 사이의 넘버로 이루어져 있고, 그 넘버는, 버퍼 각각에 대한 바이트들의 넘버인 124가 곱해지고, 헤더 바이트들의 넘버인 8이 가산되는, 버퍼들의 넘버이다. 이는, 랜덤하게 이루어지지 않고, 사용가능-리스트에 어떤 버퍼가 이용될 수 있는 가에 따라서 이루어진다.
엘리먼트들(E1, E2, E3, ...) 각각은 컨테이너 내에서 헤더(CH) 바로 뒤의 위치에, 차례차례 할당되어 있다.
이론상, 지나치게 채워진 컨테이너(C6)가 최대 허용 사이즈에 이를 수 있고, 이와 함께, 더욱더 지나치게 채워진 컨테이너(C6')로 언급할 필요가 있다. 이와 같은 이유로, 지나치게 채워진 컨테이너들을 포함하는 모든 컨테이너들은, 상기에 따른 헤더를 포함할 것이다. 버켓(C2)이, 실제로는 거의 일어나지 않는 두 개 이상의 지나치게 채워진 컨테이너들을 포함할 필요가 있으면, 이는, 다시 말해서, 마지막 지나치게 채워진 컨테이너(C6')내의 엘리먼트(E1')를 탐색할 경우, 동 넘버의 캐시-미스로 끝난다.
제어기가 엘리먼트(E)를 탐색할 경우, 수학적 함수(f(x))를 통해 지적된 컨테이너(C5) 전체는, 제어기에 속하는 캐시 메모리로 읽혀진다.
엘리먼트(E)가 캐시 메모리 내로 읽혀지는 컨테이너(C5)에서 탐색되지 않으면, 지나치게 채워진 컨테이너(C6) 전체는 캐시 메모리로 읽혀진다.
엘리먼트(E)는, 또한 4개 그룹 정보를 가진 엘리먼트 헤더(EH)를 포함하고 있다. 본 발명에 따라서, 상기 엘리먼트 헤더는 엘리먼트(E)를 두 개의 상이한 경우들로 설명할 수 있도록 적응된다.
도 5는, 엘리먼트가 트랜잭션(transaction)에 이용될 경우, 엘리먼트(E)의 구성을 나타내도록 한 것이다. 이 경우에, 제1 그룹(G1)은 수학적 함수(f(x))에 의해 얻어진 결과(y') 부분을 포함하고, 제2 그룹(G2)은 엘리먼트(E)에 대한 상태 비트들(ES)을 포함하며, 제3 그룹(G3)은 엘리먼트가 LS(로크 상태)로 로크되지 않는 다는 정보를 포함하며, 제4 그룹(G4)은 엘리먼트에 속하는 로컬 키의 길이와 관련된 정보를 포함하며, 제5 그룹(G5)은 엘리먼트에 속하는 엘리먼트-키의 길이와 관련된 정보를 포함하고 있다.
엘리먼트(E)는, 또한 로컬 키(G6)와 엘리먼트-키(G7)를 포함하고 있다.
도 6은, 엘리먼트(E')에 영향을 주는 진행중인 트랜잭션으로 인해, 엘리먼트가 트랜잭션에 대해 로크되어 있을 경우, 엘리먼트(E')의 구성을 나타내려고 한 것이다.
예시된 경우에 있어서, 제1 및 제2 그룹들(G1', G2')은 모두 트랜잭션에 속하는 트랜잭션 레지스터(TR)를 지적하는 포인터(G12)를 포함하고 있고, 트랜잭션 레지스터(TR)는, 수학적 함수(f(x))로부터의 결과부분(y')과, 상태 비트들(ES)과, 엘리먼트(LM)(로크 모드)에 적용된 로크의 타입을 포함하고 있으며, 상기 제3 그룹(G3')은 엘리먼트가 LS로 로크되는 취지의 정보를 포함하고 있다.
예시된 경우에 있어서, 제4 그룹(G4')은 또한 로컬 키(G6')의 길이와 관련한 정보를 포함하고 있고, 제5 그룹(G5')은 엘리먼트-키(G7')의 길이와 관련한 정보를 포함하고 있다.
엘리먼트 헤더(EH)는, 4 바이트로 이루어져 있는데, 여기서, 제1 그룹(G1)은 19비트로 이루어져 있고, 제2 그룹(G2)은 4비트로 이루어져 있으며, 제3 그룹(G3)은 1비트로 이루어져 있으며, 제4 그룹(G4)은 4비트로 이루어져 있으며, 제5 그룹(G5)은 또한 4개의 비트로 이루어져 있다.
상태 비트들(ES)은 프래그먼트(A4)를 복사할 경우와 같은 엘리먼트 복사 프로세스에 사용하기 위한 것이며, 여기서 각 비트들은 엘리먼트(E)가 복사되었는지의 여부를 나타낸다. 이는, 예시된 경우에 있어, 4개의 프로세스들인 다수의 동시적인 복사 프로세스들이 각각 개별적인 상태 비트를 이용할 수 있도록 한다.
수학적 함수에 의해 얻어진 결과 부분(y')은 프래그먼트 분할 프로세스 및 프래그먼트 결합 프로세스들에 이용하기 위한 것이다.
데이터베이스 내에서 엘리먼트들을 랜덤하게 그리고 균등하게 분할할 수 있는 수학적 함수(f(x))의 한가지 타입은 이른바 헤시함수이며, 이는 본 발명을 수행하는 데 있어 편리하게 사용될 수 있다.
단순화를 위해서, 설명된 실시예는, 120 바이트까지의 사이즈를 가지는 키들의 처리를 예시하도록 제한하였다. 그러나, 이 기술 분야의 숙련자는, 본 발명의 개념 내에서 더욱 큰 키들을 이용할 수 있도록, 수정 및 개조가 이루어질 수 있다는 것을 이해할 것이다.
그러므로, 본 발명은 전술하고 예시한 실시예에 제한을 받지 않고, 다음의 청구범위에서 정의된 바와 같은 본 발명의 개념 범위에서 수정이 이루어질 수 있음을 이해할 것이다.

Claims (27)

  1. 데이터베이스 내의 데이터 엘리먼트 저장을 위한 기억 공간에 대한 참조를 수학적 함수에 의해 계산하고, 상기 함수의 입력 데이터가 상기 엘리먼트에 속하는 외부 키로 이루어져 있으며, 상기 수학적 함수에 의해 얻어진 결과가 상기 엘리먼트에 대한 데이터베이스내의 내부 위치를 지적하며, 상기 결과가 상이한 부분들로 분할되는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법에 있어서, 상기 결과는 적어도 3부분들로 분할되는데, 제1 부분은 상기 데이터베이스에 속하는 프래그먼트에 대한 직접 또는 간접 참조를 이루고; 제2 부분은 상기 프래그먼트내의 페이지에 대한 직접 또는 간접 참조를 이루며; 제3 부분은 상기 페이지에 속하는 이른바 버켓에 대한 직접 또는 간접 참조를 이루며; 상기 버켓은, 상기 엘리먼트가 저장될 수 있거나, 또는 이미 저장되며, 또는 상기 엘리먼트에 대한 직접 또는 간접 참조를 저장하는, 적어도 하나의 컨테이너를 포함하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  2. 제1항에 있어서, 상기 직접 참조는, 의도된 위치를 직접 지적하거나 수학적 함수를 통해 지적하는 내부어드레스로 이루어져 있고; 상기 간접 참조는, 의도된 위치를 직접 지적하는 관련 내부 어드레스가 이용될 수 있는 테이블을 지적하는 포인터를 이루는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  3. 제1항에 있어서, 상기 제1 부분은 상기 프래그먼트에 속하는 모든 복사에 대한 간접 참조를 이루는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  4. 제1항에 있어서, 상기 제2 부분은 레지스터를 지적하고; 상기 레지스터는 상이한 페이지들을 지적하는 포인터들의 벡터로 이루어진 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  5. 제1항에 있어서, 상기 제3 부분은 상기 페이지에 속하는 관련 버켓을 지적하고; 상기 지적은 수학적 함수를 통해 이루어지는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  6. 제1항에 있어서, 상기 버켓 각각은, 컨테이너를 포함하고, 또한 가능한 한 각 버켓에 속하는 지나치게 채워진 컨테이너를 포함하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  7. 제1항에 있어서, 상기 컨테이너 각각을, 상기 헤더의 사이즈 및 상기 컨테이너에 속하는 엘리먼트들의 사이즈에 대응하는 사이즈로 할당하고; 상기 사이즈는, 상기 컨테이너에 속하는 엘리먼트들의 넘버에 따라 변화하며; 상기 최대-사이즈 컨테이너의 사이즈를, 상기 데이터베이스 내에서 동작하거나 또는 상기 데이터베이스를 이용하는 제어기에 속하는 캐시 메모리로 한번에 읽어들일 수 있는 데이터 정보의 량과 가장 유사하도록, 제한하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  8. 제7항에 있어서, 캐시 메모리로 한번에 읽어들일 수 있는 정보의 량을 처리하는데 걸리는 시간은 캐시-미스를 위한 시간을 초과하는데,
    얼마나 많은 데이터-정보를 한번에 캐시 메모리로 읽어들일 수 있는지에 관계없이, 컨테이너의 최대-증가 사이즈를, 최대 사이즈 컨테이너를 처리하는데 걸리는 시간이 캐시-미스에 대한 시간 경과보다 짧게 되도록 제한하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  9. 제6항, 제7항 또는 제8항에 있어서, 상기 페이지를 버퍼들의 넘버로 분할하고; 버퍼들 각각을, 이른바 사용가능-리스트-경계에 대한 제1 부분 및 제2 부분으로 분할하며; 버퍼들 각각은, 상기 제1 및 제2 부분 전체를 수용하는 최대-사이즈 컨테이너, 또는 상기 제1 부분에서 시작하여 상기 제2 부분으로 확장하는 제1 비-최대 컨테이너, 또는 상기 제1 부분에서 시작하여 상기 제2 부분으로 확장하지 않는 제1 비-최대 컨테이너, 및 상기 제2 부분에서 시작하는 가능 제2 비-최대 컨테이너를 포함하도록, 적응되는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  10. 제9항에 있어서, 사용가능-리스트-경계를 상기 하나 또는 다른 컨테이너가 초과하는 지의 여부에 관계없이, 버퍼내의 메모리 공간이 공통 버퍼를 공유하는 두 개의 컨테이너들 사이에서 분할되는 지의 여부에 대한 점검을, 상기 두 개의 컨테이너들에 할당하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  11. 제9항에 있어서, 제1 넘버의 버퍼들은 정적 버퍼들로 이루어지고; 제2 넘버의 버퍼들은 자유 버퍼들로 이루어지며; 상기 정적 버퍼들에 속하는 제1 부분은, 컨테이너를 포함하도록 적응되며; 상기 정적 버퍼들에 속하는 상기 제2 부분과 상기 자유 버퍼들에 속하는 양 부분들은, 지나치게 채워진 컨테이너를 포함하도록 적응되는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  12. 제11항에 있어서, 제1 부분에 놓인 컨테이너는, 상기 제1 부분의 시작에서 개시하여, 다른 엘리먼트가 상기 컨테이너에 부가될 경우에 관련 버퍼의 중심을 향해 커지며; 제2 부분에 놓인 컨테이너는, 상기 제2 부분의 끝에서 시작하여, 다른 엘리먼트가 상기 컨테이너에 부가될 경우 관련 버퍼의 중심을 향해 증가하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  13. 제11항에 있어서, 다른 엘리먼트가 상기 버켓에 속하는 최대 사이즈 컨테이너에 할당될 경우, 관련 버켓은, 지나치게 채워진 컨테이너를 포함하도록 적응되고; 상기 다른 엘리먼트를 상기 지나치게 채워진 컨테이너의 위치에 할당하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  14. 제11항에 있어서, 사용가능 리스트는, 상기 정적 버퍼들에 속하는 모든 이용가능 제2 부분들과, 상기 페이지 상의 상기 자유버퍼들에 속하는 모든 이용가능 제1 및 제2 부분들을 포함하도록 적응되는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  15. 제14항에 있어서, 버퍼에 속하는 이용가능 제2 부분은, 대응하는 제1 부분내의 비-최대 컨테이너가 사이즈와 관련해 사용가능-리스트-경계를 초과할 경우, 상기 사용가능 리스트로부터 제거되는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  16. 제14항에 있어서, 버퍼에 속하는 이용가능 제2 부분은, 사이즈와 관련해 상기 사용가능-리스트-경계를 초기에 초과했던 대응하는 제1 부분내의 컨테이너가 감소하고 더 이상 상기 경계를 초과하지 않을 경우에, 사용가능 리스트에 부가되는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  17. 제15항 및 제16항에 있어서, 이용가능 제2 부분이, 상기 제1 부분내의 컨테이너 사이즈에 있어서의 증가 또는 감소와 관련하여 상기 사용가능 리스트로부터 제거되거나, 그 리스트에 부가될 경우, 상기 제1 부분내의 컨테이너가 미리 지정된 값만큼 사용가능-리스트-경계를 초과한 후에, 제2 부분을 상기 사용가능 리스트로부터 제거하도록 하는, 히스테리시스를 도입하고; 제2 부분은, 상기 제1 부분내의 컨테이너가 감소한 후에 상기 사용가능 리스트에 부가되고, 미리 정해진 값만큼 상기 사용가능-리스트-경계 아래에 놓이는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  18. 제13항 및 제15항에 있어서, 상기 지나치게 채워진 컨테이너를, 상기 사용가능-리스트 상에서 이용가능한 부분내의 위치에 할당하고; 상기 이용가능 부분을, 상기 할당시에 상기 리스트로부터 제거하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  19. 제13항 및 제15항에 있어서, 상기 프래그먼트에 속하는 페이지들 중 하나는 지나치게 채워진 페이지이고; 상기 지나치게 채워진 페이지는 단지 자유 버퍼들을 포함하며; 상기 지나치게 채워진 컨테이너는, 사용가능 리스트에 어떠한 부분도 이용할 수 없을 경우, 상기 지나치게 채워진 페이지 상의 버퍼에 속하는 부분내의 위치에 할당되는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  20. 제18항 및 제19항에 있어서, 상기 헤더는 4개의 정보 반송 필드를 포함하고, 그것들 중 제1 정보 반송 필드는, 상기 컨테이너의 사이즈와 관련한 정보를 포함하며, 버켓이 단지 하나의 컨테이너를 포함할 경우:
    - 상기 제2 정보 반송 필드는, 지나치게 채워진 가능 컨테이너가 동일 페이지 상에 존재함을 나타내고;
    - 제3 정보 반송 필드는, 어떠한 지나치게 채워진 컨테이너도 존재하지 않음을 나타내며;
    - 제4 정보 필드는 사용되지 않으며;
    버켓이 동일페이지 상에 컨테이너 및 지나치게 채워진 컨테이너를 포함할 경우:
    - 제2 정보 반송 필드는, 동일 페이지 상에 지나치게 채워진 가능 컨테이너가 존재함을 나타내고;
    - 제3 정보 반송 필드는 지나치게 채워진 컨테이너가 존재함을 나타내며;
    - 제4 정보 반송 필드는 상기 지나치게 채워진 컨테이너를 지적하며;
    상기 버켓이 지나치게 채워진 페이지 상에 지나치게 채워진 컨테이너를 포함할 경우:
    - 제2 정보 반송 필드는 지나치게 채워진 페이지 상에 지나치게 채워진 컨테이너가 존재함을 나타내며;
    - 제3 정보 반송 필드는 상기 지나치게 채워진 페이지를 지적하는 포인터를 포함하며;
    - 상기 제4 정보 반송 필드는 상기 지나치게 채워진 컨테이너를 지적하는 포인터를 포함하며; 그리고
    필드들 각각의 사이즈를 각 상황들에 적응시키고; 상기 컨테이너에 속하는 엘리먼트들을, 상기 헤더 바로 뒤의 위치와 상기 컨테이너내에서 서로의 뒤에 할당하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  21. 제6항에 있어서, 상기 수학적 함수에 의해 나타내어지는 컨테이너 전체를, 엘리먼트를 탐색하는 제어기에 속하는 캐시 메모리로 읽어들이는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  22. 제20항 및 제21항에 있어서, 상기 지나치게 채워진 컨테이너 전체를, 상기 엘리먼트가 상기 캐시 메모리로 읽어 들였던 컨테이너에서 탐색되지 않을 경우, 상기 캐시 메모리로 읽어들이는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  23. 제1항에 있어서, 상기 엘리먼트는 4개 그룹 정보를 가진 헤더를 포함하고; 상기 엘리먼트를 트랜잭션에 이용할 수 있을 경우, 제1 그룹은 상기 수학적 함수에 의해 얻어진 결과 일부를 포함하고, 제2 그룹은 엘리먼트 상태 비트들을 포함할 것이며, 제3 그룹은 엘리먼트를 로크하지 않는다는 취지의 정보를 포함할 것이며, 제4 그룹은 상기 엘리먼트에 속하는 로컬 키의 길이와 관련한 정보를 포함할 것이며, 제5 그룹은 상기 엘리먼트에 속하는 엘리먼트 키의 길이와 관련한 정보를 포함할 것이며; 상기 엘리먼트는, 또한 상기 로컬 키와 상기 엘리먼트 키를 포함하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  24. 제23항에 있어서, 엘리먼트가, 상기 엘리먼트에 영향을 주는 진행중인 트랜잭션에 기인하는 트랜잭션들에 대해 로크될 경우, 제1 및 제2 그룹은, 함께 상기 트랜잭션에 속하는 트랜잭션 레지스터를 지적하는 포인터를 포함할 것이고; 상기 트랜잭션 레지스터는, 상기 수학적 함수에 의해 얻어진 결과 부분, 상기 상태 비트들, 그리고 상기 엘리먼트에 적용되었던 로크의 타입을 포함하며; 상기 제3 그룹은, 상기 엘리먼트를 로크할 취지의 정보를 포함하며; 상기 제4 그룹은 상기 로컬 키의 길이와 관련한 정보를 포함하며; 상기 제5 그룹은 상기 엘리먼트 키의 길이와 관련한 정보를 포함하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  25. 제24항에 있어서, 상기 헤더는 4비트로 이루어지고; 상기 제1 그룹은 19비트를 포함하며, 상기 제2 그룹은 4비트를 포함하며, 상기 제3 그룹은 1비트를 포함하며, 상기 제4 그룹은 4비트를 포함하며, 그리고 상기 제5 그룹은 4비트를 포함하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  26. 제23항에 있어서, 상기 상태 비트들을, 상기 프래그먼트를 복사하는 경우와 같은 엘리먼트 복사 프로세스들에 이용하고; 비트들 각각은, 상기 엘리먼트가 복사되었는 지의 여부를 나타내며; 다수의 동시 복사 프로세스들은 각각 그들의 각 상태 비트를 이용하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
  27. 제23항에 있어서, 상기 수학적 함수에 의해 얻어진 상기 결과 부분을, 프래그먼트 분할 프로세스 및 프래그먼트 결합 프로세스에 이용하는 것을 특징으로 하는, 데이터베이스 내에 엘리먼트를 기억시키고, 이 기억된 엘리먼트들을 탐색하는 방법.
KR10-2000-7000595A 1997-07-21 1998-07-07 데이터베이스에 엘리먼트를 저장하는 방법 KR100529995B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9702760-1 1997-07-21
SE9702760A SE510001C2 (sv) 1997-07-21 1997-07-21 Metod för att lagra element i en databas
PCT/SE1998/001332 WO1999005586A2 (en) 1997-07-21 1998-07-07 A method of storing elements in a database

Publications (2)

Publication Number Publication Date
KR20010022027A true KR20010022027A (ko) 2001-03-15
KR100529995B1 KR100529995B1 (ko) 2005-11-22

Family

ID=20407791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7000595A KR100529995B1 (ko) 1997-07-21 1998-07-07 데이터베이스에 엘리먼트를 저장하는 방법

Country Status (10)

Country Link
US (1) US6308169B1 (ko)
EP (1) EP0996881B1 (ko)
JP (1) JP2001511553A (ko)
KR (1) KR100529995B1 (ko)
CN (1) CN1111815C (ko)
AU (1) AU8365098A (ko)
BR (1) BR9810767A (ko)
DE (1) DE69826283D1 (ko)
SE (1) SE510001C2 (ko)
WO (1) WO1999005586A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100744378B1 (ko) * 2001-08-17 2007-07-30 삼성전자주식회사 해시함수를 이용한 데이터베이스 검색방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389305B1 (en) * 1999-06-01 2008-06-17 Fair Isaac Corporation System and method for managing a database
US7058642B2 (en) 2002-03-20 2006-06-06 Intel Corporation Method and data structure for a low memory overhead database
CA2384185A1 (en) * 2002-04-29 2003-10-29 Ibm Canada Limited-Ibm Canada Limitee Resizable cache sensitive hash table
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
EP2264628A1 (en) * 2002-09-18 2010-12-22 Netezza Corporation Intelligent storage device controller
US7421562B2 (en) * 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US7774308B2 (en) * 2004-12-15 2010-08-10 Applied Minds, Inc. Anti-item for deletion of content in a distributed datastore
US11321408B2 (en) 2004-12-15 2022-05-03 Applied Invention, Llc Data store with lock-free stateless paging capacity
US8275804B2 (en) 2004-12-15 2012-09-25 Applied Minds, Llc Distributed data store with a designated master to ensure consistency
US8996486B2 (en) 2004-12-15 2015-03-31 Applied Invention, Llc Data store with lock-free stateless paging capability
US20070022120A1 (en) * 2005-07-25 2007-01-25 Microsoft Corporation Caching and modifying portions of a multi-dimensional database on a user device
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US8527703B1 (en) * 2009-06-19 2013-09-03 Emc Corporation Cache management system and method
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US10558705B2 (en) 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
KR102171430B1 (ko) * 2019-02-26 2020-10-29 주식회사 퍼즐시스템즈 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 시스템
KR102177792B1 (ko) * 2019-02-26 2020-11-11 주식회사 퍼즐시스템즈 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템
US11868334B2 (en) * 2021-11-03 2024-01-09 Netapp, Inc. Integrating change tracking of storage objects of a distributed object storage database into a distributed storage system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870764A (en) * 1993-05-12 1999-02-09 Apple Computer, Inc. Method of managing a data structure for concurrent serial and parallel revision of a work
US5832131A (en) * 1995-05-03 1998-11-03 National Semiconductor Corporation Hashing-based vector quantization
US5974421A (en) * 1996-12-23 1999-10-26 Microsoft Corporation Cache-efficient object loader
US5897637A (en) * 1997-03-07 1999-04-27 Apple Computer, Inc. System and method for rapidly identifying the existence and location of an item in a file
US6128627A (en) * 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6134546A (en) * 1998-06-25 2000-10-17 International Business Machines Corporation Method and computer program product for implementing subquery join

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100744378B1 (ko) * 2001-08-17 2007-07-30 삼성전자주식회사 해시함수를 이용한 데이터베이스 검색방법

Also Published As

Publication number Publication date
BR9810767A (pt) 2001-01-16
WO1999005586A3 (en) 1999-04-15
EP0996881A2 (en) 2000-05-03
SE9702760L (sv) 1999-01-22
SE9702760D0 (sv) 1997-07-21
SE510001C2 (sv) 1999-03-29
EP0996881B1 (en) 2004-09-15
CN1111815C (zh) 2003-06-18
DE69826283D1 (de) 2004-10-21
JP2001511553A (ja) 2001-08-14
US6308169B1 (en) 2001-10-23
WO1999005586A2 (en) 1999-02-04
KR100529995B1 (ko) 2005-11-22
AU8365098A (en) 1999-02-16
CN1271439A (zh) 2000-10-25

Similar Documents

Publication Publication Date Title
KR20010022027A (ko) 데이터베이스 내에 엘리먼트를 기억시키는 방법
Enbody et al. Dynamic hashing schemes
US6377984B1 (en) Web crawler system using parallel queues for queing data sets having common address and concurrently downloading data associated with data set in each queue
KR100297454B1 (ko) 컴퓨터장치
US6301614B1 (en) System and method for efficient representation of data set addresses in a web crawler
US7827146B1 (en) Storage system
US5333315A (en) System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US5991862A (en) Modified indirect addressing for file system
US6567817B1 (en) Cache management system using hashing
Lee et al. Partitioned signature files: Design issues and performance evaluation
EP0284663A2 (en) Method of handling disk sector errors in dasd cache
US7493464B2 (en) Sparse matrix
US20050044134A1 (en) High-performance hashing system
US20070143326A1 (en) Dynamic circular work-stealing deque
US6115790A (en) System, method and computer program product for organizing page caches
JPS62113234A (ja) レコ−ドセツト分類方法
US6434553B1 (en) File prefetch control method for computer system
EP1564640A1 (en) Database accelerator
KR100474357B1 (ko) 다단계 분할을 이용한 기억소자 할당방법
Hutchinson et al. Duality between prefetching and queued writing with parallel disks
Omiecinski et al. A global approach to record clustering and file reorganization
WO2002031660A2 (en) A data structure, memory allocator and memory management system
CA2323017A1 (en) Data conversion hardware support
WO1996005551A1 (en) Method and system for storing data in a memory device
US20040047357A1 (en) Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20121019

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131017

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141022

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 13

EXPY Expiration of term