KR20040053268A - 고속 논-콘커런시 제어된 데이터베이스 - Google Patents
고속 논-콘커런시 제어된 데이터베이스 Download PDFInfo
- Publication number
- KR20040053268A KR20040053268A KR10-2004-7006695A KR20047006695A KR20040053268A KR 20040053268 A KR20040053268 A KR 20040053268A KR 20047006695 A KR20047006695 A KR 20047006695A KR 20040053268 A KR20040053268 A KR 20040053268A
- Authority
- KR
- South Korea
- Prior art keywords
- search
- database
- pointer
- network
- data
- Prior art date
Links
Classifications
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/959—Network
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/964—Database arrangement
- Y10S707/966—Distributed
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
- Selective Calling Equipment (AREA)
Abstract
본 발명은 대용량 데이터베이스 시스템을 위해 데이터베이스 잠금 또는 접근 제어의 이용 없이 현재 업데이트로 고속 데이터베이스 검색을 위한 방법 및 시스템을 기술한다. 시스템(100)은 버스(101)에 결합된 프로세서; 다수의 2차 메모리 캐쉬(103-1 ... 103-P); 메모리(즉, RAM)(104); 리드 온리 메모리(ROM)(106); 저장 장치(108); 디스플레이(즉, LCD 모니터)(110); 입력 장치(112); 다양한 정보를 나타내는 전기 신호를 송/수신하는 네트워크 인터페이스(114-1 ... 114-O); 와이드 에어리어 네트워크(124); 로칼 에어리어 네트워크(LAN)(122); 다수의 네트워크 컴퓨터(120-1 ... 120-N 프론트-엔드 프로토콜 엔진); 및 데이터베이스에 대한 업데이트 트래픽을 수신하는(142-1 ... 142-S) 멀티플 온-라인 트랜스액션 프로세싱(OLTP) 서버(140-1 ... 140-S)로 구성된다.
Description
우선권 주장/관련 출원에 대한 상호 참조
본 정규 출원은 그의 전체 내용이 참고로 인용되며 2001년 11월 1일에 출원된 미국 임시 특허 출원 제60/330,842호, 및 그의 전체 내용이 참고로 인용되며 2002년 3월 19일에 출원된 미국 임시 특허 출원 제60/365,169호의 이득을 청구한다.
인터넷이 유성과 같은 성장을 계속함에 따라, 적당한 가격 포인트에서의 루트(root) 및 일반 최상위 도메인(generic top level domain, gTLD) 서버를 위한 도메인 네임 서비스(domain name service, DNS) 레졸루션(resolution)의 스케일링(scaling)이 더욱 더 어려워지고 있다. A 루트 서버(즉, a.root-server.net)는 전 세계에 지리적으로 배분된 12개의 보조 루트 서버에 인터넷 네임스페이스 루트 존 화일을 유지시키고 배분하는 반면(즉, b.root-server.net, c.root-server.net 등), 상응하는 gTLD 서버(즉, a.gtld-servers.net, b.gtld-servers.net 등)은 상기 최상위 도메인(예를 들어, *.com, *.net, *.org 등)을 유사하게 배분 및 지원한다. 쿼리(query) 속도에서의 꾸준한 성장과 커플링된 끊임없이 증가하는 볼륨의 데이터는 다음의 수년에 걸쳐 루트 및 gTLD DNS 서비스에 필요한 하드웨어 및 소프트웨어 인프라구조의 전적인 재고를 강요하고 있다. 표준 "바인드(bind)" 소프트웨어 배분의 전형적인 싱글 서버 인스톨레이션은 A 루트의 요구에는 이미 불충분하며 심지어 gTLD 필요성도 곧 충족시킬 수 없을 것이다. 공중 전화망(public switched telephone network, PSTN) 및 인터넷의 컨버젼스(convergence)로, 새롭고도 진보된 서비스가 제공됨에 따라 차세대 지능망(Advanced Intelligent Network, AIN), 보이스 오버 인터넷 프로토콜(Voice Over Internet Protocol, VoIP) 서비스, 지오로케이션(geolocation) 서비스 등을 비롯한 PSTN 및 인터넷을 스패닝하는 PSTN의 SS7 시그널링 네트워크 상의 서비스 컨트롤 포인츠(Service Control Points, SCPs)와 보통은 관련된 특징을 제공하기위한 범용의 고성능 검색 메카니즘에 대한 기회가 존재한다.
본 발명의 개시 내용은 컴퓨터 시스템에 관한 것이다. 더욱 구체적으로는, 본 발명의 개시 내용은 라지(large) 데이터베이스 시스템에 있어서 고속 데이터베이스 검색을 제공함과 동시에 업데이트(update)하는 방법 및 시스템에 관한 것이다.
도 1은 본 발명의 실시예에 따른 시스템 블럭도이다.
도 2는 본 발명의 실시예에 따른, 메시지 데이터 구조를 도시하는 상세 블럭도이다.
도 3은 본 발명의 실시예에 따른, 메시지 레이턴시(latency) 데이터 구조 아키텍쳐(architecture)를 도시하는 상세 블럭도이다.
도 4는 본 발명의 실시예에 따른, 일반적 데이터베이스 아키텍쳐를 도시하는 상세 블럭도이다.
도 5는 본 발명의 실시예에 따른, 일반적 데이터베이스 아키텍쳐를 도시하는 상세 블럭도이다.
도 6은 본 발명의 실시예에 따른, 일반적 데이터베이스 아키텍쳐를 도시하는 상세 블럭도이다.
도 7은 본 발명의 실시예에 따른, 일반적 데이터베이스 아키텍쳐를 도시하는 상세 블럭도이다.
도 8은 본 발명의 실시예에 따른, 일반적 데이터베이스 아키텍쳐를 도시하는 상세 블럭도이다.
도 9는 본 발명의 실시예에 따른, 데이터베이스를 검색하는 동시에 업데이트하는 방법을 도시하는 탑 레벨 흐름도이다.
본 발명의 실시예는 라지 데이터베이스 시스템에 있어서 고속 데이터베이스 검색과 동시에 업데이트를 위한 방법 및 시스템을 제공한다. 구체적으로는, 복수의 검색 쿼리가 네트워크 상에 리시브될 수 있으며, 데이터베이스가 검색될 수 있고, 복수의 검색 리플라이가 네트워크 상에 보내질 수 있다. 데이터베이스를 검색하는 동안, 새로운 정보가 네트워크 상에 리시브될 수 있으며, 복수의 새로운 데이터베이스 엘리먼트가 새로운 정보를 기초로 하여 창조될 수 있고, 더티 비트(dirty bit)가 각각의 새로운 데이터베이스 엘리먼트 내에서 세팅될 수 있다. 각각의 새로운 데이터베이스 엘리먼트에 대한 포인터(pointer)가 싱글 언인터럽트블 오퍼레이션을 이용하여 데이터베이스에 라이팅(writing)될 수 있으며 각각의 새로운 데이터베이스 엘리먼트 내의 더티 비트가 제거(clear)될 수 있다.
도 1은 본 발명의 실시예에 따른 시스템을 도시하는 블럭도이다. 일반적으로, 시스템(100)은 라지 메모리-레지던트(memory-resident) 데이터베이스를 호스트하며, 검색 리퀘스트를 리시브하고 네트워크 상에서 검색 리스폰스를 제공할 수 있다. 예를 들어, 시스템(100)은 대칭형 멀티프로세싱(symmetric, multiprocessing, SMP) 컴퓨터, 예를 들어 미국 뉴욕주 아몽크 소재의 International Business Machines Corporation제의 IBM RS/6000(등록상표) M80 또는 S80, 미국 캘리포니아주 산타 클라라 소재의 Sun Microsystems, Inc.제의 Sun EnterpriseTM 10000 등일 수 있다. 또한 시스템(100)은 멀티-프로세서 퍼스널 컴퓨터, 예를 들어 미국 캘리포니아주 팔로 알토 소재의 Hewlett-Packard Company제의 Compaq ProLiantTM ML530(2개의 Intel Pentium(등록상표) III 866 MHz 프로세서 포함)일 수 있다. 또한 시스템(100)은 멀티프로세싱 오퍼레이팅 시스템, 예를 들어 IBM AIX(등록상표) 4, Sun SolarisTM 8 Operating Environment, Red Hat Linux(등록상표) 6.2 등을 포함할 수 있다. 시스템(100)은 데이터베이스 내로 동시에 인코포레이션될 수 있는 주기적 업데이트를 네트워크(124) 상에서 리시브할수 있다.
실시예에 있어서, 시스템(100)은 버스(101)에 커플링된 하나 이상의 프로세서(102-1)을 포함할 수 있다. 프로세서(102-1)는 내부 메모리 캐시(cache)(예를들어 L1 캐시, 명확함을 위하여 예시하지 않음)를 포함할 수 있다. 보조 메모리 캐시 103-1(예를 들어 L2 캐시, L2/L3 캐시 등)은 프로세서(102-1)와 버스(101) 사이에 존재할 수 있다. 바람직한 실시예에 있어서, 시스템(100)은 버스(101)에 커플링된 복수의 프로세서(102-1 ... 102-P)를 포함할 수 있다. 복수의 보조 메모리 캐시(103-1 ... 103-P)가 복수의 프로세서(102-1 ... 102-P)와 버스(101) 사이에서 또한 존재할 수 있거나(예를 들어 룩-쓰루(look-through) 아키텍쳐) , 이와는 달리 하나 이상의 보조 메모리 캐시(103-1)가 버스(101)에 커플링될 수 있다(예를 들어 룩-어사이드(look-aside) 아키텍쳐). 시스템(100)은 복수의 프로세서(102-1 ... 102-P)에 의해 실행될 정보 및 명령을 저장하기 위한, 버스(101)에 커플링된 메모리(104), 예를 들어 랜덤 악세스 메모리(random access memory, RAM) 등을 포함할 수 있다.
메모리(104)는 예를 들어 인터넷 도메인 네임의 인터넷 어드레스로의 번역, 이름 또는 전화 번호의 네트워크 어드레스로의 번역, 가입자 프로필 데이터의 제공 및 업데이트, 사용자 프레전스(presence) 데이터의 제공 및 업데이트 등을 위한 라지 데이터베이스를 저장할 수 있다. 유리하게는, 데이터베이스의 크기 및 초 당 번역 수 둘 모두가 매우 클 수 있다. 예를 들어 메모리(104)는 64 GB 이상의 RAM을 포함할 수 있으며 500M(즉, 500 x 106) 레코드 도메인 네임 데이터베이스, 500M 레코드 가입자 데이터베이스, 450M 레코드 전화 번호 포터빌리티(portability) 데이터베이스 등을 호스트할 수 있다.
예시적 64-비트 시스템 아키텍쳐, 예를 들어 적어도 64-비트 버스(101) 및 64-비트 메모리(104)에 커플링된 하나 이상의 64-비트 빅-엔디안(big-endian) 프로세서(102-1)를 포함하는 시스템 상에서, 8-바이트 포인터 값은 싱글, 언인터럽트블 오퍼레이션을 이용하여 8-바이트 바운더리(boundary)(즉, 8, 또는 예를 들어 8N으로 나누어질 수 있는 메모리 어드레스) 상의 메모리 어드레스에 라이팅될 수 있다. 일반적으로, 보조 메모리 캐시(103-1)의 존재는 메모리(104)로의 8-바이트 포인터 라이트를 단순히 지연시킬 수 있다. 예를 들어, 일 실시예에 있어서, 보조 메모리 캐시(103-1)는 라이트-쓰루(write-through) 모드에서 오퍼레이팅하는 룩-쓰루 캐시일 수 있어 싱글, 8-바이트 저장 명령이 8 바이트의 데이터를 인터럽션 없이, 그리고 2 시스템 클락(clock) 사이클만큼 프로세서(102-1)에서 메모리(104)로 옮길 수 있다. 다른 실시예에 있어서, 보조 메모리 캐시(103-1)는 라이트-백(wright-back) 모드에서 오퍼레이팅하는 룩-쓰루 캐시일 수 있어 8-바이트 포인터는 보조 메모리 캐시(103-1)에 먼저 라이팅될 수 있고, 그러면 이는 이후에, 예를 들어 8-바이트 포인터가 저장된 캐시 라인이 메모리(104)에 라이팅되는 때에(즉, 예를 들어 특정 캐시 라인, 또는 전체 보조 메모리 캐시가 "플러쉬되는(flushed)" 때에) 8-바이트 포인터를 메모리(104)에 라이팅할 수 있다.
최종적으로, 프로세서(102-1)의 퍼스펙티브 (perspective)로부터, 일단 데이터가 프로세서(102-1)의 아웃풋 핀 상으로 래치(latch)되면, 모든 8 바이트의 데이터는 하나의 연속적인 언인터럽트된 트랜스퍼fh 메모리(104)로 라이팅되는데, 이는 존재할 경우, 보조 메모리 캐시(103-1)의 효과에 의해 지연될 수 있다. 프로세서(102-2 ... 102-P)의 퍼스펙티브로부터, 일단 데이터가 프로세서(102-1)의 아웃풋 핀 상으로 래치되면, 모든 8 바이트의 데이터는 하나의 연속적인 언인터럽트된 트랜스퍼에서 메모리(104)로 라이팅되는데, 이는 보조 메모리 캐시(103-1 ... 103-P)를 크로스하는 캐시 일관성 프로토콜에 의해 강요되며 이는 존재할 경우 메모리(104)로의 라이트를 지연시킬 수 있다.
그러나, 8-바이트 포인터 값이 메모리(104)의 잘못 정렬된 위치, 예를 들어 8-바이트 바운더리를 크로스하는 메모리 어드레스로 라이팅되면, 모든 8 바이트의 데이터는 싱글, 8-바이트 저장 명령을 이용하여서는 프로세서(102-1)로부터 전송될 수 없다. 대신, 프로세서(102-1)는 두가지의 개별적인 별개의 명령을 송신할 수 있다. 예를 들어 메모리 어드레스가 8-바이트 바운더리 이전의 4 바이트에서 시작한다면(예를 들어 8N-4), 첫번째 저장 명령은 가장 의미있는 4 바이트를 메모리(104)로 전송하는 반면(예를 들어 8N-4), 두번째 저장 명령은 가장 덜 의미있는 4 바이트를 메모리(104)로 전송한다(예를 들어 8N). 중요하게는, 상기 두 개별적인 저장 명령 사이에서, 프로세서(102-1)가 인터럽트될 수 있거나, 프로세서(102-1)가 다른 시스템 컴포넌트(예를 들어 프로세서 102-P 등)에 대한 버스(101)의 컨트롤을 느슨하게 할 수 있다. 결과적으로, 메모리(104)에 존재하는 포인터 값은 프로세서(102-1)가 두번째 저장 명령을 완료할 수 있을 때까지 무효가된다. 다른 컴포넌트가 상기 메모리 위치에 대한 싱글, 언인터럽트블 메모리 리드를 시작하면, 무효한 값은 추정가능하게 유효한 것으로 되돌아가게 된다.
이와 유사하게, 새로운 4-바이트 포인터 값은 싱글, 언인터럽트블 오퍼레이션을 이용하여 4로 나누어질 수 있는 메모리 어드레스(예를 들어 4N)에 라이팅될 수 있다. 상기에 논의된 예에 있어서, 4-바이트 포인터 값은 싱글 저장 명령을 이용하여 8N-4 메모리 위치에 라이팅될 수 있음을 알기 바란다. 물론, 4-바이트 포인터 값이 4-바이트 바운더리를 크로스하는 위치(예를 들어 4N - 2)에 라이팅되면, 모든 4 바이트의 데이터는 싱글 저장 명령을 이용하여서는 프로세서(102-1)로부터 전송될 수 없으며, 메모리(104)에 존재하는 포인터 값은 몇몇 시간대에 있어서 무효할 수 있다.
시스템(100)은 프로세서(102-1)에 있어서의 정적 정보 및 명령의 저장을 위한, 버스(101)에 커플링된 리드 온리 메모리(read only memory, ROM)(106), 또는 다른 정적 저장 장치를 또한 포함할 수 있다. 저장 장치(108), 예를 들어 자기 또는 광 디스크는 정보 및 명령의 저장을 위하여 버스(101)에 커플링될 수 있다. 시스템(100)은 버스(101)에 커플링된 인풋 장치(112)(예를 들어 키보드, 마우스, 트랙볼 등) 및 디스플레이(110)(예를 들어 LCD 모니터)를 또한 포함할 수 있다. 시스템(100)은 복수의 네트워크 인터페이스(114-1 ... 114-0)를 포함할 수 있으며, 이는 다양한 타입의 정보를 나타내는 디지탈 데이터 스트림을 운반하는 전기, 전자기 또는 광 시그널을 보내고 받을 수 있다. 실시예에 있어서, 네트워크 인터페이스(114-1)는 버스(101) 및 근거리 통신망(local area network, LAN)(122)에 커플링될 수 있는 반면, 네트워크 인터페이스(114-O)는 버스(101) 및 광역 통신망(wide area network, WAN)(124)에 커플링될 수 있다. 복수의 네트워크 인터페이스(114-1 ... 114-0)는 다양한 네트워크 프로토콜, 예를 들어 Gigabit Ethernet(예를 들어 IEEE Standard 802.3- 2002, 2002년 발표), Fiber Channel(예를 들어 ANSI Standard X.3230- 1994, 1994년 발표) 등을 포함하는 다양한 네트워크 프로토콜을 지원할 수 있다. 복수의 네트워크 컴퓨터(120-1 ... 120-N)는 LAN(122) 및 WAN(124)에 커플링될 수 있다. 일 실시예에 있어서, LAN(122) 및 WAN(124)은 물리적으로 별개인 네트워크일 수 있는 반면, 다른 실시예에 있어서 LAN(122) 및 WAN(124)은 네트워크 게이트웨이 또는 루터(router)(명확하게 하기 위하여 예시하지 않음)를 통한 것일 수 있다. 이와는 달리, LAN(122) 및 WAN(124)은 동일한 네트워크일 수 있다.
상기에서 알 수 있듯이, 시스템(100)은 DNS 레졸루션 서비스를 제공할 수 있다. DNS 레졸루션 실시예에 있어서, DNS 레졸루션 서비스는 일반적으로 네트워크 트랜스포트 및 데이터 룩-업(look-up) 펑션 사이에서 분할될 수 있다. 예를 들어, 시스템(100)은 라지 데이터 세트 상에서의 데이터 룩-업에 최적화된 백-엔드 룩-업 엔진(LUE)일 수 있는 반면, 복수의 네트워크 컴퓨터(120-1 ... 120-N)는 네트워크 프로세싱 및 트랜스포트에 최적화된 복수의 프런트-엔드 프로토콜 엔진(PEs)일 수있다. LUE는 메모리(104)에 전체 DNS 레코드 세트를 저장하여 고속의 고-처리율 검색 및 업데이트를 돕는 강력한 멀티프로세서 서버일 수 있다. 대안적인 실시예에 있어서, 고속의 고-처리율 검색 및 업데이트를 돕기 위하여 DNS 레졸루션 서비스는 각각이 메모리에 전체 DNS 레코드 세트의 서브세트를 저장하는 일련의 강력한 멀티프로세서 서버, 또는 LUE에 의해 제공될 수 있다.
역으로, 복수의 PE는 효율적인 멀티태스킹 오퍼레이팅 시스템(예를 들어 Red Hat Linuxe(등록상표) 6.2)을 러닝하는 일반적인 로-프로필(low-profile)의 PC-기반의 기계일 수 있는데, 이는 DNS 레졸루션에 이용가능한 자원을 최대화하기 위하여 LUE 상에서의 네트워크 프로세싱 트랜스포트 로드를 최소화한다. PE는 와이어-라인(wire-line) DNS 프로토콜의 뉘앙스를 핸들링하고, 무효한 DNS 쿼리에 응답하고 유효한 DNS 쿼리를 LAN(122) 상의 LUE에 멀티플렉스(multiplex)할 수 있다. 싱글 LUE에 있어서의 PE의 수는 예를 들어 특정 시스템의 실행 특성 및 초 당 프로세싱될 DNS 쿼리의 수에 의해 결정될 수 있다. 다른 측정 기준도 적절한 맵핑 비 및 거동의 결정에 이용될 수 있다.
일반적으로, 다른 큰 볼륨의 쿼리 기반의 실시예, 예를 들어 전화 번호 레졸루션, SS7 시그널링 프로세싱, 지오로케이션(geolocation) 결정, 전화 번호-대-가입자 맵핑, 가입자 위치 및 프레전스 결정 등을 포함하는 실시예가 지원될 수 있다.
실시예에 있어서, 중앙 온라인 트랜스액션 프로세싱(on-line transaction processing, OLTP) 서버(140-1)은 WAN(124)에 커플링되며 다양한 소스로부터 데이터베이스(142-1)에 대한 부가(addition), 변형(modification) 및 삭제(즉, 업데이트 트래픽)을 리시브할 수 있다. OLTP 서버(140-1)는 업데이트를 시스템(100)으로 보낼 수 있는데, 이는 WAN(124) 상의 데이터베이스(142-1)의 로컬 카피(local copy)를 포함한다. OLTP 서버(140-1)는 예를 들어 하이퍼텍스트 전송 프로토콜(HyperText Transmission Protocol, HTTP), 레지스트리 레지스트라 프로토콜(Registry Registrar Protocol, RRP), 익스텐스블 프로비져닝 프로토콜(Extensible Provisioning Protocol, EPP), 서비스 매니지먼트 시스템(Service Management System)/800 메카나이즈드 제네릭 인터페이스(Mechanized Generic Interface, MGI), 및 기타 온-라인 프로비져닝 프로토콜을 포함하는 다양한 포맷 및 프로토콜에 있어서의 업데이트 트래픽 프로세싱에 최적화될 수 있다. 리드-온리 LUE의 컨스텔레이션(constellation)은 허브(hub) 및 스포크(spoke) 아키텍쳐에 배치되어 OLTP 서버(140-1)로부터의 하이-볼륨의 인크리멘탈(incremental) 업데이트와 결합되는 고속 검색 능력을 제공할 수 있다.
대안적인 실시예에 있어서, 데이터는 각각이 WAN(124)에 커플링될 수 있는 다중 OLTP 서버(140-1 ... 140-S) 상에 분배될 수 있다. OLTP 서버(140-1 ... 140-S)는 다양한 소스로부터의 그의 각각의 데이터베이스(142-1 ... 142-S)에 대한부가, 변형, 및 삭제(즉, 업데이트 트래픽)을 리시브할 수 있다(명확하게 하기 위하여 예시하지 않음). OLTP 서버(140-1 ... 140-S)는 시스템(100)에 업데이트를 보낼 수 있는데, 이는 WAN(124) 상의 데이터베이스(142-1 ... 142-S), 기타 다이내믹하게 생성되는 데이터 등의 카피를 포함할 수 있다. 예를 들어 지오로케이션 실시예에 있어서, OLTP 서버(140-1 ... 140-S)는 리모트 센서 그룹으로부터 업데이트 트래픽을 리시브할 수 있다. 다른 대안적인 실시예에 있어서, 복수의 네트워크 컴퓨터(120-1 ... 120-N)도 WAN(124) 또는 LAN(122) 상의 다양한 소스로부터의 부가, 변형, 및 삭제(즉, 업데이트 트래픽)을 리시브할 수 있다. 이러한 실시예에 있어서, 복수의 네트워크 컴퓨터(120-1 ... 120-N)는 업데이트, 및 쿼리를 시스템(100)에 보낼 수 있다.
DNS 레졸루션 실시예에 있어서, 각각의 PE(예를 들어 복수의 네트워크 컴퓨터(120-1 ... 120-N 각각)는 광역 통신망(예를 들어 WAN(124)) 상에 리시브된 여러 DNS 쿼리 메시지를 싱글 리퀘스트 수퍼패킷(Request SuperPacket) 내로 멀티플렉스하거나 조합하고, 리퀘스트 수퍼패킷을 근거리 통신망(예를 들어 LAN(122)) 상의 LUE(예를 들어 시스템(100))로 보낸다. LUE는 여러 DNS 쿼리 메시지 리플라이를 싱글 리스판스 수퍼패킷(Response SuperPacket)내로 멀티플렉스하거나 조합하고 리스판스 수퍼패킷을 근거리 통신망 상에서 적절한 PE로 보낼 수 있다. 일반적으로, 리퀘스트 또는 리스판스 수퍼패킷의 최대 크기는 물리적인 네트워크층(예를 들어 Gigabit Ethernet)의 최대 전송 단위(maximum transmission unit, MTU)에 의해 제한받을 수 있다. 예를 들어 100 바이트 및 200 바이트 미만의 전형적인 DNS 쿼리 및 리플라이 메시지 크기는 각각 30 이상의 쿼리이 싱글 리퀘스트 수퍼패킷 내로 다중 전송되게 하고, 15 이상의 리플라이가 싱글 리스판스 수퍼패킷 내로 다중 전송되게 한다. 그러나, 더 작은 수의 쿼리(예를 들어 20 쿼리)는 리스폰스(예를 들어 10 리플라이) 상에서의 MTU 오버플로우를 회피하기 위하여 싱글 리퀘스트 수퍼패킷에 포함될 수 있다. 더 큰 MTU 크기에 있어서, 다중 전송되는 쿼리 및 리플라이의 수는 그에 따라 증가될 수 있다.
각각의 멀티태스킹 PE는 각각 DNS 쿼리 및 리플라이를 매니지하기 위하여 인바운드 쓰레드(inbound thread) 및 아웃바운드(outbound) 쓰레드를 포함할 수 있다. 예를 들어 인바운드 쓰레드는 광역 통신망 상에서 리시브되는 인커밍 DNS 쿼리 패킷으로부터의 DNS 쿼리 컴포넌트를 미정렬시키고 수밀리세컨드의 쿼리를 싱글 리퀘스트 수퍼패킷 내로 다중 전송할 수 있다. 이어서 인바운드 쓰레드는 리퀘스트 수퍼패킷을 근거리 통신망 상에서 LUE로 보낼 수 있다. 역으로, 아웃바운드 쓰레드는 LUE로부터 리스판스 수퍼패킷을 리시브하고, 그 안에 포함된 리플라이를 디멀티플렉스하고, 다양한 필드를 유효한 DNS 리플라이 내로 정렬시킬 수 있는데, 이어서 이는 광역 통신망 상으로 전송될 수 있다. 상기에서 알 수 있듯이, 일반적으로 다른 큰 볼륨의 쿼리-기반 실시예가 지원될 수 있다.
실시예에 있어서, 리퀘스트 수퍼패킷은 각각의 DNS 쿼리와 관련된 스테이트정보, 예를 들어 소스 어드레스, 프로토콜 타입 등을 또한 포함할 수 있다. LUE는 리스판스 수퍼패킷 내에 결부된 DNS 리플라이 및 스테이트 정보를 포함할 수 있다. 이어서 각각의 PE는 LUE로부터 전송된 정보를 이용하여 유효한 DNS 리플라이 메시지를 컨스트럭션 및 리턴할 수 있다. 결과적으로, 각각의 PE는 유리하게는 스테이트레스(stateless) 기계로 작동할 수 있는데, 즉, 유효한 DNS 리플라이는 리스판스 수퍼패킷에 포함된 정보로부터 형성될 수 있다. 일반적으로, LUE는 인커밍 수퍼패킷이 생기는 PE로 리스판스 수퍼패킷을 리턴할 수 있으나, 다른 변화도 명백하게 가능하다.
대안적인 실시예에 있어서, 각각의 PE는 각각의 DNS 쿼리와 관련된 스테이트 정보를 유지하며 리퀘스트 수퍼패킷 내의 스테이트 정보에 대한 레퍼런스(reference), 또는 핸들을 포함할 수 있 수 있다. LUE는 스테이트 정보 레퍼런스, 및 리스판스 수퍼패킷 내의 관련된 DNS 리플라이를 포함할 수 있다. 그래서 각각의 PE는 LUE로부터 전송된 스테이트 정보 레퍼런스, 및 그 위에 유지된 스테이트 정보를 이용하여 유효한 DNS 리플라이 메시지를 컨스트럭션 및 리턴할 수 있다. 이러한 실시예에 있어서, LUE는 인커밍 수퍼패킷이 생기는 PE로 리스판스 수퍼패킷을 리턴할 수 있다.
도 2는 본 발명의 실시예에 따른 메시지 데이터 구조를 도시하는 상세 블럭도이다. 일반적으로, 메시지(200)은 복수의 시퀀스 넘버(211-1 ... 211-S) 및 복수의 메시지 카운트(212-1 ... 212-S)와, 데이터 페이로드(payload)(215)를 가지는 헤더(210)을 포함할 수 있다.
DNS 레졸루션 실시예에 있어서, 메시지(200)은 리퀘스트 수퍼패킷 및 리스판스 수퍼패킷에 사용될 수 있다. 예를 들어 리퀘스트 수퍼패킷(220)은 복수의 시퀀스 넘버(231-1 ... 231-S) 및 복수의 메시지 카운트(232-1 ... 232-S)와, 소정 시간, 예를 들어 수밀리세컨드에 걸쳐 PE에 의해 축적되는 다수의 DNS 쿼리(236-1 ... 236-Q)을 가지는 데이터 페이로드(235)를 포함할 수 있다. 일 실시예에 있어서, 각각의 DNS 쿼리(236-1 ... 236-Q)은 스테이트 정보를 포함할 수 있는 반면, 대안적인 실시예에 있어서는, 각각의 DNS 쿼리(236-1 ... 236-Q)은 스테이트 정보에 대한 핸들을 포함할 수 있다.
유사하게, 응답 수퍼패킷(240)은 복수의 시퀀스 넘버(251-1...251-S)와 복수의 메시지 카운트(252-1...252-S)를 갖는 헤더(250), 및 리퀘스트 수퍼패킷(220) 내에 포함되는 다수의 DNS 쿼리에 대략 대응하는 다수의 DNS 리플라이(256-1...256-R)을 갖는 데이터 페이로드(255)를 포함할 수 있다. 일 실시예에서, 각 DNS 리플라이(256-1...256-R)은 대응 DNS 쿼리와 관련되는 상태 정보를 포함하는 반면, 다른 실시예에서, 각 DNS 리플라이(256-1, 256-R)는 대응 DNS 쿼리와 관련되는 상태 정보의 핸들을 포함할 수 있다. 가끔, 대응 DNS 리플라이의 전체 크기는 응답 수퍼패킷(240)의 데이터 페이로드(255)의 크기를 초과할 수 있다. 이 오버플로는 예를 들어, 단일의 리플라이, 즉 리퀘스트 수퍼패킷(220) 내에 포함되는 마지막 쿼리와 관련되는 리플라이로 제한될 수 있다. 단일의 리플라이만을 포함하는 부가의 응답 수퍼패킷(220)을 보내는 것 보다는, 이 오버플로우 리플라이를 다음 리퀘스트 수퍼패킷에 대응하는 다음 응답 수퍼패킷(240)에 포함시키는 것이 바람직하다. 헤더(250)는 오버플로우 조건의 범위를 결정하기에 적당한 정보를 포함하는 것이 바람직하다. 피크 처리 조건 하에서는, 하나 이상의 리플라이가 다음 응답 수퍼패킷으로 오버플로될 수 있다.
예를 들어, 응답 수퍼패킷(240)에서, 헤더(25)는 두 쌍의 상보 필드로 그룹화되는 적어도 두 개의 시퀀스 넘버(251-1 및 251-2) 및 적어도 두 개의 메시지 카운트(252-1 및 252-2)를 포함할 수 있다. "S"개의 시퀀스 넘버와 메시지 카운트 쌍이 있으면, 통상 S는 예를 들어, 2, 3, 4, 등과 같은 작은 수이다. 따라서, 헤더(250)는 메시지 카운트(252-1)와 쌍을 이루는 시퀀스 넘버(251-1), 메시지 카운트(252-2)와 쌍을 이루는 시퀀스 넘버(251-2) 등을 포함한다. 일반적으로 메시지 카운트(252-1)는 시퀀스 넘버(251-1)와 관련되는 데이터 페이로드(255) 내에 포함되는 리플라이의 개수를 반영할 수 있다.
다른 특정 실시예에서, 리퀘스트 수퍼패킷(22)의 데이터 페이로드(235)는 7개의 DNS 쿼리를 포함한다 (도 2에서 도시함). 일 실시예에서, 시퀀스 넘버(231-1)는 고유의 값 (예를 들어, 1024)으로 세트될 수 있고 메시지 카운트(232-1)는 7로 세트될 수 있는 반면, 시퀀스 넘버(231-2) 및 메시지 카운트(232-2)는 제로로 세트될 수 있다. 다른 실시예에서, 헤더(230)는 오직 하나의 시퀀스 넘버 및 하나의 메시지 카운트를 포함하는데, 예를 들어, 넘버(231-1) 및 메시지 카운트(232-1)를 각각 1024와 7로 세트할 수 있다. 통상, 리퀘스트 수퍼패킷(220)은 특정 시퀀스 넘버와 관련되는 모든 쿼리를 포함할 수 있다.
응답 수퍼패킷(240)의 데이터 페이로드(255)는 7개의 대응 DNS 리플라이를 포함할 수 있다 (도 2에 도시함). 이 예에서, 헤더(250)는 리퀘스트 수퍼패킷(220)과 유사한 정보를 포함하는데, 즉 시퀀스 넘버(251-1)는 동일한 고유의 값 (즉, 1024)으로 세트되고, 메시지 카운트(252-1)는 7로 세트되고, 두 시퀀스 넘버(252-2) 및 메시지 카운트(252-2)는 제로로 세트된다. 그러나, 다른 실시예에서는, 응답 수퍼패킷(240)의 데이터 페이로드(255)는 오직 5개의 대응 DNS 리플라이를 포함할 수 있으며, 대신에 메시지 카운트(252-1)는 5로 세트될 수 있다. 시퀀스 넘버(1024)와 관련되는 나머지 두 응답은 다음 응답 수퍼패킷(240) 내에 포함될 수 있다.
다음 리퀘스트 수퍼패킷(240)은 다른 시퀀스 넘버 (예를 들어, 1025) 및 적어도 하나의 DNS 쿼리를 포함할 수 있으므로, 다음 응답 수퍼패킷(240)은 1024 시퀀스 넘버와 관련되는 두 개의 이전 응답 뿐만 아니라, 1025 시퀀스 넘버와 관련되는 적어도 하나의 리플라이를 포함할 수 있다. 이 예에서, 다음 응답수퍼패킷(240)의 헤더(250)은 1024로 세트된 시퀀스 넘버(251-1), 2로 세트된 메시지 카운트(252-1), 1025로 세트된 시퀀스 넘버(251-2) 및 일로 세트된 메시지 카운트(252-2)를 포함할 수 있다. 따라서, 응답 수퍼패킷(240)은 두 다른 리퀘스트 수퍼패킷 내에 포함된 세 개의 쿼리와 관련되는 총 세 개의 리플라이를 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 메시지 레이턴시 데이터 구조 아키텍쳐를 설명하는 상세 블럭도이다. 메시지 레이턴시 데이터 구조(300)는 일반적으로 메시지(200)의 송신 및 수신과 관련되는 정보를 포함할 수 있다. DNS 리솔루션 실시예에서, 메시지 레이턴시 데이터 구조(300)는 리퀘스트 수퍼패킷과 응답 수퍼패킷에 대한 레이턴시 정보를 포함할 수 있으며; 이 레이턴시 정보는 시퀀스 넘버 값 (예를 들어, 인덱스(301))에 따라 인덱스된 테이블 포맷으로 체계화된다. 예를 들어, 메시지 레이턴시 데이터 구조(300)는 일반적으로, 테이블 엘리먼트(310, 320, 및 330)으로 나타낸 바와 같이, 고유의 시퀀스 넘버의 총수와 동일한 다수의 로우 N을 포함할 수 있다. 일 실시예에서, 수퍼패킷 헤더 시퀀스 넘버는 길이가 2바이트이고 제로에서 216-1 (즉, 65,535)까지 고유의 시퀀스 넘버의 범위를 정의할 수 있다. 이 경우, N은 65,536과 동일하다. 레이턴시 정보는 리퀘스트 타임스탬프(302), 리퀘스트 쿼리 카운트(303), 응답 타임스탬프(304), 응답 리플라이 카운트(305), 및 응답 메시지 카운트(306)을 포함할 수 있다. 다른 실시예에서, 레이턴시 정보는 또한 초기 응답 타임스탬프(도시 생략)을 포함할 수 있다.
일 예에서, 테이블 엘리먼트(320)은 1024인 단일의 시퀀스 넘버(231-1)을 가지는 리퀘스트 수퍼패킷(220)에 대한 레이턴시 정보를 설명한다. 리퀘스트 타임스탬프(302)는 특정 리퀘스트 수퍼패킷이 LUE에 송신될 때를 나타낸다. 리퀘스트 쿼리 카운트(303)는 얼마나 많은 쿼리가 특정 리퀘스트 수퍼패킷 내에 포함되는지를 나타낸다. 응답 타임스탬프(304)는 1024인 시퀀스 넘버를 가지는 응답 수퍼패킷이 PE (예를 들어, 네트워크 컴퓨터(120-N)에 수신될 때를 나타내며 하나 이상의 응답 수퍼패킷이 PE에 수신되는 경우 갱신될 수 있다. 응답 리플라이 카운트(305)는 이 시퀀스 넘버(즉, 1024)와 관련되는 모든 수신 응답 수퍼패킷 내에 포함되는 리플라이의 총수를 나타낼 수 있다. 응답 메시지 카운트(306)는 이 시퀀스 넘버 (즉, 1024)를 갖는 응답 수퍼패킷이 얼마나 많이 PE에 도달하는지를 나타낸다. 특정 리퀘스트 수퍼패킷 내에 포함되는 쿼리의 리플라이는 몇 개의 응답 수퍼패킷 위에서 스플릿되고, 이 경우 응답 타임스탬프(304), 응답 리플라이 카운트(305), 및 응답 메시지 카운트(306)가 부가의 응답 수퍼패킷 각각이 수신됨에 따라 갱신되게 된다. 다른 실시예에서는 초기 응답 타임스탬프는 이 시퀀스 넘버(즉, 1024)에 대한 리플라이를 포함하는 제1 응답 수퍼패킷이 PE에서 수신될 때를 나타낸다. 이 실시예에서, 응답 타임스탬프(304)는 부가의 (즉, 제2 및 후속) 응답 수퍼패킷이 수신될 때 갱신되게 된다.
여러 중요한 레이턴시 메트릭스는 메시지 레이턴시 데이터 구조(300) 내에포함되는 레이턴시 정보로부터 결정될 수 있다. 예를 들어, 임의의 인덱스(301) (즉, 시퀀스 넘버)에 대한 리퀘스트 쿼리 카운트(303)와 응답 리플라이 카운트(305) 간의 단순한 크로스-체킹이 다수의 손실 리플라이를 나타낸다. 이 차이는 LUE에 의해 불가해하게 드롭된 쿼리의 수를 나타낼 수 있다. 리퀘스트 타임스탬프(302) 및 응답 타임스탬프(304)을 비교하는 것은 특정 PE/LUE 조합이 현재 메시지 로드 하에서 얼마나 잘 실행되고 있는지를 나타낼 수 있다. 현재 리퀘스트 수퍼패킷 시퀀스 넘버와 현재 응답 수퍼 패킷 시퀀스 넘버 간의 차이는 LUE의 응답 성능과 관련될 수 있다: 예를 들어, 차이가 클수록 성능은 떨어진다. 응답 메시지 카운트(306)는 얼마나 많은 응답 수퍼패킷이 각 리퀘스트 수퍼패킷에 이용되고 있는지를 나타낼 수 있으며, DNS 리솔루션 트래픽 분석에 있어 중요하다. PE들과 LUE 간에서 이동하는 쿼리와 리플라이의 레이턴시가 증가함에 따라, PE는 시스템에 의해 처리되는 DNS 쿼리 패킷의 수를 줄일 수 있다.
일반적으로, LUE는 인입하는 멀티플렉스된 리퀘스트 수퍼패킷에 대해 멀티드레드 (multi-threaded) 룩-업을 실행할 수 있으며, 인출하는 멀티플렉스된 리퀘스트 수퍼패킷에 리플라이를 결합시킬 수 있다. 예를 들어, LUE는 각 활성 PE에 대해 하나의 검색 드레드, 또는 프로세스를 만들고, 이 PE로부터의 모든 인입하는 리퀘스트 수퍼패킷을 그 검색 드레드로 라우트한다. LUE는 PE의 검색 드레드와의 연관을 제어하기 위해, 매니저 드레드 또는 프로세스 뿐만 아니라, 메모리(104)에 위치된 데이터베이스를 갱신하기 위해 갱신 드레드 또는 프로세스를 만든다. 각 검색 드레드는 인입하는 리퀘스트 수퍼패킷으로부터 검색 쿼리를 추출하고, 여러 검색을 실행하고, 검색 리플라이를 포함하는 인출 응답 수퍼패킷을 구성하여 이 수퍼패킷을 적당한 PE에 보낸다. 갱신 드레드는 OLTP(140-1)로부터 데이터베이스의 갱신을 수신하고, 새로운 데이터를 데이터베이스에 결합시킨다. 다른 실시예에서, 복수의 네트워크 컴퓨터(120-1..120-N)는 시스템(100)에 갱신을 보낸다. 이들 갱신을 예를 들어, 인입하는 리퀘스트 수퍼패킷 메시지 스트림 내에 포함시킬 수 있다.
따라서, 수퍼패킷 프로토콜 덕분에, LUE는 네트워크 프로세싱시 그 프로세서 용량 중 15% 미만을 소모하므로, 검색 쿼리 수율을 급격히 상승시킬 수 있다. 일 실시예에서, IBM? 8-way M80은 180k 내지 220k 초당 쿼리 (qps)의 검색률을 유지하는 반면, IBM? 24-way S80은 400k 내지 500k qps를 유지할 수 있다. 검색률을 배가, 즉 각각 500k 내지 1M qps로 하는 것은 2배의 하드웨어, 즉 예를 들어 부속물 PE들을 갖는 두 개의 LEU를 필요로 하게 된다. 다른 실시예서, 듀얼 펜티엄? 6.2는 약 100K/sec로 갱신률을 유지할 수 있다. 물론, 하드웨어 성능의 증가는 본 발명의 실시예에 관련된 검색 및 갱신률을 증가시키며, 제조자가 이들 멀티프로세서 컴퓨터를 고속 실행 머신으로 교체하면, 예를 들어, 유지된 검색 및 갱신률이 비례하여 증가할 수 있다. 일반적으로, 시스템(100)은 클라이언트나 서버 아키텍쳐에 제한되지 않으며, 본 발명의 실시예는 하드웨어 및/또는 소프트웨어의 특정 조합에 제한되지 않는다.
도 4는 본 발명의 일 실시예에 따른 일반 데이터베이스 아키텍쳐를 설명하는 블럭도이다. 이 실시예에서, 데이터베이스(400)는 적어도 한 테이블이나 그룹의 데이터베이스 레코드(401), 및 이 그룹의 데이터베이스 레코드(401) 내의 개별의 레코드의 포인터 (인덱스, 직접 바이트-오프세트 등)를 갖는 적어도 하나의 대응 검색 인덱스(402)를 포함한다. 예를 들어, 포인터(405)는 데이터베이스 레코드(410)를 참조한다.
일 실시예에서, 데이터베이스(400)은 이 테이블이나 그룹의 데이터베이스(401)에의 포인터 (인덱스, 직접 바이트-오프세트 등)를 갖는 검색 인덱스로서 적어도 하나의 해시 테이블(403)을 포함할 수 있다. 해시 기능은 검색키를 정수값으로 맵한 다음에 해시 테이블(403)에의 인덱스로 이용될 수 있다. 하나 이상의 검색 키가 단일의 정수값으로 맵되기 때문에, 해시 버킷 (bucket)이 하나로 링크된 리스트의 해시 체인 포인터를 이용하여 형성될 수 있다. 예를 들어, 해시 테이블(403) 내의 각 엔트리는 해시 버킷의 제1 엘리먼트의 포인터를 포함하며, 해시 버킷의 각 엘리먼트는 링크된 리스트의 다음 엘리먼트 또는 데이터베이스 레코드의 해시 체인 포인터를 포함한다. 해시 체인 포인터는 이들 엘리먼트 또는 데이터베이스 레코드에 대해서만 필요하고, 이들은 해시 버킷의 후속 엘리먼트를 참조한다.
해시 테이블(403)은 개별의 데이터베이스 레코드(401)의 8바이트 포인터의 어레이를 포함한다. 예를 들어, 해시 테이블(403) 내의 해시 포인터(404)는 해시 버킷 내의 제1 엘리먼트로서 데이터베이스 레코드(420)를 참조한다. 데이터베이스 레코드(420)는 해시 버킷에, 다음 엘리먼트나 데이터베이스 레코드를 참조할 수 있는 해시 체인 포인터(424)를 포함한다. 데이터베이스 레코드(420)는 또한 데이터 길이(421) 및 관련되는 고정 또는 가변 길이 데이터(422)를 포함하다. 일 실시예에서는, 데이터(422)의 종료를 나타내는 널(null) 문자(423)를 포함한다. 부가하여, 데이터베이스 레코드(420)는 이 그룹의 데이터베이스 레코드(401) 내 또는 다른 테이블이나 그룹의 데이터베이스 레코드 (도시 생략) 내의 다른 데이터베이스 레코드를 참조할 수 있으며, 여기에는 부가의 데이터가 위치되어 있다.
시스템(100)은 임의의 검색 용어나 키에 대해 이 데이터 구조 아키텍쳐를 검색하기 위해 여러 공지의 알고리즘을 이용할 수 있다. 일반적으로, 데이터베이스(400)는 복수의 프로세서(102-1...102-P) 중 적어도 하나에서 실행하는 다수의 검색 프로세스 또는 드레드에 의해 검색될 수 있다. 그러나, 데이터베이스(400)의 변형은 검색 드레드가 데이터베이스(400) 내의 정보를 부가, 변형 또는 삭제하는 데에 필요한 주기 동안 데이터베이스(400)를 억세스하지 못하도록 하지 않으면 갱신 드레드에 의해 일체적으로 실행되지 않을 수 있다. 예를 들어, 데이터베이스(400) 내의 데이터베이스 레코드(430)을 변형하기 위해서, 이 그룹의 데이터베이스 레코드(401)는 갱신 드레드가 데이터베이스 레코드(430) 내의 정보를변형하고 있는 동안 검색 드레드가 데이터베이스(400)을 억세스하지 못하도록 하기 위해서 갱신 드레드에 의해 록될 수 있다. 검색 억세스를 막도록 데이터베이스(400)를 록하기 위한 많은 공지의 기구 중에는, 스핀-록, 세마포어(semaphores), 뮤텍스 (mutexes) 등의 이용을 포함한다. 부가하여, 여러 오프-더-셀프 (off-the-shelf) 상용 데이터베이스는 데이터베이스(400)의 전부나 일부를 록하기 위해 특정 명령, 예를 들어, 캘리포니아, 레드우드 쇼우 소재의 오라클사에서 제조한 오라클 8 데이터베이스의 록 테이블 명령을 제공한다.
도 5는 본 발명의 다른 실시예에 따른 일반 데이터베이스 아키텍쳐를 설명하는 블럭도이다. 이 실시예에서, 데이터베이스(500)는 매우 최적화된 리드-온리, 마스터 스냅샷 파일(510) 및 증대하는 룩-어사이드(look-aside) 파일(520)을 포함한다. 마스터 스냅샷 파일(510)은 적어도 하나의 테이블이나 그룹의 데이터베이스 레코드(511) 및 이 그룹의 데이터베이스 레코드(511) 내의 개별의 레코드의 포인터 (인덱스, 디렉트 바이트-오프세트 등)을 갖는 적어도 하나의 대응하는 검색 인덱스(512)를 포함한다. 다르게는, 마스터 스냅샷 파일(510)은 이 테이블이나 그룹의 데이터베이스 레코드(511)의 포인터 (인덱스, 디렉트 바이트-오프세트 등)을 갖는 검색 인덱스로서 적어도 하나의 해시 테이블(513)을 포함한다. 유사하게, 룩-어사이드 파일(520)은 데이터베이스 부가 레코드(521) 및 데이터베이스 삭제 레코드(531)을 포함하는, 적어도 두 테이블이나 그룹의 데이터베이스 레코드를 포함한다. 대응하는 검색 인덱스(522 및 532)에는 데이터베이스 부가 레코드(521) 및데이터베이스 삭제 레코드(531) 내의 개별의 레코드의 포인터 (인덱스, 디렉트 바이트-오프세트 등)가 제공된다. 다르게, 룩-어사이드 파일(520)은 각각 데이터베이스 부가 레코드(521) 및 데이터베이스 삭제 레코드(531)에의 포인터 (인덱스, 디렉트 바이트-오프세트 등)를 갖는 검색 인덱스로서 해시 테이블(523 및 523)을 포함할 수 있다.
시스템(100)은 임의의 검색 용어나 키에 대해 이 데이터 구조 아키텍쳐를 검색하기 위해 여러 공지의 알고리즘을 이용할 수 있다. 통상의 예에서, 룩-어사이드 파일(520)은 데이터에 대한 모든 최근 변경을 포함하고, 리드-온리 마스터 스냅샷 파일(510) 이전에 검색될 수 있다. 검색 키가 룩-어사이드 파일(520)에서 찾아지면, 응답은 스냅샷 파일(510)을 억세스하지 않고 리턴되지만, 키가 찾아지지 않으면 스냅샷 파일(510)이 검색될 수 있다. 그러나, 룩-어사이드 파일(520)이 스냅샷 파일(510)을 갖는 메모리(104)에 더이상 적합하지 않으면, 검색 쿼리율은 예를 들어, 10 내지 50 그 이상의 계수로 급격히 떨어지게 된다. 따라서, 검색 쿼리율이 떨어지는 것을 방지하거나 최소화하기 위해서, 스냅샷 파일(510)은 룩-어사이드 파일(520) 내에 포함되는 부가, 삭제 및 변형 모두와 결합하여, 주기적으로 갱신되거나 재형성될 수 있다.
스냅샷 파일(510) 내의 데이터는 물리적으로 변경되는 것이 아니라 논리적으로 부가, 변형 또는 삭제된다. 예를 들어, 스냅샷 파일(510) 내의 데이터는 데이터베이스 삭제 레코드(531) 내의 대응 삭제 레코드를 형성하고 삭제 레코드의 포인터를 해시 테이블(533) 내의 적당한 위치에 기록함으로써, 삭제되거나 논리적으로 "빠뜨림(forgotten)"될 수 있다. 스냅샷 파일(510) 내의 데이터는 스냅샷 파일(510)로부터의 데이터 레코드를 데이터베이스 부가 레코드(521) 내의 새로운 데이터 레코드에 복사하고, 새로운 엔트리 내의 데이터를 변형한 다음에, 새로운 엔트리의 포인터를 데이터베이스 부가 레코드(521) 내의 적당한 해시 테이블 (예를 들어, 해시 테이블(522))이나 체인 포인터에 기록함으로써 논리적으로 변형될 수 있다. 유사하게, 스냅샷 파일(510) 내의 데이터는 데이터베이스 부가 레코드(521) 내의 새로운 데이터 레코드를 형성한 다음에 새로운 엔트리의 포인터를 부가 레코드(521) 내의 적당한 해시 테이블 (예를 들어, 해시 테이블(522))이나 체인 포인터에 기록함으로써 스냅샷 파일(510)에 논리적으로 부가될 수 있다.
DNS 리솔루션 실시예에서, 예를 들어, 스냅샷 파일(510)은 개별의 검색 인덱스 (예를 들어, 511-1, 511-2, 512-1, 512-2, 513-1, 513-2 등, 명확하게 하기 위해 도시 생략)를 가지고, 개별의 데이터 테이블이나 블럭으로 체계화된 도메인 이름 데이터 및 이름 서버 데이터를 포함한다. 유사하게, 룩-어사이드 파일(520)은 도메인 이름 데이터와 이름 서버 데이터 둘 다의 부가 및 변형 뿐만 아니라, 도메인 이름 데이터와 이름 서버 데이터 (예를 들어, 521-1, 521-2, 522-1, 522-2, 523-1, 523-2, 531-1, 531-2, 533-1, 533-2, 등 분명하게 하기 위해 도시 생략) 둘 다의 삭제를 포함한다.
도 6은 본 발명의 실시예에 따라 일반 데이터베이스 아키텍쳐를 설명하는 상세 블럭도이다. 일반적으로, 데이터베이스(600)는 데이터의 단일의 검색 가능한 표현으로 체계화된다. 데이터 세트 갱신은 연속적으로 데이터베이스(600)에 결합되며, 삭제 또는 변형이 예를 들어 후속의 부가나 변형을 위해서 메모리(104) 내의 빈 공간에 관련 데이터베이스 레코드 상에 물리적으로 실행된다. 단일의 검색 가능한 표현은 큰 데이터 세트 크기와 높은 검색 및 갱신률에 매우 잘 스케일되며, 다수의 검색 엔진 컴퓨터 사이의 스냅샷 파일을 주기적으로 재형성, 전파 및 재로드할 필요성을 없애 준다.
DNS 리솔루션 실시예에서, 예를 들어, 데이터베이스(600)는 도메인 이름 데이터(610) 및 이름 서버 데이터(620)를 포함할 수 있다. 도메인 이름 데이터(610) 및 이름 서버 데이터(620)는 가변 길이 레코드의 블럭에의 포인터 (인덱스, 디렉트 바이트-오프세트 등)를 갖는 검색 인덱스들을 포함한다. 상술한 바와 같이, 해시 기능은 검색 키를 정수 값으로 맵한 다음에 해시 테이블에의 인덱스로 이용될 수 있다. 유사하게, 해시 버킷은 하나의 링크된 리스트의 해시 체인 포인터를 이용하여 각 해시 테이블 인덱스에 대해 형성될 수 있다. 도메인 이름 데이터(610)는 예를 들어, 검색 인덱스로 해시 테이블(612) 및 가변 길이의 도메인 이름 레코드(611)의 블럭을 포함한다. 해시 테이블(612)은 예를 들어, 도메인 이름 레코드(620)을 참조하는 포인터(613) 등의 개별의 도메인 이름 레코드(611)의 8바이트 포인터의 어레이를 포함한다. 가변 길이의 도메인 이름 레코드(620)는 예를 들어, 다음 레코드 오프세트(621), 이름 길이(622), 평준화된 이름(623), 체인 포인터(624) (즉, 예를 들어, 해시 체인의 다음 레코드를 가르킴), 다수의 이름 서버(625), 및 이름 서버 포인터(626)를 포함한다. 체인 포인터(624)와 이름 서버 포인터(626) 둘 다의 크기는 각 특정 유형의 데이터에 필요한 블럭 크기, 예를 들어, 체인 포인터(6240에 대해 8바이트 및 이름 서버 포인터(626)에 대해 4바이트를 반영하도록 최적화된다.
이름 서버 데이터(630)는 예를 들어, 검색 인덱스로서의 해시 테이블(632) 및 가변 길이 이름 서버 레코드(631)의 블럭을 포함한다. 해시 테이블(632)은 예를 들어, 이름 서버 레코드(640)를 참조하는 포인터(633)와 같이, 개별의 이름 서버 레코드(631)의 4바이트 포인터의 어레이를 포함한다. 가변 길이 이름 서버 레코드(640)은 예를 들어, 다음 레코드 오프세트(641), 이름 길이(642), 평준화된 이름(643), 체인 포인터(644) (즉, 예를 들어, 해시 체인의 다음 레코드를 가르킴), 다수의 이름 서버 네트워크 어드레스(645), 이름 서버 어드레스 길이(646), 및 예를 들어, 인터넷 프로토콜 (IP) 네트워크 어드레스일 수 있는 이름 서버 네트워크 어드레스(647)를 포함한다. 일반적으로, 이름 서버 네트워크 어드레스는 ASCII (American Standard Code for Information Interchange, 예를 들어 ISO-14962-1997, ANSI-X3.4-1997 등) 또는 이진 포맷으로 저장된다: 이 예에서, 이름 서버 네트워크 어드레스 길이(64)는 이름 서버 네트워크 어드레스(647)가 이진 포맷 (즉 4바이트)로 저장되는 것을 나타낸다. 체인 포인터(644)의 크기는 필요한 이름 서버 데이터 블럭 크기, 예를 들어 4바이트를 반영하도록 최적화된다.
일반적으로, 해시 테이블 등의 검색 인덱스 및 가변 길이 데이터 레코드 둘다는 8바이트 포인터가 메모리의 8바이트 경계에 위치되도록 구성된다. 예를 들어, 해시 테이블(612)는 도메인 이름 레코드(611)의 8바이트 포인터의 연속성 어레이를 포함하며, 8로 나누어지는 메모리 어드레스 (즉, 8바이트 경계 또는 8N)에 저장될 수 있다. 유사하게, 해시 테이블과 같은 검색 인덱스와 가변 길이 데이터 레코드 둘 다는 4바이트 포인터가 메모리의 4바이트 경계에 위치되도록 구성된다. 예를 들어, 해시 테이블(632)는 이름 서버 레코드(631)에 4바이트 포인터의 연속성 어레이를 포함하며, 4로 나누어지는 메모리 어드레스 (즉, 4바이트 경계 또는 4N)에 저장될 수 있다. 따라서, 데이터베이스(600)의 변경은 예를 들어, 새로운 포인터를 해시 테이블과 같은 검색 인덱스에 기록하거나, 새로운 해시 체인 포인터를 가변 길이 데이터 레코드에 기록하는 것을 포함하여, 단일의 중단 불가능한 동작을 이용하여 메모리의 일렬 어드레스의 포인터를 갱신함으로써 종결된다.
도 7은 본 발명의 실시예에 따라 일반 데이터베이스 아키텍쳐를 설명하는 상세 블럭도이다. 일반적으로, 데이터베이스(700)는 데이터의 단일의 검색 가능한 표현으로 체계화될 수 있다. 데이터 세트 갱신은 데이터베이스(700)에 연속하여 결합될 수 있으며, 삭제나 변경은 예를 들어, 후속의 부가나 변경을 위한메모리(104) 내의 빈 공간에 대해 관련 데이터베이스 레코드에서 물리적으로 실행될 수 있다. 단일의 검색 가능한 표현은 큰 데이터 세트 크기와 높은 검색 및 갱신률에 매우 잘 스케일되며, 다수의 검색 엔진 컴퓨터 사이의 스냅샷 파일을 주기적으로 재형성, 전파 및 재로드할 필요성을 없앤다.
많은 다른 물리적 데이터 구조 체계화가 가능하다. 일 예의 체계화는 이진 검색 트리와 디지털 검색 트라이 (trie)를 조합한, 세 개의 검색 트리 (trie) 또는 TST와 같은 데이터 레코드의 순서 정해진 시퀀셜 억세스를 위해 해시 테이블에의 다른 검색 인덱스를 이용할 수 있다. 예를 들어, 후이즈 (whois), DNS Secure Extensions (Internet Engineering Taskforce Request for Comments: 2535)을 이용하는 도메인 이름 리솔루션 등과 같은 텍스트 계열의 어플리케이션에서, TST는 특히 검색 미스의 경우, 실행될 필요가 있는 비교 동작의 개수를 최소화하며, 해싱으로 검색 엔진 구현을 초과하는 검색 성능 메트릭스를 만들 수 있다는 장점이 있다. 부가하여, TST는 예를 들어, 후이즈, 도메인 이름 리솔루션, 인터넷 컨텐트 검색 등과 같은 텍스트 검색 어플리케이션에서 유용한 예를 들어 와일드 카드 검색과 같은 개선된 텍스트 검색 특성을 제공할 수 있다.
일 실시예에서, TST는 계층적 관계로 함께 링크된 노드의 시퀀스를 포함한다. 루트 (root) 노드는 트리의 상부에 위치되며, 관련 차일드 노드와 링크는 브랜치를 형성하고, 리프 (leaf) 노드는 각 브랜치의 종단을 종료시킨다. 각 리프노드는 특정 검색 키와 관련되며, 리프 노드로의 경로 상의 각 노드는 키의 단일의 시퀀셜 엘리먼트를 포함한다. 트리의 각 노드는 비교 문자, 또는 스플릿 값 및 트리의 다른 연속적 또는 "차일드" 노드의 세 개의 포인터를 포함한다. 이들 포인터들은 그 스플릿 값이 노드의 스플릿 값 보다 작거나 동일하거나 더 큰 차일드 노드를 참조한다. 따라서, 특정 키에 대해 TST를 검색하는 것은 트리를 루트 노드에서 최종 리프 노드 까지 가로질러, 키의 각 엘리먼트 또는 문자 위치를 경로를 따른 노드의 스플릿 값과 순차적으로 비교하는 것을 포함한다. 부가하여, 리프 노드는 키 레코드의 포인터를 포함하고, 이는 다음에 키 (예를 들어, IP 어드레스)와 관련된 레코드 데이터를 포함하는 단말 데이터 레코드의 적어도 하나의 포인터를 포함한다. 다르게, 키 레코드는 전체적으로 레코드 데이터를 포함할 수 있다. 레코드 데이터는 이진 포맷, ASCII 텍스트 포맷 등으로 저장될 수 있다.
일 실시예에서, 데이터베이스(700)는 복수의 고정 길이 검색 노드(701), 복수의 가변 길이 키 데이터 레코드(702) 및 복수의 가변 길이 단말 데이터 레코드(703)를 포함하여, TST로 체계화될 수 있다. 검색 노드(701)는 예를 들어, 비교 문자 (또는 값) 및 위치, 브랜치 노드 포인터 및 키 포인터를 포함하여, 상술한 바와 같이 여러 유형의 정보를 포함한다. 노드 포인터의 크기는 일반적으로 노드의 개수로 결정되는 반면, 키 포인터의 크기는 일반적으로 가변 길이 키 데이터 세트의 크기로 결정된다. 키 데이터 레코드(702)는 예를 들어, 단말 데이터 레코드나 내장된 레코드 데이터의 포인터를 포함하는 키 정보 및 단말 데이터 정보를포함하는 반면, 단말 데이터 레코드(703)는 레코드 데이터를 포함한다.
일 실시예에서, 각 고정 길이 검색 노드는 길이는 24바이트이다. 검색 노드(710)는 예를 들어, 8비트 비교 문자 (또는 바이트 값; 711), 12비트 문자 (또는 바이트) 위치(712), 및 12비트 노드 유형/상태 (명확하게 하기 위해 도시 생략)를 포함할 수 있고; 이들 데이터는 노드의 처음 4바이트 내에 엔코드될 수 있다. 비교 문자(711)는 도 7에서 도시한 바와 같이 노드의 제1 바이트 내에 엔코드되거나, 다르게 문자 위치(712)는 단순한 시프트 연산을 이용하여 문자 위치(712)에의 억세스를 최적화하기 위해서 노드의 처음 12비트 내에 엔코드될 수 있다. 각 검색 노드의 다음 12바이트는 세 개의 32비트 포인터, 즉 각각 "이하", "등가", 및 "이상"인 브랜치 노드 포인터를 나타내는 포인터(713), 포인터(714) 및 포인터(715)를 포함한다. 이들 포인터는 바이트 오프세트 또는 메모리 어드레스 보다는 카운터, 또는 노드 인덱스를 포함할 수 있다. 고정 길이 검색 노드에 대해서는, 바이트-오프세트가 카운터 또는 인덱스 값, 및 고정 길이로, 예를 들어, 카운터*길이로 연산될 수 있다. 최종 네 바이트는 40비트 키 포인터(716)을 포함하고, 이는 대응하는 키 데이터 레코드가 존재하지 (보이지) 않는 것을 나타내는 널 값이거나, 기존의 대응 키 데이터 레코드 (도시 생략)의 포인터 뿐만 아니라, 예를 들어 12비트 키 길이와 12비트 포인터 유형/상태 필드를 포함하는 그 외 데이터일 수 있다. 키 포인터(716)는 적당한 키 데이터 레코드에 대한 바이트 오프세트를 포함하는 반면, 키 길이는 TST 내에서 일방향 브랜칭을 제거할 때 검색과 삽입을 최적화하는 데에이용될 수 있다. 포인터 유형/상태 필드는 유효도 체킹시 사용되는 정보와 메모리 관리시 사용되는 할당 데이터를 포함한다.
일 실시예에서, 키 데이터 레코드(750)는 예를 들어 가변 길이 키(753) 및 적어도 하나의 단말 데이터 포인터를 포함한다. 도 7에 도시한 바와 같이, 키 데이터 레코드(750)는 두 개의 단말 데이터 포인터; 단말 데이터 포인터(757) 및 단말 데이터 포인터(758)를 포함한다. 키 데이터 레코드(750)는 12비트 키 길이(751) 및 12비트 단말 포인터 카운트/상태(752)로 미리 고정되고, 단말 데이터 포인터(757) 및 단말 데이터 포인터(758)를 메모리(104)의 8바이트 경계 상에서 일렬시키기 위해 패딩 (명확하게 하기 위해 도시 생략)을 포함한다. 단말 데이터 포인터(757) 및 단말 데이터 포인터(758)는 각각 예를 들어, 단말 데이터 유형, 길이, 상태 또는 이진 레코드 검색시 유용한 데이터 등의 여러 데이터를 포함한다. 단말 데이터 포인터(757) 및 단말 데이터 포인터(758)는 특정 리소스 레코드 (예를 들어, 단말 데이터 레코드(760) 및 단말 데이터 레코드(770))의 신속한 검색을 위해 단말 데이터 유형에 의해 저장될 수 있다. 다른 실시예에서, 키 데이터 레코드(740)는 단말 데이터 레코드 포인터 보다는 또는 이에 부가하여 내장된 단말 데이터(746)를 포함한다. 예를 들어, 키 데이터 레코드(740)는 키 길이(741), 단말 포인터 카운트(742), 가변 길이 키(743), 내장된 레코드 엘리먼트의 넘버(744)에 이어서, 내장된 레코드 엘리먼트의 넘버(744) 각각에 대한 레코드 엘리먼트 길이(745) (예를 들어, 바이트로) 및 내장된 레코드 데이터(746) (예를 들어, 스트링, 바이트 시퀀스 등)를 포함하고 있다.
일 실시예에서, 단말 데이터 레코드(76)는 예를 들어 12비트 길이(761), 4비트 상태, 및 가변 길이 스트링(762) (예를 들어, IP 어드레스)를 포함한다. 다르게, 가변 길이 스트링(762)은 바이트 시퀀스일 수 있다. 단말 데이터 레코드(760)는 각 단말 데이터 레코드를 메모리(104)에서 8바이트 경계에 일렬시키기 위해 패딩을 포함한다. 다르게, 단말 데이터 레코드(760)는 4바이트 경계에 대해 패딩을 포함하거나, 단말 데이터 레코드(76)는 패딩을 전혀 포함하지 않을 수 있다. 메모리 관리 알고리즘은 일반적으로, 어느 단말 데이터 레코드(760)가 8바이트, 4바이트 또는 0바이트 경계에 패딩되는지를 결정할 수 있다. 유사하게, 단말 데이터 레코드(770)는 12비트 길이(771), 4비트 상태, 및 가변 길이 스트링(772) (예를 들어, IP 어드레스)를 포함할 수 있다.
일반적으로, TST 등의 검색 인덱스와 데이터 레코드 둘다는 8바이트 포인터가 메모리의 8바이트 경계에 위치되도록 구성될 수 있다. 예를 들어, 키 포인터(726)는 키 데이터 레코드(740)의 8바이트 (또는 그 이하) 포인터를 포함하고, 8로 나누어지는 메모리 어드레스 (즉, 8바이트 경계, 또는 8N)에 저장될 수 있다. 유사하게, TST와 같은 검색 인덱스와 데이터 레코드 둘 다는 4바이트 포인터가 메모리의 4바이트 경계 상에 위치되도록 구성될 수 있다. 예를 들어, 노드 브랜치 포인터(724)는 노드(730)의 4바이트 (또는 그 이하) 포인터를 포함하며 4로나누어지는 메모리 어드레스 (즉, 4바이트 경계 또는 4N)에 저장될 수 있다. 따라서, 데이터베이스(700)의 변경은 예를 들어, TST 노드와 같은 검색 인덱스의 새로운 포인터를 기록하거나 데이터 레코드의 새로운 포인터를 기록하는 것을 포함하여, 단일의 중단 불가능한 동작을 이용하여 메모리에 일렬된 어드레스의 포인터를 갱신함으로써 종결된다.
도 8은 본 발명의 일 실시예에 따른 일반 데이터베이스 아키텍쳐를 설명하는 상세 블럭도이다. 상기와 같이, 데이터베이스(800)는 또한 데이터의 단일의 검색 가능한 표현으로 체계화될 수 있다. 데이터 세트 갱신은 데이터베이스(800)에 연속하여 결합되며, 삭제나 변형은 예를 들어, 후속의 부가나 변형을 위해 메모리(104) 내의 빈 공간에 관련 데이터베이스 레코드에 대해서 물리적으로 실행될 수 있다. 단일의 검색 가능한 표현은 큰 데이터 세트 크기와 높은 검색 및 갱신률에 잘 스케일되며, 다수의 검색 엔진 컴퓨터 사이에서 스냅샷 파일을 주기적으로 재형성, 전파하여 재로드할 필요를 없애준다.
레코드 데이터를 억세스하기 위한 다른 검색 인덱스 구조가 가능하다. 일 실시예에서, 데이터베이스(800)는 순서 정해진 억세스 키 트리 (즉, "OAK 트리")로 체계화된 다른 순서 정해진 검색 인덱스를 이용한다. 데이터베이스(800)는 예를 들어, 복수의 가변 길이 검색 노드(801), 복수의 가변 길이 키 레코드(802) 및 복수의 가변 길이 단말 데이터 레코드(803)를 포함한다. 검색 노드(801)는 예를 들어, 검색 키, 다른 검색 노드의 포인터, 키 레코드의 포인터 등과 같은 상술한 여러 유형의 정보를 포함한다. 일 실시예에서, 복수의 검색 노드(801)는 검색 키의 프래그먼트 (예를 들어, 스트링)를 포함하는 수직 및 수평 노드 뿐만 아니라, 다른 검색 노드나 키 레코드의 포인터를 포함한다. 수직 노드는 예를 들어, 적어도 하나의 검색 키, 또는 문자, 복수의 검색 노드(801) 내의 수평 노드의 포인터, 복수의 키 레코드(802) 내의 키 레코드의 포인터 등을 포함한다. 수평 노드는 예를 들어, 적어도 두 검색 키, 또는 문자, 복수의 검색 노드(801) 내의 수직 노드의 포인터, 복수의 검색 노드(801) 내의 수평 노드의 포인터, 복수의 키 레코드(802) 내의 키 레코드의 포인터 등을 포함한다. 일반적으로, 수직 노드는 검색 키 프래그먼트 (예를 들어, 스트링)을 나타내는 키(예를 들어, 문자)의 시퀀스를 포함하는 반면, 수평 노드는 검색 키 프래그먼트 (예를 들어, 스트링) 내의 특정 위치에 존재할 수 있는 여러 키 (예를 들어, 문자)를 포함한다.
일 실시예에서, 복수의 검색 노드(801)는 수직 노드(810), 수직 노드(820) 및 수평 노드(830)를 포함한다. 수직 노드(810)은 예를 들어, 2비트 노드 유형(811) (예를 들어 "10"), 38비트 어드레스(812), 8비트 길이(813) (예를 들어 "8"), 8비트 제1 문자(814) (예를 들어, "l") 및 8비트 제2 문자(815) (예를 들어, "널")을 포함한다. 이 예에서, 어드레스(812)는 서치 트리 중의 다음 노드, 즉 수직 노드(820)를 가리킬 수 있다. 한 가지 실시 형태에서, 38 비트 어드레스(812)는, 메모리(104)의 1 Tbyte(~1012 byte) 어드레스 영역 내의 8 바이트 워드 중 하나를 참조하기 위하여 37 비트 옵셋 어드레스와, 1 비트 터미널/노드 인디케이터(terminal/nodal indicator)를 포함할 수 있다. 따라서, 수직 노드(810)는 길이가 8 바이트(64 비트) 일 수 있고, 유리하게는, 메모리(104) 내부의 8 바이트 워드 바운더리 상에 배치될 수도 있다. 일반적으로, 복수 개의 서치 노드(801) 내부의 각 수직 노드는 메모리(104) 내부에서 8 바이트 워드 바운더리 상에 배치될 수 있다.
수직 노드는 멀티 캐릭터 서치 키 프래그먼트(multi-character, search key fragment)(예컨대, 스트링)를 포함할 수 있다. 일반적으로, 관련된 키 데이터 레코드가 없는 서치 키는 단일의 수직 노드로 붕괴되어, 복수 개의 서치 노드(801) 내부에서 요구되는 수직 노드의 수를 효과적으로 줄일 수 있다. 한 가지 실시 형태에서, 수직 노드(810)는 상기 서치 키 프래그먼트 내에서 두 캐릭터 위의 각 추가 캐릭터에 대하여, 예컨대 8 비트 캐릭터(816-1, 816-2.... 816-N)(팬텀 아웃라인으로 나타냄)와 같이, 8 비트를 포함할 수 있다. 유리하게는, 수직 노드(810)는, 상기 스트링 프래그먼트 내에 위치한 추가 캐릭터의 수에 따라 메모리(104) 내의 64 비트 바운더리에 패딩(pad)될 수 있다. 예컨대, 9개의 캐릭터가 수직 노드(810) 내에 포함될 것이라면, 캐릭터 1 및 2가 제1 캐릭터(814) 및 제2 캐릭터(815)에 각각 할당될 수 있고, 캐릭터 3 내지 9에 대응하는 56 비트의 추가 캐릭터 정보가 수직 노드(810)에 첨부될 수 있다. 8 바이트 워드 바운더리 상에 상기 추가 캐릭터 정보를 정렬시키기 위하여 추가의 8 비트 패딩이 포함될 수도 있다.
유사하게, 수직 노드(820)는, 예컨대 2 비트 노드 타입(821)(예컨대, "10"), 38 비트 어드레스(822), 8 비트 길이(823)(예컨대, "8"), 8 비트 제1 캐릭터(824)(예컨대, "a") 및 8 비트 제2 캐릭터(825)(예컨대, "null")를 포함할 수 있다. 이 예에서, 어드레스(822)는 서치 트리 중의 다음 노드, 즉 수평 노드(830)를 가리킬 수 있다. 따라서, 수직 노드(820)는 길이가 8 바이트 일 수 있고, 유리하게는, 메모리(104) 내부의 8 바이트 워드 바운더리 상에 배치될 수 있다. 물론, 수직 노드(810)를 참조하여 상기한 바와 같이, 필요하다면 수직 노드(820)에 추가 정보가 포함될 수도 있다.
수평 노드(830)는, 예컨대 2 비트 노드 타입(831)(예컨대, "01"), 38 비트 제1 어드레스(832), 8 비트 어드레스 카운트(833)(예컨대, 2), 8 비트 제1 캐릭터(834)(예컨대, "·"), 8 비트 라스트 캐릭터(835)(예컨대, "w"), 가변 길이 비트맵(variable-length bitmap)(836) 및 38 비트 제2 어드레스(837)를 포함할 수 있다. 이 예에서, 제1 캐릭터(834)는, 수직 노드(810,820)에 의해 정해진 서치 키 프래그먼트 "la"를 나타내는 단일 캐릭터("·")를 포함할 수 있고, 라스트 캐릭터(831)는 수직 노드(810, 820)에 의해 정해진 서치 키 프래그먼트 "law"를 나타내는 단일 캐릭터("w")와 수평 노드(830)의 라스트 캐릭터(835)를 포함할 수 있다. 제1 어드레스(832)는 서치 키 프래그먼트 "la"와 연관되어 있는 키 데이터 레코드(840)를 가리킬 수 있고, 제2 어드레스(837)는 서치 키 프래그먼트 "law"와 연관되어 있는 키 데이터 레코드(850)를 가리킬 수 있다.
유리하게도, 비트맵(836)은 어느 키(예컨대, 캐릭터)가 수평 노드(830)에 의해 참조되는지를 나타낼 수 있다. 비트맵(836) 내의 한 비트 포지션 내부의 "1"은 키 또는 캐릭터가 수평 노드(830)에 의해 참조된다는 것을 나타내고, 비트맵(836) 내의 한 비트 포지션 내부의 "0"은 키 또는 캐릭터가 수평 노드(830)에 의해 참조되지 않는다는 것을 나타낸다. 일반적으로, 비트맵(836)의 길이는 바운더리 캐릭터를 포함하여, 제1 캐릭터(834)와 라스트 캐릭터(835) 사이의 시퀀셜 키(sequential key) 또는 캐릭터의 수에 의존할 수 있다. 예컨대, 제2 캐릭터(834)가 "a"이고 라스트 캐릭터(835)가 "z"라면, 비트맵(836)은 길이가 26 비트일 수 있는데, 여기서 각 비트는 "a" 내지 "z"를 포함하여 "a" 내지 "z" 사이의 캐릭터 중 하나에 대응한다. 이 예에서, 추가의 38 비트 어드레스는 수평 노드(830)의 단부에 첨부되고, 비트맵(836) 내부에 표현되는 각 캐릭터에 대응한 다. 메모리(104) 내의 8 바이트 워드 바운더리 상에 각 양을 정렬시키기 위하여 비트맵(836)뿐만 아니라, 이들 각 38 비트 어드레스가 패딩될 수 있다. 한 가지 실시 형태에서, 비트맵(836)이 256 비트(즉, 28 비트 또는 32 바이트) 정도로 길 수 있게 서치 키 영역으로서 8 비트 ASCII 캐릭터 셋트가 사용될 수 있다. 도 8에 나타내는 예에서, 특정의 참조 캐릭터 "·" 및 "2"의 어드레스 카운트 때문에, 비트맵(8360은 길이가 2 비트일 수 있고, 라스트 캐릭터(835)에 대응하는 각 비트 위치에 "1"을 포함할 수 있다.
한 가지 실시 형태에서, 그리고 키 데이터 레코드(750)(도 7)를 참조하여 전술한 바와 같이, 키 데이터 레코드(850)는, 예컨대 가변 길이 키(853)와, 적어도 1개의 터미널 데이터 포인터를 포함할 수 있다. 도 8에 도시한 바와 같이, 키 데이터 레코드(850)는 2개의 터미널 데이터 포인터, 즉 터미널 데이터 포인터(857, 868)를 포함하고 있다. 키 데이터 레코드(850)는 12 비트 키 길이(851)와 12 비트 터미널 포인터 카운트/스테이터스(852)가 앞에 붙을 수 있고, 메모리(104) 내의 8 바이트 바운더리 상에 터미널 데이터 포인터(857, 858)를 정렬하기 위하여 패딩(간결함을 위해 도시 생략)을 포함할 수 있다. 터미널 데이터 포인터(857, 858)는 각각 10 비트 터미널 데이터 타입 및 다른 데이터, 예컨대 바이너리 레코드 서치에 유용한 길이, 스테이터스 또는 데이터를 포함할 수 있다. 터미널 데이터 포인터(857, 858)는 특정 리소스 레코드(예컨대, 터미널 데이터 레코드(860, 870))의 보다 빠른 검색을 위해 터미널 데이터 타입에 의해 소팅될 수 있다.
다른 실시 형태에서, 그리고 키 데이터 레코드(740)(도 7)를 참조하여 전술한 바와 같이, 키 데이터 레코드(840)는 터미널 데이터 레코드 포인터보다는 임베디드 터미널 데이터(846)를 포함할 수 있다. 예를 들면, 키 데이터 레코드(840)는 키 길이(841), 터미널 포인터 카운트(842), 가변 길이 키(843), 임베디드 레코드 엘리먼트(844)의 수, 후속하여 레코드 엘리먼트 길이(845)(예컨대, 바이트 단위)및 임베디드 레코드 엘리먼트(844)에 대한 임베디드 레코드 데이터(846)(예컨대, 스트링, 바이트 시퀀스 등)를 포함할 수 있다.
다른 실시 형태에서, 그리고 터미널 데이터 레코드(760)(도 7)를 참조하여 전술한 바와 같이, 터미널 데이터 레코드(860)는, 예컨대 12 비트 길이(861), 4 비트 스테이터스, 가변 길이 스트링(862)(예컨대, IP 어드레스)을 포함할 수 있다. 선택적으로, 가변 길이 스트링(862)은 바이트 시퀀스일 수 있다. 터미널 데이터 레코드(860)는 메모리(104) 내의 8 바이트 바운더리에 각 터미널 데이터 레코드를 정렬하기 위하여 패딩(간결함을 위해 도시 생략)을 포함할 수 있다. 선택적으로, 터미널 데이터 레코드(860)는 4 바이트 바운더리에 패딩(간결함을 위해 도시 생략)을 포함할 수 있고, 또는 터미널 데이터 레코드(860)는 어떤 패딩도 포함하지 않을 수 있다. 메모리 관리 알고리즘은 일반적으로, 터미널 데이터 레코드(760)가 8 바이트, 4 바이트 또는 0 바이트 바운더리에 패딩되지를 결정할 수 있다. 유사하게, 터미널 데이터 레코드(870)는 12 비트 길이(871), 4 비트 스테이터스, 가변 길이 스트링(872)(예컨대, IP 어드레스)을 포함할 수 있다.
일반적으로, OAK 트리와 같은 두 서치 인덱스(search indices) 및 데이터 레코드는 8 바이트 포인터가 메모리 내의 8 바이트 바운더리에 배치되도록 구성될 수 있다. 예컨대, 수직 노드(810)는 수직 노드(820)로의 8 바이트(또는 그 미만) 포인터를 포함할 수 있고, 8(즉, 8 바이트 바운더리 또는 8N)로 나눌 수 있는 메모리어드레스에서 저장될 수 있다. 유사하게, OAK 트리와 같은 두 서치 인덱스 및 데이터 레코드는, 4 바이트 포인터가 메모리 내의 4 바이트 바운더리 상에 위치하도록 구성될 수 있다. 따라서, 데이터베이스(800)에 대한 수정은, 예컨대 OAK 트리와 같은 서치 인덱스에 새로운 포인터를 기록한다든지 데이터 레코드에 새로운 포인터를 기록하는 것을 비롯하여, 단일의 언인터럽트 연산(single uninterruptible operation)을 이용하여 메모리 내의 정렬된 어드레스에 포인터를 업데이트함으로써 종결될 수 있다.
도 8을 참조하여 전술한 여러 실시 형태는 많은 이점을 제공한다. 예를 들면, OAK 트리 데이터 구조는 극히 공간 효율적이고 8 비트 클린이다. 멀티-캐릭터 스트링 프래그먼트를 포함하는 수직 노드를 서치하는 데에 레귤러 익스프레션 서치(regular expression searches)가 이용될 수 있는데, 8 비트 제1 캐릭터(예컨대, 제1 캐릭터(814)), 8 비트 제2 캐릭터(예컨대, 제2 캐릭터(8-15)) 및 임의의 추가 8 비트 캐릭터(예컨대, 추가 캐릭터(816-1...816-N))는 수직 노드(예컨대, 수직 노드(810)) 내에 인접하여 배치될 수 있기 때문이다. 서치 미스(search miss)는 재빨리 발견될 수 있고, N-캐릭터 길이 서치 스트링을 서치하기 위해 단지 N 노드만이 트래버스되는 것을 필요로 할 수도 있다.
도 9는 본 발명의 실시 형태에 따라, 오퍼레이팅 시스템 또는 데이터베이스 테이블 록(table locks)을 사용하지 않고 데이터베이스를 서치하고 동시에 업데이트하는 방법을 보여주는 탑 레벨 흐름도이다.
하나의 업데이트 쓰레드(update thread) 및 복수 개의 서치 쓰레드가 만들어 질 수 있다(900). 한 가지 실시 형태에서, 시스템(100)은 업데이트를, 예컨대 WAN(124)을 거쳐 OLTP 서버(140-1)로부터 수신된 로컬 데이터베이스에 합체하기 위하여 단일의 업데이트 쓰레드를 스폰(spawn)할 수 있다. 다른 실시 형태에서, 시스템(100)은 WAN(124)을 거쳐 OLTP 서버(140-1 ... 140-S)로부터, 그리고 WAN(124) 또는 LAN(122)을 거쳐 복수 개의 네트워크 컴퓨터(120-1 ... 120-N)로부터 업데이트를 수신할 수 있다. 시스템(100)은 또한 복수 개의 네트워크 컴퓨터(120-1 ... 120-N)로부터 수신된 각 세션 리퀘스트(session request)에 응답하여 서치 쓰레드를 스폰할 수 있다. 예컨대, 관리 쓰레드(manage thread)는 복수의 네트워크 컴퓨터(120-1 ... 120-N)로부터 전송된 세션 리퀘스트에 대하여, 하나 이상의 네트워크 인터페이스(114-1 ... 114-O)와 관련된 하나 이상의 컨트롤 포트(control ports)를 폴(poll)할 수 있다. 일단 특정 네트워크 컴퓨터(120-1 ... 120-N)로부터 세션 리퀘스트가 수신되면, 상기 관리 쓰레드는 서치 쓰레드를 스폰하고 그 서치 쓰레드를 특정 네트워크 컴퓨터(예컨대, PE)와 연관시킬 수 있다.
다른 실시 형태에서, 시스템(100)은 복수 개의 네트워크 컴퓨터(120-1 ... 120-N)로부터의 세션 리퀘스트에 대한 폴링(polling) 없이 많은 서치 쓰레드를 스폰할 수 있다. 이 실시 형태에서, 상기 서치 쓰레드는 특정의 네트워크 컴퓨터와연관되지 않을 수 있고, 복수 개의 프로세서(102-1 ... 102-P) 사이에서 균등하게 분포될 수 있다. 별법으로서, 상기 서치 쓰레드는 복수 개의 프로세서(102-1 ... 102-P)의 서브셋 상에서 실행될 수 있다. 서치 쓰레드의 수는 네트워크 컴퓨터의 수(예컨대, N)와 일치할 필요는 없다.
복수 개의 서치 쿼리(search query)가 네트워크를 거쳐 수신될 수 있다(910). 한 가지 실시 형태에서, 복수 개의 네트워크 컴퓨터(120-1 ... 120-N)는 복수 개의 서치 쿼리를 LAN(122) 또는 WAN(124)을 거쳐 시스템(100)에 보낼 수 있다. 상기 복수 개의 서치 쿼리는, 예컨대 서치 텀(term) 또는 키, 각 쿼리와 관련될 수 있는 스테이트 정보(state information)(예컨대, 쿼리 소스 어드레스, 프로토콜 타입 등)를 포함할 수 있다. 스테이트 정보는 시스템(100)에 의해 명시적으로 유지될 수 있고, 또는 별법으로서 스테이트 정보 핸들이 제공될 수 있다. 한 가지 바람직한 실시 형태에서, 각 네트워크 컴퓨터(120-1 ... 120-N)는 미리 정한 개수의 서치 쿼리를 시스템(100)으로의 전송을 위한 단일의 네트워크 패킷(예컨대, 도 2에 나타낸 것과 같은 리퀘스트 슈퍼 패킷(220)) 내로 멀티플렉스할 수 있다.
각 서치 쿼리는 처리를 위해 하나의 서치 쓰레드에 할당될 수 있다(920). 한 가지 실시 형태에서, 각 서치 쓰레드는 복수 개의 네트워크 컴퓨터(120-1 .. 120-N) 중 하나와 연관될 수 있고, 특정 네트워크 컴퓨터로부터 수신된 모든 서치 쿼리는 서치 쓰레드에 할당될 수 있다(920). 즉, 하나의 서치 쓰레드는 단일 네트워크 컴퓨터(예컨대, 단일 PE)로부터 도착하는 모든 서치 쿼리를 처리할 수 있다. 한 가지 실시 형태에서, 각 서치 쓰레드는 개개의 서치 쿼리를 단일의 멀티플렉스된 네트워크 패킷(예컨대, 도 2에 도시한 리퀘스트 슈퍼 패캣(220))으로부터 추출할 수 있고, 또는 별법으로서, 상기 추출은 상이한 프로세서 또는 쓰레드에 의해 수행될 수 있다.
다른 실시 형태에서, 각 네트워크 컴퓨터(120-1 ... 120-N)로부터 수신된 서치 쿼리는 상이한 서치 쓰레드에 할당될 수 있다(920). 이 실시 형태에서, 상기 멀티 쓰레드 할당은, 예컨대 프로세서 로딩을 포함하는 여러 가지 시스템 패러미터를 합체할 수 있는 최적의 분산 함수(optimal distribution function)에 기초할 수 있다. 물론, 서치 쓰레드에의 서치 쿼리의 할당은, 프로세서 가용성(availability), 시스템 구성 엘리먼트 성능 등을 비롯한 여러 가지 시스템 패러미터에 기초하여, 시간에 따라 변할 수 있다. 예컨대, 공유 메모리(shared memory), 인터 프로세스 메시지(inter-process message), 토큰, 세마퍼(semaphore) 등과 같은 여러 가지 메커니즘을 이용하여 시스템(100) 내에서 서치 쿼리를 할당된 서치 쓰레드에 운반할 수 있다.
각 서치 쓰레드는 상기 할당된 서치 쿼리에 기초하여 데이터베이스를 서치할 수 있다(930). 데이터베이스를 서치하는 것은 다음 데이터베이스의 구조에 의존한다.
도 4에 도시한 데이터베이스 실시 형태를 참조하면, 데이터베이스(400)는 서치 키에 대하여 서치될 수 있다(930). 다음에, 상기 서치 키에 대응하는 데이터 레코드(예컨대, 데이터베이스 레코드(420))가 정해질 수 있다. 도 5에 도시한 데이터베이스 실시 형태를 참조하면, 먼저 상기 서치 키에 대하여 룩 어사이드 파일(look-aside file)이 서치될 수 있고, 소정의 매치가 정해지지 않으면, 스냅셧(snapshot) 파일(510)이 서치될 수 있다(930). 다음에, 상기 서치 키에 대응하는 데이터 레코드가 정해질 수 있다.
도 6에 도시한 데이터베이스 실시 형태를 참조하면, 먼저 상기 서치 키에 대하여, 도메인 네임 데이터(610)가 서치될 수 있고, 다음에 상기 서치 키에 대응하는 네임 서버 데이터(630) 내의 리소스 데이터가 정해질 수 있다. 예들 들면, "law.com" 서치 키에 대하여, 도메인 네임 데이터(610) 내의 도메인 네임 레코드(620)로 매치가 정해질 수 있다. 예컨대, 네임 서버 포인터(626)를 비롯한 적절한 정보가 추출될 수 있다. 다음에, 상기 적절한 네임 서버 레코드(640)가 네임 서버 포인터(626)를 이용하여 인덱스될 수 있고, 네임 서버 네트워크 어드레스(647)가 추출될 수 있다.
도 7에 도시한 데이터베이스 실시 형태를 참조하면, 상기 서치 키에 대하여 TST가 서치될 수 있는데(930), 그로부터 리소스 데이터가 정해질 수 있다. 예를들면, "law.com" 서치 키에 대하여, 서치 노드(701)가 서치될 수 있고(930), 노드(730)로 매치가 정해진다. 키 포인터(736)가 추출될 수 있는데, 이로부터 상기 키 데이터 레코드(750)가 정해질 수 있다. 다음에, 터미널 데이터 포인터(752)의 수가 확인될 수 있고, 각 터미널 데이터 포인터가 추출될 수 있다. 예를 들면, 터미널 데이터 포인터(757)는 터미널 데이터 레코드(760)를 참조할 수 있고, 터미널 데이터 포인터(758)는 터미널 데이터 레코드(770)를 참조할 수 있다. 상기 가변 길이 리소스 데이터, 예컨대 네임 서버 네트워크 어드레스(762) 및 네임 서버 네트워크 어드레스(772)는 각각 길이(761, 771)를 이용하여 각 터미널 데이터 레코드로부터 추출될 수 있다.
도 8에 도시한 데이터베이스 실시 형태를 참조하면, 상기 OAK 트리는 상기 서치 키에 대하여 서치될 수 있는데(930), 이로부터 리소스 데이터가 정해질 수 있다. 예컨대, "law.com" 서치 키에 대하여, 서치 노드(801)가 서치될 수 있고(930), 노드(830)로 매치가 정해진다. 제2 어드레스(837)가 추출될 수 있는데, 이로부터 키 데이터 레코드(850)가 정해질 수 있다. 다음에, 터미널 데이터 포인터(852)의 갯수가 확인될 수 있고, 각 터미널 데이터 포인터가 추출될 수 있다. 예를 들면, 터미널 데이터 포인터(857)는 터미널 데이터 레코드(860)를 참조할 수 있고, 터미널 데이터 포인터(858)는 터미널 데이터 레코드(870)를 참조할 수 있다. 상기 가변 길이 리소스 데이터, 예컨대 네임 서버 네트워크 어드레스(862) 및 네임 서버 네트워크 어드레스(872)는 각각 길이(861, 871)를 이용하여 각 터미널 데이터 레코드로부터 추출될 수 있다.
각 서치 쓰레드는 상기 할당된 서치 쿼리에 대응하는 복수 개의 서치 리플라이(reply)를 만들어 낼 수 있다(940). 특정 서치 키에 대하여 매치가 발견되지 않으면, 상기 리플라이는 예컨대, 널 캐릭터와 같은 적절한 표식(indication)을 포함할 수 있다. 도 6 내지 도 8을 참조하면, 예컨대, 서치 키는 "law.com"일 수 있고, 대응하는 리소스 데이터는 "180.1.1.1."일 수 있다. 2 이상의 네임 서버 네트워크 어드레스는 하나의 서치 키와 연관될 수 있는데, 이러한 경우, 2 이상의 네임 서버 네트워크 어드레스가 정해질 수 있다.
상기 리플라이는 네트워크를 거쳐 보내질 수 있다(950). 한 가지 실시 형태에서, 각 서치 쓰레드는 오리지널 쿼리를 포함하는 단일의 네트워크 패킷(예컨대, 리퀘스트 슈퍼 패킷(220)에 대응하는 단일의 네트워크 패킷(예컨대, 리스판스 슈퍼 패킷(240)) 내로 상기 적절한 리플라이를 멀티플렉스할 수 있다. 별법으로서, 상기 적절한 리플라이는 상이한 프로세스 또는 쓰레드에 의해 상기 단일 네트워크 패킷 내로 멀티플렉스될 수도 있다. 다음에, 상기 리스판스 네트워크 패킷은 LAN(122) 또는 WAN(124)을 매개로, 복수 개의 네트워크 컴퓨터(120-1 ... 120-N) 내부의 적절한 네트워크 컴퓨터로 보내질 수 있다(950). 한 가지 실시 형태에서, 상기 리스판스 패킷은 상기 리퀘스트 패킷을 만들어 내는 동일한 네트워크 컴퓨터로 보내질 수 있고, 다른 실시 형태에서, 상기 리스판스 패킷은 상이한 네트워크컴퓨터로 보내질 수 있다.
상기 업데이트 쓰레드는 네트워크를 통해 새로운 정보를 수신할 수 있다(960). 한 가지 실시 형태에서, 새로운 정보는, 예컨대 WAN(124)을 통해 OLTP 서버(140-1)로부터 시스템(100)으로 보내질 수 있다. 다른 실시 형태에서, 상기 시스템(100)은 WAN(124)을 매개로 OLTP 서버(140-1 ... 140-S)로부터, 그리고 WAN(124) 또는 LAN(122)을 거쳐 복수 개의 네트워크 컴퓨터(120-1 ... 120-N)로부터 업데이트를 수신할 수 있다. 상기 DNS 분석 실시 형태에서, 예컨대, 새로운 정보는 기존의 도메인 네임에 대하여, 새로운 도메인 네임 데이터, 새로운 네임 서버 데이터, 새로운 네임 서버 등을 포함할 수 있다. 별법으로서, 상기 새로운 정보는 도메인 네임 레코드, 네임 서버 레코드 등이 데이터베이스로부터 삭제될 수 있다는 것을 나타낼 수 있다. 일반적으로, 상기 데이터베이스에 포함된 임의의 정보는 적절하게 추가, 변형 또는 삭제될 수 있다.
업데이트 쓰레드는 새로운 정보에 기초한 복수의 새로운 엘리먼트들을 만들 수 있다(970). 전형적으로, 데이터베이스의 기설(existing) 엘리먼트에 포함된 정보를 수정하는 것은 기설 엘리먼트에 기초한 새로운 정보를 만들고, 새로운 정보를 포함하도록 새로운 엘리먼트를 수정함으로서 통합될 수 있다. 이 절차에서, 새로운 엘리먼트에서 포인터가 데이터베이스에 기록될 때 까지, 새로운 엘리먼트는 시스템(100)에서 명백히 실행되는 서치 쓰레드 또는 절차에는 보여지지 않을 수 있다. 일반적으로, 데이터베이스에 추가하는 것은 기설 엘리먼트에 포함된 정보를 반드시 이용하지 않고 유사한 경향으로 달성될 수 있다. 한 실시예에 따르면, 데이터베이스에서 기설 엘리먼트를 삭제하는 것은 새롭고 명백한 "삭제" 엘리먼트를 데이터베이스에 추가함으로서 달성될 수 있다. 다른 실시예에 따르면, 기설 엘리먼트를 데이터베이스로부터 삭제하는 것은 적절한 표시기(indicator; 예를 들면 눌 포인터 등)로 포인터를 기설 엘리먼트에 중복하여 기록함으로서 달성될 수 있다. 상기 실시예에서, 업데이트 쓰레드는 새로운 정보를 포함하는 데이터베이스에서 새로운 엘리먼트를 만들지 않는다.
DNS 레졸루션 실시태양에서 예를 들어 새로운 정보는 데이터베이스에 첨가되는 새로운 도메인 네임을 포함한다. 이러한 예에서 편이성을 위해 새로운 도메인 네임은 현존하는 네임 서버를 참조 인용한다. 도 6에 나타난 바와 같이 새로운 도메인 네임 레코드 615를 위한 메모리 스페이스는 도메인 네임 레코드 611과 결합된 메모리 풀로부터 또는 대안으로 도메인 네임 데이터 610과 결합된 일반적 메모리 풀로부터 배치된다. 새로운 도메인 네임은 도메인 네임 레코드 615로 표준화되고 복제되고, 현존하는 네임 서버(즉, 네임 서버 레코드 655)로의 포인터는 새로운 도메인 네임 레코드 615로 결정되고 복제된다. 다른 정보는 새로운 도메인 네임 레코드 615로 계산되고 첨가된다; 예를 들어 네임 서버의 수, 체인 포인터 등. 더욱 복잡한 예로서 새로운 정보는 상응하는 자원 데이터를 지닌 새로운 검색 키를 포함한다.
도 7을 참고로 더욱 복잡한 예들 들면, 새로운 키 데이터 레코드(780) 및 새로운 서치 노드(705)는 기설 서치 노드(710)의 제 1 지점에 있는 비교 캐릭터("l")보다 큰 제 1 지점에 있는 비교 캐릭터("m")을 포함할 수 있다. 이어서, 서치 노드(705)는 서치 노드(710)과 동일한 "레벨"(예들 들면, 찻번째 캐릭터 지점)에서 TST에 삽입될 수 있다. 서치 노드(705)가 데이터베이스에 넘겨지기 전에, 서치 노드(710)의 포인터(715)보다 큰 4-바이트는 "눌" 포인터를 포함할 수 있다. 서치 노드(705)는, 또한, 새로운 키 데이터 레코드(780)에서 40-비트 포인터를 포함하는 4-바이트 키 포인터(706)을 포함할 수 있다. 키 데이터 레코드(780)은 키 길이(781)(예들 들면 "5") 및 타입(782; 예들 들면 내재된 소스 데이터를 포함하는), 가변 길이 키(783, 예들 들면, "m.com"), 내재된 리소스(784, 예들 들면 "1"), 리소스 길이(785, 예들 들면 "9"), 가변-길이 리소스 스트링(786) 또는 바이트 시켄스(예들 들면, "180.1.1.1") 및 더티 비트(707)를 포함할 수 있다. 메모리 공간은 복수의 키 데이터 레코드(702)와 관련된 메모리 풀로부터 키 데이터 레코드(770)에 할당되는 반면, 메모리 공간은 TST 노드(701)과 관련된 메모리 풀로부터 서치 노드(705)에 할당될 수 있다.
도 8을 참고로 예들 들면, 새로운 키 데이터 레코드(880) 및 새로운 서치 노드(890)이 만들어질 수 있다. 이 실시예에서, 새로운 서치 노드(890)은 예들 들면 2-비트 노드 타입(891; 예들 들면 "01"), 38-비트 제 1 어드레스(892), 8-비트 어드레스 카운트(893; 예들 들면, "2"), 8-비트 제 1 캐릭터(894, 예들 들면, "l"), 8-비트 최종 캐릭터(895, 예들 들면, "m"), 가변-길이 비트맵(896) 및 38-비트 제 2 어드레스(897)을 포함하는 수평 노드일 수 있다. 제 2 어드레스(897)은 서치 키 플래그먼트 "m"과 관련된 키 데이터 레코드(880)에 지시되는 반면, 제 1 어드레스(892)는 수직 노드(820)에 "l" 서치 스트링 경로에 있는 다음 수직 노드를 지시한다. 키 더이터 레코드(880)은 키 길이(881; 예들 들면 "5") 및 타입(882; 예들 들면, 내재된 리소스 데이터), 개변 길이 키(883, 예들 들면, "m.com"), 내재된 리소스(884; 예들 들면, "1"), 리소스 길이(885; 예들 들면, "9"), 가변-길이 리소스 스트링(886) 또는 바이트 시켄스(예들 들면, "180.1.1.1") 및 더티 비트(807)을 포함할 수 있다. 메모리 공간은 복수의 키 데이터 레코드(802)와 관련된 메모리 풀로부터 키 데이터 레코드(880)에 할당되는 한편, 메모리 공간은 복수의 서치 노드(801)과 관련된 메모리 풀로부터 서치 노드(890)에 할당될 수 있다.
업데이트 쓰레드는 단일 언인터럽트 연산(single uninterruptible operation)을 이용한 데이터베이스에 포인터를 기록(980)할 수 있다. 일반적으로, 새로운 엘리먼트는 데이터베이스 내에 있는 적절한 위치에서 새로운 엘리먼트에 포인터를 기록함으로서 데이터베이스에 인도될 수 있다(서치 쓰레드 또는 프로세스에서 즉석에서 보여지게 된다). 위에서 설명하였듯이, 단일 연산이 적절한 길이의 단일 저장 지시를 포함함으로서, 상기 적절한 위치는 메모리에 배열될 수 있다. 하나의 실시태양에서 현재 요소는 적당한 지표(즉, "널(null)" 포인터 등)를 지닌 현재요소에 포인터를 즉시 덮어씀으로서 데이터베이스로부터 삭제된다(즉, 검색 쓰레드 또는 프로세스에서 안보이게 됨). 다시, 적당한 위치는 메모리 내에서 정렬되어 단일 작동이 적당한 길이의 단일 저장 지시를 포함하게 된다.
도 6에 나타난 바와 같이 도메인 네임 레코드 620에 상응하는 8-바이트 포이터는 해쉬(hash) 테이블 612(즉, 요소 613)에 기록된다. 중요하게는, 해쉬 테이블 기입은 단일, 8-바이트 저장 지시가 이러한 수치를 업데이트하는데 사용되는지를 보증하기 위해 메모리 104 내의 8-바이트 바운더리 상에 정렬된다. 도 7에 나타난 바와 같이 새로운 검색 노드(node) 705에 상응하는 4-바이트 포인터는 검색 노드 710 내의 노드 포인터 715 보다 "더 큰" 4-바이트에 기록된다. 중요하게는, 노드 포인터 715는 단일, 4-바이트 저장 지시가 이러한 수치를 업데이트하는데 사용되는지를 보증하기 위해 메모리 104 내의 4-바이트 바운더리 상에 정렬된다. 도 8에 나타난 바와 같이 다수의 검색 노드 801도 메모리 104 내의 8-바이트 워드 바운더리 상에 정렬되고 다수의 검색 노드 801 내의 첫 번째 노드(즉, 수직 노드 810)를 참증하는 탑-오브-트리(top-of-tree) 어드레스 899를 포함한다. 새로운 검색 논드 890에 상응하는 8-바이트 포인터는 단일 저장 지시를 이용하여 탑-오브-트리 어드레스 899에 기록된다. 이들 각각의 실시태양에서 저장 지시 바로 전에 새로운 데이터는 검색 쓰레드에 보이지 않는 반면 저장 지시 바로 후에 새로운 데이터는 검색 쓰레드에 보인다. 따라서 단일의 중단불가능 작동으로 새로운 데이터가 데이터베이스 잠금 또는 접근 제어의 이용없이 데이터베이스에 넘겨진다.
하나의 실시태양에서 업데이트 쓰레드는 포인터가 데이터베이스에 기록된 후(980) 현재 요소를 물리적으로 삭제한다(980). 유리하게는 변형되거나 삭제된 데이터베이스의 현재 요소를 위해 메모리 104로부터의 이들 요소의 물리적 삭제가 지연되어 인-프로세스 검색의 일관성을 보존한다. 예를 들어 현재 요소가 변형되고 상응하는 새로운 요소가 데이터베이스에 넘겨진 후 메모리 104로부터의 현재 요소의 물리적 삭제가 지연되어 새로운 요소가 데이터베이스에 넘겨지기 전에 획득된 결과를 지닌 현재 검색 쓰레드가 계속해서 데이터의 이전 상태를 이용하게 된다. 업데이트 쓰레드는 현재 요소가 변형되거나 삭제되기 전에 시작된 검색 쓰레드가 종료된 후 현재 요소를 물리적으로 삭제한다(980).
잠재적 문제(potential complication)는 본 발명의 실시예와 관련된 방법의 상호연산 및 시스템(100)의 다양한 구조적인 특징으로부터 발생한다. 예들 들면, 업데이트 쓰레드가 실행되는 프로세서(예들 들면, 프로세서 102-1, 102-2 등)는 부적절한 지시의 실행을 지지하기 위한 하드웨어를 포함한다. 다른 예를 들면, 시스템(100)은 프로세서의 내적 구조(예들 들면, 프로서세 102-1, 102-2 등)의 페러렐리즘(parallelism)을 이용하도록 최적으로 재배열된 본 발명의 실시예와 관련된 지시의 시켄스를 생산할 수 있는 최적화된 컴파일러를 포함한다. 많은 다른 문제는 본 발명이 속한 분야의 당업자에 의하여 인식될 수 있다. 부적절한 지시의 실행으로부터 발생하는 데이터 해저드(hazard)는, 예를 들면, 새로운 엘리먼트의발생(970)과 데이터베이스에 포인터 기록(980) 사이의 종속성을 만듦으로서 제거될 수 있다.
본 발명의 실시예에서, 이러한 종속성은 예들 들면, 데이터베이스에 포인터의 기록(980)을 실행하기 전에 나오거나 완성되는 새로운 엘리먼트의 발생(970)과 관련된 지시의 실행을 강제하기 위한 프로세서 102-1에 의하여 실행되는 지시의 시켄스로 배타적인 OR(XOR) 지시와 같은 추가의 산수 연산을 삽입함으로서 설정될 수 있다. 예를 들면, 새로운 엘리먼트에 대응하고 더티 비트를 포함하는 메모리(104)에 위치하는 내용은 새로운 엘리먼트에서 포인터에 대응하는 메모리(104)에 위치하는 내용으로 XOR될 수 있다. 이어서, 새로운 엘리먼트의 어드레스는 새로운 엘리먼트를 데이터베이스에 인가하기 위하여 메모리(104)에 기록(980)될 수 있다. 본 발명이 속한 기술분야의 당업자은 이러한 문제들을 극복하기 위한 다양한 방법을 알고 있다.
본 발명의 여러 실시예가 본원에서 구체적으로 예시 및 기술되어 있다. 그러나, 본 발명의 사상 및 의도되는 범주로부터 벗어남이 없이 첨부된 청구의 범위 이내에서, 그리고 상기 교시 내용에 의해 본 발명의 변형 및 변화가 커버된다는 것을 알 수 있을 것이다.
Claims (54)
- 네트워크에 결합된 적어도 하나 이상의 프로세서; 및업데이트 쓰레드 및 다수의 검색 쓰레드를 생성하고;다수의 검색 쓰레드 중의 하나에 네트워크를 통해 수신된 다수의 검색 질문의 각각을 할당하며 :상기 각각의 검색 쓰레드는 :할당된 검색 질문에 따라 데이터베이스를 검색하고,할당된 검색 질문에 상응하는 다수의 검색 응답을 생성하고,네트워크를 통해 다수의 검색 응답을 송신함을 특징으로 하고;상기 업데이트 쓰레드는 :네트워크를 통해 수신된 새로운 정보에 따라 새로운 요소를 생성하고,다수의 검색 쓰레드에 대한 데이터베이스로의 접근을 제한하지 않고 단일의 중단불가능 작동을 이용하여 데이터베이스에 새로운 요소에 대한 포인터를 기록함을 특징으로 하고 :프로세서에 의해 실행되도록 개조된 데이터베이스 및 지시를 포함한, 프로세서에 결합된 메모리로구성된 멀티-쓰레드 네트워크 데이터베이스 시스템
- 제 1항에 있어서, 상기 단일의 중단불가능 작동은 저장 지시임을 특징으로 하는 시스템
- 제 1항에 있어서,상기 업데이트 쓰레드는 :포인터가 데이터베이스에 기록된 후 메모리로부터 현재 요소를 물리적으로 삭제하는 것임을 더욱 포함하는 것을 특징으로 하는 시스템
- 제 2항에 있어서, 상기 저장 지시는 4 바이트 바운더리 상에 위치한 메모리 어드레스에 4 바이트를 기록함을 특징으로 하는 시스템
- 제 2항에 있어서, 상기 저장 지시는 8 바이트 바운더리 상에 위치한 메모리 어드레스에 8 바이트를 기록함을 특징으로 하는 시스템
- 제 2항에 있어서, 상기 프로세서는 적어도 n-바이트의 단어 크기를 지니고, 상기 메모리는 적어도 n-바이트의 폭을 지니고, 상기 저장 지시는 n-바이트 바운더리 상에 위치한 메모리 어드레스에 n-바이트를 기록함을 특징으로 하는 시스템
- 제 1항에 있어서, 상기 다수의 검색 질문은 단일 네트워크 패킷 내에서 수신됨을 특징으로 하는 시스템
- 제 1항에 있어서, 상기 다수의 검색 응답은 단일 네트워크 패킷 내에서 송신됨을 특징으로 하는 시스템
- 제 1항에 있어서, 상기 접근 제한은 데이터베이스 잠금을 포함함을 특징으로 하는 시스템
- 제 1항에 있어서, 상기 접근 제한은 스핀 잠금을 포함함을 특징으로 하는 시스템
- 제 10항에 있어서, 상기 스핀 잠금은 적어도 하나 이상의세마포어(semaphore)의 이용을 포함함을 특징으로 하는 시스템
- 제 11항에 있어서, 상기 세마포어는 뮤텍스(mutex) 세마포어임을 특징으로 하는 시스템
- 제 1항에 있어서, 다수의 프로세서 및 대칭 멀티-프로세싱 작동 시스템을 더욱 포함함을 특징으로 하는 시스템
- 제 13항에 있어서, 상기 다수의 검색 쓰레드는 초 당 적어도 100,000 검색 이상을 실행함을 특징으로 하는 시스템
- 제 14항에 있어서, 상기 업데이트 쓰레드는 초 당 적어도 10,000 업데이트 이상을 실행함을 특징으로 하는 시스템
- 제 14항에 있어서, 상기 업데이트 쓰레드는 초 당 50,000∼130,000 업데이트를 실행함을 특징으로 하는 시스템
- 제 1항에 있어서, 상기 새로운 요소에 대한 포인터는 검색 인덱스에 기록됨을 특징으로 하는 시스템
- 제 17항에 있어서, 상기 검색 인덱스는 TST임을 특징으로 하는 시스템
- 제 17항에 있어서, 상기 검색 인덱스는 해쉬 테이블임을 특징으로 하는 시스템
- 제 1항에 있어서, 상기 새로운 요소에 대한 포인터는 데이터베이스 내의 데이터 레코드에 기록됨을 특징으로 하는 시스템
- 업데이트 쓰레드 및 다수의 검색 쓰레드를 생성하고;다수의 검색 쓰레드 중의 하나에 네트워크를 통해 수신된 다수의 검색 질문의 각각을 할당하는 것으로 구성되고 :상기 각각의 검색 쓰레드는 :할당된 검색 질문에 따라 데이터베이스를 검색하고,할당된 검색 질문에 상응하는 다수의 검색 응답을 생성하고,네트워크를 통해 다수의 검색 응답을 송신함을 특징으로 하고;상기 업데이트 쓰레드는 :네트워크를 통해 수신된 새로운 정보에 따라 새로운 요소를 생성하고,다수의 검색 쓰레드에 대한 데이터베이스로의 접근을 제한하지 않고 단일의 중단불가능 작동을 이용하여 데이터베이스에 새로운 요소에 대한 포인터를 기록함을 특징으로 하는 :데이터베이스를 검색하고 동시에 업데이트하는 방법
- 제 21항에 있어서, 상기 단일의 중단불가능 작동은 저장 지시임을 특징으로 하는 방법
- 제 21항에 있어서,상기 업데이트 쓰레드는 :포인터가 데이터베이스에 기록된 후 현재 요소를 물리적으로 삭제하는 것임을 더욱 포함하는 것을 특징으로 하는 시스템
- 제 22항에 있어서, 상기 저장 지시는 4 바이트 바운더리 상에 위치한 메모리 어드레스에 4 바이트를 기록함을 특징으로 하는 방법
- 제 22항에 있어서, 상기 저장 지시는 8 바이트 바운더리 상에 위치한 메모리 어드레스에 8 바이트를 기록함을 특징으로 하는 방법
- 제 21항에 있어서, 상기 다수의 검색 질문은 단일 네트워크 패킷 내에서 수신됨을 특징으로 하는 방법
- 제 21항에 있어서, 상기 다수의 검색 응답은 단일 네트워크 패킷 내에서 송신됨을 특징으로 하는 방법
- 제 21항에 있어서, 상기 접근 제한은 데이터베이스 잠금을 포함함을 특징으로 하는 방법
- 제 21항에 있어서, 상기 접근 제한은 스핀 잠금을 포함함을 특징으로 하는 방법
- 제 29항에 있어서, 상기 스핀 잠금은 적어도 하나 이상의 세마포어의 이용을 포함함을 특징으로 하는 방법
- 제 30항에 있어서, 상기 세마포어는 뮤텍스 세마포어임을 특징으로 하는 방법
- 제 21항에 있어서, 상기 다수의 검색 쓰레드는 초 당 적어도 100,000 업데이트 이상을 실행함을 특징으로 하는 방법
- 제 32항에 있어서, 상기 업데이트 쓰레드는 초 당 적어도 10,000 업데이트이상을 실행함을 특징으로 하는 방법
- 제 33항에 있어서, 상기 업데이트 쓰레드는 초당 50,000∼130,000 업데이트를 실행함을 특징으로 하는 방법
- 제 21항에 있어서, 상기 새로운 요소에 대한 포인터는 검색 인덱스에 기록됨을 특징으로 하는 방법
- 제 35항에 있어서, 상기 검색 인덱스는 TST임을 특징으로 하는 방법
- 제 21항에 있어서, 상기 새로운 요소에 대한 포인터는 데이터베이스 내의 데이터 레코드에 기록됨을 특징으로 하는 방법
- 업데이트 쓰레드 및 다수의 검색 쓰레드를 생성하고;다수의 검색 쓰레드 중의 하나에 네트워크를 통해 수신된 다수의 검색 질문의 각각을 할당하는 것으로 구성되고 :상기 각각의 검색 쓰레드는 :할당된 검색 질문에 따라 데이터베이스를 검색하고,할당된 검색 질문에 상응하는 다수의 검색 응답을 생성하고,네트워크를 통해 다수의 검색 응답을 송신함을 특징으로 하고;상기 업데이트 쓰레드는 :네트워크를 통해 수신된 새로운 정보에 따라 새로운 요소를 생성하고,다수의 검색 쓰레드에 대한 데이터베이스로의 접근을 제한하지 않고 단일의 중단불가능 작동을 이용하여 데이터베이스에 새로운 요소에 대한 포인터를 기록함을 특징으로 하는 :데이터베이스를 검색하고 동시에 업데이트하는 방법을 실행하기 위해 적어도 하나 이상의 프로세서에 의해 실행되도록 개조된 지시를 포함한 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 단일 중단불가능 작동은 저장 지시임을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 방법은상기 업데이트 쓰레드가 :포인터가 데이터베이스에 기록된 후 현재 요소를 물리적으로 삭제하는 것임을 더욱 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체
- 제 39항에 있어서, 상기 저장 지시는 4 바이트 바운더리 상에 위치한 메모리 어드레스에 4 바이트를 기록함을 특징으로 하는 컴퓨터 판독가능 매체
- 제 39항에 있어서, 상기 저장 지시는 8 바이트 바운더리 상에 위치한 메모리 어드레스에 8 바이트를 기록함을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 다수의 검색 질문은 단일 네트워크 패킷 내에서 수신됨을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 다수의 검색 응답은 단일 네트워크 패킷 내에서 송신됨을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 접근 제한은 데이터베이스 잠금을 포함함을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 접근 제한은 스핀 잠금을 포함함을 특징으로 하는 컴퓨터 판독가능 매체
- 제 46항에 있어서, 상기 스핀 잠금은 적어도 하나 이상의 세마포어의 이용을 포함함을 특징으로 하는 컴퓨터 판독가능 매체
- 제 47항에 있어서, 상기 세마포어는 뮤텍스 세마포어임을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 새로운 요소에 대한 포인터는 검색 인덱스에 기록됨을 특징으로 하는 컴퓨터 판독가능 매체
- 제 49항에 있어서, 상기 검색 인덱스는 TST임을 특징으로 하는 컴퓨터 판독가능 매체
- 제 38항에 있어서, 상기 새로운 요소에 대한 포인터는 데이터베이스 내의 데이터 레코드에 기록됨을 특징으로 하는 컴퓨터 판독가능 매체
- 업데이트 쓰레드 및 다수의 검색 쓰레드를 생성하고;다수의 검색 쓰레드 중의 하나에 네트워크를 통해 수신된 다수의 검색 질문의 각각을 할당하는 것으로 구성되고 :상기 각각의 검색 쓰레드는 :할당된 검색 질문에 따라 데이터베이스를 검색하고,할당된 검색 질문에 상응하는 다수의 검색 응답을 생성하고,네트워크를 통해 다수의 검색 응답을 송신함을 특징으로 하고;상기 업데이트 쓰레드는 :다수의 검색 쓰레드에 대한 데이터베이스로의 접근을 제한하지 않고 단일의 중단불가능 작동을 이용하여 데이터베이스에 새로운 요소에 대한 포인터를 기록함을 특징으로 하는 :데이터베이스를 검색하고 동시에 업데이트하는 방법
- 제 52항에 있어서, 상기 포인터는 널(null) 포인터를 포함함을 특징으로 하는 방법
- 제 52항에 있어서,상기 업데이트 쓰레드는 :포인터가 데이터베이스에 기록된 후 현재 요소를 물리적으로 삭제하는 것임을 더욱 포함함을 특징으로 하는 방법
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33084201P | 2001-11-01 | 2001-11-01 | |
US60/330,842 | 2001-11-01 | ||
US36516902P | 2002-03-19 | 2002-03-19 | |
US60/365,169 | 2002-03-19 | ||
PCT/US2002/035082 WO2003038596A1 (en) | 2001-11-01 | 2002-11-01 | High speed non-concurrency controlled database |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040053268A true KR20040053268A (ko) | 2004-06-23 |
KR100970122B1 KR100970122B1 (ko) | 2010-07-13 |
Family
ID=26987480
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047006695A KR100970122B1 (ko) | 2001-11-01 | 2002-11-01 | 고속 논-콘커런시 제어된 데이터베이스 |
KR1020047006658A KR100977161B1 (ko) | 2001-11-01 | 2002-11-01 | 원격 데이터베이스를 유효화시키기 위한 방법 및 시스템 |
KR1020047006649A KR100953137B1 (ko) | 2001-11-01 | 2002-11-01 | 원격 데이터베이스를 업데이트하기 위한 방법 및 시스템 |
KR1020047006689A KR100941350B1 (ko) | 2001-11-01 | 2002-11-01 | 트랜잭셔널 메모리 매니저 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047006658A KR100977161B1 (ko) | 2001-11-01 | 2002-11-01 | 원격 데이터베이스를 유효화시키기 위한 방법 및 시스템 |
KR1020047006649A KR100953137B1 (ko) | 2001-11-01 | 2002-11-01 | 원격 데이터베이스를 업데이트하기 위한 방법 및 시스템 |
KR1020047006689A KR100941350B1 (ko) | 2001-11-01 | 2002-11-01 | 트랜잭셔널 메모리 매니저 |
Country Status (16)
Country | Link |
---|---|
US (10) | US6681228B2 (ko) |
EP (10) | EP1449049A4 (ko) |
JP (4) | JP4420324B2 (ko) |
KR (4) | KR100970122B1 (ko) |
CN (4) | CN100557595C (ko) |
AU (5) | AU2002356884B2 (ko) |
BR (4) | BR0213807A (ko) |
CA (4) | CA2466117C (ko) |
EA (4) | EA006223B1 (ko) |
HK (1) | HK1075308A1 (ko) |
IL (8) | IL161712A0 (ko) |
MX (4) | MXPA04004202A (ko) |
NO (4) | NO20042261L (ko) |
NZ (4) | NZ532773A (ko) |
WO (5) | WO2003038653A1 (ko) |
ZA (4) | ZA200403597B (ko) |
Families Citing this family (270)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272604B1 (en) * | 1999-09-03 | 2007-09-18 | Atle Hedloy | Method, system and computer readable medium for addressing handling from an operating system |
US6745248B1 (en) * | 2000-08-02 | 2004-06-01 | Register.Com, Inc. | Method and apparatus for analyzing domain name registrations |
AU2001286786A1 (en) * | 2000-08-25 | 2002-03-13 | Stuart E. Massey | Transaction-based enterprise application integration (eai) and development system |
US20030182447A1 (en) * | 2001-05-31 | 2003-09-25 | Schilling Frank T. | Generic top-level domain re-routing system |
JP4420324B2 (ja) * | 2001-11-01 | 2010-02-24 | ベリサイン・インコーポレイテッド | 高速非並行制御されたデータベース |
US20040005892A1 (en) * | 2002-04-18 | 2004-01-08 | Arnaldo Mayer | System and method for managing parameter exchange between telecommunications operators |
CA2384185A1 (en) * | 2002-04-29 | 2003-10-29 | Ibm Canada Limited-Ibm Canada Limitee | Resizable cache sensitive hash table |
JP3971984B2 (ja) * | 2002-10-15 | 2007-09-05 | 松下電器産業株式会社 | 通信装置および通信方法 |
US8255361B2 (en) * | 2003-01-31 | 2012-08-28 | Oracle America, Inc. | Method and system for validating differential computer system update |
US7689569B2 (en) * | 2003-03-31 | 2010-03-30 | Qwest Communications International Inc. | Systems and methods for managing large data environments |
US20040193509A1 (en) * | 2003-03-31 | 2004-09-30 | Qwest Communications International Inc. | Systems and methods for managing telephone number inventory |
US7395276B2 (en) * | 2003-03-31 | 2008-07-01 | Qwest Communications International Inc. | Systems and methods for resolving telephone number discrepancies en masse |
US20040193604A1 (en) * | 2003-03-31 | 2004-09-30 | Qwest Communications International Inc. | Systems and methods for restricting a telephone number's availability for assignment |
US7162495B2 (en) * | 2003-03-31 | 2007-01-09 | Qwest Communications Inc. | Systems and methods for clearing telephone number porting assignments EN masse |
US7624112B2 (en) * | 2003-04-03 | 2009-11-24 | Oracle International Corporation | Asynchronously storing transaction information from memory to a persistent storage |
US7212817B2 (en) * | 2003-04-30 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Partitioning a database keyed with variable length keys |
US20040220941A1 (en) * | 2003-04-30 | 2004-11-04 | Nielson Mark R. | Sorting variable length keys in a database |
JP4124348B2 (ja) * | 2003-06-27 | 2008-07-23 | 株式会社日立製作所 | 記憶システム |
JP2005309550A (ja) | 2004-04-19 | 2005-11-04 | Hitachi Ltd | リモートコピー方法及びリモートコピーシステム |
US7130975B2 (en) * | 2003-06-27 | 2006-10-31 | Hitachi, Ltd. | Data processing system |
JP4374953B2 (ja) | 2003-09-09 | 2009-12-02 | 株式会社日立製作所 | データ処理システム |
TW591441B (en) * | 2003-07-28 | 2004-06-11 | Accton Technology Corp | Database system and data access method thereof |
US8949304B2 (en) * | 2003-08-20 | 2015-02-03 | Apple Inc. | Method and apparatus for accelerating the expiration of resource records in a local cache |
US7590643B2 (en) * | 2003-08-21 | 2009-09-15 | Microsoft Corporation | Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US8131739B2 (en) * | 2003-08-21 | 2012-03-06 | Microsoft Corporation | Systems and methods for interfacing application programs with an item-based storage platform |
US7606788B2 (en) * | 2003-08-22 | 2009-10-20 | Oracle International Corporation | Method and apparatus for protecting private information within a database |
CN100337236C (zh) * | 2003-08-26 | 2007-09-12 | 华为技术有限公司 | 一种使前后台数据库中数据相一致的方法 |
US20050066290A1 (en) * | 2003-09-16 | 2005-03-24 | Chebolu Anil Kumar | Pop-up capture |
US20050065935A1 (en) * | 2003-09-16 | 2005-03-24 | Chebolu Anil Kumar | Client comparison of network content with server-based categorization |
US7219201B2 (en) * | 2003-09-17 | 2007-05-15 | Hitachi, Ltd. | Remote storage disk control device and method for controlling the same |
US7702628B1 (en) * | 2003-09-29 | 2010-04-20 | Sun Microsystems, Inc. | Implementing a fully dynamic lock-free hash table without dummy nodes |
US7158976B1 (en) * | 2003-09-30 | 2007-01-02 | Emc Corporation | Spatial domain mechanism |
US20060008256A1 (en) | 2003-10-01 | 2006-01-12 | Khedouri Robert K | Audio visual player apparatus and system and method of content distribution using the same |
US20130097302A9 (en) | 2003-10-01 | 2013-04-18 | Robert Khedouri | Audio visual player apparatus and system and method of content distribution using the same |
US7127587B2 (en) * | 2003-12-11 | 2006-10-24 | International Business Machines Corporation | Intent seizes in a multi-processor environment |
JP4412989B2 (ja) | 2003-12-15 | 2010-02-10 | 株式会社日立製作所 | 複数の記憶システムを有するデータ処理システム |
WO2005064823A1 (en) * | 2003-12-30 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method device for transmitting data packets belong to different users in a common transmittal protocol packet |
JP4477370B2 (ja) * | 2004-01-30 | 2010-06-09 | 株式会社日立製作所 | データ処理システム |
US7895199B2 (en) * | 2004-04-20 | 2011-02-22 | Honda Motor Co., Ltd. | Method and system for modifying orders |
US7555634B1 (en) | 2004-04-22 | 2009-06-30 | Sun Microsystems, Inc. | Multiple data hazards detection and resolution unit |
CA2465558A1 (en) * | 2004-04-22 | 2005-10-22 | Ibm Canada Limited - Ibm Canada Limitee | Framework for retrieval and display of large result sets |
DE602004002850T2 (de) * | 2004-05-11 | 2007-03-15 | Alcatel | Netzelement und Verfahren zur Abbildung von Adressinformationen |
US7483426B2 (en) * | 2004-05-13 | 2009-01-27 | Micrel, Inc. | Look-up table expansion method |
EP1756736B1 (en) * | 2004-05-21 | 2017-07-05 | CA, Inc. | Method and apparatus for enhancing directory performance |
US20060036720A1 (en) * | 2004-06-14 | 2006-02-16 | Faulk Robert L Jr | Rate limiting of events |
DE602004007903T2 (de) * | 2004-06-22 | 2008-04-17 | Sap Ag | Datenverarbeitungsvorrichtung von Online-Transaktionsdaten |
US7774298B2 (en) * | 2004-06-30 | 2010-08-10 | Sap Ag | Method and system for data extraction from a transaction system to an analytics system |
JP4519563B2 (ja) * | 2004-08-04 | 2010-08-04 | 株式会社日立製作所 | 記憶システム及びデータ処理システム |
US7359923B2 (en) * | 2004-08-20 | 2008-04-15 | International Business Machines Corporation | Online incremental deferred integrity processing and maintenance of rolled in and rolled out data |
US7788282B2 (en) * | 2004-09-16 | 2010-08-31 | International Business Machines Corporation | Methods and computer programs for database structure comparison |
JP2006127028A (ja) * | 2004-10-27 | 2006-05-18 | Hitachi Ltd | 記憶システム及び記憶制御装置 |
US8356127B2 (en) * | 2004-12-09 | 2013-01-15 | Rambus Inc. | Memory interface with workload adaptive encode/decode |
US7805422B2 (en) * | 2005-02-28 | 2010-09-28 | Microsoft Corporation | Change notification query multiplexing |
US20060218176A1 (en) * | 2005-03-24 | 2006-09-28 | International Business Machines Corporation | System, method, and service for organizing data for fast retrieval |
US9547780B2 (en) * | 2005-03-28 | 2017-01-17 | Absolute Software Corporation | Method for determining identification of an electronic device |
US7693082B2 (en) * | 2005-04-12 | 2010-04-06 | Azimuth Systems, Inc. | Latency measurement apparatus and method |
CN1878164A (zh) * | 2005-06-08 | 2006-12-13 | 华为技术有限公司 | E.164号码域名存储和查询方法 |
CN100395996C (zh) * | 2005-06-23 | 2008-06-18 | 华为技术有限公司 | 一种网络管理系统的信息同步方法 |
US7743028B1 (en) * | 2005-07-13 | 2010-06-22 | Symantec Corporation | Incremental backup of partial volumes |
US8015222B2 (en) | 2005-10-24 | 2011-09-06 | Emc Corporation | Virtual repository management |
US8819048B1 (en) * | 2005-10-24 | 2014-08-26 | Emc Corporation | Virtual repository management to provide retention management services |
US20070100783A1 (en) * | 2005-10-29 | 2007-05-03 | International Business Machines Corporation | Method, system, and program for determining discrepancies between database management systems |
US20070106729A1 (en) * | 2005-11-04 | 2007-05-10 | Research In Motion Limited | Method and system for updating message threads |
US8266609B2 (en) * | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
WO2007074286A1 (fr) * | 2005-12-27 | 2007-07-05 | France Telecom | Serveur et procede pour gerer des requetes dnssec |
US20070192374A1 (en) * | 2006-02-16 | 2007-08-16 | Emc Corporation | Virtual repository management to provide functionality |
US20110087792A2 (en) * | 2006-02-07 | 2011-04-14 | Dot Hill Systems Corporation | Data replication method and apparatus |
US7761293B2 (en) * | 2006-03-06 | 2010-07-20 | Tran Bao Q | Spoken mobile engine |
US20070208564A1 (en) * | 2006-03-06 | 2007-09-06 | Available For Licensing | Telephone based search system |
US20070226264A1 (en) * | 2006-03-22 | 2007-09-27 | Gang Luo | System and method for real-time materialized view maintenance |
US7783850B2 (en) * | 2006-03-28 | 2010-08-24 | Dot Hill Systems Corporation | Method and apparatus for master volume access during volume copy |
KR100728982B1 (ko) * | 2006-04-14 | 2007-06-15 | 주식회사 하이닉스반도체 | 상변환 기억 소자 및 그의 제조방법 |
KR100728983B1 (ko) * | 2006-04-14 | 2007-06-15 | 주식회사 하이닉스반도체 | 상변환 기억 소자 및 그의 제조방법 |
US7636829B2 (en) * | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
TW200743000A (en) * | 2006-05-11 | 2007-11-16 | Ming-Ta Hsu | Report retrieval and presentation methods and systems |
US8713188B2 (en) * | 2007-12-13 | 2014-04-29 | Opendns, Inc. | Per-request control of DNS behavior |
US8606926B2 (en) * | 2006-06-14 | 2013-12-10 | Opendns, Inc. | Recursive DNS nameserver |
US7575163B2 (en) | 2006-07-18 | 2009-08-18 | At&T Intellectual Property I, L.P. | Interactive management of storefront purchases |
US8400947B2 (en) * | 2006-07-20 | 2013-03-19 | Tekelec, Inc. | Methods, systems, and computer program products for specifying a particular ENUM service type in a communications network that utilizes a plurality of different ENUM service types |
US20080034053A1 (en) * | 2006-08-04 | 2008-02-07 | Apple Computer, Inc. | Mail Server Clustering |
US20080052270A1 (en) * | 2006-08-23 | 2008-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Hash table structure and search method |
US7921075B2 (en) * | 2006-09-29 | 2011-04-05 | International Business Machines Corporation | Generic sequencing service for business integration |
US9514201B2 (en) * | 2006-10-13 | 2016-12-06 | International Business Machines Corporation | Method and system for non-intrusive event sequencing |
US9274857B2 (en) * | 2006-10-13 | 2016-03-01 | International Business Machines Corporation | Method and system for detecting work completion in loosely coupled components |
US7680956B2 (en) * | 2006-10-24 | 2010-03-16 | Cisco Technology, Inc. | Communicating additional information in a DNS update response by requesting deletion of a specific record |
KR100898995B1 (ko) * | 2006-10-25 | 2009-05-21 | 노키아 코포레이션 | 원격 전자 거래 |
US9824107B2 (en) | 2006-10-25 | 2017-11-21 | Entit Software Llc | Tracking changing state data to assist in computer network security |
US7593973B2 (en) * | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
US20080254436A1 (en) * | 2006-11-16 | 2008-10-16 | Morgia Michael A | Selection Of A Consensus From A Plurality Of Ideas |
US8688749B1 (en) | 2011-03-31 | 2014-04-01 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US8515912B2 (en) | 2010-07-15 | 2013-08-20 | Palantir Technologies, Inc. | Sharing and deconflicting data changes in a multimaster database system |
US8181187B2 (en) * | 2006-12-01 | 2012-05-15 | Portico Systems | Gateways having localized in-memory databases and business logic execution |
US8615635B2 (en) * | 2007-01-05 | 2013-12-24 | Sony Corporation | Database management methodology |
US8751467B2 (en) * | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US7831565B2 (en) * | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
DE102007008293B4 (de) * | 2007-02-16 | 2010-02-25 | Continental Automotive Gmbh | Verfahren und Vorrichtung zum gesicherten Speichern und zum gesicherten Lesen von Nutzdaten |
US9690790B2 (en) | 2007-03-05 | 2017-06-27 | Dell Software Inc. | Method and apparatus for efficiently merging, storing and retrieving incremental data |
JP2008226167A (ja) * | 2007-03-15 | 2008-09-25 | Toshiba Corp | データ配布システム及びデータ配布プログラム |
US7716183B2 (en) * | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US7975115B2 (en) * | 2007-04-11 | 2011-07-05 | Dot Hill Systems Corporation | Method and apparatus for separating snapshot preserved and write data |
US8768898B1 (en) * | 2007-04-26 | 2014-07-01 | Netapp, Inc. | Performing direct data manipulation on a storage device |
US8856094B2 (en) * | 2007-05-08 | 2014-10-07 | Digital River, Inc. | Remote segmentation system and method |
US20090182718A1 (en) * | 2007-05-08 | 2009-07-16 | Digital River, Inc. | Remote Segmentation System and Method Applied To A Segmentation Data Mart |
US7783603B2 (en) * | 2007-05-10 | 2010-08-24 | Dot Hill Systems Corporation | Backing store re-initialization method and apparatus |
US8001345B2 (en) * | 2007-05-10 | 2011-08-16 | Dot Hill Systems Corporation | Automatic triggering of backing store re-initialization |
US8688920B2 (en) | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8175099B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Embedded system development platform |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US7882337B2 (en) * | 2007-05-19 | 2011-02-01 | International Business Machines Corporation | Method and system for efficient tentative tracing of software in multiprocessors |
US8204858B2 (en) * | 2007-06-25 | 2012-06-19 | Dot Hill Systems Corporation | Snapshot reset method and apparatus |
US8140961B2 (en) * | 2007-11-21 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Automated re-ordering of columns for alignment trap reduction |
US11347771B2 (en) * | 2007-11-28 | 2022-05-31 | International Business Machines Corporation | Content engine asynchronous upgrade framework |
US9990674B1 (en) | 2007-12-14 | 2018-06-05 | Consumerinfo.Com, Inc. | Card registry systems and methods |
US8412700B2 (en) | 2008-01-11 | 2013-04-02 | International Business Machines Corporation | Database query optimization using index carryover to subset an index |
US7912867B2 (en) * | 2008-02-25 | 2011-03-22 | United Parcel Services Of America, Inc. | Systems and methods of profiling data for integration |
US8015191B2 (en) * | 2008-03-27 | 2011-09-06 | International Business Machines Corporation | Implementing dynamic processor allocation based upon data density |
US8170988B2 (en) * | 2008-04-17 | 2012-05-01 | The Boeing Company | System and method for synchronizing databases |
US8768349B1 (en) * | 2008-04-24 | 2014-07-01 | Sprint Communications Company L.P. | Real-time subscriber profile consolidation system |
US9094140B2 (en) * | 2008-04-28 | 2015-07-28 | Time Warner Cable Enterprises Llc | Methods and apparatus for audience research in a content-based network |
DE102008022415A1 (de) * | 2008-05-06 | 2009-11-12 | TÜV Rheinland Industrie Service GmbH | Absinkverhinderungsvorrichtung |
US8140520B2 (en) * | 2008-05-15 | 2012-03-20 | International Business Machines Corporation | Embedding densities in a data structure |
US8275761B2 (en) | 2008-05-15 | 2012-09-25 | International Business Machines Corporation | Determining a density of a key value referenced in a database query over a range of rows |
EP2134122A1 (en) * | 2008-06-13 | 2009-12-16 | Hewlett-Packard Development Company, L.P. | Controlling access to a communication network using a local device database and a shared device database |
US8312033B1 (en) | 2008-06-26 | 2012-11-13 | Experian Marketing Solutions, Inc. | Systems and methods for providing an integrated identifier |
CN101309177B (zh) * | 2008-07-11 | 2012-01-11 | 中国移动通信集团云南有限公司 | 一种网络资源数据管理方法及系统 |
US9418005B2 (en) | 2008-07-15 | 2016-08-16 | International Business Machines Corporation | Managing garbage collection in a data processing system |
CN101639950B (zh) * | 2008-07-29 | 2011-07-13 | 中兴通讯股份有限公司 | 一种车道收费系统中的数据同步方法及装置 |
US8751441B2 (en) * | 2008-07-31 | 2014-06-10 | Sybase, Inc. | System, method, and computer program product for determining SQL replication process |
US8239417B2 (en) * | 2008-08-07 | 2012-08-07 | Armanta, Inc. | System, method, and computer program product for accessing and manipulating remote datasets |
US8768933B2 (en) * | 2008-08-08 | 2014-07-01 | Kabushiki Kaisha Toshiba | System and method for type-ahead address lookup employing historically weighted address placement |
CN101727383B (zh) * | 2008-10-16 | 2012-07-04 | 上海市医疗保险信息中心 | 数据库的仿真测试方法和系统 |
US9292612B2 (en) | 2009-04-22 | 2016-03-22 | Verisign, Inc. | Internet profile service |
US8676989B2 (en) | 2009-04-23 | 2014-03-18 | Opendns, Inc. | Robust domain name resolution |
US8527945B2 (en) | 2009-05-07 | 2013-09-03 | Verisign, Inc. | Method and system for integrating multiple scripts |
US8037076B2 (en) * | 2009-05-11 | 2011-10-11 | Red Hat, Inc. | Federated indexing from hashed primary key slices |
US8510263B2 (en) * | 2009-06-15 | 2013-08-13 | Verisign, Inc. | Method and system for auditing transaction data from database operations |
US8739125B2 (en) * | 2009-06-16 | 2014-05-27 | Red Hat, Inc. | Automated and unattended process for testing software applications |
US20100333071A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines |
US8977705B2 (en) * | 2009-07-27 | 2015-03-10 | Verisign, Inc. | Method and system for data logging and analysis |
US8327019B2 (en) | 2009-08-18 | 2012-12-04 | Verisign, Inc. | Method and system for intelligent routing of requests over EPP |
US8874694B2 (en) * | 2009-08-18 | 2014-10-28 | Facebook, Inc. | Adaptive packaging of network resources |
US8856344B2 (en) | 2009-08-18 | 2014-10-07 | Verisign, Inc. | Method and system for intelligent many-to-many service routing over EPP |
US20110044320A1 (en) * | 2009-08-21 | 2011-02-24 | Avaya Inc. | Mechanism for fast evaluation of policies in work assignment |
US8175098B2 (en) | 2009-08-27 | 2012-05-08 | Verisign, Inc. | Method for optimizing a route cache |
US8566524B2 (en) | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
US9047589B2 (en) | 2009-10-30 | 2015-06-02 | Verisign, Inc. | Hierarchical publish and subscribe system |
US9269080B2 (en) | 2009-10-30 | 2016-02-23 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9762405B2 (en) | 2009-10-30 | 2017-09-12 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9569753B2 (en) | 2009-10-30 | 2017-02-14 | Verisign, Inc. | Hierarchical publish/subscribe system performed by multiple central relays |
US9235829B2 (en) | 2009-10-30 | 2016-01-12 | Verisign, Inc. | Hierarchical publish/subscribe system |
US8982882B2 (en) | 2009-11-09 | 2015-03-17 | Verisign, Inc. | Method and system for application level load balancing in a publish/subscribe message architecture |
CN102096676B (zh) * | 2009-12-11 | 2014-04-09 | 中国移动通信集团公司 | 数据更新及查询控制方法及系统 |
US20110178984A1 (en) * | 2010-01-18 | 2011-07-21 | Microsoft Corporation | Replication protocol for database systems |
US8825601B2 (en) * | 2010-02-01 | 2014-09-02 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
US9176783B2 (en) | 2010-05-24 | 2015-11-03 | International Business Machines Corporation | Idle transitions sampling with execution context |
US8843684B2 (en) | 2010-06-11 | 2014-09-23 | International Business Machines Corporation | Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration |
US8799872B2 (en) | 2010-06-27 | 2014-08-05 | International Business Machines Corporation | Sampling with sample pacing |
FR2964213B1 (fr) * | 2010-09-01 | 2013-04-26 | Evidian | Annuaire d'identite et procede de mise a jour d'un annuaire d'identite |
US8489724B2 (en) * | 2010-09-14 | 2013-07-16 | Cdnetworks Co., Ltd. | CNAME-based round-trip time measurement in a content delivery network |
US20120089646A1 (en) * | 2010-10-08 | 2012-04-12 | Jain Rohit N | Processing change data |
US8332433B2 (en) | 2010-10-18 | 2012-12-11 | Verisign, Inc. | Database synchronization and validation |
US8799904B2 (en) | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
JP5652281B2 (ja) * | 2011-03-18 | 2015-01-14 | 富士通株式会社 | 業務処理サーバ、業務処理方法及び業務処理プログラム |
RU2480819C2 (ru) * | 2011-06-28 | 2013-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ оптимизации работы со связными списками |
US8549579B2 (en) * | 2011-07-06 | 2013-10-01 | International Business Machines Corporation | Dynamic data-protection policies within a request-reply message queuing environment |
EP2740058A4 (en) * | 2011-08-03 | 2015-04-22 | Amazon Tech Inc | COLLECTING TRANSACTION DATA ASSOCIATED WITH LOCALLY RECORDED DATA FILES |
US8782352B2 (en) * | 2011-09-29 | 2014-07-15 | Oracle International Corporation | System and method for supporting a self-tuning locking mechanism in a transactional middleware machine environment |
US8738516B1 (en) | 2011-10-13 | 2014-05-27 | Consumerinfo.Com, Inc. | Debt services candidate locator |
IL216056B (en) | 2011-10-31 | 2018-04-30 | Verint Systems Ltd | A system and method for integrating databases |
US9679009B2 (en) * | 2011-11-17 | 2017-06-13 | Sap Se | Component independent process integration message search |
WO2013074914A1 (en) | 2011-11-18 | 2013-05-23 | Appassure Software, Inc. | Method of and system for merging, storing and retrieving incremental backup data |
US8782004B2 (en) | 2012-01-23 | 2014-07-15 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
KR101375794B1 (ko) | 2012-01-27 | 2014-03-18 | 네이버비즈니스플랫폼 주식회사 | 데이터베이스의 성능을 향상하기 위한 방법 및 장치 |
JP2013182588A (ja) * | 2012-03-05 | 2013-09-12 | Oki Electric Ind Co Ltd | バックアップシステムにおけるバックアップデータの同期方法 |
US9065855B2 (en) * | 2012-06-29 | 2015-06-23 | Verisign, Inc. | Systems and methods for automatically providing Whois service to top level domains |
US9244846B2 (en) | 2012-07-06 | 2016-01-26 | International Business Machines Corporation | Ensuring causality of transactional storage accesses interacting with non-transactional storage accesses |
US9369395B2 (en) | 2012-08-31 | 2016-06-14 | At&T Intellectual Property I, L.P. | Methods and apparatus to negotiate flow control for a communication session |
US20140101150A1 (en) * | 2012-10-05 | 2014-04-10 | Axis Semiconductor, Inc. | Efficient high performance scalable pipelined searching method using variable stride multibit tries |
US9081975B2 (en) | 2012-10-22 | 2015-07-14 | Palantir Technologies, Inc. | Sharing information between nexuses that use different classification schemes for information access control |
US9501761B2 (en) | 2012-11-05 | 2016-11-22 | Palantir Technologies, Inc. | System and method for sharing investigation results |
US9654541B1 (en) | 2012-11-12 | 2017-05-16 | Consumerinfo.Com, Inc. | Aggregating user web browsing data |
US9613165B2 (en) | 2012-11-13 | 2017-04-04 | Oracle International Corporation | Autocomplete searching with security filtering and ranking |
US9916621B1 (en) | 2012-11-30 | 2018-03-13 | Consumerinfo.Com, Inc. | Presentation of credit score factors |
CN103929763A (zh) * | 2013-01-11 | 2014-07-16 | 阿尔卡特朗讯 | 一种用于比较和重构地理冗余的数据库的方法 |
US9406085B1 (en) | 2013-03-14 | 2016-08-02 | Consumerinfo.Com, Inc. | System and methods for credit dispute processing, resolution, and reporting |
US10102570B1 (en) | 2013-03-14 | 2018-10-16 | Consumerinfo.Com, Inc. | Account vulnerability alerts |
WO2014195804A2 (en) * | 2013-06-04 | 2014-12-11 | Marvell World Trade Ltd. | Internal search engine architecture |
US8886601B1 (en) | 2013-06-20 | 2014-11-11 | Palantir Technologies, Inc. | System and method for incrementally replicating investigative analysis data |
US9589130B2 (en) * | 2013-08-20 | 2017-03-07 | White Cloud Security, L.L.C. | Application trust-listing security service |
GB2517932B (en) * | 2013-09-04 | 2021-05-05 | 1Spatial Group Ltd | Modification and validation of spatial data |
US9922043B1 (en) * | 2013-10-28 | 2018-03-20 | Pivotal Software, Inc. | Data management platform |
US9569070B1 (en) | 2013-11-11 | 2017-02-14 | Palantir Technologies, Inc. | Assisting in deconflicting concurrency conflicts |
US9477737B1 (en) * | 2013-11-20 | 2016-10-25 | Consumerinfo.Com, Inc. | Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules |
US10095800B1 (en) | 2013-12-16 | 2018-10-09 | Amazon Technologies, Inc. | Multi-tenant data store management |
US9009827B1 (en) | 2014-02-20 | 2015-04-14 | Palantir Technologies Inc. | Security sharing system |
US9405655B2 (en) * | 2014-03-19 | 2016-08-02 | Dell Products, Lp | System and method for running a validation process for an information handling system during a factory process |
US9561469B2 (en) | 2014-03-24 | 2017-02-07 | Johnson Matthey Public Limited Company | Catalyst for treating exhaust gas |
US9971987B1 (en) | 2014-03-25 | 2018-05-15 | Amazon Technologies, Inc. | Out of order data management |
US9910883B2 (en) | 2014-04-07 | 2018-03-06 | International Business Machines Corporation | Enhanced batch updates on records and related records system and method |
WO2015162705A1 (ja) * | 2014-04-22 | 2015-10-29 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
CN106471486B (zh) | 2014-04-30 | 2019-05-17 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自适应自调整锁定机制的系统和方法 |
US9778949B2 (en) * | 2014-05-05 | 2017-10-03 | Google Inc. | Thread waiting in a multithreaded processor architecture |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
US9021260B1 (en) | 2014-07-03 | 2015-04-28 | Palantir Technologies Inc. | Malware data item analysis |
US9785773B2 (en) | 2014-07-03 | 2017-10-10 | Palantir Technologies Inc. | Malware data item analysis |
US9699023B2 (en) * | 2014-07-18 | 2017-07-04 | Fujitsu Limited | Initializing a network interface based on stored data |
US10204134B2 (en) | 2014-08-14 | 2019-02-12 | International Business Machines Corporation | Automatic detection of problems in a large-scale multi-record update system and method |
US11176106B2 (en) * | 2014-11-19 | 2021-11-16 | Unisys Corporation | Dynamic modification of database schema |
CN104572881A (zh) * | 2014-12-23 | 2015-04-29 | 国家电网公司 | 基于多任务并发的配网图模导入方法 |
US9734016B2 (en) * | 2015-02-24 | 2017-08-15 | Red Hat Israel, Ltd. | Secure live virtual machine guest based snapshot recovery |
US20160378824A1 (en) * | 2015-06-24 | 2016-12-29 | Futurewei Technologies, Inc. | Systems and Methods for Parallelizing Hash-based Operators in SMP Databases |
US20160378812A1 (en) * | 2015-06-25 | 2016-12-29 | International Business Machines Corporation | Reduction of bind breaks |
CN104965923B (zh) * | 2015-07-08 | 2018-09-28 | 安徽兆尹信息科技股份有限公司 | 一种用于生成现金流量表的云计算应用平台构建方法 |
AU2016340043A1 (en) * | 2015-10-15 | 2018-05-24 | Big Ip Pty Ltd | A system, method, computer program and data signal for conducting an electronic search of a database |
AU2016340042A1 (en) * | 2015-10-15 | 2018-05-24 | Big Ip Pty Ltd | A system, method, computer program and data signal for the provision of a database of information for lead generating purposes |
IL242219B (en) * | 2015-10-22 | 2020-11-30 | Verint Systems Ltd | System and method for keyword searching using both static and dynamic dictionaries |
IL242218B (en) | 2015-10-22 | 2020-11-30 | Verint Systems Ltd | A system and method for maintaining a dynamic dictionary |
US10530758B2 (en) * | 2015-12-18 | 2020-01-07 | F5 Networks, Inc. | Methods of collaborative hardware and software DNS acceleration and DDOS protection |
MX2018007425A (es) * | 2015-12-18 | 2018-08-15 | Walmart Apollo Llc | Sistemas y metodos para resolver discrepancia de datos. |
CN105574407B (zh) * | 2015-12-28 | 2018-09-25 | 无锡天脉聚源传媒科技有限公司 | 一种共享的处理方法和装置 |
US10621198B1 (en) | 2015-12-30 | 2020-04-14 | Palantir Technologies Inc. | System and method for secure database replication |
RU2623882C1 (ru) * | 2016-02-18 | 2017-06-29 | Акционерное общество "Лаборатория Касперского" | Способ поиска входной строки в дереве поиска с индексацией узлов дерева поиска |
US10353888B1 (en) * | 2016-03-03 | 2019-07-16 | Amdocs Development Limited | Event processing system, method, and computer program |
US10642780B2 (en) | 2016-03-07 | 2020-05-05 | Mellanox Technologies, Ltd. | Atomic access to object pool over RDMA transport network |
WO2017191495A1 (en) * | 2016-05-05 | 2017-11-09 | Askarov Bauyrzhan | New domain name system and usage thereof |
US10089339B2 (en) * | 2016-07-18 | 2018-10-02 | Arm Limited | Datagram reassembly |
CN106250487B (zh) * | 2016-07-29 | 2020-07-03 | 新华三技术有限公司 | 一种数据库并发控制方法及装置 |
US11005977B2 (en) | 2016-08-31 | 2021-05-11 | Viavi Solutions Inc. | Packet filtering using binary search trees |
US10382562B2 (en) * | 2016-11-04 | 2019-08-13 | A10 Networks, Inc. | Verification of server certificates using hash codes |
US10262053B2 (en) | 2016-12-22 | 2019-04-16 | Palantir Technologies Inc. | Systems and methods for data replication synchronization |
TWI643146B (zh) * | 2016-12-22 | 2018-12-01 | 經貿聯網科技股份有限公司 | 動態更新金融資料的方法及其處理系統以及動態調整電源配置的方法及其處理系統 |
CN106790544A (zh) * | 2016-12-22 | 2017-05-31 | 郑州云海信息技术有限公司 | 减少远程客户端与数据中心间通信数据量的方法及装置 |
CN108667947B (zh) * | 2017-03-31 | 2019-10-25 | 贵州白山云科技股份有限公司 | 一种减少dns应答报文的长度的方法及装置 |
GB2561176A (en) * | 2017-04-03 | 2018-10-10 | Edinburgh Napier Univ | System and method for management of confidential data |
US10068002B1 (en) | 2017-04-25 | 2018-09-04 | Palantir Technologies Inc. | Systems and methods for adaptive data replication |
US10430062B2 (en) | 2017-05-30 | 2019-10-01 | Palantir Technologies Inc. | Systems and methods for geo-fenced dynamic dissemination |
US11030494B1 (en) | 2017-06-15 | 2021-06-08 | Palantir Technologies Inc. | Systems and methods for managing data spills |
US10552367B2 (en) | 2017-07-26 | 2020-02-04 | Mellanox Technologies, Ltd. | Network data transactions using posted and non-posted operations |
US10380196B2 (en) | 2017-12-08 | 2019-08-13 | Palantir Technologies Inc. | Systems and methods for using linked documents |
US10915542B1 (en) | 2017-12-19 | 2021-02-09 | Palantir Technologies Inc. | Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme |
US10528556B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
US20190213271A1 (en) * | 2018-01-09 | 2019-07-11 | Unisys Corporation | Method and system for data exchange critical event notification |
KR102034679B1 (ko) | 2018-01-17 | 2019-10-23 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
CN110083596A (zh) * | 2018-05-16 | 2019-08-02 | 陈刚 | 一种数据历史跟踪和数据变化历史跟踪的方法 |
CN108876143A (zh) * | 2018-06-13 | 2018-11-23 | 亳州市药通信息咨询有限公司 | 一种中药材价格指数系统 |
CN110798332B (zh) | 2018-08-03 | 2022-09-06 | Emc Ip控股有限公司 | 用于搜索目录访问组的方法和系统 |
US10880313B2 (en) | 2018-09-05 | 2020-12-29 | Consumerinfo.Com, Inc. | Database platform for realtime updating of user data from third party sources |
US11238656B1 (en) | 2019-02-22 | 2022-02-01 | Consumerinfo.Com, Inc. | System and method for an augmented reality experience via an artificial intelligence bot |
CN111831639B (zh) * | 2019-04-19 | 2024-01-30 | 北京车和家信息技术有限公司 | 一种全局唯一id生成方法及装置、车辆管理系统 |
US11303606B1 (en) | 2019-06-03 | 2022-04-12 | Amazon Technologies, Inc. | Hashing name resolution requests according to an identified routing policy |
CA3148975C (en) * | 2019-07-30 | 2023-04-25 | Falkonry Inc. | Fluid and resolution-friendly view of large volumes of time series data |
US11941065B1 (en) | 2019-09-13 | 2024-03-26 | Experian Information Solutions, Inc. | Single identifier platform for storing entity data |
CN110990377B (zh) * | 2019-11-21 | 2023-08-22 | 上海达梦数据库有限公司 | 一种数据装载方法、装置、服务器及存储介质 |
US11500849B2 (en) * | 2019-12-02 | 2022-11-15 | International Business Machines Corporation | Universal streaming change data capture |
US11269836B2 (en) | 2019-12-17 | 2022-03-08 | Cerner Innovation, Inc. | System and method for generating multi-category searchable ternary tree data structure |
CN111240762B (zh) * | 2020-01-10 | 2021-11-23 | 珠海格力电器股份有限公司 | 线程管理方法、存储介质及电子设备 |
EP4354800A3 (en) * | 2020-02-24 | 2024-06-26 | SSenStone Inc. | Method, program, and device for authenticating user setting information by using virtual code |
WO2021172875A1 (ko) * | 2020-02-24 | 2021-09-02 | 주식회사 센스톤 | 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치 |
US20230138113A1 (en) * | 2021-02-09 | 2023-05-04 | Micro Focus Llc | System for retrieval of large datasets in cloud environments |
US11934377B2 (en) * | 2021-02-25 | 2024-03-19 | Microsoft Technology Licensing, Llc | Consistency checking for distributed analytical database systems |
US20220335049A1 (en) * | 2021-04-14 | 2022-10-20 | Google Llc | Powering Scalable Data Warehousing with Robust Query Performance |
CN113806342A (zh) * | 2021-07-21 | 2021-12-17 | 厦门莲隐科技有限公司 | 一种提取以太坊区块链底层数据的系统 |
US12050512B2 (en) * | 2022-08-02 | 2024-07-30 | Nxp B.V. | Dynamic configuration of reaction policies in virtualized fault management system |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4412285A (en) | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
US5010478A (en) * | 1986-04-11 | 1991-04-23 | Deran Roger L | Entity-attribute value database system with inverse attribute for selectively relating two different entities |
GB8704882D0 (en) * | 1987-03-03 | 1987-04-08 | Hewlett Packard Co | Secure messaging systems |
US4947366A (en) * | 1987-10-02 | 1990-08-07 | Advanced Micro Devices, Inc. | Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities |
US5175849A (en) * | 1988-07-28 | 1992-12-29 | Amdahl Corporation | Capturing data of a database system |
US5089952A (en) * | 1988-10-07 | 1992-02-18 | International Business Machines Corporation | Method for allowing weak searchers to access pointer-connected data structures without locking |
US5161223A (en) * | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Resumeable batch query for processing time consuming queries in an object oriented database management system |
JP3369580B2 (ja) * | 1990-03-12 | 2003-01-20 | ヒューレット・パッカード・カンパニー | 直接メモリアクセスを行うためのインターフェース装置及び方法 |
CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
US5893117A (en) * | 1990-08-17 | 1999-04-06 | Texas Instruments Incorporated | Time-stamped database transaction and version management system |
US5287496A (en) * | 1991-02-25 | 1994-02-15 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing |
US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US6188428B1 (en) * | 1992-02-11 | 2001-02-13 | Mark Koz | Transcoding video file server and methods for its use |
US5749079A (en) * | 1992-03-04 | 1998-05-05 | Singapore Computer Systems Limited | End user query facility including a query connectivity driver |
US5260942A (en) * | 1992-03-06 | 1993-11-09 | International Business Machines Corporation | Method and apparatus for batching the receipt of data packets |
DE69324204T2 (de) * | 1992-10-22 | 1999-12-23 | Cabletron Systems, Inc. | Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers |
US5684990A (en) * | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5729735A (en) * | 1995-02-08 | 1998-03-17 | Meyering; Samuel C. | Remote database file synchronizer |
US5615337A (en) * | 1995-04-06 | 1997-03-25 | International Business Machines Corporation | System and method for efficiently processing diverse result sets returned by a stored procedures |
US5974409A (en) * | 1995-08-23 | 1999-10-26 | Microsoft Corporation | System and method for locating information in an on-line network |
US5758150A (en) * | 1995-10-06 | 1998-05-26 | Tele-Communications, Inc. | System and method for database synchronization |
US6047323A (en) * | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US5875443A (en) * | 1996-01-30 | 1999-02-23 | Sun Microsystems, Inc. | Internet-based spelling checker dictionary system with automatic updating |
US5852715A (en) * | 1996-03-19 | 1998-12-22 | Emc Corporation | System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions |
US5765028A (en) * | 1996-05-07 | 1998-06-09 | Ncr Corporation | Method and apparatus for providing neural intelligence to a mail query agent in an online analytical processing system |
US5787452A (en) * | 1996-05-21 | 1998-07-28 | Sybase, Inc. | Client/server database system with methods for multi-threaded data processing in a heterogeneous language environment |
US6154777A (en) * | 1996-07-01 | 2000-11-28 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US5995980A (en) * | 1996-07-23 | 1999-11-30 | Olson; Jack E. | System and method for database update replication |
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
US6044381A (en) * | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
US6330568B1 (en) * | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of databases |
WO1998038583A1 (en) * | 1997-02-26 | 1998-09-03 | Siebel Systems, Inc. | Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths |
US5937414A (en) * | 1997-02-28 | 1999-08-10 | Oracle Corporation | Method and apparatus for providing database system replication in a mixed propagation environment |
US6862602B2 (en) * | 1997-03-07 | 2005-03-01 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US5920886A (en) | 1997-03-14 | 1999-07-06 | Music Semiconductor Corporation | Accelerated hierarchical address filtering and translation using binary and ternary CAMs |
KR19990001093A (ko) * | 1997-06-12 | 1999-01-15 | 윤종용 | 교환기 시스템의 운영 프로그램 및 데이터베이스 인스톨 방법 |
US5924098A (en) * | 1997-06-30 | 1999-07-13 | Sun Microsystems, Inc. | Method and apparatus for managing a linked-list data structure |
US6098108A (en) * | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6148070A (en) * | 1997-07-02 | 2000-11-14 | Ameritech Corporation | Method, system, and database for providing a telecommunication service |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6061678A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Approach for managing access to large objects in database systems using large object indexes |
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
US6029170A (en) | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
US6044448A (en) * | 1997-12-16 | 2000-03-28 | S3 Incorporated | Processor having multiple datapath instances |
US6256256B1 (en) * | 1998-01-30 | 2001-07-03 | Silicon Aquarius, Inc. | Dual port random access memories and systems using the same |
US6304259B1 (en) * | 1998-02-09 | 2001-10-16 | International Business Machines Corporation | Computer system, method and user interface components for abstracting and accessing a body of knowledge |
US6304881B1 (en) | 1998-03-03 | 2001-10-16 | Pumatech, Inc. | Remote data access and synchronization |
US6237019B1 (en) * | 1998-03-18 | 2001-05-22 | International Business Machines Corporation | Method and apparatus for performing a semaphore operation |
US6185567B1 (en) | 1998-05-29 | 2001-02-06 | The Trustees Of The University Of Pennsylvania | Authenticated access to internet based research and data services |
US6131122A (en) | 1998-06-01 | 2000-10-10 | Nortel Networks Corporation | Programmable internet automation |
WO1999063441A1 (en) * | 1998-06-05 | 1999-12-09 | Mylex Corporation | Snapshot backup strategy |
US6434144B1 (en) * | 1998-07-06 | 2002-08-13 | Aleksey Romanov | Multi-level table lookup |
US6360220B1 (en) * | 1998-08-04 | 2002-03-19 | Microsoft Corporation | Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries |
US6092178A (en) * | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US6411966B1 (en) * | 1998-09-21 | 2002-06-25 | Microsoft Corporation | Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic |
US6243715B1 (en) * | 1998-11-09 | 2001-06-05 | Lucent Technologies Inc. | Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated |
JP2002534842A (ja) * | 1998-12-23 | 2002-10-15 | ノキア・ワイヤレス・ルーターズ・インコーポレーテッド | アドホック・インターネットワーキングのための統一されたルーティング方式 |
US6516327B1 (en) * | 1998-12-24 | 2003-02-04 | International Business Machines Corporation | System and method for synchronizing data in multiple databases |
US6304924B1 (en) * | 1999-02-02 | 2001-10-16 | International Business Machines Corporation | Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures |
US6553392B1 (en) * | 1999-02-04 | 2003-04-22 | Hewlett-Packard Development Company, L.P. | System and method for purging database update image files after completion of associated transactions |
FI106493B (fi) * | 1999-02-09 | 2001-02-15 | Nokia Mobile Phones Ltd | Menetelmä ja järjestelmä pakettimuotoisen datan luotettavaksi siirtämiseksi |
US6721334B1 (en) * | 1999-02-18 | 2004-04-13 | 3Com Corporation | Method and apparatus for packet aggregation in packet-based network |
US6314469B1 (en) * | 1999-02-26 | 2001-11-06 | I-Dns.Net International Pte Ltd | Multi-language domain name service |
WO2000052594A2 (en) * | 1999-03-03 | 2000-09-08 | Ultradns, Inc. | Scalable and efficient domain name resolution |
US6484185B1 (en) * | 1999-04-05 | 2002-11-19 | Microsoft Corporation | Atomic operations on data structures |
US6745177B2 (en) * | 1999-04-09 | 2004-06-01 | Metro One Telecommunications, Inc. | Method and system for retrieving data from multiple data sources using a search routing database |
US6938057B2 (en) * | 1999-05-21 | 2005-08-30 | International Business Machines Corporation | Method and apparatus for networked backup storage |
US6529504B1 (en) * | 1999-06-02 | 2003-03-04 | Sprint Communications Company, L.P. | Telecommunications service control point interface |
WO2001011443A2 (en) * | 1999-08-06 | 2001-02-15 | Namezero.Com, Inc. | Internet hosting system |
US6449657B2 (en) * | 1999-08-06 | 2002-09-10 | Namezero.Com, Inc. | Internet hosting system |
US6785704B1 (en) * | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6792458B1 (en) * | 1999-10-04 | 2004-09-14 | Urchin Software Corporation | System and method for monitoring and analyzing internet traffic |
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
KR100856149B1 (ko) | 1999-11-26 | 2008-09-03 | 네테카 인코포레이티드 | 전자 메일 서버 및 전자 메일 통신을 용이하게 하기 위한 방법 |
US6980990B2 (en) * | 1999-12-01 | 2005-12-27 | Barry Fellman | Internet domain name registration system |
US6434681B1 (en) * | 1999-12-02 | 2002-08-13 | Emc Corporation | Snapshot copy facility for a data storage system permitting continued host read/write access |
US6625621B2 (en) * | 2000-01-04 | 2003-09-23 | Starfish Software, Inc. | System and methods for a fast and scalable synchronization server |
US6677964B1 (en) * | 2000-02-18 | 2004-01-13 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
US6789073B1 (en) * | 2000-02-22 | 2004-09-07 | Harvey Lunenfeld | Client-server multitasking |
JP2001236257A (ja) | 2000-02-24 | 2001-08-31 | Fujitsu Ltd | 情報記憶装置及び加入者データのデータ更新方法並びに移動通信システム |
US6615223B1 (en) * | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
US6643669B1 (en) * | 2000-03-14 | 2003-11-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for optimization of synchronization between a client's database and a server database |
JP2001290689A (ja) | 2000-04-07 | 2001-10-19 | Hitachi Ltd | 複数データベース間のレプリケーションのデータ検証方法 |
US6976090B2 (en) * | 2000-04-20 | 2005-12-13 | Actona Technologies Ltd. | Differentiated content and application delivery via internet |
US6725218B1 (en) * | 2000-04-28 | 2004-04-20 | Cisco Technology, Inc. | Computerized database system and method |
US7734815B2 (en) | 2006-09-18 | 2010-06-08 | Akamai Technologies, Inc. | Global load balancing across mirrored data centers |
US7165116B2 (en) * | 2000-07-10 | 2007-01-16 | Netli, Inc. | Method for network discovery using name servers |
US7725602B2 (en) | 2000-07-19 | 2010-05-25 | Akamai Technologies, Inc. | Domain name resolution using a distributed DNS network |
US20020029226A1 (en) | 2000-09-05 | 2002-03-07 | Gang Li | Method for combining data with maps |
FR2813986B1 (fr) * | 2000-09-08 | 2002-11-29 | Eric Vincenot | Dispositif de sonorisation a guide d'onde acoustique |
JP2002108836A (ja) * | 2000-09-29 | 2002-04-12 | Hitachi Ltd | プロセッサシステム |
US6785675B1 (en) * | 2000-11-13 | 2004-08-31 | Convey Development, Inc. | Aggregation of resource requests from multiple individual requestors |
US6636854B2 (en) * | 2000-12-07 | 2003-10-21 | International Business Machines Corporation | Method and system for augmenting web-indexed search engine results with peer-to-peer search results |
US6868414B2 (en) * | 2001-01-03 | 2005-03-15 | International Business Machines Corporation | Technique for serializing data structure updates and retrievals without requiring searchers to use locks |
US6728736B2 (en) * | 2001-03-14 | 2004-04-27 | Storage Technology Corporation | System and method for synchronizing a data copy using an accumulation remote copy trio |
US6691124B2 (en) * | 2001-04-04 | 2004-02-10 | Cypress Semiconductor Corp. | Compact data structures for pipelined message forwarding lookups |
GB2374951B (en) * | 2001-04-24 | 2005-06-15 | Discreet Logic Inc | Asynchronous database updates |
US7171415B2 (en) * | 2001-05-04 | 2007-01-30 | Sun Microsystems, Inc. | Distributed information discovery through searching selected registered information providers |
US20030182447A1 (en) * | 2001-05-31 | 2003-09-25 | Schilling Frank T. | Generic top-level domain re-routing system |
US6744652B2 (en) * | 2001-08-22 | 2004-06-01 | Netlogic Microsystems, Inc. | Concurrent searching of different tables within a content addressable memory |
JP4420324B2 (ja) | 2001-11-01 | 2010-02-24 | ベリサイン・インコーポレイテッド | 高速非並行制御されたデータベース |
US20030208511A1 (en) * | 2002-05-02 | 2003-11-06 | Earl Leroy D. | Database replication system |
US7310686B2 (en) | 2002-10-27 | 2007-12-18 | Paxfire, Inc. | Apparatus and method for transparent selection of an Internet server based on geographic location of a user |
US20050027882A1 (en) | 2003-05-05 | 2005-02-03 | Sullivan Alan T. | Systems and methods for direction of communication traffic |
US20050105513A1 (en) | 2002-10-27 | 2005-05-19 | Alan Sullivan | Systems and methods for direction of communication traffic |
US7761570B1 (en) | 2003-06-26 | 2010-07-20 | Nominum, Inc. | Extensible domain name service |
US7769826B2 (en) | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
US7761678B1 (en) | 2004-09-29 | 2010-07-20 | Verisign, Inc. | Method and apparatus for an improved file repository |
US7685270B1 (en) | 2005-03-31 | 2010-03-23 | Amazon Technologies, Inc. | Method and apparatus for measuring latency in web services |
NZ564395A (en) | 2005-05-24 | 2011-04-29 | Paxfire Inc | Enhanced features for direction of communication traffic |
US7546368B2 (en) | 2005-06-01 | 2009-06-09 | Neustar, Inc. | Systems and methods for isolating local performance variation in website monitoring |
US7477575B2 (en) | 2005-09-23 | 2009-01-13 | Verisign, Inc. | Redundant timer system and method |
CN101371246A (zh) | 2006-01-20 | 2009-02-18 | 派克斯费尔有限公司 | 用于辨识并控制通信业务的系统和方法 |
US8606926B2 (en) | 2006-06-14 | 2013-12-10 | Opendns, Inc. | Recursive DNS nameserver |
US8713188B2 (en) | 2007-12-13 | 2014-04-29 | Opendns, Inc. | Per-request control of DNS behavior |
WO2008021512A2 (en) | 2006-08-17 | 2008-02-21 | Neustar, Inc. | System and method for handling jargon in communication systems |
EP2054830A2 (en) | 2006-08-17 | 2009-05-06 | Neustar, Inc. | System and method for managing domain policy for interconnected communication networks |
US8234379B2 (en) | 2006-09-14 | 2012-07-31 | Afilias Limited | System and method for facilitating distribution of limited resources |
US20100030897A1 (en) | 2006-12-20 | 2010-02-04 | Rob Stradling | Method and System for Installing a Root Certificate on a Computer With a Root Update Mechanism |
US7694016B2 (en) | 2007-02-07 | 2010-04-06 | Nominum, Inc. | Composite DNS zones |
EP2201457A2 (en) | 2007-10-18 | 2010-06-30 | Neustar, Inc. | System and method for sharing web performance monitoring data |
US20090235359A1 (en) | 2008-03-12 | 2009-09-17 | Comodo Ca Limited | Method and system for performing security and vulnerability scans on devices behind a network security device |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US7991737B2 (en) * | 2008-09-04 | 2011-08-02 | Microsoft Corporation | Synchronization of records of a table using bookmarks |
US20090282028A1 (en) | 2008-09-23 | 2009-11-12 | Michael Subotin | User Interface and Method for Web Browsing based on Topical Relatedness of Domain Names |
US9172713B2 (en) | 2008-09-24 | 2015-10-27 | Neustar, Inc. | Secure domain name system |
US7930393B1 (en) | 2008-09-29 | 2011-04-19 | Amazon Technologies, Inc. | Monitoring domain allocation performance |
US9292612B2 (en) | 2009-04-22 | 2016-03-22 | Verisign, Inc. | Internet profile service |
US8521908B2 (en) | 2009-04-07 | 2013-08-27 | Verisign, Inc. | Existent domain name DNS traffic capture and analysis |
US8676989B2 (en) | 2009-04-23 | 2014-03-18 | Opendns, Inc. | Robust domain name resolution |
US8527945B2 (en) | 2009-05-07 | 2013-09-03 | Verisign, Inc. | Method and system for integrating multiple scripts |
US8510263B2 (en) | 2009-06-15 | 2013-08-13 | Verisign, Inc. | Method and system for auditing transaction data from database operations |
US8977705B2 (en) | 2009-07-27 | 2015-03-10 | Verisign, Inc. | Method and system for data logging and analysis |
US8380870B2 (en) | 2009-08-05 | 2013-02-19 | Verisign, Inc. | Method and system for filtering of network traffic |
US20110035497A1 (en) | 2009-08-05 | 2011-02-10 | Dynamic Network Services, Inc. | System and method for providing global server load balancing |
US8327019B2 (en) | 2009-08-18 | 2012-12-04 | Verisign, Inc. | Method and system for intelligent routing of requests over EPP |
US8175098B2 (en) | 2009-08-27 | 2012-05-08 | Verisign, Inc. | Method for optimizing a route cache |
US8982882B2 (en) | 2009-11-09 | 2015-03-17 | Verisign, Inc. | Method and system for application level load balancing in a publish/subscribe message architecture |
US9047589B2 (en) | 2009-10-30 | 2015-06-02 | Verisign, Inc. | Hierarchical publish and subscribe system |
US9286369B2 (en) | 2009-12-30 | 2016-03-15 | Symantec Corporation | Data replication across enterprise boundaries |
-
2002
- 2002-11-01 JP JP2003540792A patent/JP4420324B2/ja not_active Expired - Fee Related
- 2002-11-01 BR BR0213807-7A patent/BR0213807A/pt not_active Application Discontinuation
- 2002-11-01 EP EP02802516A patent/EP1449049A4/en not_active Withdrawn
- 2002-11-01 JP JP2003540847A patent/JP4399552B2/ja not_active Expired - Fee Related
- 2002-11-01 EP EP12175016.0A patent/EP2562661A3/en not_active Withdrawn
- 2002-11-01 AU AU2002356884A patent/AU2002356884B2/en not_active Ceased
- 2002-11-01 CN CNB028265114A patent/CN100557595C/zh not_active Expired - Fee Related
- 2002-11-01 MX MXPA04004202A patent/MXPA04004202A/es active IP Right Grant
- 2002-11-01 IL IL16171202A patent/IL161712A0/xx active IP Right Grant
- 2002-11-01 US US10/285,575 patent/US6681228B2/en not_active Expired - Lifetime
- 2002-11-01 EP EP12153543A patent/EP2503476A1/en not_active Withdrawn
- 2002-11-01 US US10/285,547 patent/US7047258B2/en not_active Expired - Lifetime
- 2002-11-01 EP EP02786632A patent/EP1461723A4/en not_active Ceased
- 2002-11-01 CN CN028266196A patent/CN1610877B/zh not_active Expired - Fee Related
- 2002-11-01 AU AU2002350104A patent/AU2002350104B2/en not_active Expired
- 2002-11-01 EP EP02802514A patent/EP1451728A4/en not_active Ceased
- 2002-11-01 KR KR1020047006695A patent/KR100970122B1/ko not_active IP Right Cessation
- 2002-11-01 US US10/285,544 patent/US20030084038A1/en not_active Abandoned
- 2002-11-01 EA EA200400614A patent/EA006223B1/ru not_active IP Right Cessation
- 2002-11-01 BR BR0213863-8A patent/BR0213863A/pt not_active Application Discontinuation
- 2002-11-01 EA EA200400612A patent/EA006045B1/ru not_active IP Right Cessation
- 2002-11-01 KR KR1020047006658A patent/KR100977161B1/ko not_active IP Right Cessation
- 2002-11-01 JP JP2003540846A patent/JP4897196B2/ja not_active Expired - Fee Related
- 2002-11-01 MX MXPA04004203A patent/MXPA04004203A/es active IP Right Grant
- 2002-11-01 NZ NZ532773A patent/NZ532773A/en not_active IP Right Cessation
- 2002-11-01 EA EA200400618A patent/EA005646B1/ru not_active IP Right Cessation
- 2002-11-01 BR BR0213862-0A patent/BR0213862A/pt not_active Application Discontinuation
- 2002-11-01 NZ NZ532772A patent/NZ532772A/en not_active IP Right Cessation
- 2002-11-01 WO PCT/US2002/035081 patent/WO2003038653A1/en active IP Right Grant
- 2002-11-01 JP JP2003540874A patent/JP4420325B2/ja not_active Expired - Fee Related
- 2002-11-01 BR BR0213864-6A patent/BR0213864A/pt not_active Application Discontinuation
- 2002-11-01 NZ NZ532771A patent/NZ532771A/en not_active IP Right Cessation
- 2002-11-01 EP EP02802515.3A patent/EP1451714B1/en not_active Expired - Lifetime
- 2002-11-01 EP EP02786633.4A patent/EP1449062B1/en not_active Expired - Lifetime
- 2002-11-01 IL IL16172302A patent/IL161723A0/xx unknown
- 2002-11-01 KR KR1020047006649A patent/KR100953137B1/ko not_active IP Right Cessation
- 2002-11-01 US US10/285,549 patent/US7167877B2/en not_active Expired - Lifetime
- 2002-11-01 IL IL16172202A patent/IL161722A0/xx unknown
- 2002-11-01 WO PCT/US2002/035082 patent/WO2003038596A1/en active IP Right Grant
- 2002-11-01 WO PCT/US2002/035084 patent/WO2003038565A2/en not_active Application Discontinuation
- 2002-11-01 US US10/285,618 patent/US7203682B2/en not_active Expired - Lifetime
- 2002-11-01 CN CN02826620XA patent/CN1610902B/zh not_active Expired - Fee Related
- 2002-11-01 EP EP12153314A patent/EP2450812A1/en not_active Withdrawn
- 2002-11-01 CA CA2466117A patent/CA2466117C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002350106A patent/AU2002350106B2/en not_active Expired
- 2002-11-01 MX MXPA04004169A patent/MXPA04004169A/es active IP Right Grant
- 2002-11-01 IL IL16172102A patent/IL161721A0/xx unknown
- 2002-11-01 NZ NZ533166A patent/NZ533166A/en not_active IP Right Cessation
- 2002-11-01 CA CA2472014A patent/CA2472014C/en not_active Expired - Fee Related
- 2002-11-01 KR KR1020047006689A patent/KR100941350B1/ko not_active IP Right Cessation
- 2002-11-01 MX MXPA04004201A patent/MXPA04004201A/es active IP Right Grant
- 2002-11-01 EA EA200400613A patent/EA006038B1/ru not_active IP Right Cessation
- 2002-11-01 WO PCT/US2002/035083 patent/WO2003038654A1/en active IP Right Grant
- 2002-11-01 CN CN028265092A patent/CN1610906B/zh not_active Expired - Fee Related
- 2002-11-01 WO PCT/US2002/035080 patent/WO2003038683A1/en active IP Right Grant
- 2002-11-01 EP EP11181796.1A patent/EP2477126A3/en not_active Withdrawn
- 2002-11-01 EP EP12153315A patent/EP2495671A1/en not_active Withdrawn
- 2002-11-01 CA CA2466110A patent/CA2466110C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002356886A patent/AU2002356886A1/en not_active Abandoned
- 2002-11-01 CA CA2466107A patent/CA2466107C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002356885A patent/AU2002356885B2/en not_active Expired
-
2003
- 2003-10-01 US US10/674,820 patent/US8171019B2/en active Active
-
2004
- 2004-04-29 IL IL161712A patent/IL161712A/en not_active IP Right Cessation
- 2004-05-02 IL IL161722A patent/IL161722A/en unknown
- 2004-05-02 IL IL161721A patent/IL161721A/en active IP Right Grant
- 2004-05-02 IL IL161723A patent/IL161723A/en active IP Right Grant
- 2004-05-11 ZA ZA2004/03597A patent/ZA200403597B/en unknown
- 2004-05-31 ZA ZA2004/04268A patent/ZA200404268B/en unknown
- 2004-05-31 ZA ZA2004/04266A patent/ZA200404266B/en unknown
- 2004-05-31 ZA ZA2004/04267A patent/ZA200404267B/en unknown
- 2004-06-01 NO NO20042261A patent/NO20042261L/no not_active Application Discontinuation
- 2004-06-01 NO NO20042260A patent/NO331574B1/no not_active IP Right Cessation
- 2004-06-01 NO NO20042258A patent/NO20042258L/no not_active Application Discontinuation
- 2004-06-01 NO NO20042259A patent/NO20042259L/no not_active Application Discontinuation
-
2005
- 2005-08-25 HK HK05107484.3A patent/HK1075308A1/xx not_active IP Right Cessation
-
2006
- 2006-12-19 US US11/641,054 patent/US20070100808A1/en not_active Abandoned
-
2008
- 2008-12-10 US US12/331,498 patent/US8630988B2/en not_active Expired - Lifetime
-
2011
- 2011-11-09 US US13/292,833 patent/US8682856B2/en not_active Expired - Lifetime
-
2013
- 2013-12-20 US US14/136,831 patent/US20140108452A1/en not_active Abandoned
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100970122B1 (ko) | 고속 논-콘커런시 제어된 데이터베이스 | |
AU2002356884A1 (en) | Transactional memory manager | |
AU2002350106A1 (en) | High speed non-concurrency controlled database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
E90F | Notification of reason for final refusal | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130625 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140625 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150624 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |