KR101400816B1 - 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템 - Google Patents
개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템 Download PDFInfo
- Publication number
- KR101400816B1 KR101400816B1 KR1020097011230A KR20097011230A KR101400816B1 KR 101400816 B1 KR101400816 B1 KR 101400816B1 KR 1020097011230 A KR1020097011230 A KR 1020097011230A KR 20097011230 A KR20097011230 A KR 20097011230A KR 101400816 B1 KR101400816 B1 KR 101400816B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- block
- index
- blocks
- key value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 데이터를 관리하는 방법은, 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하는 단계; 적어도 일부가 복수의 데이터 유닛을 조합해서 생성되는 복수의 데이터 블록을 기억하는 단계; 및 데이터 블록에 대한 엔트리를 포함하는 인덱스를 제공하는 단계를 포함한다. 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있다.
Description
본 발명은 개별적으로 액세스 가능한 데이터 유닛의 기억 관리에 관한 것이다.
데이터베이스 시스템은 개별적으로 액세스 가능한 데이터 유닛, 즉 "레코드"(record)를 임의의 다양한 형태로 기억할 수 있다. 레코드는, 신용 카드 트랜잭션(credit card transaction)과 같은 논리적 엔티티(logical entity)에 해당할 수 있으며, 레코드를 고유하게 식별하는 데에 사용되는 관련 기본 키(primary key)를 구비하는 것이 일반적이다. 레코드는, 레코드 포맷의 각각의 필드와 연관된 다수의 값을 포함할 수 있다. 레코드는 하나 이상의 필드(예컨대, XML 파일 등의 구조화된 데이터 파일 또는 플랫 파일) 내에 기억될 수 있다. 압축 방식의 데이터베이스 시스템에서는, 각각의 레코드 또는 레코드 내의 값이 기억될 때에 압축되고, 액세스될 때에 압축 해제됨으로써, 데이터베이스 시스템의 기억 용량을 감소시킬 수 있다.
본 발명의 일실시예에서, 데이터를 관리하기 위한 방법은, 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하는 단계; 적어도 일부가 복수의 데이터 유닛을 조합해서 생성되는 복수의 데이터 블록을 기억하는 단계; 및 데이터 블록에 대한 엔트리(entry)를 포함하는 인덱스(index)를 제공하는 단계를 포함하며, 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있다(enable location).
본 발명의 다른 실시예에서, 데이터를 관리하기 위한 시스템은, 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하기 위한 수단; 적어도 일부가 복수의 데이터 유닛을 조합해서 생성되는 복수의 데이터 블록을 기억하기 위한 수단; 및 데이터 블록에 대한 엔트리를 포함하는 인덱스를 제공하기 위한 수단을 포함하며, 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있다.
본 발명의 또 다른 실시예에서, 컴퓨터로 판독가능한 매체에 기억되어, 데이터를 관리하기 위한 컴퓨터 프로그램은, 컴퓨터로 하여금, 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하고; 적어도 일부가 복수의 데이터 유닛을 조합해서 생성되는 복수의 데이터 블록을 기억하며; 데이터 블록에 대한 엔트리를 포함하는 인덱스를 제공하도록 하는 명령어를 포함하며, 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있다.
본 발명의 실시예는 다음과 같은 하나 이상의 특징을 포함할 수 있다.
데이터 블록의 적어도 일부는, 키 값의 정해진 순서에 기초해서, 데이터 유닛을 조합함으로써 생성될 수 있다.
이 정해진 순서는 알파벳 순으로 할 수 있다.
이 정해진 순서는 숫자 순으로 할 수 있다.
데이터 블록은 각각의 데이터 유닛 세트로부터 각각 생성되며, 데이터 유닛 세트는 미리 정해진 순서에 따라 중첩되지 않는 범위의 키 값에 대응할 수 있다.
인덱스의 하나 이상의 엔트리는, 데이터 블록을 구성하는 데이터 유닛에 대응하는 키 값의 범위를 식별할 수 있다.
키 값의 범위는, 키 값의 범위 중 하나 이상의 극한값을 포함하는 정보에 의해 식별될 수 있다.
키 값의 범위는, 인덱스 내의 제1 엔트로부터의 제1 극한값과 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별될 수 있다.
키 값의 범위는, 데이터 블록을 구성하는 데이터 유닛과 관련된 키 값의 하나 이상의 극한값을 포함하는 정보에 의해 식별될 수 있다.
키 값의 범위는, 인덱스 내의 제1 엔트로부터의 제1 극한값과 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별될 수 있다.
인덱스 내의 엔트리의 적어도 일부의 각각은 대응하는 데이터 블록의 기억 위치를 식별할 수 있다.
복수의 데이터 유닛을 조합함으로써 블록을 생성하는 단계는 일련의 데이터 유닛을 압축하는 단계를 포함할 수 있다.
일련의 데이터 유닛을 압축하는 것에 의해 생성된 블록을 압축 해제하는 단계는, 블록 전체를 처리하는 단계를 포함할 수 있다.
데이터 유닛은, 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드일 수 있다.
수신한 데이터 유닛을 식별하는 키 값은, 수신을 행하기 전에, 소정의 데이터 유닛과 관련된 하나 이상의 필드에 대응시킬 수 있다.
수신한 데이터 유닛을 식별하는 키 값은, 수신을 행한 후에, 데이터 유닛에 할당될 수 있다.
키 값은 단조적으로(monotonically) 할당될 수 있다.
키 값은 순차적으로 할당될 수 있다.
기억된 데이터 블록은 제1 데이터 블록 세트로서 기억될 수 있다.
제1 데이터 블록 세트가 파일 내에 기억될 수 있다.
하나 이상의 제2 데이터 블록 세트가 기억되며, 제2 데이터 블록 세트의 적어도 일부가 제1 데이터 블록 세트를 기억시킨 후에 수신된 복수의 데이터 유닛으로부터 생성될 수 있다.
제2 데이터 블록 세트 내의 적어도 일부의 블록은 일련의 데이터 유닛을 압축함으로써 생성될 수 있다.
제2 데이트 블록 세트 내의 각각의 블록에 대한 엔트리를 포함하는 인덱스가 제공될 수 있으며, 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있다.
데이터 블록을 구성하는 데이터 유닛을 복원하기 위해 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트가 처리될 수 있으며, 제1 데이터 블록 세트로부터 복원된 데이터 유닛과, 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 분류하고, 분류된 데이터 유닛 세트를 생성하며; 제3 데이터 블록 세트를 생성한다. 제3 데이터 블록 세트의 적어도 일부는 복수의 분류된 데이터 유닛을 조합함으로써 생성될 수 있다.
제1 데이터 블록 세트로부터 복원된 데이터 유닛과 제2 데이터 블록 세트로부터 복원된 데이터 유닛을 분류하는 단계는, 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 병합함으로써 일련의 분류된 데이터 유닛 세트를 생성하는 단계를 포함할 수 있다.
제3 데이터 블록 세트 내의 각 블록에 대한 엔트리를 포함하는 상기 제3 데이터 블록 세트의 인덱스가 제공될 수 있으며, 하나 이상의 엔트리는 제공된 키 값에 기초해서 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있다.
기억된 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛이 블록을 구성하는 데이터 유닛에 포함될 확률을 판정하기 위한 스크리닝 데이터 구조를 제공할 수 있다.
속성 값은 데이터 유닛을 식별하는 키 값을 포함할 수 있다.
스크리닝 데이터 구조는, 소정의 속성 값에 대하여, 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있지 않은지, 또는 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 판정할 수 있다.
데이터 유닛이 포함되어 있지 않을 때에 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 스크리닝 데이터 구조에 의해 판정될 확률은 데이터 구조의 사이즈에 따라 달라질 수 있다.
스크리닝 데이터 구조의 사이즈가, 블록을 구성하는 데이터 유닛의 수에 기초해서 선택될 수 있다.
기억된 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛의 하나 이상의 키 값을 판정하기 위한 보조 인덱스가 제공될 수 있다.
데이터 유닛은 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드이며, 레코드를 식별하는 키 값은 기본 키 값에 대응하며, 보조 인덱스와 관련된 속성 값은 보조 키 값에 대응할 수 있다.
보조 인덱스는, 키 값 외에, 데이터 유닛 내의 속성 값에 의해 분류된 열을 갖는 표를 포함할 수 있다.
본 발명은 다음과 같은 하나 이상의 장점을 포함할 수 있다.
다수의 레코드로 구성된 블록을 압축함으로써, 레코드를 개별적으로 압축하는 것에 비해 더 높은 정도의 압축을 달성할 수 있다. 블록을 색인화함으로써, 압축 레코드의 파일의 시작 부분부터 압축 해제를 행하지 않고도 소정의 레코드를 액세스할 수 있다. 블록의 사이즈는 높은 압축률을 제공할 수 있을 정도로 충분히 크고, 블록 내의 소정의 레코드를 액세스하기에 필요한 압축 해제의 양을 제한할 정밀도로 충분히 작게 선택될 수 있다. 각각의 블록은 압축 블록 내의 임의의 위치부터 압축 해제할 필요가 없는 압축 기술을 사용하여 압축될 수 있다. 따라서, 더 큰 정밀도의 압축을 제공하는 기술을 사용할 수 있다.
블록을 구성하는 레코드에 대응하는 키 값의 범위를 식별하는 인덱스를 저장함으로써, 각 레코드에 대해 엔트리를 구비할 필요가 없어져, 인덱스를 작게 유지할 수 있다(예컨대, 상대적으로 빠른 메모리에 적합할 정도로 작게). 인덱스 엔트리는 원하는 레코드를 검색할 수 있는 레코드 세트를 복원하기 위해 로딩될 수 있으며 압축 해제될 수 있는 하나 이상의 블록의 위치를 추적할 수 있다. 압축 블록과의 관련 서명은, 레코드를 검색하기 위해 압축 블록을 로딩하지 않고도, 원하는 블록이 존재하지 않는다는 것을 나타낼 수 있다.
그외 다른 특징과 장점에 대해서는 이하의 상세한 설명과 청구범위에 의해 명백하게 될 것이다.
도 1은 레코드를 기억 및 검색하기 위한 시스템의 블록도이다.
도 2a, 2b, 2c, 및 2d는 시스템에 의해 처리되어 기억된 데이터의 개략 도면이다.
도 3a 및 3b는 상이한 서명 사이즈에 대한 잘못된 긍정 확률을 나타내는 표이다.
도 4a 및 4b는 레코드를 검색하기 위한 과정을 나타내는 플로차트이다.
도 1을 참조하면, 레코드 기억 및 인출 시스템(100)은 하나 이상의 소스(소스 A~소스 C)로부터 데이터를 받아들인다. 이 데이터에는, 개별적으로 액세스 가능한 데이터 유닛으로서 표현될 수 있는 정보가 포함되어 있다. 예를 들어, 신용 카드 회사는 다양한 소매 회사로부터 개별의 트랜잭션을 나타내는 데이터를 수신할 수 있다. 각각의 트랜잭션은 고객 이름, 날짜, 구매량 등과 같은 속성을 나타내는 값과 연관되어 있다. 레코드 처리 모듈(102)은, 데이터가 미리 정해진 레코드 포맷에 따라 포맷되어 있는 것을 보장함으로써, 트랜잭션과 연관된 값이 레코드에 기억된다. 일부의 경우에서는, 레코드 포맷에 따라 소스로부터 제공된 데이터를 변환하는 과정이 포함될 수 있다. 다른 경우에서는, 하나 이상의 소스가, 레코드 포맷에 따라 미리 포맷된 데이터를 제공할 수 있다.
레코드 처리 모듈(102)은, 각 레코드를 식별하는 기본 키 값(예컨대, 단일의 레코드를 식별하는 고유의 키 또는 갱신된 버전의 다수의 레코드를 식별하는 키)에 의해 레코드를 분류하고, 해당 레코드를, 중첩되는 영역이 없는 기본 키 값에 대응하는 레코드 세트로 분할한다. 예를 들어, 레코드 세트의 각각은, 미리 정해진 수(예컨대, 100개)의 레코드로 구성될 수 있다. 압축 모듈(104)은 각각의 레코드 세트를 데이터 블록으로 압축시킨다. 압축된 데이터 블록은 레코드 기억장치(106)[예컨대, 하나 이상의 하드 디스크 드라이브와 같은 비휘발성 기억 매체] 내에 압축 레코드 파일로서 기억된다. 레코드 기억 및 인출 시스템(100)은 또한 각 블록에 대 한 엔트리를 포함하는 인덱스를 제공하는 색인화 및 검색 모듈(108)을 포함한다. 인덱스는, 이하 더 상세히 설명하는 바와 같이, 소정의 레코드를 포함할 수 있는 블록의 위치 지정(locate)을 행하기 위해 사용된다. 인덱스는 인덱스 기억장치(110)의 인덱스 파일에 기억될 수 있다. 예를 들어, 인덱스 파일은, 압축 레코드 파일과 동일한 기억 매체에 기억시켜도 되지만, 인덱스 파일은 상대적으로 더 빠른 메모리[예를 들어, 동적 랜덤 액세스 메모리(DRAM) 등의 휘발성 기억 매체]에 기억시키는 것이 바람직한데, 왜냐하면 인덱스 파일은 압축 레코드 파일에 비해 통상적으로 규모가 더 작기 때문이다.
레코드 기억 및 인출 시스템(100)의 다른 실시예에서, 레코드 세트에 대하여, 압축에 추가로 또는 압축 대신에 다른 기능을 사용해서, 블록을 생성하는 처리가 행해질 수 있다(즉, 블록은 연계된 레코드 세트로만 이루어진 것이 아닐 수 있다). 예를 들어, 어떤 시스템은 레코드 세트를 처리해서 암호화된 데이터의 블록을 생성할 수 있다.
인터페이스 모듈(112)은 기억된 레코드에 대한 액세스를 인간 및/또는 컴퓨터 에이전트(예컨대, 에이전트 A~에이전트 D)에 제공한다. 예를 들어, 인터페이스 모듈(112)은 신용 카드 고객에 대한 온라인 계정 시스템을 구현해서 이들의 트랜잭션을 모니터링할 수 있다. 다양한 기준에 부합하는 트랜잭션 정보에 대한 요청이, 레코드 기억 및 인출 시스템(100)에 의해 처리될 수 있으며, 레코드 기억장치(106) 내에 기억된 압축 블록으로부터 대응하는 레코드가 인출(retrieve)될 수 있다.
하나 이상의 소스로부터 입력되는 일련의 레코드는, 압축 레코드 파일을 생 성하기 위한 처리를 행하기 전에, 임시로 기억될 수 있다. 도 2a를 참조하면, 레코드 기억 및 인출 시스템(100)은, 압축 레코드 파일에 기억될 레코드 세트(200)를 검색해서, 기본 키 값에 따라 분류한다.
기본 키 값에 의해, 데이터베이스 내에서, 하나 이상의 레코드를 나타낼 수 있는 소정의 아이템을 고유하게 식별할 수 있다(예컨대, 소정의 기본 키의 값을 갖는 각각의 레코드는 여러 갱신된 버전의 아이템에 대응할 수 있다). 기본 키는, 레코드의 기존의 하나 이상의 필드에 대응하는 "자연 키"(natural key)가 될 수 있다. 각각의 아이템에 대해 고유한 것으로 보장되는 필드가 없다면, 기본 키는 각각의 아이템에 대해 보증되거나 고유한 것일 가능성이 큰 레코드의 다수의 필드를 구비하는 복합 키(compound dey)가 될 수 있다. 이와 달리, 기본 키는, 수신된 후에 각 레코드에 할당될 수 있는 "합성 키"(synthetic key)로 해도 된다. 예를 들어, 레코드 기억 및 인출 시스템(100)은, 고유의 기본 키 값을, 순차적으로 증가하는 정수 또는 단조적으로 증가하는 값(예컨대, 타임 스탬프)의 다른 시퀀스로서 할당할 수 있다. 이 경우, 동일한 아이템의 여러 버전을 표현하는 레코드가 여러 합성 키 값에 할당될 수 있다. 정수를 사용한다면, 가능한 기본 키 값의 범위(예컨대, 사용된 비트의 수에 의해 정해지는 것과 같이)는, 기본 키가 롤오버된 경우, 이전에 소정의 기본 키 값이 할당된 어떠한 레코드라도 압축 레코드 파일로부터 제거될 수 있을 정도로 충분히 크게 될 수 있다. 예를 들어, 이전의 트랜잭션이 제거되어 보존되거나 폐기될 수 있다.
도 2a에 나타낸 예에서, 레코드(200)는 알파벳 순으로 분류된 기본 키 값(A, AB, CZ, ...)으로 식별된다. 시스템(100)은 기본 키 값 A-DD를 가진 N개의 레코드로 구성된 제1 세트를 압축해서, 대응하는 압축 블록(블록 1)을 생성한다. 다음 레코드 세트는, 기본 키 값 DX-GF를 갖는 N개의 분류된 레코드를 포함한다. 압축 모듈(104)은 손실 없는 데이터 압축 알고리즘(예컨대, Lempel-Ziv 타입의 알고리즘)이면 어떤 알고리즘을 사용해도 된다. 각각의 연속하는 압축 블록을 조합하여, 압축 레코드 파일(202)을 형성할 수 있다.
압축 블록을 생성하기 위해 사용되는 레코드의 수 N은, 압축 효율과 압축 해제 속도를 절충해서 선택될 수 있다. 이러한 압축에 의해, 소정의 인자 R에 의해 평균적으로 데이터의 사이즈를 감소시킬 수 있다. 인자 R은 압축되는 데이터의 특성과 압축되는 데이터의 사이즈에 따라 달라진다(예컨대, R은 데이터가 많이 압축될수록 작아진다). 압축은 평균 사이즈 O의 연관 오버헤드(예컨대, 압축 관련 데이터)를 가질 수 있다. 사이즈 X를 가진 M개의 레코드로부터 생성된 압축 레코드 파일의 평균 사이즈는 로 표현될 수 있다. 이 값은 블록의 수가 많을수록 RMX+OM/N에 가까운 값이 될 수 있다. 따라서, 몇몇 경우에는, R을 감소시키고 파일의 사이즈에 대한 오버헤드의 기여를 감소시킴으로써, 큰 값을 갖는 N에 대해 압축을 행할 수 있다. N의 값이 작을수록, 블록 내에 포함될 수 있는 레코드에 액세스하기 위해, 소정의 압축 블록을 압축 해제하는 데에 필요한 시간을 줄일 수 있다.
다른 실시예에서, 상이한 압축 블록은 상이한 수의 레코드를 포함할 수 있 다. 각각의 블록은 미리 정해진 범위에 따른 수의 레코드를 포함할 수 있다. 예를 들어, 제1 블록은 기본 키 값 1-1000을 가진 레코드를 포함하고, 제2 블록은 기본 키 값 1001-2000을 가진 레코드를 포함한다. 본 실시예에서, 압축 블록 내의 레코드의 수는 다를 수 있는데, 이는 모두 기본 키 값을 가지고 있을 필요가 없기 때문이다(예를 들어, 기존의 수치적 필드가 자연 키로서 사용된 경우).
몇몇 실시예에서, 상이한 압축 블록은, 몇몇 경우에, 목적으로 하는 수의 레코드를 포함할 수 있으며, 예외적인 경우에는 더 많거나 더 적은 수의 레코드를 포함할 수 있다. 예를 들어, 레코드 세트가 분류된 순서에서 다음에 오는 레코드의 기본 키 값과 다른 기본 키 값을 가진 레코드로 종료하는 경우에, 이들 레코드는 압축 블록을 생성하는 데에 사용된다. 레코드 세트가 분류된 순서에서 다음에 오는 레코드의 기본 키 값과 동일한 기본 키 값을 가진 레코드로 종료하는 경우에는, 그 기본 키 값을 갖는 추가의 모든 레코드가 해당 레코드 세트에 추가된다. 이러한 방식에서, 이 동일한 기본 키 값은 하나의 압축 블록에서 다음 압축 블록까지 중첩되지 않는다.
색인화 및 검색 모듈(108)은, 각 압축 블록에 대해, 인덱스 파일(204) 내에 엔트리를 생성한다. 인덱스의 엔트리는, 예컨대 압축되지 않는 레코드 세트 내의 제1 레코드의 기본 키에 의해, 대응하는 각 압축 블록을 식별하는 키 필드(206)를 포함한다. 엔트리는 또한, 압축 레코드 필드(202) 내의 식별된 압축 블록의 기억 위치를 식별하는 로케이션 필드(208)를 포함한다. 예를 들어, 로케이션 필드는 레코드 기억장치(106) 내에 절대 어드레스의 형태, 또는 레코드 기억장치(106) 내의 압축 레코드 파일(202)의 개시부분의 어드레스로부터 오프셋된 형태의 포인터를 포함할 수 있다.
압축 레코드 파일(202)에서 소정의 레코드를 검색하기 위해, 모듈(108)은 키 필드(206)에 기초하여 인덱스 파일(204)의 검색(예컨대, 이진 검색)을 수행할 수 있다. 제공된 키 값(예컨대, 에이전트들 중 하나에 의해 제공된)에 대하여, 모듈(108)은 제공된 키 값을 포함하는 범위에 대응하는 레코드를 포함하는 블록을 위치 지정한다. 제공된 키 값을 갖는 레코드는, 위치 지정된 블록을 생성하기 위해 사용된 레코드 세트에 포함되어 있을 수도 있고 포함되어 있지 않을 수도 있지만, 해당 레코드가 레코드(200)에 존재하고 있으면, 그 레코드는 포함되어 있을 것이다. 왜냐하면, 레코드(200)가 기본 키 값에 의해 분류되었기 때문이다. 이어서, 모듈(108)은 위치 지정된 블록을 압축 해제하고, 제공된 키 값을 가진 레코드를 검색한다. 기본 키 값이 각각의 레코드에 대해 고유하지 않은 경우에, 모듈(108)은 압축된 블록 내의 제공된 키 값을 가진 다수의 레코드를 찾을 수 있다. 키 필드(206)가 레코드 세트 내의 제1 레코드의 기본 키를 포함하는 예에서, 모듈(108)은, 제공된 키 값보다 앞선 키 값과 후속하는 키 값을 갖는 2개의 연속하는 인덱스 엔트리를 검색하고, 앞선 키 값을 가진 엔트리에 대응하는 블록을 회신한다. 몇몇 경우에, 제공된 키 값은 인덱스 엔트리에서의 키 값과 동일할 수 있으며, 이 경우, 모듈(108)은 해당 엔트리에 대응하는 블록을 회신한다.
다른 실시예에서, 인덱스 파일(204) 내의 엔트리에 대해, 해당 블록을 구성하는 레코드에 대응하는 키 값의 범위를 식별하기 위한 여러 방법이 있다. 도 2a에 나타낸 실시예에서와 같이, 키 값의 범위는 블록을 생성하기 위해 사용된 레코드의 2개의 극한값 사이의 범위가 될 수 있다(예컨대, 알파벳 순서의 기본 키 값의 분류된 시퀀스에서의 첫 번째와 마지막 값, 또는 수치화한 기본 키 값의 분류된 시퀀스에서의 최소 및 최대 값). 인덱스 엔트리는 범위를 정하는 극한값 중 하나 또는 2개 모두를 포함할 수 있다. 몇몇 실시예에서, 인덱스 엔트리가 소정 블록에 대한 범위를 정하는 최소 키 값을 포함한다면, 압축 레코드 파일 내의 마지막 블록과 연관된 마지막 인덱스 엔트리는 그 블록에 대한 범위를 정하는 최대 키 값을 포함할 수 있다. 이 최대 키 값은, 소정의 키 값이 범위를 벗어날 때를 판정하기 위해 압축 레코드 파일을 검색할 때에 사용될 수 있다.
이와 달리, 키 값의 범위는 블록을 생성하기 위해 사용된 레코드의 키 값을 벗어나서 확장되는 범위가 될 수 있다. 예를 들어, 1과 1000 사이의 수치화된 기본 키 값을 가진 레코드로부터 생성된 블록의 경우에, 레코드 내에 표현된 가장 작은 키 값은 1보다 클 수 있으며, 레코드 내에 표현된 가장 큰 값은 1000보다 작을 수 있다. 인덱스 엔트리는 범위를 정하는 극한값 1과 1000 중의 하나 또는 둘을 포함할 수 있다.
레코드의 초기 그룹이 처리되어 압축 레코드 파일을 생성한 후에 추가의 레코드가 입력된 경우, 이러한 레코드는 버퍼 내에 기억시킬 수 있으며 압축되지 않은 상태로 검색된다. 이와 달리, 추가의 레코드 그룹은, 추가의 인덱스 파일에 의해 액세스 가능한 추가의 압축 레코드 파일로서 하나씩 처리 및 기억될 수 있다. 몇몇 경우에, 압축할 레코드의 수가 적어서 기억장치의 용량을 크게 감축하지 못하 는 경우에도, 레코드에 액세스하기 위한 균일한 과정을 유지하기 위해, 추가의 레코드를 압축하는 것이 여전히 바람직할 수 있다. 추가의 레코드는 규칙적인 시간 간격(예컨대, 30초마다 또는 5분마다)으로, 또는 소정 수의 추가의 레코드가 수신된 후에(예컨대, 1000개의 레코드를 수신한 후, 또는 10,000개의 레코드를 수신한 후), 반복적으로 처리될 수 있다. 입력되는 레코드가 시간 간격에 기초해서 처리되는 경우, 몇몇 간격에서는, 입력되는 레코드가 없을 수 있거나, 모두 단일의 압축 블록으로 압축되는 적은 수의 레코드가 있을 수 있다.
도 2b를 참조하면, 압축 레코드 파일(202)이 생성된 후에, 시스템(100)에 의해 추가의 레코드가 수신된 예에서, 추가의 압축 레코드 파일(210)은 초기의 압축 레코드 파일(202)에 부가되어 복합의 압축 레코드 파일(211)을 형성할 수 있다. 시스템(100)은 추가의 레코드를 기본 키 값에 의해 분류하고, N개의 레코드로 구성된 레코드 세트를 압축해서, 압축 레코드 파일(210)의 압축 블록을 생성할 수 있다. 부가된 파일(210)에서의 제1 압축 블록(블록 91)은 기본 키 값 BA-FF를 갖는다. 모듈(108)은 부가된 파일(210) 내에서 표현된 추가의 레코드를 검색하기 위해 사용될 수 있는 엔트리를 포함하는 추가의 인덱스 파일(212)을 생성한다. 새로운 인덱스 파일(212)은 이전 인덱스 파일(204)에 부가될 수 있다.
임의의 수의 압축 레코드 파일이 복합의 압축 레코드 파일을 형성하기 위해 부가될 수 있다. 색인화 및 검색 모듈(108)이 복합의 압축 레코드 파일 내에서 소정의 키 값을 갖는 레코드를 검색하는 경우, 모듈(108)은 대응하는 인덱스 파일을 사용해서 부가된 압축 레코드 파일 내의 레코드를 검색한다. 이와 달리, 소정의 레 코드를 요청하는 에이전트는 검색할 복합의 압축 레코드 파일을 가진 임의의 수(예컨대, 가장 최근에 생성한 10개 또는 지난 1시간 동안 생성된 것)의 압축 레코드 파일을 특정할 수 있다.
소정의 시간이 경과된 후(예컨대, 24시간마다), 또는 소정 수의 압축 레코드 파일이 부가된 후에, 시스템(100)은 파일을 통합해서, 복합의 압축 레코드 파일과 대응하는 새로운 인덱스 파일로부터 단일의 압축 레코드 파일을 생성할 수 있다. 통합을 행한 후에, 단일의 인덱스는, 소정의 레코드를 포함할 수 있는 압축 블록을 위치 지정하기 위해 검색될 수 있으며, 이에 의하여 보다 효율적인 레코드 액세스가 가능하게 된다. 통합이 행해지는 동안, 시스템(100)은 압축 레코드 파일을 압축 해제하여, 대응하는 세트의 분류된 레코드를 복원하고, 이 레코드를 기본 키 값에 의해 분류하며, 새로운 압축 레코드 파일 및 인덱스를 생성한다. 각각의 복원된 레코드 세트는 이미 분류되어 있기 때문에, 레코드는 기본 키 값에 따라 이전에 분류된 리스트를 병합함으로써 효과적으로 분류되어 단일의 분류된 레코드 세트를 생성할 수 있다.
도 2c를 참조하면, 복합의 압축 레코드 파일(211)은, 초기의 압축 레코드 파일(202)과 추가의 압축 레코드 파일(210)을 포함할 수 있으며, 입력되는 추가의 레코드의 수와 레코드가 처리되는 횟수에 따라 다수의 추가의 압축 레코드 파일(220, 221,...)을 포함할 수 있다. 각각의 압축 레코드 파일은, 해당 파일의 압축 블록 내의 소정의 레코드를 검색하기 위해 사용될 수 있는 관련 인덱스 파일을 구비할 수 있다. 본 예에서, 압축 레코드 파일(220) 중 하나는, 단일의 압축 블록(블록 95)만을 포함하도록 충분히 작기 때문에, 관련 인덱스 파일을 반드시 필요로 하는 것은 아니지만, 블록 내의 기본 키 값의 범위와 기억장치의 해당 위치를 나타내는 관련 데이터를 포함할 수 있다. 통합이 행해진 후에, 부가된 여러 압축 레코드 파일로부터 복원된 레코드가 처리되어 단일의 압축 레코드 파일(230)을 생성할 수 있다.
단조적으로 할당된(monotonically assigned) 기본 키의 경우에, 레코드는 압축 레코드 파일 내에서뿐만 아니라 하나의 파일에서 다음 파일까지 자동으로 분류되기 때문에, 단일의 인덱스 검색에서 레코드를 액세스하기 위해 파일을 통합할 필요가 없다. 도 2d를 참조하면, 시스템(100)은 도달 순서대로 할당된 연속하는 정수에 의해 식별된 일련의 레코드(250)를, 레코드에 대한 기본 키로서 수신한다. 따라서, 레코드(250)는 기본 키에 의해 자동으로 분류된다. 초기의 압축 레코드 파일(252)은, 본 예에서, 100개의 레코드를 각각 구비하는 압축 블록을 포함한다. 인덱스 파일(254)은 압축 블록에서 제1 레코드의 기본 키 값에 대한 키 필드(256)와, 대응하는 기억장치 위치를 식별하는 로케이션 필드(258)를 포함한다. 초기의 압축 레코드 파일(252)이 생성된 후에 입력되는 레코드가 분류 순서에서 더 최근의 기본 키 값을 자동으로 갖기 때문에, 부가된 압축 레코드 파일(260)과 이에 대응하는 인덱스 파일(262)은 단일의 인덱스 검색에 기초하여 효과적인 레코드 액세스를 가능하게 하기 위해 통합을 행하지 않아도 된다. 예를 들어, 인덱스 파일(262)은 인덱스 파일(254)에 간단히 부가될 수 있으며, 이 인덱스들은, 압축 레코드 파일(252) 또는 레코드 파일(260) 중 하나에 압축 블록을 위치 지정하기 위해 함께 검색(예컨 대, 단일의 이진 검색)될 수 있다.
복합의 압축 레코드 파일(261)은 압축 레코드 파일(252)의 끝에 삽입되어 있을 수 있는 불완전한 블록을 제거하기 위해 선택적으로 통합될 수 있다. 이러한 통합에 있어서, 제1 파일(252)에서 마지막으로 압축된 블록만이 압축 해제해야 할 필요가 있을 것이며, 압축 해제된 레코드 세트를 병합하는 대신에, 레코드 세트는 100개의 레코드로 구성된 레코드 세트로 분할되고 새롭게 압축된 레코드 파일을 형성하기 위해 다시 압축될, 새롭게 분류된 레코드 세트를 형성하기 위해 단순히 연계될 수 있다.
연속하는 정수 합성 기본 키 값을 이용하는 다른 장점은, 레코드가 기본 키 값에 기초하여 분할될 예정인 경우에, 이러한 분할은 키 값에 갭이 존재하지 않기 때문에 자동으로 균형이 맞춰질 수 있다는 점이다.
레코드를 갱신하고, 압축 레코드 파일에 존재할 수 있는 레코드의 임의의 이전 버전을 무효화하기 위해 다양한 기술이 사용될 수 있다. 몇몇 경우에, 레코드는 개별적으로 제거하거나 갱신될 필요가 없다(예컨대, 로그, 트랜잭션, 전화 통화). 이러한 경우에, 오래된 레코드는, 예컨대 압축 레코드 파일의 시작 부분으로부터 제거되어 폐기되거나 미리 정해진 수의 압축 블록의 그룹 형태로 보존된다. 일부의 경우에, 압축된 레코드 파일의 전부가 제거될 수 있다.
몇몇 경우에, 레코드의 하나 이상의 값이, 압축 블록에의 기억을 위해 새롭게 갱신된 레코드를 추가함으로써 갱신되고, 이전에 수신한 레코드의 버전(동일한 기본 키 값을 가짐)은 상이한 압축 블록에 기억된 상태로 있을 수 있다. 이어서, 여러 버전의 레코드가 존재할 수 있고, 몇몇 기술이 레코드의 유효한 버전인지를 판정하기 위해 사용될 수 있다. 예를 들어, 임의의 압축 레코드 파일에 보이는 최신 버전(가장 최근에 수신한 것)이 유효한 버전으로 암시적 또는 명시적으로 표시될 수 있으며, 그외의 다른 버전은 적당하지 않은 것이 된다. 이 경우에, 소정의 기본 키를 가진 레코드를 검색하는 것에는, 해당 기본 키에 의해 식별된 최신 레코드를 출현의 순서로 찾아내는 과정이 포함될 수 있다. 이와 달리, 레코드는 반드시 새로운 버전의 레코드를 추가하지 않고도, 임의의 이전 버전의 레코드가 타당하지 않다는 것을 나타내는 "레코드의 무효화"를 기재함으로써, 무효화될 수 있다.
시스템(100)은 레코드 기억장치(106)에 기억된 압축 레코드 파일에 대한 액세스를 여러 가지 프로세스에 의해 조정한다. 하나 이상의 압축 레코드 파일 내의 압축 블록에 대한 액세스를 조정하기 위해 다양한 동기화 기술이 사용될 수 있다. 시스템(100)은, 파일을 변경(예컨대, 데이터의 부가 또는 통합)하는 어떤 프로세스도 다른 프로세스에 영향을 주지 않도록 할 수 있다. 예를 들어, 통합을 행하는 동안, 새로운 레코드가 도착하면, 시스템(100)은 통합 과정이 완료될 때까지 대기하거나, 압축 블록을 생성하고, 생성한 압축 블록을 기존의 압축 레코드 파일에 부가하기 전에 임시로 기억할 수 있다. 압축 레코드 파일로부터 판독을 행하는 프로세스는 완료된 파일의 일부를 로드할 수 있으며, 변경의 대상이 될 수 있는 완료되지 않은 부분은 무시할 수 있다.
시스템(100)은, 기본 키 이외에, 레코드의 속성에 기초해서 레코드를 검색할 수 있는 부가적인 데이터를 기억한다. 압축 레코드 파일에 대한 보조 인덱스는, 보 조 키로서 지정된 속성의 값에 기초한 하나 이상의 기본 키 값을 제공하는 정보를 포함한다. 보조 키로서 각각 지정된 속성은 대응하는 보조 인덱스와 관련될 수 있다. 예를 들어, 각각의 보조 인덱스는 관련 보조 키에 의해 분류된 열을 갖는 표로서 구성될 수 있다. 각각의 열은 보조 키 값과 이러한 보조 키 값을 갖는 레코드의 하나 이상의 기본 키 값을 포함한다. 따라서, 에이전트가 보조 키 값을 갖는 임의의 레코드를 검색하기 시작하면, 시스템(100)은, 레코드를 포함하는 압축 블록에 대한 압축 레코드 파일의 인덱스를 검색에 사용하기 위해 기본 키를 조사한다. 보조 인덱스는 큰 규모를 가질 수 있으며(예컨대, 레코드의 수만큼), 몇몇 경우에는, 압축 레코드 파일을 저장하는 기억매체에 기억될 수 있다.
일부의 경우에, 보조 키로서 지정된 속성의 값은 각각의 레코드에 대해 고유할 수 있다. 이러한 경우, 보조 키와 기본 키 사이에 일대일 대응관계가 존재하고, 인터페이스 모듈(112)은, 보조 키 속성을, 마치 기본 키인 것처럼 에이전트에 제공할 수 있다.
각각의 보조 인덱스는, 새로운 압축 레코드 파일이 복합의 압축 레코드 파일에 부가될 때에 갱신될 수 있다. 이와 달리, 보조 키는 각각의 압축 레코드 파일에 대한 다른 보조 인덱스와 관련될 수 있으며, 보조 인덱스는 압축 레코드 파일이 통합될 때에 단일의 보조 인덱스로 통합될 수 있다.
소정의 속성 값을 포함하는 레코드가 파일의 압축 블록에 포함될 가능성을 판정하기 위해, 스크리닝 데이터(screening data)가 압축 레코드 파일과 관련될 수 있다. 예를 들어, 중첩 부호화 서명(OES: overlap encoded signature)을 스크리닝 데이터 구조로서 이용함으로써, 시스템(100)은, 소정의 키 값(기본 키 또는 보조 키)을 가진 레코드가 존재하지 않는지("부정" 결과), 또는 소정의 키 값을 가진 레코드가 존재할 가능성이 있는지("긍정" 결과)를 판정할 수 있다. 긍정 결과의 경우에, 시스템은 레코드를 찾아내거나("확정된 긍정" 결과), 레코드가 존재하지 않는다고 판정("잘못된 긍정" 결과)하기 위해, 적당한 압축 블록을 액세스한다. 부정 결과의 경우에, 시스템은, 존재하지 않는 레코드에 대한 압축 블록을 압축 해제하고 검색하는 데에 시간을 소모하지 않고, 부정 결과를 에이전트에 제공할 수 있다. OES의 사이즈는 긍정 결과가 잘못된 긍정인 횟수에 영향을 미치고, OES의 사이즈가 클수록, 대체로 잘못된 긍정 결과가 더 적어진다. 소정의 OES 사이즈의 경우에, 구분가능한 키 값이 적을수록 대체로 잘못된 긍정이 적어진다.
다른 유형의 스크리닝 데이터 구조도 가능하다. 각각의 압축 레코드 파일에 대해 소정의 기본 또는 보조 키에 대한 스크리닝 데이터 구조가 제공될 수 있다. 이와 달리, 각각의 압축 블록에 대해 키에 대한 스크리닝 데이터 구조가 제공될 수 있다.
도 3a 및 3b는, 다양한 사이즈의 OES 스크리닝 데이터 구조에 대한 키 값의 잘못된 긍정 결과를 획득하기 위한 확률 값(수평열)과, 압축 레코드 파일로 나타낸 다수의 다양한 식별 키(수평열)를 제공하는 표를 나타낸다. OES의 경우, OES의 사이즈와 식별 키 값의 수에 따라, 하나 이상의 키 값의 존재가 OES의 동일한 부분에 표시되며, 이들 키 값들 중 하나에 대해 잘못된 긍정 결과가 생길 수 있다. 본 예 에서, OES의 사이즈는 210= 1024 비트(도 3a의 표)에서 228 = 256 메가비트(도 3b의 표)까지 변화한다. 구분가능한 키 값의 수는 100(도 3a의 표)에서 100,000,000(도 3b의 표)까지 변화한다. 이 2개의 표에서, 오른쪽 위의 비어 있는 공란은 0%에 해당하며, 왼쪽 아래의 비어있는 공란은 100%에 해당한다. 잘못된 긍정 확률이 낮은(예컨대, 제로에 가까운) 셀의 경우, 스크리닝 데이터 구조는 적절한 스크리닝을 제공하기 위해 필요한 것보다 더 크게 할 수 있다. 잘못된 긍정 확률이 큰(예컨대, 50% 초과) 셀에 대해서는, 스크리닝 데이터 구조가 너무 작아서 적절한 스크리닝을 제공할 수 없을 수 있다. 본 예는 키 값에 대해 4개의 해시 코드(hash code)를 사용해서 OES를 생성하기 위한 기술에 해당한다. OES 스크리닝 데이터 구조의 다른 예는, 소정 수의 식별 키에 대해 잘못된 긍정 확률의 다른 표를 제공할 수 있다.
압축 레코드 파일에 표현된 식별 키 값의 수는 알려져 있지 않을 수 있기 때문에, 시스템(100)은 압축 레코드 파일에 대한 스크리닝 데이터 구조의 사이즈를, 해당 파일이 생성된 레코드의 수에 기초해서 선택할 수 있다. 사이즈를 선택함에 있어서, 잘못된 긍정 확률의 감소와, 스크리닝 데이터 구조를 기억하기 위해 필요한 메모리 공간과의 절충이 필요하다. 이러한 절충에서의 하나의 인자는 존재하지 않는 키 값을 검색할 확률이다. 조사할 키 값의 대부분이 압축 해제된 레코드 내에 존재할 가능성이 있다면, 스크리닝 데이터 구조는 전혀 필요하지 않을 것이다. 키 값이 발견되지 않을 가능성이 크다면, 상대적으로 큰 스크리닝 데이터 구조에 대한 기억 공간의 할당에 의해 상당한 시간이 절약될 것이다.
압축 레코드 파일과 관련된 스크리닝 데이터 구조의 사이즈는, 해당 파일이 초기의 또는 통합된 큰 레코드의 데이터베이스인지 아니면 더 큰 데이터베이스에 대해 더 작은 갱신에 해당하는지 여부에 따라 달라질 수 있다. 비교적 작은 스크리닝 데이터 구조의 사이즈는, 정규의 갱신 간격 동안 부가된 압축 레코드 파일에 대해 사용될 수 있는데, 이는 각각의 갱신에서 일반적으로 더 적은 수의 식별 키가 존재하기 때문이다. 또한, 사이즈가 작으면, 압축 레코드 파일의 수가 많은 갱신 이후에 증가하기 때문에, 필요한 기억 공간을 감소시킬 수 있다. 스크리닝 데이터 구조의 사이즈는, 예상된 수의 레코드 및/또는 갱신에서의 식별 키 값, 예상된 수의 갱신에 기초할 수 있다. 예를 들어, 갱신된 파일이 24 시간의 기간 동안 5분마다 부가된다면, 하루의 끝에서는 288개의 압축 레코드 파일이 생길 것이다. 적어도 하나의 잘못된 긍정 결과가 생길 확률은 도 3a 및 도 3b의 표로부터 적절한 값의 288배가 될 것이다(다른 갱신에 대한 결과는 독립적이라고 가정함). 통합 이후, 통합된 압축 레코드 파일에 대해 더 큰 스크리닝 데이터 구조가 적합할 수 있는데, 식별가능한 키 값의 수가 크게 증가할 수 있기 때문이다.
압축 레코드 파일은, 기본 키 값, 각각의 보조 키, 또는 키의 일부의 서브세트에 대한 스크리닝 데이터 구조를 가질 수 있다. 예를 들어, 시스템(100)은 기본 키와, 레코드를 검색하는 데에 가장 자주 사용될 것으로 예상되는 보조 키에 대해서만 스크리닝 데이터 구조를 제공할 수 있다.
도 4a는 소정의 기본 키 값을 가진 하나 이상의 레코드를 검색하기 위한 과정(400)에 대한 플로차트를 나타낸다. 이 과정(400)은 제1 압축 레코드 파일과 관 련된 스크리닝 데이터 구조가 존재하는지 여부를 판정한다(402). 이러한 스크리닝 데이터 구조가 존재한다면, 긍정 결과 또는 부정 결과를 얻기 위해 스크리닝 데이터 구조를 처리한다(404). 소정의 기본 키 값이 스크리닝을 통과하지 못한다면(부정 결과), 다음 압축 레코드 파일을 체크하고(406), 이러한 파일이 존재하는 경우에 해당 파일에 대해 체크를 반복한다. 소정의 기본 키 값이 스크리닝을 통과한다면(긍정 결과), 소정의 기본 키 값을 가진 레코드를 포함할 수 있는 블록에 대한 인덱스를 검색한다(408). 압축 레코드 파일과 관련된 스크리닝 데이터 구조가 없다면, 스크리닝을 수행하지 않고 인덱스를 검색(408)한다.
인덱스의 검색 과정(408)이 완료된 후, 소정의 기본 키 값을 포함하는 키 값의 범위와 관련된 압축 블록이 발견된 경우(410), 과정(400)은 인덱스 엔트리에 의해 식별된 위치에 있는 블록을 압축 해제(412)하고, 기본 키 값을 가진 하나 이상의 레코드에 대한 결과로서의 레코드를 검색(414)한다. 이후, 다음 압축 레코드 파일을 체크하고(416), 파일이 존재할 때까지 이를 반복한다. 압축 블록이 발견되지 않으면(예컨대, 소정의 기본 키 값이 제1 블록에서의 최소 키 값보다 작거나 마지막 블록에서의 최대 키 값보다 큰 경우), 과정(400)은 다음 압축 레코드 블록을 체크(416)하고, 이를 반복한다.
도 4b는 소정의 보조 키 값을 가진 하나 이상의 레코드를 검색하기 위한 과정(450)에 대한 플로차트를 나타낸다. 과정(450)은 제1 압축 레코드 파일과 관련된 스크리닝 데이터 구조가 존재하는지 여부를 판정한다(452). 이러한 스크리닝 데이터 구조가 존재한다면, 긍정 결과 또는 부정 결과를 얻기 위해 스크리닝 데이터 구 조를 처리한다(454). 소정의 보조 키 값이 스크리닝을 통과하지 못한다면(부정 결과), 다음 압축 레코드 파일을 체크하고(456), 이를 반복한다. 소정의 보조 키 값이 스크리닝을 통과한다면(긍정 결과), 소정의 보조 키를 포함하는 레코드에 대응하는 기본 키를 조사한다(458). 압축 레코드 파일과 관련된 스크리닝 데이터 구조가 없으면, 스크리닝을 행하지 않고 기본 키를 조사한다(458).
발견된 각각의 기본 키에 대해, 과정(450)은 소정의 기본 키 값을 가진 레코드를 포함할 수 있는 블록에 대한 인덱스를 검색한다(460). 인덱스를 검색(460)한 후, 소정의 기본 키 값을 포함하는 키 값의 범위와 관련된 압축 블록이 발견된 경우(462), 과정(450)은 인덱스 엔트리에 의해 식별된 위치에 있는 블록을 압축 해제(464)하고, 기본 키 값을 가진 하나 이상의 레코드에 대한 결과로서의 레코드를 검색(466)한다. 이후, 다음 압축 레코드 파일을 체크하여(468), 존재할 때까지 반복한다. 압축 블록이 발견되지 않으면, 과정(450)은 다음 압축 레코드 블록을 체크(468)하고, 이를 반복한다.
소정의 기본 키 또는 보조 키를 가진 다수의 레코드는, 출현의 순서대로 과정(400) 또는 과정(450)에 의해 복원되거나, 레코드의 최신의 버전만이 복원될 수 있다.
상기 설명한 레코드 기억장치 및 인출 방법은 컴퓨터에서 실행하는 소프트웨어를 사용해서 구현될 수 있다. 예컨대, 소프트웨어는 하나 이상의 프로그램된 또는 프로그램 가능한 컴퓨터 시스템(분산형, 클라이언트/서버, 또는 그리드 등의 다양한 구조가 될 수 있음)에서 실행되는 하나 이상의 컴퓨터 프로그램 내의 과정을 형성한다. 이러한 컴퓨터 시스템은, 하나 이상의 프로세서, 하나 이상의 데이터 기억 시스템(휘발성 및 불휘발성 메모리 및/또는 기억 소자를 포함), 하나 이상의 입력 장치 또는 포트, 하나 이상의 출력 장치 또는 포트를 각각 포함한다. 소프트웨어는, 예컨대 연산 그래프의 설계와 구성에 관련된 다른 서비스를 제공하는 더 큰 프로그램의 하나 이상의 모듈을 형성할 수 있다. 그래프의 노드와 요소는 컴퓨터로 판독가능한 매체에 기억된 데이터 구조, 또는 데이터 기억장치에 기억된 데이터 모델에 부합하는 다른 구성 데이터로서 구현될 수 있다.
소프트웨어는, 범용 또는 전용의 프로그램 가능한 컴퓨터에 의해 판독가능한 CD-ROM 등의 매체에 제공될 수 있으며, 또는 네트워크를 통해(전파 신호로 부호화되어) 컴퓨터에 제공되어 실행될 수 있다. 전용의 컴퓨터, 또는 코프로세서와 같은 전용의 하드웨어에서 모든 기능이 수행될 수 있다. 소프트웨어는 해당 소프트웨어에 의해 지정된 연산의 다른 부분이 다른 컴퓨터에 의해 수행되는 분산형으로 구현될 수 있다. 이러한 컴퓨터 프로그램은, 본 명세서에 개시된 과정을 수행하도록, 기억 매체 또는 장치가 컴퓨터 시스템에 의해 판독될 때에 컴퓨터를 구성 및 동작시키기 위한, 범용 또는 전용의 프로그램 가능한 컴퓨터에 의해 판독가능한 기억 매체 또는 장치에 기억되거나 다운로드되는 것이 바람직하다. 본 발명의 시스템은, 컴퓨터 프로그램을 갖는 컴퓨터로 판독 가능한 기억매체로 구현될 수 있으며, 이러한 기억 매체에 의해, 컴퓨터 시스템은, 특정 및 미리 정해진 방식으로 동작하여 본 명세서에 개시된 기능을 수행할 수 있게 된다.
본 발명의 많은 실시예에 대하여 설명하였지만, 본 발명의 범위를 벗어남이 없이 다양한 변형이 가능하다는 것을 이해하여야 한다. 예를 들어, 상기 개시된 단계들 중 일부는 독립적인 순서로 될 수 있어서, 상기 개시한 것과 다른 순서로 수행될 수 있다.
이상의 설명은 본 발명의 범위를 제한하기 위한 것이 아니며, 청구범위에 개시된 범위에 의해 정해진다. 예를 들어, 앞서 개시된 많은 기능 단계들은 전체적인 처리 과정에 영향을 주지 않으면서 그 순서를 달리할 수 있다. 청구범위의 범위 내에서 다른 실시예가 가능하다.
Claims (145)
- 데이터를 관리하기 위한 방법으로서,각각의 키 값(key value)에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하는 단계;제1 데이터 블록 세트를 기억하는 단계로서, 상기 제1 데이터 블록 세트에 있는 하나 이상의 블록의 각각의 블록이 복수의 데이터 유닛을 압축해서 생성되는, 제1 데이터 블록 세트를 기억하는 단계;상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리(entry)를 포함하는 제1 인덱스(index)를 제공하는 단계로서, 하나 이상의 엔트리는 제공된 키 값에 기초해서 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는(enable location), 제1 인덱스를 제공하는 단계;상기 제1 데이터 블록 세트의 데이터 유닛을 압축한 후에, 각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 추가 데이터 유닛을 수신하는 단계;제2 데이터 블록 세트를 기억하는 단계로서, 상기 제2 데이터 블록 세트에 있는 적어도 일부의 블록의 각각의 블록이 복수의 상기 추가 데이터 유닛을 압축해서 생성되는, 제2 데이터 블록 세트를 기억하는 단계;상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하는 단계; 및상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트를 포함하는 다수의 데이터 블록 세트 내의 데이터 유닛을 검색하기 위해, 상기 제1 인덱스 및 상기 제2 인덱스를 포함하는 다수의 인덱스 세트를 관리하는 단계를 포함하며,상기 관리하는 단계는, 상기 데이터 유닛을 식별하는 키 값이 단조적으로(monotonically) 할당되는지에 기초하여, 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하는 단계를 포함하는,데이터 관리 방법.
- 제1항에 있어서,상기 제1 데이터 블록 세트의 적어도 일부의 블록은, 키 값들의 정해진 순서에 기초해서, 상기 데이터 유닛을 압축함으로써 생성되는, 데이터 관리 방법.
- 제2항에 있어서,상기 정해진 순서는 알파벳 순인, 데이터 관리 방법.
- 제2항에 있어서,상기 정해진 순서는 숫자(numerical) 순인, 데이터 관리 방법.
- 제2항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는, 상기 정해진 순서에 따른 키 값들의 중첩되지 않는 범위에 대응하는, 데이터 관리 방법.
- 제1항에 있어서,상기 제1 인덱스의 하나 이상의 엔트리는, 대응하는 블록을 생성한 데이터 유닛에 대응하는 범위의 키 값을 식별하는, 데이터 관리 방법.
- 제6항에 있어서,상기 키 값의 범위는, 상기 키 값의 범위 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 데이터 관리 방법.
- 제7항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 데이터 관리 방법.
- 제6항에 있어서,상기 키 값의 범위는, 상기 대응하는 블록을 생성한 데이터 유닛과 관련된 키 값 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 데이터 관리 방법.
- 제9항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 데이터 관리 방법.
- 제6항에 있어서,상기 인덱스 내의 적어도 일부의 엔트리의 각각은 상기 대응하는 블록의 기억 위치를 식별하는, 데이터 관리 방법.
- 삭제
- 제1항에 있어서,상기 데이터 유닛들의 세트를 압축하는 것에 의해 생성된 블록을 압축 해제하는 단계는, 상기 블록 전체를 처리하는 단계를 포함하는, 데이터 관리 방법.
- 제1항에 있어서,상기 데이터 유닛은, 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드인 것인, 데이터 관리 방법.
- 제14항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행하기 전에, 소정의 데이터 유닛과 관련된 하나 이상의 필드에 대응하는, 데이터 관리 방법.
- 제14항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행한 후에, 상기 데이터 유닛에 할당되는, 데이터 관리 방법.
- 제16항에 있어서,상기 키 값은 단조적으로(monotonically) 할당되는, 데이터 관리 방법.
- 제17항에 있어서,상기 키 값은 순차적으로 할당되는, 데이터 관리 방법.
- 삭제
- 제1항에 있어서,상기 제1 데이터 블록 세트가 파일 내에 기억되는, 데이터 관리 방법.
- 삭제
- 삭제
- 제1항에 있어서,상기 제2 인덱스의 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 방법.
- 제1항에 있어서,상기 블록을 생성한 데이터 유닛을 복원하기 위해 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 압축 해제하는 단계;상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과, 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을 분류하는 단계로서, 분류된 데이터 유닛들의 세트를 생성하기 위해 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛을 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛과 병합하는 단계를 포함하는, 분류하는 단계; 및제3 데이터 블록 세트를 생성하는 단계를 포함하고,상기 제3 데이터 블록 세트의 적어도 일부의 각각의 블록은 복수의 상기 분류된 데이터 유닛을 압축함으로써 생성되는, 데이터 관리 방법.
- 삭제
- 제24항에 있어서,상기 제3 인덱스는 상기 제3 데이터 블록 세트 내의 각 블록에 대한 엔트리를 포함하고,하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 키 값의 범위에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 방법.
- 제1항에 있어서,기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛이 상기 블록을 생성한 상기 데이터 유닛에 포함될 확률을 판정하기 위한 스크리닝 데이터 구조를 제공하는 단계를 더 포함하는 데이터 관리 방법.
- 제27항에 있어서,상기 속성 값은 데이터 유닛을 식별하는 키 값을 포함하는, 데이터 관리 방법.
- 제27항에 있어서,상기 스크리닝 데이터 구조는, 소정의 속성 값에 대하여, 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있지 않은지, 또는 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 판정하는, 데이터 관리 방법.
- 제29항에 있어서,상기 데이터 유닛이 포함되어 있지 않을 때에 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 상기 스크리닝 데이터 구조에 의해 판정될 확률은 상기 데이터 구조의 사이즈에 따라 달라지는, 데이터 관리 방법.
- 제30항에 있어서,상기 스크리닝 데이터 구조의 사이즈를, 상기 블록을 생성한 데이터 유닛의 수에 기초해서 선택하는 단계를 더 포함하는 데이터 관리 방법.
- 제1항에 있어서,기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛의 하나 이상의 키 값을 판정하기 위한 보조 인덱스를 제공하는 단계를 더 포함하는 데이터 관리 방법.
- 제32항에 있어서,상기 데이터 유닛은 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드이며, 레코드를 식별하는 상기 키 값은 기본 키 값에 대응하며, 상기 보조 인 덱스와 관련된 상기 속성 값은 보조 키 값에 대응하는, 데이터 관리 방법.
- 제32항에 있어서,상기 보조 인덱스는, 상기 키 값 외에, 상기 데이터 유닛 내의 속성 값에 의해 분류된 열을 갖는 표를 포함하는, 데이터 관리 방법.
- 데이터를 관리하기 위한 시스템으로서,각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하기 위한 입력 장치 또는 포트;제1 데이터 블록 세트를 기억하는 데이터 기억 시스템으로서, 상기 제1 데이터 블록 세트에 있는 하나 이상의 블록의 각각의 블록이 복수의 데이터 유닛을 압축해서 생성되는, 데이터 기억 시스템; 및데이터 유닛의 블록을 처리하는 수단을 포함하며,상기 데이터 유닛의 블록을 처리하는 것은,상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제1 인덱스를 제공하는 단계로서, 하나 이상의 엔트리가 제공된 키 값에 기초해서 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 제1 인덱스를 제공하는 단계;상기 제1 데이터 블록 세트의 데이터 유닛을 압축한 후에, 각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 추가 데이터 유닛을 수신하는 단계;제2 데이터 블록 세트를 기억하는 단계로서, 상기 제2 데이터 블록 세트에 있는 적어도 일부의 블록의 각각의 블록이 복수의 상기 추가 데이터 유닛을 압축해서 생성되는, 제2 데이터 블록 세트를 기억하는 단계;상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하는 단계; 및상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트를 포함하는 다수의 데이터 블록 세트 내의 데이터 유닛을 검색하기 위해, 상기 제1 인덱스 및 상기 제2 인덱스를 포함하는 다수의 인덱스 세트를 관리하는 단계를 포함하며,상기 관리하는 단계는, 상기 데이터 유닛을 식별하는 키 값이 단조적으로(monotonically) 할당되는지에 기초하여, 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하는 단계를 포함하는,데이터 관리 시스템.
- 데이터를 관리하기 위해 컴퓨터 프로그램을 내부에 기억하는 컴퓨터로 판독가능한 매체로서,상기 컴퓨터 프로그램은, 컴퓨터로 하여금,각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하고;제1 데이터 블록 세트를 기억하고 - 상기 제1 데이터 블록 세트에 있는 하나 이상의 블록의 각각의 블록이 복수의 데이터 유닛을 압축해서 생성됨 -;상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제1 인덱스를 제공하고 - 하나 이상의 상기 엔트리는 제공된 키 값에 기초해서 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있음 -;상기 제1 데이터 블록 세트의 데이터 유닛을 압축한 후에, 각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 추가 데이터 유닛을 수신하고;제2 데이터 블록 세트를 기억하고 - 상기 제2 데이터 블록 세트에 있는 적어도 일부의 블록의 각각의 블록이 복수의 상기 추가 데이터 유닛을 압축해서 생성됨 -;상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하고;상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트를 포함하는 다수의 데이터 블록 세트 내에서 데이터 유닛을 검색하기 위해, 상기 제1 인덱스 및 상기 제2 인덱스를 포함하는 다수의 인덱스 세트를 관리하도록 하는 명령어를 포함하며,상기 다수의 인덱스 세트를 관리하도록 하는 것은, 상기 데이터 유닛을 식별하는 키 값이 단조적으로 할당되는지에 기초하여, 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하는 단계를 포함하는,컴퓨터로 판독가능한 매체.
- 제1항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되지 않는 경우에, 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트의 둘 다를 압축 해제한 후에 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 제3 데이터 블록 세트로 통합하는 단계를 포함하고, 상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되는 경우에, 상기 제1 인덱스 및 상기 제2 인덱스를 부가하는 단계를 포함하는, 데이터 관리 방법.
- 제37항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되지 않는 경우에, 병합된 상기 제1 데이터 블록 세트로부터 압축 해제되었던 데이터 유닛과 상기 제2 데이터 블록 세트로부터 압축 해제되었던 데이터 유닛을, 압축해서 생성되는 데이터 블록에 대한 제3 인덱스 내의 엔트리를 생성하는 단계를 포함하는, 데이터 관리 방법.
- 제37항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되는 경우에, 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트의 둘 다를 압축 해제하지 않고 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트를 조합하는 단계를 포함하는, 데이터 관리 방법.
- 제1항에 있어서,상기 관리하는 단계는, 소정의 시간이 경과된 후 상기 제3 인덱스를 생성하는 단계를 포함하는, 데이터 관리 방법.
- 제1항에 있어서,상기 관리하는 단계는, 다수의 데이터 블록 세트에 포함된 소정의 수의 데이터 블록 세트에 응답하여 상기 제3 인덱스를 생성하는 단계를 포함하는, 데이터 관리 방법.
- 제35항에 있어서,상기 제1 데이터 블록 세트 내의 적어도 일부의 블록은 키 값들의 정해진 순서에 기초해서, 상기 데이터 유닛을 압축함으로써 생성되는, 데이터 관리 시스템.
- 제42항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는 상기 정해진 순서에 따른 키 값들의 중첩되지 않은 범위에 대응하는, 데이터 관리 시스템.
- 제35항에 있어서,상기 제1 인덱스의 하나 이상의 엔트리는, 대응하는 블록을 생성한 데이터 유닛에 대응하는 범위의 키 값을 식별하는, 데이터 관리 시스템.
- 제35항에 있어서,기억된 상기 블록과 관련된 스크리닝 데이터 구조가, 소정의 속성 값을 포함하는 데이터 유닛이 상기 블록을 생성한 상기 데이터 유닛에 포함될 확률을 판정하는, 데이터 관리 시스템.
- 제45항에 있어서,상기 스크리닝 데이터 구조는, 소정의 속성 값에 대하여, 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있지 않은지, 또는 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 판정하는, 데이터 관리 시스템.
- 제46항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는, 정해진 순서에 따른 키 값들의 중첩되지 않는 범위에 대응하는, 데이터 관리 시스템.
- 제35항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되지 않는 경우에, 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트의 둘 다를 압축 해제한 후에 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 제3 데이터 블록 세트로 통합하는 단계를 포함하고, 상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되는 경우에, 상기 제1 인덱스 및 상기 제2 인덱스를 부가하는 단계를 포함하는, 데이터 관리 시스템.
- 제48항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되지 않는 경우에, 병합된 상기 제1 데이터 블록 세트로부터 압축 해제되었던 데이터 유닛과 상기 제2 데이터 블록 세트로부터 압축 해제되었던 데이터 유닛을, 압축해서 생성되는 데이터 블록에 대한 제3 인덱스 내의 엔트리를 생성하는 단계를 포함하는, 데이터 관리 시스템.
- 제48항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되는 경우에, 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트의 둘 다를 압축 해제하지 않고 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트를 조합하는 단계를 포함하는, 데이터 관리 시스템.
- 제36항에 있어서,상기 컴퓨터 프로그램은, 컴퓨터로 하여금, 기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛이 상기 블록을 생성한 상기 데이터 유닛에 포함될 확률을 판정하기 위한 스크리닝 데이터 구조를 제공하도록 하는 명령어를 포함하는, 컴퓨터로 판독가능한 매체.
- 제36항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되지 않는 경우에, 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트의 둘 다를 압축 해제한 후에 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 제3 데이터 블록 세트로 통합하는 단계를 포함하고, 상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되는 경우에, 상기 제1 인덱스 및 상기 제2 인덱스를 부가하는 단계를 포함하는, 컴퓨터로 판독가능한 매체.
- 제52항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되지 않는 경우에, 병합된 상기 제1 데이터 블록 세트로부터 압축 해제되었던 데이터 유닛과 상기 제2 데이터 블록 세트로부터 압축 해제되었던 데이터 유닛을, 압축해서 생성되는 데이터 블록에 대한 제3 인덱스 내의 엔트리를 생성하는 단계를 포함하는, 컴퓨터로 판독가능한 매체.
- 제52항에 있어서,상기 제3 인덱스를 생성하는 단계는, 상기 키 값이 단조적으로 할당되는 경우에, 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트의 둘 다를 압축 해제하지 않고 상기 제1 데이터 블록 세트 및 상기 제2 데이터 블록 세트를 조합하는 단계를 포함하는, 컴퓨터로 판독가능한 매체.
- 제36항에 있어서,상기 제1 데이터 블록 세트의 적어도 일부의 블록은, 키 값들의 정해진 순서에 기초해서, 상기 데이터 유닛을 압축함으로써 생성되는,컴퓨터로 판독가능한 매체.
- 제55항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는, 상기 정해진 순서에 따른 키 값들의 중첩되지 않는 범위에 대응하는, 컴퓨터로 판독가능한 매체.
- 제36항에 있어서,상기 제1 인덱스의 하나 이상의 엔트리는, 대응하는 블록을 생성한 데이터 유닛에 대응하는 범위의 키 값을 식별하는, 컴퓨터로 판독가능한 매체.
- 데이터를 관리하기 위한 방법으로서,각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하는 단계;복수의 데이터 블록을 포함하며 복수의 상기 데이터 유닛을 압축해서 생성되는 제1 데이터 블록 세트, 및 하나 이상의 데이터 블록을 포함하며 상기 제1 데이터 블록 세트를 기억한 후에 수신되는 복수의 데이터 유닛을 압축해서 생성되는 제2 데이터 블록 세트를 포함하는 복수의 데이터 블록 세트를 기억하는 단계;각각의 블록을 생성한 데이터 유닛을 복원하기 위해 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 압축 해제하는 단계;상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과, 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 분류하여, 분류된 데이터 유닛들의 세트를 생성하는 단계;제3 데이터 블록 세트를 생성하는 단계로서, 상기 제3 데이터 블록 세트 내의 적어도 일부의 블록의 각각의 블록이 복수의 상기 분류된 데이터 유닛을 압축해서 생성되는, 제3 데이터 블록 세트를 생성하는 단계; 및기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛이 상기 블록을 생성한 상기 데이터 유닛에 포함될 확률을 판정하기 위한 스크리닝 데이터 구조를 제공하는 단계를 포함하고,상기 스크리닝 데이터 구조는, 소정의 속성 값에 대하여, 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있지 않은지, 또는 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 판정하는,데이터 관리 방법.
- 제58항에 있어서,적어도 일부의 상기 블록은, 키 값들의 정해진 순서에 기초해서, 상기 데이터 유닛을 압축함으로써 생성되는, 데이터 관리 방법.
- 제59항에 있어서,상기 정해진 순서는 알파벳 순인, 데이터 관리 방법.
- 제59항에 있어서,상기 정해진 순서는 숫자 순인, 데이터 관리 방법.
- 제59항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는, 상기 정해진 순서에 따른 키 값들의 중첩되지 않는 범위에 대응하는, 데이터 관리 방법.
- 제58항에 있어서,상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제1 인덱스를 제공하는 단계; 상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하는 단계; 및 상기 제3 데이터 블록 세트가 생성된 후에, 상기 제3 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하는 단계를 포함하는, 데이터 관리 방법.
- 제63항에 있어서,상기 인덱스의 하나 이상의 엔트리는, 대응하는 블록을 생성한 데이터 유닛에 대응하는 범위의 키 값을 식별하는, 데이터 관리 방법.
- 제64항에 있어서,상기 키 값의 범위는, 상기 키 값의 범위 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 데이터 관리 방법.
- 제65항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 데이터 관리 방법.
- 제64항에 있어서,상기 키 값의 범위는, 상기 대응하는 블록을 생성한 상기 데이터 유닛과 관련된 키 값 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 데이터 관리 방법.
- 제67항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 데이터 관리 방법.
- 제64항에 있어서,상기 인덱스 내의 적어도 일부의 엔트리의 각각은 대응하는 데이터 블록의 기억 위치를 식별하는, 데이터 관리 방법.
- 제63항에 있어서,상기 제1 데이터 블록 내의 기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛의 하나 이상의 키 값을 판정하기 위한 보조 인덱스를 제공하는 단계를 더 포함하는 데이터 관리 방법.
- 제70항에 있어서,상기 데이터 유닛은 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드이며, 레코드를 식별하는 상기 키 값은 기본 키 값에 대응하며, 상기 보조 인덱스와 관련된 상기 속성 값은 보조 키 값에 대응하는, 데이터 관리 방법.
- 제70항에 있어서,상기 보조 인덱스는, 상기 키 값 외에, 상기 데이터 유닛 내의 속성 값에 의해 분류된 열을 갖는 표를 포함하는, 데이터 관리 방법.
- 제63항에 있어서,상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을 분류하는 단계는, 상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 병합함으로써 분류된 데이터 유닛들의 세트를 생성하는 단계를 포함하는, 데이터 관리 방법.
- 제58항에 있어서,상기 데이터 유닛들의 세트를 압축하는 것에 의해 생성된 블록을 압축 해제하는 단계는, 상기 블록 전체를 처리하는 단계를 포함하는, 데이터 관리 방법.
- 제58항에 있어서,상기 데이터 유닛은, 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드인 것인, 데이터 관리 방법.
- 제75항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행하기 전에, 소정의 데이터 유닛과 관련된 하나 이상의 필드에 대응하는, 데이터 관리 방법.
- 제75항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행한 후에, 상기 데이터 유닛에 할당되는, 데이터 관리 방법.
- 제77항에 있어서,상기 키 값은 단조적으로 할당되는, 데이터 관리 방법.
- 제78항에 있어서,상기 키 값은 순차적으로 할당되는, 데이터 관리 방법.
- 제58항에 있어서,상기 제1 데이터 블록 세트가 파일 내에 기억되는, 데이터 관리 방법.
- 제80항에 있어서,상기 제1 인덱스 내의 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 방법.
- 제80항에 있어서,상기 제2 인덱스 내의 하나 이상의 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 방법.
- 제80항에 있어서,상기 제3 인덱스는 상기 제3 데이터 블록 세트 내의 각각의 블록에 대한 엔트리를 포함하고, 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 방법.
- 제80항에 있어서,상기 속성 값은 데이터 유닛을 식별하는 키 값을 포함하는, 데이터 관리 방법.
- 제58항에 있어서,상기 데이터 유닛이 포함되어 있지 않을 때에 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 상기 스크리닝 데이터 구조에 의해 판정될 확률은 상기 데이터 구조의 사이즈에 따라 달라지는, 데이터 관리 방법.
- 제85항에 있어서,상기 스크리닝 데이터 구조의 사이즈를, 상기 블록을 생성한 데이터 유닛의 수에 기초해서 선택하는 단계를 더 포함하는 데이터 관리 방법.
- 데이터를 관리하기 위한 시스템으로서,각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하기 위한 입력 장치 또는 포트;복수의 데이터 블록을 포함하며 복수의 상기 데이터 유닛을 압축해서 생성되는 제1 데이터 블록 세트, 및 하나 이상의 데이터 블록을 포함하며 상기 제1 데이터 블록 세트를 기억한 후에 수신되는 복수의 데이터 유닛을 압축해서 생성되는 제2 데이터 블록 세트를 포함하는 복수의 데이터 블록 세트를 기억하는 데이터 기억 시스템;프로세서를 포함하며, 상기 데이터 유닛의 복수의 데이터 블록 세트를 처리하는 수단을 포함하며,상기 복수의 데이터 블록 세트를 처리하는 것은,블록을 생성한 데이터 유닛을 복원하기 위해 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 압축 해제하는 단계;상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과, 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 분류하여, 분류된 데이터 유닛들의 세트를 생성하는 단계;제3 데이터 블록 세트를 생성하는 단계로서, 상기 제3 데이터 블록 세트 내의 적어도 일부의 블록의 각각의 블록이 복수의 상기 분류된 데이터 유닛을 압축해서 생성되는, 제3 데이터 블록 세트를 생성하는 단계; 및기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛이 상기 블록을 생성한 상기 데이터 유닛에 포함될 확률을 판정하기 위한 스크리닝 데이터 구조를 제공하는 단계를 포함하고,상기 스크리닝 데이터 구조는, 소정의 속성 값에 대하여, 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있지 않은지, 또는 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 판정하는,데이터 관리 시스템.
- 제87항에 있어서,상기 복수의 데이터 블록 세트를 처리하는 것은,상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제1 인덱스를 제공하는 단계; 상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하는 단계; 및 상기 제3 데이터 블록 세트가 생성된 후에, 상기 제3 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하는 단계를 더 포함하는, 데이터 관리 시스템.
- 제88항에 있어서,상기 제1 인덱스의 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 시스템.
- 제88항에 있어서,상기 제2 인덱스의 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 시스템.
- 제88항에 있어서,상기 제3 인덱스는 상기 제3 데이터 블록 세트 내의 각각의 블록에 대한 엔트리를 포함하고, 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 데이터 관리 시스템.
- 제88항에 있어서,상기 속성 값은 데이터 유닛을 식별하는 키 값을 포함하는, 데이터 관리 시스템.
- 제87항에 있어서,적어도 일부의 블록은, 키 값들의 정해진 순서에 기초해서, 상기 데이터 유닛을 압축함으로써 생성되는, 데이터 관리 시스템.
- 제93항에 있어서,상기 정해진 순서는 알파벳 순인, 데이터 관리 시스템.
- 제93항에 있어서,상기 정해진 순서는 숫자 순인, 데이터 관리 시스템.
- 제93항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는, 상기 정해진 순서에 따른 키 값들의 중첩되지 않는 범위에 대응하는, 데이터 관리 시스템.
- 제87항에 있어서,상기 복수의 데이터 블록 세트를 처리하는 것은,상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제1 인덱스를 제공하는 단계; 상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하는 단계; 및 상기 제3 데이터 블록 세트가 생성된 후에, 상기 제3 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하는 단계를 포함하는, 데이터 관리 시스템.
- 제97항에 있어서,상기 인덱스의 하나 이상의 엔트리는, 대응하는 블록을 생성한 데이터 유닛에 대응하는 범위의 키 값을 식별하는, 데이터 관리 시스템.
- 제98항에 있어서,상기 키 값의 범위는, 상기 키 값의 범위 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 데이터 관리 시스템.
- 제99항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 데이터 관리 시스템.
- 제98항에 있어서,상기 키 값의 범위는, 대응하는 블록을 생성한 상기 데이터 유닛과 관련된 키 값 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 데이터 관리 시스템.
- 제101항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 데이터 관리 시스템.
- 제98항에 있어서,상기 인덱스 내의 적어도 일부의 엔트리의 각각은 대응하는 블록의 기억 위치를 식별하는, 데이터 관리 시스템.
- 제87항에 있어서,상기 데이터 유닛들의 세트를 압축하는 것에 의해 생성된 블록을 압축 해제하는 단계는, 상기 블록 전체를 처리하는 단계를 포함하는, 데이터 관리 시스템.
- 제87항에 있어서,상기 데이터 유닛은, 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드인 것인, 데이터 관리 시스템.
- 제105항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행하기 전에, 소정의 데이터 유닛과 관련된 하나 이상의 필드에 대응하는, 데이터 관리 시스템.
- 제105항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행한 후에, 상기 데이터 유닛에 할당되는, 데이터 관리 시스템.
- 제107항에 있어서,상기 키 값은 단조적으로 할당되는, 데이터 관리 시스템.
- 제108항에 있어서,상기 키 값은 순차적으로 할당되는, 데이터 관리 시스템.
- 제87항에 있어서,상기 제1 데이터 블록 세트가 파일 내에 기억되는, 데이터 관리 시스템.
- 제87항에 있어서,상기 데이터 유닛이 포함되어 있지 않을 때에 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 상기 스크리닝 데이터 구조에 의해 판정될 확률은 상기 데이터 구조의 사이즈에 따라 달라지는, 데이터 관리 시스템.
- 제111항에 있어서,상기 복수의 데이터 블록 세트를 처리하는 것은,상기 스크리닝 데이터 구조의 사이즈를, 상기 블록을 생성한 데이터 유닛의 수에 기초해서 선택하는 단계를 더 포함하는, 데이터 관리 시스템.
- 제87항에 있어서,상기 복수의 데이터 블록 세트를 처리하는 것은,상기 제1 데이터 블록 세트 내의 기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛의 하나 이상의 키 값을 판정하기 위한 보조 인덱스를 제공하는 단계를 더 포함하는, 데이터 관리 시스템.
- 제113항에 있어서,상기 데이터 유닛은 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드이며, 레코드를 식별하는 상기 키 값은 기본 키 값에 대응하며, 상기 보조 인덱스와 관련된 상기 속성 값은 보조 키 값에 대응하는, 데이터 관리 시스템.
- 제113항에 있어서,상기 보조 인덱스는, 상기 키 값 외에, 상기 데이터 유닛 내의 속성 값에 의해 분류된 열을 갖는 표를 포함하는, 데이터 관리 시스템.
- 제87항에 있어서,상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을 분류하는 단계는, 상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 병합함으로써 분류된 데이터 유닛들의 세트를 생성하는 단계를 포함하는, 데이터 관리 시스템.
- 데이터를 관리하기 위해 컴퓨터 프로그램을 내부에 기억하는 컴퓨터로 판독가능한 매체로서,상기 컴퓨터 프로그램은, 컴퓨터로 하여금,각각의 키 값에 의해 각각 식별될 수 있으며, 개별적으로 액세스 가능한 데이터 유닛을 수신하고;복수의 데이터 블록을 포함하며 복수의 상기 데이터 유닛을 압축해서 생성되는 제1 데이터 블록 세트, 및 하나 이상의 데이터 블록을 포함하며 상기 제1 데이터 블록 세트를 기억한 후에 수신되는 복수의 데이터 유닛을 압축해서 생성되는 제2 데이터 블록 세트를 포함하는 복수의 데이터 블록 세트를 기억하고;상기 블록을 생성한 데이터 유닛을 복원하기 위해 상기 제1 데이터 블록 세트와 상기 제2 데이터 블록 세트를 압축 해제하고;상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과, 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 분류하여, 분류된 데이터 유닛들의 세트를 생성하고;제3 데이터 블록 세트를 생성하고 - 상기 제3 데이터 블록 세트 내의 적어도 일부의 블록의 각각의 블록이 복수의 상기 분류된 데이터 유닛을 압축해서 생성됨 -;기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛이 상기 블록을 생성한 상기 데이터 유닛에 포함될 확률을 판정하기 위한 스크리닝 데이터 구조를 제공하도록 하는 명령어를 포함하며,상기 스크리닝 데이터 구조는, 소정의 속성 값에 대하여, 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있지 않은지, 또는 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 판정하는,컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 컴퓨터 프로그램은, 컴퓨터로 하여금,상기 제1 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제1 인덱스를 제공하고; 상기 제2 데이터 블록 세트의 각각의 블록에 대한 엔트리를 포함하는 제2 인덱스를 제공하고; 및 상기 제3 데이터 블록 세트가 생성된 후에, 상기 제3 데이터 블록 세트 내에서 검색하기 위해 상기 제1 인덱스 및 상기 제2 인덱스를 대체하는 제3 인덱스를 생성하도록 하는 명령어를 더 포함하는, 컴퓨터로 판독가능한 매체.
- 제118항에 있어서,상기 인덱스의 하나 이상의 엔트리는, 대응하는 블록을 생성한 데이터 유닛에 대응하는 범위의 키 값을 식별하는, 컴퓨터로 판독가능한 매체.
- 제119항에 있어서,상기 키 값의 범위는, 상기 키 값의 범위 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 컴퓨터로 판독가능한 매체.
- 제120항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 컴퓨터로 판독가능한 매체.
- 제119항에 있어서,상기 키 값의 범위는, 대응하는 블록을 생성한 상기 데이터 유닛과 관련된 키 값 중 하나 이상의 극한값을 포함하는 정보에 의해 식별되는, 컴퓨터로 판독가능한 매체.
- 제122항에 있어서,상기 키 값의 범위는, 상기 인덱스 내의 제1 엔트리로부터의 제1 극한값과 상기 인덱스 내의 제2 엔트리로부터의 제2 극한값에 의해 식별되는, 컴퓨터로 판독가능한 매체.
- 제119항에 있어서,상기 인덱스 내의 적어도 일부의 엔트리의 각각은 대응하는 블록의 기억 위치를 식별하는, 컴퓨터로 판독가능한 매체.
- 제118항에 있어서,상기 제1 인덱스의 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 컴퓨터로 판독가능한 매체.
- 제118항에 있어서,상기 제2 인덱스의 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 컴퓨터로 판독가능한 매체.
- 제118항에 있어서,상기 제3 인덱스는 상기 제3 데이터 블록 세트 내의 각각의 블록에 대한 엔트리를 포함하고, 하나 이상의 상기 엔트리는, 제공된 키 값에 기초해서, 상기 제공된 키 값을 포함하는 범위의 키 값에 대응하는 데이터 유닛을 포함하는 블록의 위치를 추적할 수 있는, 컴퓨터로 판독가능한 매체.
- 제118항에 있어서,상기 속성 값은 데이터 유닛을 식별하는 키 값을 포함하는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,적어도 일부의 블록은, 키 값들의 정해진 순서에 기초해서, 상기 데이터 유닛을 압축함으로써 생성되는, 컴퓨터로 판독가능한 매체.
- 제129항에 있어서,상기 정해진 순서는 알파벳 순인, 컴퓨터로 판독가능한 매체.
- 제129항에 있어서,상기 정해진 순서는 숫자 순인, 컴퓨터로 판독가능한 매체.
- 제129항에 있어서,각각의 블록은 데이터 유닛들의 각 세트로부터 생성되며, 상기 데이터 유닛들의 세트는, 상기 정해진 순서에 따른 키 값들의 중첩되지 않는 범위에 대응하는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 데이터 유닛들의 세트를 압축하는 것에 의해 생성된 블록을 압축 해제하는 단계는, 상기 블록 전체를 처리하는 단계를 포함하는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 데이터 유닛은, 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드인 것인, 컴퓨터로 판독가능한 매체.
- 제134항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행하기 전에, 소정의 데이터 유닛과 관련된 하나 이상의 필드에 대응하는, 컴퓨터로 판독가능한 매체.
- 제134항에 있어서,수신한 상기 데이터 유닛을 식별하는 키 값은, 상기 수신을 행한 후에, 상기 데이터 유닛에 할당되는, 컴퓨터로 판독가능한 매체.
- 제136항에 있어서,상기 키 값은 단조적으로 할당되는, 컴퓨터로 판독가능한 매체.
- 제137항에 있어서,상기 키 값은 순차적으로 할당되는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 제1 데이터 블록 세트가 파일 내에 기억되는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 데이터 유닛이 포함되어 있지 않을 때에 상기 소정의 속성 값을 포함하는 데이터 유닛이 포함되어 있는지를 상기 스크리닝 데이터 구조에 의해 판정될 확률은 상기 데이터 구조의 사이즈에 따라 달라지는, 컴퓨터로 판독가능한 매체.
- 제140항에 있어서,상기 컴퓨터 프로그램은, 컴퓨터로 하여금,상기 스크리닝 데이터 구조의 사이즈를, 상기 블록을 생성한 데이터 유닛의 수에 기초해서 선택하도록 하는 명령어를 더 포함하는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 컴퓨터 프로그램은, 컴퓨터로 하여금,상기 제1 데이터 블록 세트 내의 기억된 상기 블록과 관련되어 있으며, 소정의 속성 값을 포함하는 데이터 유닛의 하나 이상의 키 값을 판정하기 위한 보조 인덱스를 제공하도록 하는 명령어를 더 포함하는, 컴퓨터로 판독가능한 매체.
- 제142항에 있어서,상기 데이터 유닛은 대응하는 필드와 관련된 하나 이상의 값을 각각 갖는 레코드이며, 레코드를 식별하는 상기 키 값은 기본 키 값에 대응하며, 상기 보조 인덱스와 관련된 상기 속성 값은 보조 키 값에 대응하는, 컴퓨터로 판독가능한 매체.
- 제142항에 있어서,상기 보조 인덱스는, 상기 키 값 외에, 상기 데이터 유닛 내의 속성 값에 의해 분류된 열을 갖는 표를 포함하는, 컴퓨터로 판독가능한 매체.
- 제117항에 있어서,상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을 분류하는 것은, 상기 제1 데이터 블록 세트로부터 복원된 데이터 유닛과 상기 제2 데이터 블록 세트로부터 복원된 데이터 유닛을, 상기 데이터 유닛에 대응하는 키 값에 대한 순서에 따라 병합함으로써 분류된 데이터 유닛들의 세트를 생성하는 단계를 포함하는, 컴퓨터로 판독가능한 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/555,458 US8229902B2 (en) | 2006-11-01 | 2006-11-01 | Managing storage of individually accessible data units |
US11/555,458 | 2006-11-01 | ||
PCT/US2007/082786 WO2008057815A2 (en) | 2006-11-01 | 2007-10-29 | Managing storage of individually accessible data units |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090075885A KR20090075885A (ko) | 2009-07-09 |
KR101400816B1 true KR101400816B1 (ko) | 2014-06-27 |
Family
ID=39331642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097011230A KR101400816B1 (ko) | 2006-11-01 | 2007-10-29 | 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템 |
Country Status (9)
Country | Link |
---|---|
US (2) | US8229902B2 (ko) |
EP (1) | EP2080121B1 (ko) |
JP (1) | JP5377318B2 (ko) |
KR (1) | KR101400816B1 (ko) |
CN (2) | CN102945242B (ko) |
AU (1) | AU2007317574B2 (ko) |
CA (4) | CA2668136C (ko) |
HK (1) | HK1181484A1 (ko) |
WO (1) | WO2008057815A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102315070B1 (ko) * | 2020-07-31 | 2021-10-20 | 인하대학교 산학협력단 | 에지 컴퓨팅환경에서 키벨류 데이터 오케스트레이션 시스템의 데이터 처리 및 데이터 백업 |
Families Citing this family (207)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747733B2 (en) | 2004-10-25 | 2010-06-29 | Electro Industries/Gauge Tech | Power meter having multiple ethernet ports |
US8229902B2 (en) | 2006-11-01 | 2012-07-24 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US7885932B2 (en) | 2006-11-01 | 2011-02-08 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US8930331B2 (en) | 2007-02-21 | 2015-01-06 | Palantir Technologies | Providing unique views of data based on changes or rules |
US20090287986A1 (en) * | 2008-05-14 | 2009-11-19 | Ab Initio Software Corporation | Managing storage of individually accessible data units |
US8984390B2 (en) | 2008-09-15 | 2015-03-17 | Palantir Technologies, Inc. | One-click sharing for screenshots and related documents |
US9104695B1 (en) | 2009-07-27 | 2015-08-11 | Palantir Technologies, Inc. | Geotagging structured data |
CN102687144B (zh) * | 2009-12-23 | 2017-02-15 | 起元技术有限责任公司 | 管理查询 |
KR20150045532A (ko) * | 2010-03-10 | 2015-04-28 | 아브 이니티오 테크놀로지 엘엘시 | 개별적으로 액세스 가능한 데이터 유닛의 스토리지 관리 방법 |
US9547693B1 (en) | 2011-06-23 | 2017-01-17 | Palantir Technologies Inc. | Periodic database search manager for multiple data sources |
US9092482B2 (en) | 2013-03-14 | 2015-07-28 | Palantir Technologies, Inc. | Fair scheduling for mixed-query loads |
US8799240B2 (en) | 2011-06-23 | 2014-08-05 | Palantir Technologies, Inc. | System and method for investigating large amounts of data |
US20130013605A1 (en) | 2011-07-08 | 2013-01-10 | Stanfill Craig W | Managing Storage of Data for Range-Based Searching |
US9280532B2 (en) | 2011-08-02 | 2016-03-08 | Palantir Technologies, Inc. | System and method for accessing rich objects via spreadsheets |
US8732574B2 (en) | 2011-08-25 | 2014-05-20 | Palantir Technologies, Inc. | System and method for parameterizing documents for automatic workflow generation |
US8504542B2 (en) | 2011-09-02 | 2013-08-06 | Palantir Technologies, Inc. | Multi-row transactions |
US10862784B2 (en) | 2011-10-04 | 2020-12-08 | Electro Industries/Gauge Tech | Systems and methods for processing meter information in a network of intelligent electronic devices |
US20150356104A9 (en) * | 2011-10-04 | 2015-12-10 | Electro Industries/Gauge Tech | Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices |
US10771532B2 (en) | 2011-10-04 | 2020-09-08 | Electro Industries/Gauge Tech | Intelligent electronic devices, systems and methods for communicating messages over a network |
US10275840B2 (en) | 2011-10-04 | 2019-04-30 | Electro Industries/Gauge Tech | Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices |
US20130218930A1 (en) * | 2012-02-20 | 2013-08-22 | Microsoft Corporation | Xml file format optimized for efficient atomic access |
US9747363B1 (en) * | 2012-03-01 | 2017-08-29 | Attivio, Inc. | Efficient storage and retrieval of sparse arrays of identifier-value pairs |
CA2875001A1 (en) * | 2012-06-06 | 2013-12-12 | Spiral Genetics Inc. | Method and system for sorting data in a cloud-computing environment and other distributed computing environments |
US9798768B2 (en) | 2012-09-10 | 2017-10-24 | Palantir Technologies, Inc. | Search around visual queries |
US9348677B2 (en) | 2012-10-22 | 2016-05-24 | Palantir Technologies Inc. | System and method for batch evaluation programs |
EP2767911A1 (en) * | 2013-02-13 | 2014-08-20 | BAE Systems PLC | Data storage and retrieval |
US9934233B2 (en) | 2012-12-20 | 2018-04-03 | Bae Systems Plc | Searchable data archive |
US9501507B1 (en) | 2012-12-27 | 2016-11-22 | Palantir Technologies Inc. | Geo-temporal indexing and searching |
US9875054B2 (en) | 2013-03-06 | 2018-01-23 | Ab Initio Technology Llc | Managing operations on stored data units |
US10133500B2 (en) | 2013-03-06 | 2018-11-20 | Ab Initio Technology Llc | Managing operations on stored data units |
US9959070B2 (en) | 2013-03-06 | 2018-05-01 | Ab Initio Technology Llc | Managing operations on stored data units |
US10140664B2 (en) | 2013-03-14 | 2018-11-27 | Palantir Technologies Inc. | Resolving similar entities from a transaction database |
US10771247B2 (en) | 2013-03-15 | 2020-09-08 | Commerce Signals, Inc. | Key pair platform and system to manage federated trust networks in distributed advertising |
US11816465B2 (en) | 2013-03-15 | 2023-11-14 | Ei Electronics Llc | Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices |
US8924388B2 (en) | 2013-03-15 | 2014-12-30 | Palantir Technologies Inc. | Computer-implemented systems and methods for comparing and associating objects |
US8868486B2 (en) | 2013-03-15 | 2014-10-21 | Palantir Technologies Inc. | Time-sensitive cube |
US10275778B1 (en) | 2013-03-15 | 2019-04-30 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures |
US11222346B2 (en) | 2013-03-15 | 2022-01-11 | Commerce Signals, Inc. | Method and systems for distributed signals for use with advertising |
US10803512B2 (en) | 2013-03-15 | 2020-10-13 | Commerce Signals, Inc. | Graphical user interface for object discovery and mapping in open systems |
US8909656B2 (en) | 2013-03-15 | 2014-12-09 | Palantir Technologies Inc. | Filter chains with associated multipath views for exploring large data sets |
US10275785B2 (en) | 2013-03-15 | 2019-04-30 | Commerce Signals, Inc. | Methods and systems for signal construction for distribution and monetization by signal sellers |
JP5494860B2 (ja) * | 2013-04-01 | 2014-05-21 | 富士通株式会社 | 情報管理プログラム、情報管理装置および情報管理方法 |
US8799799B1 (en) | 2013-05-07 | 2014-08-05 | Palantir Technologies Inc. | Interactive geospatial map |
EP3379415B1 (en) * | 2013-05-17 | 2019-11-06 | Ab Initio Technology LLC | Managing memory and storage space for a data operation |
CN103353887A (zh) * | 2013-06-28 | 2013-10-16 | 贵阳朗玛信息技术股份有限公司 | 用户数据查找方法及装置 |
US10191965B2 (en) | 2013-08-16 | 2019-01-29 | Vmware, Inc. | Automatically determining whether a revision is a major revision or a minor revision by selecting two or more criteria, determining if criteria should be weighted and calculating a score has exceeded a threshold |
US9292507B2 (en) * | 2013-08-16 | 2016-03-22 | Vmware, Inc. | Automated document revision trimming in a collaborative multi-user document store |
JP6151365B2 (ja) | 2013-09-03 | 2017-06-21 | 株式会社東芝 | 情報処理システム、情報処理方法及びプログラム |
US9785317B2 (en) | 2013-09-24 | 2017-10-10 | Palantir Technologies Inc. | Presentation and analysis of user interaction data |
JP6281225B2 (ja) * | 2013-09-30 | 2018-02-21 | 日本電気株式会社 | 情報処理装置 |
US8938686B1 (en) | 2013-10-03 | 2015-01-20 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US8812960B1 (en) | 2013-10-07 | 2014-08-19 | Palantir Technologies Inc. | Cohort-based presentation of user interaction data |
CN104572711A (zh) * | 2013-10-18 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种分布式文档形数据存取方法及装置 |
US9116975B2 (en) | 2013-10-18 | 2015-08-25 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores |
KR102179669B1 (ko) | 2013-10-21 | 2020-11-17 | 아브 이니티오 테크놀로지 엘엘시 | 데이터 유닛들의 컬렉션 체크포인팅 |
US9105000B1 (en) | 2013-12-10 | 2015-08-11 | Palantir Technologies Inc. | Aggregating data from a plurality of data sources |
US9727622B2 (en) | 2013-12-16 | 2017-08-08 | Palantir Technologies, Inc. | Methods and systems for analyzing entity performance |
US10579647B1 (en) | 2013-12-16 | 2020-03-03 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US10356032B2 (en) | 2013-12-26 | 2019-07-16 | Palantir Technologies Inc. | System and method for detecting confidential information emails |
US9043696B1 (en) | 2014-01-03 | 2015-05-26 | Palantir Technologies Inc. | Systems and methods for visual definition of data associations |
US8832832B1 (en) | 2014-01-03 | 2014-09-09 | Palantir Technologies Inc. | IP reputation |
US8935201B1 (en) | 2014-03-18 | 2015-01-13 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
US9836580B2 (en) | 2014-03-21 | 2017-12-05 | Palantir Technologies Inc. | Provider portal |
CN105745642B (zh) * | 2014-03-31 | 2019-08-16 | 华为技术有限公司 | 查询数据的处理方法和装置 |
US11734396B2 (en) | 2014-06-17 | 2023-08-22 | El Electronics Llc | Security through layers in an intelligent electronic device |
US9619557B2 (en) | 2014-06-30 | 2017-04-11 | Palantir Technologies, Inc. | Systems and methods for key phrase characterization of documents |
US9535974B1 (en) | 2014-06-30 | 2017-01-03 | Palantir Technologies Inc. | Systems and methods for identifying key phrase clusters within documents |
US9129219B1 (en) | 2014-06-30 | 2015-09-08 | Palantir Technologies, Inc. | Crime risk forecasting |
US9256664B2 (en) | 2014-07-03 | 2016-02-09 | Palantir Technologies Inc. | System and method for news events detection and visualization |
US20160026923A1 (en) | 2014-07-22 | 2016-01-28 | Palantir Technologies Inc. | System and method for determining a propensity of entity to take a specified action |
US9419992B2 (en) | 2014-08-13 | 2016-08-16 | Palantir Technologies Inc. | Unwanted tunneling alert system |
US9454281B2 (en) | 2014-09-03 | 2016-09-27 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US9390086B2 (en) | 2014-09-11 | 2016-07-12 | Palantir Technologies Inc. | Classification system with methodology for efficient verification |
US9767172B2 (en) | 2014-10-03 | 2017-09-19 | Palantir Technologies Inc. | Data aggregation and analysis system |
US9501851B2 (en) | 2014-10-03 | 2016-11-22 | Palantir Technologies Inc. | Time-series analysis system |
US9785328B2 (en) | 2014-10-06 | 2017-10-10 | Palantir Technologies Inc. | Presentation of multivariate data on a graphical user interface of a computing system |
CA2965122C (en) | 2014-10-20 | 2021-11-09 | Ab Initio Technology Llc | Specifying and applying rules to data |
US9229952B1 (en) | 2014-11-05 | 2016-01-05 | Palantir Technologies, Inc. | History preserving data pipeline system and method |
US9043894B1 (en) | 2014-11-06 | 2015-05-26 | Palantir Technologies Inc. | Malicious software detection in a computing system |
US11126598B1 (en) | 2014-11-06 | 2021-09-21 | Ab Initio Technology Llc | Techniques for performing lifecycle operations on a data store |
US9483546B2 (en) | 2014-12-15 | 2016-11-01 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US10552994B2 (en) | 2014-12-22 | 2020-02-04 | Palantir Technologies Inc. | Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items |
US9348920B1 (en) | 2014-12-22 | 2016-05-24 | Palantir Technologies Inc. | Concept indexing among database of documents using machine learning techniques |
US10362133B1 (en) | 2014-12-22 | 2019-07-23 | Palantir Technologies Inc. | Communication data processing architecture |
US10452651B1 (en) | 2014-12-23 | 2019-10-22 | Palantir Technologies Inc. | Searching charts |
US9817563B1 (en) | 2014-12-29 | 2017-11-14 | Palantir Technologies Inc. | System and method of generating data points from one or more data stores of data items for chart creation and manipulation |
US9335911B1 (en) | 2014-12-29 | 2016-05-10 | Palantir Technologies Inc. | Interactive user interface for dynamic data analysis exploration and query processing |
US11302426B1 (en) | 2015-01-02 | 2022-04-12 | Palantir Technologies Inc. | Unified data interface and system |
US10169395B2 (en) * | 2015-02-12 | 2019-01-01 | International Business Machines Corporation | Database identifier generation in transaction processing systems |
US9727560B2 (en) | 2015-02-25 | 2017-08-08 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
US9891808B2 (en) | 2015-03-16 | 2018-02-13 | Palantir Technologies Inc. | Interactive user interfaces for location-based data analysis |
US9886467B2 (en) | 2015-03-19 | 2018-02-06 | Plantir Technologies Inc. | System and method for comparing and visualizing data entities and data entity series |
US10628488B2 (en) * | 2015-03-27 | 2020-04-21 | Hitachi, Ltd. | Document retrieval system and retrieval method |
US9348880B1 (en) | 2015-04-01 | 2016-05-24 | Palantir Technologies, Inc. | Federated search of multiple sources with conflict resolution |
US10103953B1 (en) | 2015-05-12 | 2018-10-16 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US9672257B2 (en) | 2015-06-05 | 2017-06-06 | Palantir Technologies Inc. | Time-series data storage and processing database system |
US9384203B1 (en) | 2015-06-09 | 2016-07-05 | Palantir Technologies Inc. | Systems and methods for indexing and aggregating data records |
US10628834B1 (en) | 2015-06-16 | 2020-04-21 | Palantir Technologies Inc. | Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces |
US9407652B1 (en) | 2015-06-26 | 2016-08-02 | Palantir Technologies Inc. | Network anomaly detection |
US9418337B1 (en) | 2015-07-21 | 2016-08-16 | Palantir Technologies Inc. | Systems and models for data analytics |
US9392008B1 (en) | 2015-07-23 | 2016-07-12 | Palantir Technologies Inc. | Systems and methods for identifying information related to payment card breaches |
US9977805B1 (en) * | 2017-02-13 | 2018-05-22 | Sas Institute Inc. | Distributed data set indexing |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US9456000B1 (en) | 2015-08-06 | 2016-09-27 | Palantir Technologies Inc. | Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications |
US9600146B2 (en) | 2015-08-17 | 2017-03-21 | Palantir Technologies Inc. | Interactive geospatial map |
US9537880B1 (en) | 2015-08-19 | 2017-01-03 | Palantir Technologies Inc. | Anomalous network monitoring, user behavior detection and database system |
US9671776B1 (en) | 2015-08-20 | 2017-06-06 | Palantir Technologies Inc. | Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account |
US11150917B2 (en) | 2015-08-26 | 2021-10-19 | Palantir Technologies Inc. | System for data aggregation and analysis of data from a plurality of data sources |
US10402385B1 (en) | 2015-08-27 | 2019-09-03 | Palantir Technologies Inc. | Database live reindex |
US9485265B1 (en) | 2015-08-28 | 2016-11-01 | Palantir Technologies Inc. | Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces |
US10706434B1 (en) | 2015-09-01 | 2020-07-07 | Palantir Technologies Inc. | Methods and systems for determining location information |
US9639580B1 (en) | 2015-09-04 | 2017-05-02 | Palantir Technologies, Inc. | Computer-implemented systems and methods for data management and visualization |
US9984428B2 (en) | 2015-09-04 | 2018-05-29 | Palantir Technologies Inc. | Systems and methods for structuring data from unstructured electronic data files |
US9576015B1 (en) | 2015-09-09 | 2017-02-21 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US9454564B1 (en) | 2015-09-09 | 2016-09-27 | Palantir Technologies Inc. | Data integrity checks |
JP6679874B2 (ja) * | 2015-10-09 | 2020-04-15 | 富士通株式会社 | 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法 |
US10044745B1 (en) | 2015-10-12 | 2018-08-07 | Palantir Technologies, Inc. | Systems for computer network security risk assessment including user compromise analysis associated with a network of devices |
US9424669B1 (en) | 2015-10-21 | 2016-08-23 | Palantir Technologies Inc. | Generating graphical representations of event participation flow |
US20170147393A1 (en) * | 2015-11-20 | 2017-05-25 | Sap Se | Cache-efficient system for two-phase processing |
US10210236B2 (en) * | 2015-11-23 | 2019-02-19 | Ab Initio Technology Llc | Storing and retrieving data of a data cube |
US10223429B2 (en) | 2015-12-01 | 2019-03-05 | Palantir Technologies Inc. | Entity data attribution using disparate data sets |
US10706056B1 (en) | 2015-12-02 | 2020-07-07 | Palantir Technologies Inc. | Audit log report generator |
US9514414B1 (en) | 2015-12-11 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for identifying and categorizing electronic documents through machine learning |
US9760556B1 (en) | 2015-12-11 | 2017-09-12 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US10114884B1 (en) | 2015-12-16 | 2018-10-30 | Palantir Technologies Inc. | Systems and methods for attribute analysis of one or more databases |
US9542446B1 (en) | 2015-12-17 | 2017-01-10 | Palantir Technologies, Inc. | Automatic generation of composite datasets based on hierarchical fields |
US10373099B1 (en) | 2015-12-18 | 2019-08-06 | Palantir Technologies Inc. | Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces |
US10958435B2 (en) | 2015-12-21 | 2021-03-23 | Electro Industries/ Gauge Tech | Providing security in an intelligent electronic device |
US10871878B1 (en) | 2015-12-29 | 2020-12-22 | Palantir Technologies Inc. | System log analysis and object user interaction correlation system |
US9792020B1 (en) | 2015-12-30 | 2017-10-17 | Palantir Technologies Inc. | Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data |
US10430263B2 (en) | 2016-02-01 | 2019-10-01 | Electro Industries/Gauge Tech | Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices |
KR101663547B1 (ko) * | 2016-02-26 | 2016-10-07 | 주식회사 아미크 | 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치 |
KR101656750B1 (ko) * | 2016-02-26 | 2016-09-23 | 주식회사 아미크 | 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 |
US10698938B2 (en) | 2016-03-18 | 2020-06-30 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
US9652139B1 (en) | 2016-04-06 | 2017-05-16 | Palantir Technologies Inc. | Graphical representation of an output |
US10068199B1 (en) | 2016-05-13 | 2018-09-04 | Palantir Technologies Inc. | System to catalogue tracking data |
US10417237B2 (en) * | 2016-05-24 | 2019-09-17 | International Business Machines Corporation | Sorting tables in analytical databases |
US10007674B2 (en) | 2016-06-13 | 2018-06-26 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
US10545975B1 (en) | 2016-06-22 | 2020-01-28 | Palantir Technologies Inc. | Visual analysis of data using sequenced dataset reduction |
US10909130B1 (en) | 2016-07-01 | 2021-02-02 | Palantir Technologies Inc. | Graphical user interface for a database system |
US9753935B1 (en) | 2016-08-02 | 2017-09-05 | Palantir Technologies Inc. | Time-series data storage and processing database system |
US10552002B1 (en) | 2016-09-27 | 2020-02-04 | Palantir Technologies Inc. | User interface based variable machine modeling |
US10936559B1 (en) * | 2016-09-28 | 2021-03-02 | Amazon Technologies, Inc. | Strongly-consistent secondary index for a distributed data set |
US10133588B1 (en) | 2016-10-20 | 2018-11-20 | Palantir Technologies Inc. | Transforming instructions for collaborative updates |
US10726507B1 (en) | 2016-11-11 | 2020-07-28 | Palantir Technologies Inc. | Graphical representation of a complex task |
US10318630B1 (en) | 2016-11-21 | 2019-06-11 | Palantir Technologies Inc. | Analysis of large bodies of textual data |
US9842338B1 (en) | 2016-11-21 | 2017-12-12 | Palantir Technologies Inc. | System to identify vulnerable card readers |
US11250425B1 (en) | 2016-11-30 | 2022-02-15 | Palantir Technologies Inc. | Generating a statistic using electronic transaction data |
US10884875B2 (en) | 2016-12-15 | 2021-01-05 | Palantir Technologies Inc. | Incremental backup of computer data files |
GB201621434D0 (en) | 2016-12-16 | 2017-02-01 | Palantir Technologies Inc | Processing sensor logs |
US9886525B1 (en) | 2016-12-16 | 2018-02-06 | Palantir Technologies Inc. | Data item aggregate probability analysis system |
US10249033B1 (en) | 2016-12-20 | 2019-04-02 | Palantir Technologies Inc. | User interface for managing defects |
US10223099B2 (en) | 2016-12-21 | 2019-03-05 | Palantir Technologies Inc. | Systems and methods for peer-to-peer build sharing |
US10728262B1 (en) | 2016-12-21 | 2020-07-28 | Palantir Technologies Inc. | Context-aware network-based malicious activity warning systems |
US10360238B1 (en) | 2016-12-22 | 2019-07-23 | Palantir Technologies Inc. | Database systems and user interfaces for interactive data association, analysis, and presentation |
US11373752B2 (en) | 2016-12-22 | 2022-06-28 | Palantir Technologies Inc. | Detection of misuse of a benefit system |
US10721262B2 (en) | 2016-12-28 | 2020-07-21 | Palantir Technologies Inc. | Resource-centric network cyber attack warning system |
US10762471B1 (en) | 2017-01-09 | 2020-09-01 | Palantir Technologies Inc. | Automating management of integrated workflows based on disparate subsidiary data sources |
US10133621B1 (en) | 2017-01-18 | 2018-11-20 | Palantir Technologies Inc. | Data analysis system to facilitate investigative process |
US10509844B1 (en) | 2017-01-19 | 2019-12-17 | Palantir Technologies Inc. | Network graph parser |
US10515109B2 (en) | 2017-02-15 | 2019-12-24 | Palantir Technologies Inc. | Real-time auditing of industrial equipment condition |
CN108572958B (zh) * | 2017-03-07 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
US10866936B1 (en) | 2017-03-29 | 2020-12-15 | Palantir Technologies Inc. | Model object management and storage system |
US10581954B2 (en) | 2017-03-29 | 2020-03-03 | Palantir Technologies Inc. | Metric collection and aggregation for distributed software services |
US10133783B2 (en) | 2017-04-11 | 2018-11-20 | Palantir Technologies Inc. | Systems and methods for constraint driven database searching |
US10563990B1 (en) | 2017-05-09 | 2020-02-18 | Palantir Technologies Inc. | Event-based route planning |
US10606872B1 (en) | 2017-05-22 | 2020-03-31 | Palantir Technologies Inc. | Graphical user interface for a database system |
US10896097B1 (en) | 2017-05-25 | 2021-01-19 | Palantir Technologies Inc. | Approaches for backup and restoration of integrated databases |
US10795749B1 (en) | 2017-05-31 | 2020-10-06 | Palantir Technologies Inc. | Systems and methods for providing fault analysis user interface |
GB201708818D0 (en) | 2017-06-02 | 2017-07-19 | Palantir Technologies Inc | Systems and methods for retrieving and processing data |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US11940990B1 (en) | 2017-06-16 | 2024-03-26 | Amazon Technologies, Inc. | Global clock values for consistent queries to replicated data |
US11216762B1 (en) | 2017-07-13 | 2022-01-04 | Palantir Technologies Inc. | Automated risk visualization using customer-centric data analysis |
US10430444B1 (en) | 2017-07-24 | 2019-10-01 | Palantir Technologies Inc. | Interactive geospatial map and geospatial visualization systems |
US11334552B2 (en) | 2017-07-31 | 2022-05-17 | Palantir Technologies Inc. | Lightweight redundancy tool for performing transactions |
US10417224B2 (en) | 2017-08-14 | 2019-09-17 | Palantir Technologies Inc. | Time series database processing system |
US10216695B1 (en) | 2017-09-21 | 2019-02-26 | Palantir Technologies Inc. | Database system for time series data storage, processing, and analysis |
US11281726B2 (en) | 2017-12-01 | 2022-03-22 | Palantir Technologies Inc. | System and methods for faster processor comparisons of visual graph features |
US10614069B2 (en) | 2017-12-01 | 2020-04-07 | Palantir Technologies Inc. | Workflow driven database partitioning |
US11016986B2 (en) | 2017-12-04 | 2021-05-25 | Palantir Technologies Inc. | Query-based time-series data display and processing system |
US10877984B1 (en) | 2017-12-07 | 2020-12-29 | Palantir Technologies Inc. | Systems and methods for filtering and visualizing large scale datasets |
US10783162B1 (en) | 2017-12-07 | 2020-09-22 | Palantir Technologies Inc. | Workflow assistant |
US11314721B1 (en) | 2017-12-07 | 2022-04-26 | Palantir Technologies Inc. | User-interactive defect analysis for root cause |
US10769171B1 (en) | 2017-12-07 | 2020-09-08 | Palantir Technologies Inc. | Relationship analysis and mapping for interrelated multi-layered datasets |
US11263382B1 (en) | 2017-12-22 | 2022-03-01 | Palantir Technologies Inc. | Data normalization and irregularity detection system |
CN108108469A (zh) * | 2017-12-29 | 2018-06-01 | 北京奇虎科技有限公司 | 数据迭代方法及装置 |
US11734704B2 (en) | 2018-02-17 | 2023-08-22 | Ei Electronics Llc | Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data |
US11686594B2 (en) | 2018-02-17 | 2023-06-27 | Ei Electronics Llc | Devices, systems and methods for a cloud-based meter management system |
US11754997B2 (en) | 2018-02-17 | 2023-09-12 | Ei Electronics Llc | Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems |
US10877654B1 (en) | 2018-04-03 | 2020-12-29 | Palantir Technologies Inc. | Graphical user interfaces for optimizations |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
US10754946B1 (en) | 2018-05-08 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for implementing a machine learning approach to modeling entity behavior |
GB201807534D0 (en) | 2018-05-09 | 2018-06-20 | Palantir Technologies Inc | Systems and methods for indexing and searching |
US11119630B1 (en) | 2018-06-19 | 2021-09-14 | Palantir Technologies Inc. | Artificial intelligence assisted evaluations and user interface for same |
US11126638B1 (en) | 2018-09-13 | 2021-09-21 | Palantir Technologies Inc. | Data visualization and parsing system |
CN109582666A (zh) * | 2018-09-29 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 数据主键生成方法、装置、电子设备及存储介质 |
US11294928B1 (en) | 2018-10-12 | 2022-04-05 | Palantir Technologies Inc. | System architecture for relating and linking data objects |
EP3963853B1 (en) * | 2019-04-29 | 2023-07-05 | Hitachi Vantara LLC | Optimizing storage and retrieval of compressed data |
US11863589B2 (en) | 2019-06-07 | 2024-01-02 | Ei Electronics Llc | Enterprise security in meters |
US11221999B2 (en) | 2019-06-28 | 2022-01-11 | Salesforce.Com, Inc. | Database key compression |
CN113535710B (zh) * | 2020-04-22 | 2023-12-15 | 中山大学 | 一种搜索方法、装置、终端设备及存储介质 |
AU2021202904A1 (en) * | 2020-05-15 | 2021-12-02 | Vail Systems, Inc. | A data management system using attributed data slices |
US11880385B1 (en) | 2020-09-29 | 2024-01-23 | Amazon Technologies, Inc. | Ordering updates to secondary indexes using conditional operations |
US11250022B1 (en) | 2020-09-29 | 2022-02-15 | Amazon Technologies, Inc. | Offline index builds for database tables |
US11892992B2 (en) * | 2022-01-31 | 2024-02-06 | Salesforce, Inc. | Unique identification management |
CN115905122B (zh) * | 2023-02-20 | 2023-05-30 | 成都九洲电子信息系统股份有限公司 | 一种飞行航迹数据存储及检索系统、方法及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0823865B2 (ja) * | 1987-08-28 | 1996-03-06 | 株式会社日立製作所 | デ−タ検索方法および装置 |
US20020052870A1 (en) | 2000-06-21 | 2002-05-02 | Charlesworth Jason Peter Andrew | Indexing method and apparatus |
US6970866B1 (en) * | 2002-05-31 | 2005-11-29 | Adobe Systems Incorporated | Filter file system |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
JPH0752450B2 (ja) * | 1986-08-01 | 1995-06-05 | 株式会社日立製作所 | 辞書デ−タ検索装置 |
JPH05257774A (ja) * | 1992-03-10 | 1993-10-08 | Fujitsu Ltd | インデックス・レコード番号を圧縮・格納した情報検索装置 |
JPH07287716A (ja) * | 1994-02-22 | 1995-10-31 | Ricoh Co Ltd | 辞書検索装置 |
JP3013221B2 (ja) | 1994-07-11 | 2000-02-28 | 日本製粉マネジメントサービス株式会社 | 製麺用捏ね水の連続製造装置並びに連続製造の捏ね水を用いた製麺方法 |
JP3515810B2 (ja) * | 1994-08-16 | 2004-04-05 | 富士通株式会社 | ソート処理方法および装置 |
US5737593A (en) * | 1995-06-02 | 1998-04-07 | International Business Machines Corporation | System and method for defining shapes with which to mine time sequences in computerized databases |
US6278992B1 (en) * | 1997-03-19 | 2001-08-21 | John Andrew Curtis | Search engine using indexing method for storing and retrieving data |
US6389534B1 (en) * | 1997-06-30 | 2002-05-14 | Taher Elgamal | Cryptographic policy filters and policy control method and apparatus |
JP3692764B2 (ja) * | 1998-02-25 | 2005-09-07 | 株式会社日立製作所 | 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体 |
CA2244626A1 (en) * | 1998-07-31 | 2000-01-31 | Kom Inc. | A hardware and software system |
US6195024B1 (en) * | 1998-12-11 | 2001-02-27 | Realtime Data, Llc | Content independent data compression method and system |
US6658405B1 (en) * | 2000-01-06 | 2003-12-02 | Oracle International Corporation | Indexing key ranges |
GB2406678B (en) * | 2000-11-30 | 2005-05-18 | Coppereye Ltd | Database |
FI20010110A0 (fi) * | 2001-01-18 | 2001-01-18 | Stonesoft Oy | Pakettien lajittelu gateway-verkkoelementissä |
US6925463B2 (en) * | 2002-04-15 | 2005-08-02 | International Business Machines Corporation | Method and system for query processing by combining indexes of multilevel granularity or composition |
AU2003229021C1 (en) * | 2002-05-10 | 2009-09-17 | Oracle International Corporation | Storing and querying relational data in compressed storage format |
DE10228128B4 (de) * | 2002-06-24 | 2004-09-23 | Infineon Technologies Ag | Verfahren zur Speicherung von Daten, Verfahren zum Lesen von Daten, Vorrichtung zur Komprimierung von Daten und Vorrichtung zur Dekomprimierung von Daten |
US8239343B2 (en) * | 2003-05-23 | 2012-08-07 | Bmc Software, Inc. | Database reorganization technique |
CN1595399A (zh) * | 2003-09-08 | 2005-03-16 | 北京语言大学语言信息处理研究所 | 汉语文本中词及词属性自动索引和检索的方法 |
JP3957220B2 (ja) | 2003-11-10 | 2007-08-15 | 株式会社イース | 集計システム |
US20060184563A1 (en) | 2005-02-14 | 2006-08-17 | Potter David H | Method and apparatus for temporal database |
JP4782490B2 (ja) * | 2005-06-29 | 2011-09-28 | 富士通株式会社 | データ集合分割プログラム、データ集合分割装置、およびデータ集合分割方法 |
CN100486345C (zh) * | 2006-04-25 | 2009-05-06 | 沈阳昂立信息技术有限公司 | 基于pc服务器的业务系统 |
US20080015945A1 (en) * | 2006-07-12 | 2008-01-17 | Michael Goldstein | System and Method for Processing Subscriptions and Periodically-Billed Services |
EP2074505A4 (en) | 2006-10-05 | 2010-01-13 | Splunk Inc | CHRONOLOGICAL SERIES SEARCH ENGINE |
US7885932B2 (en) | 2006-11-01 | 2011-02-08 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US8229902B2 (en) | 2006-11-01 | 2012-07-24 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US8189912B2 (en) | 2007-11-24 | 2012-05-29 | International Business Machines Corporation | Efficient histogram storage |
JP4670885B2 (ja) | 2008-03-28 | 2011-04-13 | ブラザー工業株式会社 | 時系列データ管理装置及びプログラム |
US20090287986A1 (en) * | 2008-05-14 | 2009-11-19 | Ab Initio Software Corporation | Managing storage of individually accessible data units |
-
2006
- 2006-11-01 US US11/555,458 patent/US8229902B2/en active Active
-
2007
- 2007-10-29 WO PCT/US2007/082786 patent/WO2008057815A2/en active Application Filing
- 2007-10-29 CN CN201210350046.7A patent/CN102945242B/zh active Active
- 2007-10-29 JP JP2009535408A patent/JP5377318B2/ja active Active
- 2007-10-29 KR KR1020097011230A patent/KR101400816B1/ko active IP Right Grant
- 2007-10-29 CA CA2668136A patent/CA2668136C/en active Active
- 2007-10-29 CA CA2910841A patent/CA2910841C/en active Active
- 2007-10-29 AU AU2007317574A patent/AU2007317574B2/en active Active
- 2007-10-29 EP EP07854474.9A patent/EP2080121B1/en active Active
- 2007-10-29 CN CN2007800409469A patent/CN101553813B/zh active Active
- 2007-10-29 CA CA2910840A patent/CA2910840C/en active Active
- 2007-10-29 CA CA2941074A patent/CA2941074C/en active Active
-
2012
- 2012-07-19 US US13/552,706 patent/US8639674B2/en active Active
-
2013
- 2013-07-22 HK HK13108535.0A patent/HK1181484A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0823865B2 (ja) * | 1987-08-28 | 1996-03-06 | 株式会社日立製作所 | デ−タ検索方法および装置 |
US20020052870A1 (en) | 2000-06-21 | 2002-05-02 | Charlesworth Jason Peter Andrew | Indexing method and apparatus |
US6970866B1 (en) * | 2002-05-31 | 2005-11-29 | Adobe Systems Incorporated | Filter file system |
Non-Patent Citations (1)
Title |
---|
JP S64-058018 A * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102315070B1 (ko) * | 2020-07-31 | 2021-10-20 | 인하대학교 산학협력단 | 에지 컴퓨팅환경에서 키벨류 데이터 오케스트레이션 시스템의 데이터 처리 및 데이터 백업 |
Also Published As
Publication number | Publication date |
---|---|
AU2007317574B2 (en) | 2014-04-24 |
US8229902B2 (en) | 2012-07-24 |
CN102945242B (zh) | 2016-07-06 |
EP2080121A4 (en) | 2016-08-03 |
JP5377318B2 (ja) | 2013-12-25 |
CA2668136C (en) | 2018-10-23 |
WO2008057815A2 (en) | 2008-05-15 |
CA2910841A1 (en) | 2008-05-15 |
EP2080121B1 (en) | 2018-10-17 |
CN101553813A (zh) | 2009-10-07 |
CN101553813B (zh) | 2012-11-14 |
CA2941074A1 (en) | 2008-05-15 |
CA2910841C (en) | 2016-07-05 |
WO2008057815A3 (en) | 2008-10-09 |
HK1181484A1 (zh) | 2013-11-08 |
AU2007317574A1 (en) | 2008-05-15 |
US8639674B2 (en) | 2014-01-28 |
KR20090075885A (ko) | 2009-07-09 |
CA2668136A1 (en) | 2008-05-15 |
EP2080121A2 (en) | 2009-07-22 |
US20080104149A1 (en) | 2008-05-01 |
CN102945242A (zh) | 2013-02-27 |
CA2910840C (en) | 2017-01-24 |
JP2010508606A (ja) | 2010-03-18 |
CA2941074C (en) | 2021-03-23 |
US20120284240A1 (en) | 2012-11-08 |
CA2910840A1 (en) | 2008-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101400816B1 (ko) | 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템 | |
KR102005831B1 (ko) | 범위-기반 검색을 위한 데이터 저장 관리 | |
KR101708261B1 (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
US8214331B2 (en) | Managing storage of individually accessible data units | |
KR101725172B1 (ko) | 개별적으로 액세스 가능한 데이터 유닛의 스토리지 관리 방법 | |
AU2014202186B2 (en) | Managing storage of individually accessible data units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
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: 20170512 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180510 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190516 Year of fee payment: 6 |