CN1610877B - 高速非并发控制数据库 - Google Patents
高速非并发控制数据库 Download PDFInfo
- Publication number
- CN1610877B CN1610877B CN028266196A CN02826619A CN1610877B CN 1610877 B CN1610877 B CN 1610877B CN 028266196 A CN028266196 A CN 028266196A CN 02826619 A CN02826619 A CN 02826619A CN 1610877 B CN1610877 B CN 1610877B
- Authority
- CN
- China
- Prior art keywords
- search
- database
- pointer
- data
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012217 deletion Methods 0.000 claims description 23
- 230000037430 deletion Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 abstract description 3
- 230000004044 response Effects 0.000 description 47
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000004048 modification Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 13
- 230000011218 segmentation Effects 0.000 description 12
- 239000000872 buffer Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 239000012536 storage buffer Substances 0.000 description 9
- 239000004744 fabric Substances 0.000 description 8
- 238000000926 separation method Methods 0.000 description 8
- 241000219492 Quercus Species 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000007306 turnover Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000013480 data collection Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- QDZOEBFLNHCSSF-PFFBOGFISA-N (2S)-2-[[(2R)-2-[[(2S)-1-[(2S)-6-amino-2-[[(2S)-1-[(2R)-2-amino-5-carbamimidamidopentanoyl]pyrrolidine-2-carbonyl]amino]hexanoyl]pyrrolidine-2-carbonyl]amino]-3-(1H-indol-3-yl)propanoyl]amino]-N-[(2R)-1-[[(2S)-1-[[(2R)-1-[[(2S)-1-[[(2S)-1-amino-4-methyl-1-oxopentan-2-yl]amino]-4-methyl-1-oxopentan-2-yl]amino]-3-(1H-indol-3-yl)-1-oxopropan-2-yl]amino]-1-oxo-3-phenylpropan-2-yl]amino]-3-(1H-indol-3-yl)-1-oxopropan-2-yl]pentanediamide Chemical compound C([C@@H](C(=O)N[C@H](CC=1C2=CC=CC=C2NC=1)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CC(C)C)C(N)=O)NC(=O)[C@@H](CC=1C2=CC=CC=C2NC=1)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@@H](CC=1C2=CC=CC=C2NC=1)NC(=O)[C@H]1N(CCC1)C(=O)[C@H](CCCCN)NC(=O)[C@H]1N(CCC1)C(=O)[C@H](N)CCCNC(N)=N)C1=CC=CC=C1 QDZOEBFLNHCSSF-PFFBOGFISA-N 0.000 description 1
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 102100024304 Protachykinin-1 Human genes 0.000 description 1
- 101800003906 Substance P Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (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)连接的多个处理器(102-1...102-p);多个二级存储器缓存(103-1...103-p);存储器(即RAM)(104);只读存储器(ROM)(106);存储设备(108);显示器(即LCD监视器);输入设备(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号提交的U.S.临时专利申请序列号为60/330,842,以及这里被引证作为它全部的参考的2002年3月19日提交的序列号为60/365,169的U.S.临时专利申请的利益。
技术领域
本公开涉及计算机系统。更具体的,本公开涉及用于对大型数据库系统利用并发更新而不使用数据库锁或访问控制的进行高速数据库搜索方法和系统。
背景技术
随着互联网的继续急速增长,为根服务器和通用顶级域名(gTLD)服务器在合理的价格点的扩展域名服务(DNS)的解决方案开始日益困难。A根服务器(即a.root-server.net)维护和分配互联网名字空间根区域文件给12个地理上分布在全世界的二级根服务器(即b.root-servers.net,c.root-servers.net等),同时对应的gTLD服务器(即a.gtld-servers.net,b.gtld-servers.net等)被类似地分配并支持顶级域(即*.com,*.net,*.org等)。一直增长的数据容量加上不断增加的查询速度促使全面再思考在今后几十年内的根服务器和gTLD DNS服务所需的硬件和软件体系结构。标准“绑定”软件分配的典型单服务器安装已经不满足A根的需要并且甚至很快将不能满足gTLD的需要。随着公共交换电话网(PSTN)和互联网的会聚,因为提供了跨越PSTN和互联网的新的、先进的服务,包括先进智能网络(AIN),IP电话(VoIP)服务,地理位置服务等,所以出现了用于通用目的、高性能搜索机制的机会以提供将在PSTN的SS7信令网络上通常与服务控制点(SCP)相关联的特征。
附图说明
图1是根据本发明的实施例的系统框图。
图2是图解说明根据本发明的实施例的消息数据结构的详细框图。
图3是图解说明根据本发明的实施例的消息等待时间数据结构体系结构的详细框图。
图4是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图5是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图6是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图7是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图8是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图9是图解说明根据本发明的实施例的用于搜索和并发更新数据库而不使用数据锁或访问控制的方法的顶层流程图。
具体实施方式
本发明的实施例提供用于对大型数据库系统利用并发更新而不使用数据库锁或访问控制的高速数据库搜索的方法和系统。具体地,可通过网络接收多个搜索查询,数据库可被搜索,并且可通过网络发送多个搜索应答。在搜索数据库的同时,通过根据新信息创建新元素,和在不需要锁定数据库的情况下利用单个不可中断操作将新元素的指针写到数据库,可以将通过网络接收的新信息合并到数据库中。
图1图解说明根据本发明的实施例的系统的框图。一般地,系统100可持有大型的存储器常驻的数据库,通过网络接收搜索请求并提供搜索响应。例如,系统100可以是对称多处理(SMP)计算机,诸如New York,Armonk的国际商用机器公司制造的IBMRS/M80或S80,California,Santa Clara的太阳微系统公司制造的Sun EnterpriseTM10000等。系统100还可以是多处理器个人计算机,诸如California,Palo Alto的Hewlett-packard公司制造的Compaq ProliantTMML530(包括双IntelIII866MHz处理器)。系统100还可以包括多处理操作系统,诸如IBM4,Sun SolarisTM 80perating Environment,Red Hat6.2等。系统100可通过网络124接收可并发地合并到数据库中的周期性的更新。本发明的实施例可通过将每个更新合并到数据库中来达到很高的数据库搜索和更新吞吐量,而不需要使用数据库锁或访问控制。
在一个实施例中,系统100可包括至少一个和总线101连接的处理器102-1。处理器102-1可包括内部存储器缓存(例如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可包括和总线101连接的存储器104,诸如,例如随机存取存储器(RAM)等,用于存储将被多个处理器102-1...102-P执行的信息和指令。
存储器104可以存储大型的数据库,例如用于将互联网域名转换成互联网地址,用于将名字或电话号码转换成互联网地址,用于提供并更新用户简档数据(subscriber profile data),用于提供并更新用户存在数据等等。有利地,数据库的大小和每秒的转换量都非常的大。例如,存储器104可包括至少64GB的RAM并且可持有500M(即500×106)记录域名数据库,500M记录用户数据库,450M记录电话号码可移植性数据库等。
在示例的64-位系统体系结构上,诸如包括至少连接64-位总线104和64-位存储器104的至少一个64-位大尾数的(big-endian)处理器102-1的系统,利用单个不可中断操作可将8-字节指针值写到8-字节边界(即可被8整除的存储器地址,或者例如8N)上的存储器地址。一般地,二级存储器缓存103-1的存在可简单地延迟8-字节指针写入存储器104。例如,在一个实施例中,二级存储器缓存103-1是以直写方式(write-through mode)操作的审核(look-through)缓存,使得单个8-字节存储指令可在没有中断的情况下且以两个系统时钟周期把数据的8个字节从处理器102-1移动到存储器104。在另一个实施例中,二级存储器缓存103-1以写回式(write-back mode)操作的审核缓存,使得可以将8-字节的指针首先写入到二级存储器缓冲103-1,然后在随后的时间,诸如,当其中存储了8-字节指针的缓存线被写入到存储器104时(即例如,当特定缓存线,或整个二级存储器缓存被“刷新”时),该二级存储器缓冲103-1把8-字节指针写入到存储器104。
最后,从处理器102-1的角度,一旦数据被锁存在处理器102-1的输出引脚上,所有的8个字节的数据在一个连续的、不可中断的传输中被写到存储器104,该传输可被二级存储器缓存103-1的作用延迟,如果存在的话。从处理器102-1...102-P的角度,一旦数据被锁存在处理器102-1的输出引脚上,所有的8个字节的数据在一个连续的、不可中断的传输中被写到存储器104,这由经过二级存储器缓冲103-1...103-P的缓存相干协议强制执行,二级存储器缓冲103-1...103-P可延迟对存储器104的写入,如果存在的话。
但是,如果8字节的指针值被写到存储器104中的未对准的位置,比如跨越8字节边界的存储器地址,利用单个8-字节存储指令不能从处理器102-1中传送所有的8个字节的数据。而是,处理器102-1可以发布两个分离的并且截然不同的存储指令。例如,如果存储器地址开始于在8-字节边界前面的4个字节(例如,8N-4),第一存储指令传输四个最高位字节到存储器104(例如,8N-4),而第二存储指令传输四个最低位字节到存储器104(例如,8N)。重要地,在这两个分离的存储指令之间,处理器102-1可被中断,或处理器102-1相对于另一个系统部件(例如处理器102-P等)可放松对总线101的控制。结果,驻留在存储器104中的指针值是无效的,直到处理器102-1完成第二存储指令。如果另一个部件开始单个不可中断的存储器读操作来读这个存储器位置,一个无效值将被作为一个假设有效的值返回。
类似地,可利用单个不可中断操作将新的4字节指针值写入可被4整除的存储器地址(例如4N)。需要注意,在上面讨论的例子中,可利用单个存储指令将4字节指针值写入8N-4存储器位置。当然,如果将4字节指针值写到跨越4字节边界的位置,例如4N-2,不能利用单个存储指令从处理器102-1传输所有的4个字节的数据,并且驻留在存储器104中的指针值在某些时间期间无效。
系统100还可包括和总线101连接的只读存储器(ROM)106,或其它静态存储设备用于存储处理器102-1的静态信息和指令。存储设备108,比如磁盘或光盘,可与总线101连接用于存储信息和指令。系统100还可以包括连接总线101的显示器110(例如,LCD监视器)和输入设备112(例如,键盘,鼠标,跟踪球等)。系统100还可包括多个网络接口114-1...114-0,这些接口可发送和接收载有代表各种类型信息的数字数据流的电、电磁或者光信号。在一个实施例中,网络接口114-1可与总线101和局域网(LAN)122连接,而网络接口114-0可与总线101和广域网(WAN)124连接。多个网络接口114-1...114-0可支持多种网络协议,包括,例如千兆位以太网(例如IEEE Standard 802.3-2002,2002年公布),光纤通道(例如ANSI Standard X.3230-1994,1994年公布)等。多个网络计算机120-1...120-N可与LAN 122和WAN 124连接。在一个实施例中,LAN 122和WAN 124可以是物理上不同的网络,而在另一个实施例中,LAN 122和WAN 124可以是经由网络网关或路由器(为了清楚起见没有示出)。或者,LAN 122和WAN 124是相同的网络。
如上面注意的,系统100可提供DNS解析服务。在DNS解析实施例中,DNS解析服务一般地可以被分成网络传输和数据查找功能。例如,系统100可以是为大型数据集的数据查询而最优化的后端查询引擎(LUE),而多个网络计算机120-1...120-N可以是为网络处理和传输而最优化的多个前端协议引擎(PE)。LUE可以是强大的多处理器服务器,其在存储器104中存储了整个DNS记录集以便于高速、高吞吐量地搜索和更新。在一个可替换实施例中,DNS解析服务可由一系列强大的多处理器服务器或LUE提供,每一个在存储器中存储了整个DNS记录集的子集以便于高速、高吞吐量地搜索和更新。
相反地,多个PE可以是通用的、低配置、基于PC机运行有效的多任务操作系统(例如Red Hat6.2),该操作系统最小化LUE上的网络处理传输负载,以便最大化用于DNS解析的可用资源。PE可以响应对LAN 122上的LUE的无效DNS查询和多路复用的有效DNS查询,处理有线线路(wire-line)DNS协议的细微差别。在另一个包括存储DNS记录子集的多个LUE的可替换实施例中,PE可确定哪个LUE应该接收对于适当的LUE的每个有效DNS查询和多路复用有效DNS查询。对于单个LUE的PE数目可由例如每秒处理的DNS查询数目和特定系统的性能特征来确定。其它量度也可用作确定恰当的映射比率和行为。
一般的,可支持其它大容量、基于查询的实施例,包括例如电话号码解析,SS7信令处理,地理位置确定,电话号码到用户的映射,用户位置和存在确定等等。
在一个实施例中,中央联机事务处理(OLTP)服务器140-1可与WAN 124连接,并接收从各种来源对数据库142-1的添加、修改和删除(即,更新业务量)。OLTP服务器140-1可通过WAN 124发送包括有数据库142-1的本地拷贝的更新到系统100。OLTP服务器140-1可以用多种格式和协议来优化处理更新业务量,所述多种格式和协议包括例如超文本传输协议(HTTP)、注册登记员协议(Registry Registrar Potocol RRP)、可扩展供应协议(ExtensibleProvisioning Protocol EPP)、服务管理系统/800机械化通用接口(Mechanized Generic Interface MGI)和其它的在线供应协议。只读LUE群可被部署在集线器和辐条(spoke)体系结构以提供高速搜索能力以及来自OLTP服务器140-1的大容量、递增的更新。
在一个可替换实施例中,可以通过多个OLTP服务器140-1...140-S分布数据,它们的每一个可与WAN 124连接。OLTP服务器140-1...140-S可以接收从各种来源对它们各自的数据库142-1...142-S(为清楚起见没有示出)的添加、修改和删除(即,更新业务量)。OLTP服务器140-1...140-S可以通过WAN 124发送包括有数据库142-1...142-S的拷贝、其它动态创建的数据等的更新到系统100。例如,在一个地理位置实施例中,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查询消息结合或多路复用成单个请求超级包(RequestSuperPakcet)并通过局域网(例如LAN 122)发送该请求超级包到LUE(例如系统100)。LUE可结合或多路复用若干DNS查询消息应答形成单个响应超级包(Response SuperPakcet)并通过局域网发送该响应超级包到适当的PE。一般地,请求或响应超级包的最大长度可由物理网络层(例如千兆位以太网)的最大传输单元(MTU)限制。例如,分别小于100字节和200字节的典型DNS查询和应答消息长度允许超过30个查询被多路复用形成单个请求超级包,同时允许超过15个应答被多路复用形成单个响应超级包。但是,较少数量的查询(例如20个查询)可被包括在单个请求超级包,以避免MTU在响应时(例如10个应答)溢出。对于更大的MTU长度,多路复用的查询和应答的数量可相应地增加。
每个多任务PE可包括用于分别管理DNS查询和应答的入线程和出线程。例如,入线程可以不整理来自通过广域网接收的进入DNS查询包的DNS查询成分,并且多路复用几毫秒的查询形成单个请求超级包。然后该入线程可通过局域网发送请求超级包到LUE。相反地,出线程可接收来自LUE的响应超级包,多路分解在其中包含的应答,并整理各种字段到有效的DNS应答中,该应答接着通过广域网被传送。一般地,如上所述,可支持其它大容量、基于查询的实施例。
在一个实施例中,请求超级包还可以包括与每个DNS查询有关的状态信息,例如源地址、协议类型等。LUE可以在响应超级包中包括状态信息和相关的DNS应答。那么每个PE可利用从LUE传送的信息构建并返回有效DNS应答消息。结果,每个PE可以有利地作为无状态机操作,即有效DNS应答可根据包含在响应超级包中的信息形成。一般地,该LUE可以将响应超级包返回到PE,而进入的超级包从该PE中产生;但是,其它变化也明显可能。
在一个可替换实施例中,每个PE可维护与每个DNS查询相关的状态信息并在请求超级包中包括状态信息的引用或句柄。LUE可在响应超级包中包括状态信息引用和相关的DNS应答。然后每个PE可利用从LUE传送的状态信息引用以及其上维护的状态信息来构建并返回有效DNS应答消息。在这个实施例中,该LUE可将响应超级包返回给PE,而进入的超级包从该PE中产生。
图2是图解说明根据本发明的实施例的消息数据结构的详细框图。一般地,消息200可包括具有多个序列号211-1...211-S以及多个消息计数212-1...212-S的头部210,和数据有效负载215。
在DNS解析实施例中,消息200可用作请求超级包和响应超级包。例如,请求超级包220可包括具有多个序列号231-1...231-S以及多个消息计数232-1...232-S的头部230,和具有多个DNS查询236-1...236-Q的数据有效负载235,这些DNS查询是在例如几毫秒的预定时间内由PE积累的。在一个实施例中,每个DNS查询236-1...236-Q可以包括状态信息,而在一个可替换实施例中,每个DNS查询236-1...236-Q可包括状态信息的句柄。
类似地,响应超级包240可包括具有多个序列号251-1...251-S以及多个消息计数252-1...252-S的头部250,和具有近似地对应于包含在请求超级包220内的多个DNS查询的多个DNS应答236-1...236-R的数据有效负载255。在一个实施例中,每个DNS应答256-1...256-R可包括与对应的DNS查询有关的状态信息,而在可替换实施例中,每个DNS应答256-1...256-R可包括与对应的DNS查询有关的状态信息的句柄。偶尔,对应的DNS应答的总长度可超过响应超级包240的数据有效负载255的长度。这个溢出可以被限制例如到单个应答,即和包含在请求超级包220内的上一次查询有关的应答。该溢出应答优选包括在对应于下一个请求超级包的下一个响应超级包240中,而不是发送只包含有单个应答的附加响应超级包240。有利地,头部250可包括恰当的信息来确定溢出条件的范围。在峰值处理条件下,多于一个的应答可溢出到下一个响应超级包中。
例如,在响应超级包240中,头部250可包括作为两对补充字段而成组的至少两个序列号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内的应答数。在一个实施例中,序列号251-1可以是2个字节的字段,而消息计数252-1可以是1个字节的字段。
在更具体的例子中,请求超级包220的数据有效负载235可包括7个DNS查询(如图2中描述的)。在一个实施例中,序列号231-1可被设置为唯一值(例如1024)以及消息计数232-1可被设置为7,而序列号231-2和消息计数232-2可被设置为0。在另一个实施例中,头部230可以只包含一个序列号和一个消息计数,例如被分别设置为1024和7的序列号231-1和消息计数232-1。一般地,请求超级包220可包含和特定序列号有关的所有查询。
响应超级包240的数据有效负载255可以包括7个对应的DNS应答(如图2中描述的)。在这个例子中,头部250可包括和请求超级包220类似的信息,即设置了相同唯一值(即1024)的序列号251-1,设置为7的消息计数252-1,并且序列号251-2和消息计数252-2都被设置为0。但是,在另一个例子中,响应超级包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,设置为1的消息计数252-2。这样,响应超级包240可包括和包含在2个不同的请求超级包中的3个查询相关的总共3个应答。
图3是图解说明根据本发明的实施例的消息等待时间数据结构体系结构的详细框图。消息等待时间数据结构300可包括通常与消息200的传送和接收相关的信息。在DNS解析实施例中,消息等待时间数据结构300可包括关于请求超级包和响应超级包的等待时间信息;该等待时间信息可以被组织成根据序列号值(例如索引301)索引的表的格式。例如,消息等待时间数据结构300可包括和唯一序列号的总数相等的多个行N,如图所示,一般为表元素310、320、330。在一个实施例中,超级包头部序列号可是2个字节长度并定义唯一序列号的范围从0到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)应答的第一响应超级包何时在PE被接收。在这个实施例中,响应时间戳304可在附加(即第二和后续的)响应超级包被接收时更新。
各种重要的等待时间量度可以根据包含在消息等待时间数据结构300中的等待时间消息来确定。例如,对于给定索引301(即序列号)的请求查询计数303和响应应答计数305之间的简单交叉检查可以表示丢失应答的数量。该差异可以表示被LUE无法解释地减少的查询数。比较请求时间戳302和响应时间戳304可以表示特定PE/LUE组合在当前消息负载下是如何被很好地执行。当前请求超级包序列号和当前响应超级包序列号的差值和LUE的响应性能相关;例如,差值越大,执行越慢。响应消息计数306可表示有多少响应超级包被用于每个请求超级包,并对于分析DNS解析业务量很重要。当在PE和LUE之间传输的查询和应答的等待时间增加时,PE可减少由系统处理的DNS查询包的数量。
一般地,LUE可以对进入的多路复用的请求超级包执行多线程查询,并可以将应答组合成出去的多路复用的响应超级包。例如,LUE可以为每个活动PE产生一个搜索线程或进程,并将所有来自该PE的进入的请求超级包路由到那个搜索线程。LUE可以产生一个管理器线程或进程,以便控制PE对搜索线程的相关性,以及更新线程或者进程以便更新存储器104中的数据库。每个搜索线程可以从进入的请求超级包中提取搜索查询,执行各种搜索,构建包含搜索应答的出去的响应超级包并发送该超级包给恰当的PE。更新线程可从OLTP 140-1接收对数据库的更新,并将新数据合并到数据库中。在可替换实施例中,多个网络计算机120-1...120-N可发送更新到系统100。这些更新可被包括在例如进入的请求超级包消息流中。
相应的,根据超级包协议,LUE可以对在网络处理花费少于15%的处理器能力,因此动态增加了搜索查询的吞吐量。在一个实施例中,8-路M80可承受每秒180k到220k查询的搜索率(qps),而24-路S80可承受400k到500k qps。分别将搜索率加倍,即达到500k和1M qps,简单地请求两次硬件,即,例如两个LUE及其伴随的PE。在另一个实施例中,运行Red Hat6.2的双III 866MHz多处理器个人计算机可承受大约100K/sec的更新率。当然,提高硬件的性能同样提高了和本发明实施例相关的搜索和更新率,并且当制造商将这些多处理器替代为执行更快的机器时,例如,所能承受的搜索和更新率可以匹配地增加。一般地,系统100不限于客户机和服务器的体系结构,并且本发明的实施例不限于硬件和/或软件的任何特定组合。
图4是图解说明根据本发明的实施例的一般数据库体系结构的框图。在这个实施例中,数据库400可包括至少一个数据库记录401的表或组,和至少一个相应的具有指向数据库记录401的组中单个记录的指针(索引,直接字节偏移量等)的搜索索引402。例如,指针405可以引用数据库记录410。
在一个实施例中,数据库400可以在数据库记录401的表或组中包括至少一个散列表403作为带有指针(索引,直接字节偏移量等)的搜索索引。散列函数可以映射搜索关键字到一个整数值,该整数值接着可被用作散列表403中的索引。因为多于一个的搜索关键字可映射到单个整数值,可利用散列链指针的单连接列表创建散列表元。例如,散列表403中的每个入口可以包含指向散列表元的第一元素的指针,并且散列表元的每个元素可以包含指向连接列表中的下一个元素或数据库记录的散列链指针。有利地,对于那些元素或数据库记录可以只要求散列链指针,该散列链指针引用散列表元中的后续元素。
散列表403可以包括指向单个数据库记录401的8字节指针数组。例如,散列表403中的散列指针404可以引用数据库记录420作为散列表元中的第一元素。数据库记录420可以包含可引用散列表元中的下一个元素或数据库记录的散列链指针424。数据库记录420还可以包括数据长度421和相关的固定或可变长度的数据422。在一个实施例中,可以包括表明数据422终止的空字符423。另外,数据库记录420可以包括能引用另一个数据库记录的数据指针425,该另一个数据库记录或者在数据库记录401的组中,或者在其中可定位附加数据的不同的数据库记录的组或表(没有示出)中。
系统100可以使用各种公知的算法以便对给定的搜索项或关键字来搜索这个数据结构体系结构。一般地,数据库400可以由在多个处理器102-1...102-P中的至少一个上执行的多个搜索进程或线程来搜索。但是,通过一个更新线程(或多个线程)不能完整地执行对数据库400的修改,除非阻止该搜索线程(多个线程)在添加、修改或删除数据库400中的信息所必要的时间周期中访问数据库400。例如,为了修改数据库400中的数据库记录430,数据库401的组可以由更新线程锁定,以阻止搜索线程在更新线程修改数据库430中的信息时访问数据库400。存在许多公知的用于锁定数据库400的机制以阻止搜索访问,包括利用自旋锁、信号灯、互斥等。另外,各种现成的商用数据库提供特定命令来锁定所有或部分数据库400,例如在由California,Redwood Shores的Oracle公司制作的Oracle 8数据库中的锁定表命令。
图5是图解说明根据本发明的另一个实施例的一般数据库体系结构的框图。在这个实施例中,数据库500可包括高级优化的、只读的主快照文件510和增长的look-aside文件520。主快照文件510可包括至少一个数据库记录511的表或组,和至少一个相应的具有指向数据库记录511的组中的单个记录的指针(索引,直接字节偏移量等)的搜索索引512。或者,主快照文件510可以在数据库记录511的表或组中包括至少一个散列表513作为具有指针(索引,直接字节偏移量等)的搜索索引。类似地,look-aside文件520可以包括至少两个数据库记录的表或组,包括有数据库添加记录521和数据库删除记录531。可以提供具有指向数据库添加记录521和数据库删除记录531中的单个记录的指针(索引,直接字节偏移量等)的对应的搜索索引522和532。或者,look-aside文件520可以分别在数据库添加记录521和数据库删除记录531中包括散列表523和533作为具有指针(索引,直接字节偏移量等)的搜索索引。
系统100可以使用各种公知的算法以便对给定的检索项或关键字来搜索这个数据结构体系结构。在一个典型的例子中,look-aside文件520可以包括所有的数据的最近变化,并且可以在只读的主快照文件510之前被搜索。如果在look-aside文件520中找到搜索关键字,返回响应而不需要访问快照文件510,但是如果没有找到关键字,那么可以搜索快照文件510。但是,当look-aside文件520不再适合具有快照文件510的存储器104时,搜索查询率按例如10至50或者更多的因子剧烈地下降。结果,为了避免或者最小化搜索查询率的任何下降,快照文件510可以通过合并包含在look-aside文件520中所有的添加、删除和修改来周期性地更新或重建。
在快照文件510中的数据不是物理上的改变而是逻辑上的添加、修改或删除。例如,可以通过创建在数据库删除记录531中对应的删除记录以及通过将指向该删除记录的指针写到散列表533中恰当的位置来将快照文件510中的数据删除或逻辑“遗忘”。可以通过将来自快照文件510的数据记录拷贝到数据库添加记录521中的新数据记录,修改新入口中的数据,并接着将指向该新入口的指针写到恰当的散列表(例如散列表522)或者数据库添加记录521中的链指针,将快照文件510中的数据进行逻辑上修改。类似地,可以通过创建数据库添加记录521中的新的数据记录,并接着将指向新入口的指针写到恰当的散列表(例如散列表522)或者数据库添加记录521中的链指针,将快照文件510中的数据逻辑上添加到快照文件510。
在DNS解析实施例中,例如,快照文件510可包括按着具有分离的搜索索引(例如511-1,511-2,512-1,512-2,513-1,513-2等,为清楚起见没有示出)的分离的数据表或块来组织的域名数据和名字服务器数据,。类似地,look-aside文件520可包括对域名数据和名字服务器数据两者的添加和修改,以及对域名数据和名字服务器数据的删除(例如521-1,521-2,522-1,522-2,523-1,523-2,531-1,531-2,532-1,532-2,533-1,533-2等,为清楚起见没有示出)。
图6是图解说明根据本发明的实施例的非并发控制的数据结构体系结构的详细框图。一般地,数据库600可以被组织成单个、可搜索的数据表示。数据集更新可以被连续地合并到数据库600中,并且可以对相关数据库记录物理执行删除或修改以便例如为后续的添加或修改释放存储器104中的空间。单个、可搜索的表示极其适合对大型数据集的大小以及高搜索与更新率的换算,并且消除对在多个搜索引擎计算机中周期性地重新创建、传输和重新载入快照文件的需要。
在DNS解析实施例中,例如数据库600可以包括域名数据610和名字服务器数据620。域名数据610和名字服务器数据620可以将带有指针(索引,直接字节偏移量等)的搜索索引包括到可变长度记录的块中。如上面所讨论的,散列函数可以映射搜索关键字到一个整数值,该整数值接着可被用作散列表中的索引。类似地,可利用散列链指针的单连接列表为每个散列表索引创建散列表元。域名数据610可包括例如散列表612作为搜索索引和可变长度的域名记录611的块。域名数据610可包括指向单个域名记录611的8字节指针数组,例如引用域名记录620的指针613。可变长度的域名记录620可包括例如下一个记录偏移量621、名字长度622、标准化名字623、链指针624(即,例如指向散列链中的下一个记录),多个名字服务器625和名字服务器指针626。链指针624和名字服务器指针626两者的大小可被优化以反映对每个特定类型数据所要求的块大小,例如对于链指针624是八个字节和对于名字服务器指针626的四个字节。
名字服务器数据630可包括例如散列表632作为搜索索引和可变长度的名字服务器记录631的块。散列表632可包括指向单个名字服务器记录631的4字节指针数组,例如引用名字服务器记录640的指针633。可变长度的名字服务器记录640可包括例如下一个记录偏移量641、名字长度642、标准化名字643、链指针644(即,例如指向散列链中的下一个记录),多个名字服务器网络地址645,名字服务器地址长度646、和一个可以是例如互联网协议(IP)网络地址的名字服务器网络地址647。一般地,名字服务器网络地址可以存储在ASCII(American Standard Code for InformationInterchange,例如ISO-14962-1997,ANSI-X3.4-1997等)或二进制格式;在这个例子中,名字服务器网络地址长度646表示名字服务器网络地址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安全扩展(对评述:2535的互联网工程工作小组的请求)的域名解析等,TST有利地最小化要求执行的比较操作的数量,特别是在搜索失败的情况下,并且可以利用散列法产生超过搜索引擎执行的搜索性能量度。另外,TST还可以提供先进的文本搜索特征,比如在文本搜索应用中是有用的通配符搜索,文本检索应用的例子有whois、域名解析、互联网内容搜索等。
在一个实施例中,TST可包括一系列以层次关系连接在一起的节点。根节点可以位于树的顶部,相关的子节点和连接可以形成分枝,叶子节点可以结束每个分枝的末端。每个叶子节点可以和特定的搜索关键字相关联,并且到叶子节点的路径上的每个节点可以包含该关键字的单个连续元素。树中的每个节点包含比较字符或分离值,以及指向该树中的其它连续的或子“子”节点的三个指针。这些指针引用分离值小于、等于或大于节点分离值的子节点。因此根据特定关键字检索TST涉及从根节点到最后的叶子节点穿过该树,顺序地比较关键字的每个元素或字符位置和沿着该路径的节点的分离值。另外,叶子节点还可以包含指向关键字记录的指针,其反过来可以包含指向包含和关键字(例如IP地址)相关联的记录数据的终结数据记录的至少一个指针。或者,该关键字记录可以包含在它的整体中的记录数据。记录数据可以以二进制格式、ASCII文本格式等存储。
在一个实施例中,数据库700可以被组织成TST,包括多个固定长度的搜索节点701,多个可变长度的关键字数据记录702和多个可变长度的终结数据记录703。搜索节点701可以包括如上所述的各种类型的信息,包括例如比较字符(或值)与位置,分枝节点指针和关键字指针。节点指针的长度一般可由节点数目决定,而关键字指针的长度一般可由可变长度的关键字数据集的长度决定。关键字数据记录702可以包含关键字信息和终结数据信息,包括例如指向终结数据记录或嵌入的数据记录的指针,而终结数据记录703可以包含记录数据。
在一个实施例中,每个固定长度的搜索节点的长度可以是24个字节。例如搜索节点710可以包含8比特的比较字符(或字节值)711、12比特的字符(或字节)位置712,和12比特的节点类型/状态(为清楚起见没有示出);这些数据可在该节点的头四个字节内被编码。比较字符711可以在如图7中所示的节点的第一字节内被编码,或者,可替换地,字符位置712可以在该节点的头12个比特内被编码以便利用简单移位操作优化对字符位置712的访问。每个搜索节点的下一个12字节可以包含三个32比特的指针,例如分别代表“小于”、“等于”、和“大于”分枝节点指针的指针713、指针714和指针715。这些指针可以包含计数器,或节点索引,而不是字节偏移量或存储器地址。对于固定长度的检索节点,字节偏移量可以根据计数器或索引值和固定长度来计算,比如计数器*长度。最后4个字节可以包含40比特的关键字指针716,其可以是表明对应的关键字数据记录不存在(没有示出)的空值,或指向存在的对应的关键字数据记录(没有示出)的指针以及其它数据,包括例如12比特的关键字长度和12比特的指针类型/状态字段。关键字指针716可以包含对适当关键字数据记录的1个字节偏移量,而关键字长度在消除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(例如,字符串、字节序列等)。
在一个实施例中,终结数据记录760,例如可以包括12比特的长度761,4比特的状态和可变长度的字符串762(例如一个IP地址)。可替换地,可变长度的字符串762可以是字节序列。终结数据记录760可以包括填充值以便使每个终结数据记录对齐存储器104中的8字节边界。可替换地,终结数据记录760可以包括对4字节边界的填充值,或终结数据记录760可以不包括任何填充值。存储器管理算法通常可以确定终结数据记录760是否填充了8字节、4字节或0字节边界。类似地,终结数据记录770可以包括12比特的长度771、4比特的状态和可变长度的字符串772(例如一个IP地址)。
一般地,诸如TST的搜索索引和数据记录都可被构造,使得将8字节的指针定位在存储器中的8字节边界上。例如,关键字指针726可以包含8字节(或更小的)的指向关键字数据记录740的指针,并且可以被存储在可被8整除(即8字节边界,或8N)的存储器地址上。类似地,诸如TST的搜索索引和数据记录都可被构造,使得将4字节的指针定位在存储器4字节边界上。例如,节点分枝指针724可以包含4字节(或更小的)的指向节点730的指针,并且可以存储在可被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比特的第一字符814(例如“i”)和8比特的第二字符815(例如“null”)。在这个例子中,地址812可以指向搜索树中的下一个节点,例如垂直节点820。在一个实施例中,38比特的地址812可以包括1比特的终结/节点的指示符和引用存储器104的1T字节(~1012字节)地址空间中的8字节字之一的37比特的偏移量地址。从而,垂直节点810可以是8字节(64比特)长,并且有利地,可以定位在存储器104内的8字节字边界上。一般地,多个搜索节点801中的每个垂直节点可以定位在存储器104内的8字节字边界上。
垂直节点可以包括多字符,搜索关键字分段(例如字符串)。一般地,没有相关联的关键字数据记录的搜索关键字可以被压缩成一单个垂直节点,以便有效地减少多个搜索节点801中所要求的垂直节点的数量。在一个实施例中,垂直节点810可以在搜索关键字分段内的两个字符之上包括对于每个附加字符的8个比特,例如8比特的字符816-1、816-2...816-N(在虚轮廓中示出)。有利地,垂直节点810可以根据位于字符串分段内的附加字符数目来被填充到存储器104内的64比特的边界。例如,如果9个字符将包括到垂直节点810中,那么字符1和2可以分别被分配给第一字符814和第二字符815,并且对应于字符3到9的附加字符信息的56个比特可以被附加到垂直节点810上。可以包括附加的8个比特填充值以便使附加字符信息对齐8字节字边界。
类似地,垂直节点820可以包括,例如2比特的节点类型821(例如“10”),38比特的地址822,8比特的长度823(例如“8”),8比特的第一字符824(例如“a”)和8比特的第二字符825(例如“null”)。在这个例子中,地址822可以指向搜索树中的下一个节点,例如水平节点830。从而,垂直节点820可以是8个字节长,并且有利地,可以定位在存储器104中的8字节字边界上。当然,如果需要的话,附加信息也可以被包括在垂直节点820中,如上面所述引用垂直节点810。
水平节点830可以包括,例如2比特的节点类型831(例如“01”),38比特的第一地址832,8比特的地址计数833(例如2),8比特的第一字符834(例如“·”),8比特的最后字符835(例如“w”),可变长度的位图836,和38比特的第二地址837。在这个例子中,第一字符834可以包括一单个字符“·”,表示由垂直节点810和820定义的搜索关键字分段“la”,而最后字符831可以包括一单个字符“w”,表示由垂直节点810和820定义的搜索关键字分段“law”,以及水平节点830的最后字符835。第一地址832可以指向和搜索关键字分段“la”相关联的关键字数据记录840,而第二地址837可以指向和搜索关键字分段“law”相关联的关键字数据记录850。
位图836可以有利地表示哪个关键字(例如字符)由水平节点830引用。位图836内的一个比特位置中的“1”表示该关键字或字符由水平节点830引用,而位图836内的一个比特位置中的“0”表示该关键字或字符不由水平节点830引用。一般地,位图836的长度可以取决于在第一字符834和最后字符835之间且包括这些边界字符的连续关键字或字符的数量。例如,如果第一字符834是“a”并且最后字符835是“z”,那么位图836是26比特长,其中每个比特对应于包括“a”到“z”之间的一个字符。在这个例子中,附加的38比特的地址将被附加到对应于位图836内表示的每一个字符的平行节点830的末尾。这些38比特的地址的每一个以及位图836可以被填充,以便使每一个数量对齐存储器104中的8字节字边界。在一个实施例中,8比特的ASCII字符集可以被用作搜索关键字空间,使得位图836可以是256比特长(即28比特或32个字节)。在图8中描述的例子中,由于特定的引用字符“·”和“2”的地址计数833,位图836可以是2个比特长,并且在对应于最后字符835的每个比特位置中包括一个“1”。
在一个实施例中,如所讨论的参考关键字数据记录750(图7),关键字数据记录850可以包括,例如可变长度的关键字853和至少一个终结数据指针。如图8所描述的,关键字数据记录850包括两个终结数据指针,终结数据指针857和终结数据指针858。关键字数据记录850可以在其前头加上12比特的关键字长度851和12比特的终结指针计数/状态852,并且可以包括填充值(为清楚起见没有示出)以便使终结数据指针857和终结数据指针858对齐存储器104中的8字节边界。终结数据指针857和终结数据指针858可以分别包含10比特的终结数据类型和其它数据,例如在二进制记录搜索中使用的长度、状态或者数据。终结数据指针857和终结数据指针858可以根据用于更快检索特定资源记录(例如终结数据记录860和终结数据记录870)的终结数据类型来存储。
在另一个实施例中,并如参考关键字数据记录740所讨论的(图7),关键字数据记录840可以包括嵌入的终结数据846,而不是终结数据记录指针。例如,关键字数据记录840可以包括关键字长度841、终结指针计数842、可变长度的关键字843、嵌入记录元素844的数量,接着是嵌入记录元素844的数量中的每一个的记录元素长度845(例如,以字节为单位)和嵌入记录数据846(例如,字符串、字节序列等)。
在另一个实施例中,并如参考终结数据记录760所讨论的(图7),终结数据记录860,例如可以包括12比特的长度861,4比特的状态,和可变长度的字符串862(例如一个IP地址)。可替换地,可变长度的字符串862可是字节序列。终结数据记录860可以包括填充值(为清楚起见没有示出)以便使每个终结数据记录对齐存储器104中的8字节边界。可替换地,终结数据记录860可以包括对4字节边界的填充值(为清楚起见没有示出),或终结数据记录860可以不包括任何填充值。存储器管理算法通常可以确定终结数据记录860是否填充了8字节、4字节或0字节边界。类似地,终结数据记录870可以包括12比特的长度871、4比特的状态和可变长度的字符串872(例如一个IP地址)。
一般地,诸如OAK树的搜索索引和数据记录都可被构造,使得8字节的指针定位在存储器中的8字节边界上。例如,垂直节点810可以包含8字节(或更小的)的指向垂直节点820的指针,并且可以存储在可被8整除(即8字节边界,或8N)的存储器地址上。类似地,诸如OAK树的搜索索引和数据记录都可被构造,使得4字节的指针定位在存储器的4字节边界上。结果,数据库800的修改可以利用单个不可中断操作通过更新指向对齐的地址的指针来完成,该单个不可中断操作包括例如将新指针写到搜索索引,比如OAK树节点,或将新指针写到数据记录。
以上参考图8讨论的不同实施例显示了很多的优点。例如,OAK树数据结构是极其空间有效的和8比特清除的。正则表达式搜索可以被用于搜索包括多个字符的字符串分段的垂直节点,因为8比特第一字符(例如第一字符814),8比特第二字符(例如第二字符815)以及任何附加的8比特字符(例如附加字符816-1...816-N)可以连续地定位在垂直节点(例如垂直节点810)中。搜索失败可以很快地被发现,并且可以需要穿过不多于N个节点来搜索N字符长的搜索字符串。
图9是图解说明根据本发明的实施例的用于搜索和并发更新数据库而不使用数据库锁或访问控制的方法的顶层流程图。
可以创建一个更新线程和多个搜索线程(900)。在一个实施例中,系统100可以产生单个更新线程,以合并从例如WAN 124上的OLTP服务器140-1接收的对本地数据库的更新。在其它实施例中,系统100可以接收来自WAN 124上的OLTP服务器140-1...140-S和来自WAN 124或LAN 122上的多个网络计算机120-1...120-N的更新。系统100还可以响应从多个网络计算机120-1...120-N接收的每个对话请求来产生搜索线程。例如,一个管理器线程可以为从多个网络计算机120-1...120-N传送的对话请求轮询与一个或多个网络接口114-1...114-0相关联的一个或多个控制端口。一旦来自特定网络计算机120-1...120-N的对话请求被接收,该管理线程可以产生一个搜索线程并将该搜索线程和该特定网络计算机(例如PE)相关联。
在一个可替换实施例中,系统100可以产生多个搜索线程而不用为来自多个网络计算机120-1...120-N的对话请求轮询。在这个实施例中,该搜索线程可以不和特定网络计算机相关联,并且可以均匀分布在多个处理器102-1...102-P中。或者,该搜索线程可以在多个处理器102-1...102-P的子集上执行。搜索线程的数量可以不必和网络计算机的数量(比如N)匹配。
多个搜索查询可以通过网络被接收(910)。在一个实施例中,多个网络计算机120-1...120-N可以通过LAN 122或可替换的WAN124向系统100发送多个搜索查询。该多个搜索查询可以包括,例如搜索项或关键字,以及跟每个查询相关联的状态信息(例如查询源地址,协议类型等)。状态信息可以由系统100显式地维护,或可替换地,提供状态信息句柄。在优选实施例中,多个网络计算机120-1...120-N的每一个可以将预先确定数量的搜索查询多路复用成用于传输给系统100的单个网络包(例如如图2描述的请求超级包)。
每个搜索查询可以被分配给多个搜索线程之一用于处理(920)。在一个实施例中,每个搜索线程可以和多个网络计算机120-1...120-N之一相关联,并且从那个特定网络计算机接收的所有搜索查询可以被分配给搜索线程(920)。换句话说,一个搜索线程可以处理从单个网络计算机(比如单个PE)到达的所有搜索查询。在一个实施例中,每个搜索线程可以从单个多路复用的网络包(例如,如图2描述的请求超级包220)中提取单个搜索查询,或可替换地,该提取可以由不同进程或线程执行。
在另一个实施例中,从多个网络计算机120-1...120-N中的每一个接收的搜索查询可以被分配给不同的搜索线程(920)。在这个实施例中,该多线程分配可以基于一个优化的分布函数,该函数可以结合多种系统参数,包括例如处理器装载。当然,将搜索查询分配给搜索线程可以随时间而变化,根据各种系统参数,包括处理器可利用性、系统部件性能等。各种机制可以用作将搜索查询传送给系统100内分配的搜索线程,例如共享存储器,内部处理消息,令牌,信号灯等。
每个搜索线程可以根据分配的搜索查询来搜索数据库(930)。搜索数据库可以依据数据库的基础结构。
参考图4中描述的的数据库实施例,数据库400可以用搜索关键字来搜索(930)。接着可确定对应于该搜索关键字的数据记录(例如数据库记录420)。参考图5中描述的的数据库实施例,0可以首先用搜索关键字来搜索look-aside文件52(930),并且如果没有确定匹配,那么可搜索快照文件510(930)。接着可以确定对应于该搜索关键字的数据记录。
参考图6中描述的数据库实施例,可以首先用搜索关键字来搜索域名数据610(930),并且接着可确定对应于该搜索关键字的名字服务器数据630中的资源数据。例如,对于搜索关键字“la.com”,可用域名数据610中的域名记录620来确定匹配。提取合适的信息,包括例如名字服务器指针626。那么,可用名字服务器指针626索引合适的名字服务器记录640,并且可提取名字服务器网络地址647。
参考图7中描述的的数据库实施例,可用搜索关键字搜索TST(930),由此确定资源数据。例如,对于搜索关键字“law.com”,可以搜索搜索节点710(930),并且可用节点730来确定匹配。可提取关键字指针736,由此可确定关键字数据记录750。接着可识别终结数据指针752的数量,并且可提取每个终结数据指针。例如,终结数据指针757可以引用终结数据记录760,并且终结记录指针758可以引用终结数据770。接着可以分别利用长度761和771从每个终结数据记录中提取可变长度的资源数据,例如名字服务器网络地址762和名字服务器网络地址772。
参考图8中描述的数据库实施例,可用搜索关键字来搜索OAK树(930),由此确定资源数据。例如,对于搜索关键字“law.com”,可以搜索搜索节点810(930),并且可用节点830来确定匹配。可提取第二地址837,由此确定关键字数据记录850。接着可识别终结数据指针852的数量,并且可提取每个终结数据指针。例如,终结数据指针857可以引用终结数据记录860,并且终结数据指针858可以引用终结数据870。接着可以分别利用长度861和871从每个终结数据记录中提取可变长度的资源数据,例如名字服务器网络地址862和名字服务器网络地址872。
每个搜索线程可以创建对应于分配的搜索查询的多个搜索应答(940)。如果没有为特定搜索关键字找到匹配,那么应答可以包括合适的指示,例如空字符。对于域名解析,例如,搜索关键字可以是“law.com”并且对应的资源数据可以是“180.1.1.1”。多于一个的名字服务器网络地址可以和一个搜索关键字相关联,在这个情况下,可以确定多于一个的名字服务器网络地址。
可以通过网络发送应答(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)。一般地,对在数据库的存在的元素内包含的信息的修改是通过根据存在的元素来创建新元素,然后修改新元素以包括该新信息来体现。在这个过程中,在该新元素被确认到数据库前,新元素对于正在系统100上执行的搜索线程或进程是不可见的。一般地,对数据库的添加可以用类似的方式完成,而不需要使用在存在的元素内包含的信息。在一个实施例中,从数据库中删除一个存在的元素可以通过添加新的、显式的“删除”元素到数据库来完成。在另一个实施例中,从数据库删除一个存在的元素可以通过用适当的指示符(比如空指针等)重写指向存在的元素的指针来完成。在这个实施例中,更新线程在数据库中不创建包含新信息的新元素。
在DNS解析实施例中,例如,新信息可以包括被添加到数据库的新域名。在这个例子中,为了简明,该新域名可以引用存在的名字服务器。参考图6,用于新域名记录615的存储器空间可以从和域名记录611相关联的存储器池中分配,或可替换地,从和域名数据610相关联的通用存储器池中分配。该新域名可以被标准化并且拷贝到新域名记录615,并且指向存在的名字服务器(例如名字服务器记录655)的指针可以被确定并且拷贝到新域名记录615。其它信息可以被计算并且添加到新域名记录615;例如多个名字服务器、链指针等。在更复杂的例子中,新信息可以包括具有对应的资源数据的新搜索关键字。
参考图7,可以首先创建新搜索节点705以及新关键字数据记录780。在这个例子中,新搜索节点705可以包括在第一位置中的比较字符(“m”),它比在存在的搜索节点710的第一位置中的比较字符(“l”)大。结果,搜索节点705可以被插入到同搜索节点710一样的“level”处的TST中(即,第一字符位置)。在搜索节点705被确认到数据库之前,搜索节点710的4字节的“大于”指针715可以包含一个“空“指针。搜索节点705还可以包含4字节的关键字指针706,其包含有指向新关键字数据记录780的40比特的指针。关键字数据记录780可以包括关键字长度781(例如“5”)和类型782(例如指明嵌入资源数据),可变长度的关键字783(例如“m.com”),多个嵌入资源784(例如“1”),资源长度785(例如“g”),以及可变长度的资源字符串786或字节序列(例如“180.1.1.1”)。在一个实施例中,可以从与TST节点701相关联的存储器池中为搜索节点705分配存储器空间,而可从与多个关键字数据记录702相关联的存储器池中为关键字数据记录770分配存储器空间。
参考图8,可以首先创新搜索节点890以及新关键字数据记录880。在这个例子中,新搜索节点890可以是水平节点,包括例如2比特的节点类型(例如“01”),38比特的第一地址892,8比特的地址计数893(例如2),8比特的第一字符894(例如“l”),8比特的最后字符895(例如“m”),可变长度的位图896和38比特的第二地址897。第一地址892可以指向垂直节点820,在“1...”搜索字符串路径中的下一个垂直节点,而第二地址897可以指向和搜索关键字分段“m”相关联的关键字数据记录880。关键字数据记录880可以包括关键字长度881(例如“5”)和类型882(例如指明嵌入资源数据),可变长度的关键字883(例如“m.com”),多个嵌入资源884(例如“1”),资源长度885(例如“g”),以及可变长度的资源字符串886或字节序列(例如“180.1.1.1”)。在一个实施例中,可从与多个搜索节点801相关联的存储器池中为搜索节点890分配存储器空间,而可从与多个关键字数据记录802相关联的存储器池中为关键字数据记录880分配存储器空间。
更新线程可以利用单个不可中断操作将指针写到数据库(980)。一般地,新元素在将指向新元素的指针写到数据库的适当位置的瞬间被确认到数据库中(即,对于搜索线程或进程变为可见)。如上所讨论的,可以在存储器中对齐该适当的位置,使得单个操作包括适当长度的单个存储指令。在实施例中,可以通过用适当的指示符(例如“null”指针等)重写指向存在的元素的指针的瞬间,从数据库删除该存在的元素(即,对于搜索线程或进程变为可见)。又一次,可在存储器中对齐该适当的位置,使得单个操作包括适当长度的单个存储指令。
参考图6,对应于域名记录620的8字节的指针可以被写到散列表612(例如元素613)中。重要地,该散列表入口在存储器104的8字节的边界上对齐,以保证单个8字节存储指令用于更新这个值。参考图7,对应于新搜索节点705的4字节的指针可以被写到搜索节点710中的4字节的“更大”节点指针715。重要地,该节点指针715在存储104的4字节的边界上对齐,以保证单个4字节存储指令用于更新这个值。参考图8,多个搜索节点801也可以包括树顶地址899,该地址可以在存储器104的8字节的字边界上对齐并且引用多个搜索节点801中的第一节点(即,例如垂直节点810)。可以利用单个存储指令将对应于新搜索节点890的8字节的指针写到树顶地址899。在这些实施例中的每一个中,刚好在存储指令之前,该新数据对于搜索线程是不可见的,而刚好存储指令之后,该新数据对于搜索线程是可见的。这样,通过单个不可中断操作,新数据可以被确定到数据库而不需使用数据库锁或访问控制。
在一个实施例中,更新线程可以在指针被写到(980)数据库之后物理上删除(990)存在的元素。有利地,对于数据库中被修改或被删除的存在的元素,从存储器104中物理删除这些元素可以被延迟,以保持正在进行的搜索的一致性。例如,在修改了存在的元素以及对应的新元素被确认到数据库之后,从存储器104中物理删除这些元素可以被延迟,使得具有刚在新元素被确认到数据库之前获得的结果的存在的搜索线程可以继续使用数据的前一个状态。类似地,在已经从数据库中删除一个存在的元素之后,从存储器104中物理删除该存在的元素可以被延迟,使得具有刚在从数据库中删除该存在的元素之前获得的结果的该存在的搜索线程可以继续使用数据的前一个状态。该更新线程可以在存在的元素被修改、或删除之前开始的所有搜索线程结束之后物理地删除(990)存在的元素。
潜在的复杂性可以由本发明实施例相关的方法与系统100的各种体系结构特性的相互作用而出现。例如,其上运行更新线程的处理器(例如处理器102-1,102-2等)可以包括支持无序指令执行的硬件。在另一个例子中,系统100可以包括可生成一系列指令的、与本发明实施例相关的优化编译器,这些指令已经被最佳地重新安排以开发处理器内部体系结构(例如处理器102-1,102-2等)的并行性。本领域的技术人员随时承认还有许多其它的复杂性。例如通过创建在新元素的创建(970)和到数据库的指针写入(980)之间的相关性,可以消除由无序指令执行引起的数据危险性。
在一个实施例中,可以通过插入附加算法操作,比如异或(XOR)指令到由处理器102-1执行的指令序列中,以便在执行到数据库的指针写入(980)之前强制执行与新元素的创建(970)相关联的指令或者完成,来建立这些相关性。例如,存储器104中对应于新元素的位置的内容可以和存储器104中对应于指向该新元素的指针的位置的内容进行异或。结果,新元素的地址可以被写到(980)存储器104,以确认该新元素到数据库。本领域技术人员随时明白克服这些复杂性的许多方法。
在这里详细地描述和示例了本发明的几个实施例。但是,需要理解,本发明的修改和变化可由上述的教授覆盖,并且都在所附的权利要求的范围内而没有偏离本发明的精神和意图范围。
Claims (37)
1.一种多线程网络数据库系统,包括:
用于创建更新线程和多个搜索线程的装置;
用于将通过网络接收的多个搜索查询中的每一个分配到多个搜索线程之一的装置;
对于每个搜索线程:
用于根据分配的搜索查询搜索数据库的装置,
用于创建对应于分配的搜索查询的多个搜索应答的装置,和
用于通过网络发送多个搜索应答的装置;并且
对于更新线程:
用于根据通过网络接收的新信息创建新元素的装置,和
用于在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向新元素的指针写到数据库的装置,
用于将所述指针写到数据库之后,物理删除存在的元素的装置。
2.如权利要求1所述系统,其中单个不可中断操作是存储指令。
3.如权利要求2所述系统,其中存储指令将4个字节写到位于4字节边界上的存储器地址。
4.如权利要求2所述系统,其中存储指令将8个字节写到位于8字节边界上的存储器地址。
5.如权利要求2所述系统,其中所述处理器具有至少n个字节大小的字,所述存储器具有至少n个字节宽并且该存储指令将n个字节写到位于n字节边界的存储器地址。
6.如权利要求1所述系统,其中多个搜索查询在单个网络包中接收。
7.如权利要求1所述系统,其中多个搜索应答在单个网络包中发送。
8.如权利要求1所述系统,其中所述限制访问包括数据库锁定。
9.如权利要求1所述系统,其中所述限制访问包括自旋锁定。
10.如权利要求9所述系统,其中所述自旋锁定包括利用至少一个信号灯。
11.如权利要求10所述系统,其中信号灯是互斥信号灯。
12.如权利要求1所述系统,还包括多个处理器和对称多处理操作系统。
13.如权利要求12所述系统,其中多个搜索线程至少每秒执行100,000个搜索。
14.如权利要求13所述系统,其中更新线程至少每秒执行10,000个更新。
15.如权利要求14所述系统,其中更新线程每秒执行50,000到130,000个更新。
16.如权利要求1所述系统,其中将指向新元素的指针写到搜索索引。
17.如权利要求16所述系统,其中搜索索引是三叉检索树。
18.如权利要求16所述系统,其中搜索索引是散列表。
19.如权利要求1所述系统,其中将指向新元素的指针写到数据库中的数据记录。
20.一种搜索和并发更新数据库的方法,包括:
创建更新线程和多个搜索线程;
将通过网络接收的多个搜索查询中的每一个分配到多个搜索线程之一;
对于每个搜索线程:
根据分配的搜索查询搜索数据库,
创建对应于分配的搜索查询的多个搜索应答,并且
通过网络发送多个搜索应答;并且
对于更新线程:
根据通过网络接收的新信息创建新元素,并且
在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向新元素的指针写到数据库,
将所述指针写到数据库之后,物理删除存在的元素。
21.如权利要求20所述方法,其中单个不可中断操作是存储指令。
22.如权利要求21所述方法,其中存储指令将4个字节写到位于4字节边界上的存储器地址。
23.如权利要求21所述方法,其中存储指令将8个字节写到位于8字节边界上的存储器地址。
24.如权利要求20所述方法,其中多个搜索查询在单个网络包中接收。
25.如权利要求20所述方法,其中多个搜索应答在单个网络包中发送。
26.如权利要求20所述方法,其中所述限制访问包括数据库锁定。
27.如权利要求20所述方法,其中所述限制访问包括自旋锁定。
28.如权利要求27所述方法,其中所述自旋锁定包括利用至少一个信号灯。
29.如权利要求28所述方法,其中信号灯是互斥信号灯。
30.如权利要求20所述方法,其中多个搜索线程至少每秒执行100,000个搜索。
31.如权利要求30所述方法,其中更新线程至少每秒执行10,000个更新。
32.如权利要求31所述方法,其中更新线程每秒执行50,000到130,000个更新。
33.如权利要求20所述方法,其中将指向新元素的指针写到搜索索引。
34.如权利要求33所述方法,其中搜索索引是三叉检索树。
35.如权利要求20所述方法,其中将指向新元素的指针写到数据库中的数据记录。
36.一种搜索和并发更新数据库的方法,包括:
创建更新线程和多个搜索线程;
将通过网络接收的多个搜索查询中的每一个分配到多个搜索线程之一;
对于每个搜索线程:
根据分配的搜索查询搜索数据库,
创建对应于分配的搜索查询的多个搜索应答,并且
通过网络发送多个搜索应答;并且
对于更新线程:
在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向存在的元素的指针写到数据库,
将所述指针写到数据库之后,物理删除存在的元素。
37.如权利要求36所述方法,其中指针包括空指针。
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 |
---|---|
CN1610877A CN1610877A (zh) | 2005-04-27 |
CN1610877B true CN1610877B (zh) | 2010-06-02 |
Family
ID=26987480
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02826620XA Expired - Fee Related CN1610902B (zh) | 2001-11-01 | 2002-11-01 | 更新远程数据库的方法和系统 |
CN028265092A Expired - Fee Related CN1610906B (zh) | 2001-11-01 | 2002-11-01 | 事务处理存储器管理器 |
CN028266196A Expired - Fee Related CN1610877B (zh) | 2001-11-01 | 2002-11-01 | 高速非并发控制数据库 |
CNB028265114A Expired - Fee Related CN100557595C (zh) | 2001-11-01 | 2002-11-01 | 用于验证远程数据库的方法和系统 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02826620XA Expired - Fee Related CN1610902B (zh) | 2001-11-01 | 2002-11-01 | 更新远程数据库的方法和系统 |
CN028265092A Expired - Fee Related CN1610906B (zh) | 2001-11-01 | 2002-11-01 | 事务处理存储器管理器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028265114A Expired - Fee Related CN100557595C (zh) | 2001-11-01 | 2002-11-01 | 用于验证远程数据库的方法和系统 |
Country Status (16)
Country | Link |
---|---|
US (10) | US7167877B2 (zh) |
EP (10) | EP2562661A3 (zh) |
JP (4) | JP4897196B2 (zh) |
KR (4) | KR100970122B1 (zh) |
CN (4) | CN1610902B (zh) |
AU (5) | AU2002356884B2 (zh) |
BR (4) | BR0213863A (zh) |
CA (4) | CA2466117C (zh) |
EA (4) | EA005646B1 (zh) |
HK (1) | HK1075308A1 (zh) |
IL (8) | IL161723A0 (zh) |
MX (4) | MXPA04004169A (zh) |
NO (4) | NO20042258L (zh) |
NZ (4) | NZ532773A (zh) |
WO (5) | WO2003038653A1 (zh) |
ZA (4) | ZA200403597B (zh) |
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 |
KR100970122B1 (ko) * | 2001-11-01 | 2010-07-13 | 베리사인 인코포레이티드 | 고속 논-콘커런시 제어된 데이터베이스 |
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 |
US7162495B2 (en) * | 2003-03-31 | 2007-01-09 | Qwest Communications Inc. | Systems and methods for clearing telephone number porting assignments 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 |
US7395276B2 (en) * | 2003-03-31 | 2008-07-01 | Qwest Communications International Inc. | Systems and methods for resolving telephone number discrepancies en masse |
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 |
US7624112B2 (en) * | 2003-04-03 | 2009-11-24 | Oracle International Corporation | Asynchronously storing transaction information from memory to a persistent storage |
US20040220941A1 (en) * | 2003-04-30 | 2004-11-04 | Nielson Mark R. | Sorting variable length keys in a database |
US7212817B2 (en) * | 2003-04-30 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Partitioning a database keyed with variable length keys |
JP2005309550A (ja) * | 2004-04-19 | 2005-11-04 | Hitachi Ltd | リモートコピー方法及びリモートコピーシステム |
JP4374953B2 (ja) * | 2003-09-09 | 2009-12-02 | 株式会社日立製作所 | データ処理システム |
US7130975B2 (en) * | 2003-06-27 | 2006-10-31 | Hitachi, Ltd. | Data processing system |
JP4124348B2 (ja) * | 2003-06-27 | 2008-07-23 | 株式会社日立製作所 | 記憶システム |
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 |
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 |
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 |
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 |
US7577995B2 (en) * | 2003-09-16 | 2009-08-18 | At&T Intellectual Property I, L.P. | Controlling user-access to computer applications |
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 | 株式会社日立製作所 | 複数の記憶システムを有するデータ処理システム |
CN1943140A (zh) * | 2003-12-30 | 2007-04-04 | 艾利森电话股份有限公司 | 在共用传输协议包中传送属于不同用户的数据包的方法和装置 |
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 |
EP1596610B1 (en) * | 2004-05-11 | 2006-10-18 | Alcatel | Network element and method of mapping address information |
US7483426B2 (en) * | 2004-05-13 | 2009-01-27 | Micrel, Inc. | Look-up table expansion method |
WO2005114492A2 (en) * | 2004-05-21 | 2005-12-01 | Computer Associates Think, Inc. | Method and apparatus for loading data into an alternate evaluator for directory operations |
US20060036720A1 (en) * | 2004-06-14 | 2006-02-16 | Faulk Robert L Jr | Rate limiting of events |
EP1610234B1 (en) * | 2004-06-22 | 2007-08-01 | Sap Ag | Online transactional data processing system |
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 |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
US8266609B2 (en) * | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
CN101336535B (zh) * | 2005-12-27 | 2011-10-12 | 法国电信公司 | 管理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 |
US9274857B2 (en) * | 2006-10-13 | 2016-03-01 | International Business Machines Corporation | Method and system for detecting work completion in loosely coupled components |
US9514201B2 (en) * | 2006-10-13 | 2016-12-06 | International Business Machines Corporation | Method and system for non-intrusive event sequencing |
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 |
US9824107B2 (en) | 2006-10-25 | 2017-11-21 | Entit Software Llc | Tracking changing state data to assist in computer network security |
KR100898995B1 (ko) * | 2006-10-25 | 2009-05-21 | 노키아 코포레이션 | 원격 전자 거래 |
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 |
US7831565B2 (en) * | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
US8751467B2 (en) * | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
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 | データ配布システム及びデータ配布プログラム |
US7975115B2 (en) * | 2007-04-11 | 2011-07-05 | Dot Hill Systems Corporation | Method and apparatus for separating snapshot preserved and write data |
US7716183B2 (en) * | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US8768898B1 (en) * | 2007-04-26 | 2014-07-01 | Netapp, Inc. | Performing direct data manipulation on a storage device |
US20090182718A1 (en) * | 2007-05-08 | 2009-07-16 | Digital River, Inc. | Remote Segmentation System and Method Applied To A Segmentation Data Mart |
US8856094B2 (en) * | 2007-05-08 | 2014-10-07 | Digital River, Inc. | Remote segmentation system and method |
US8001345B2 (en) * | 2007-05-10 | 2011-08-16 | Dot Hill Systems Corporation | Automatic triggering of backing store re-initialization |
US7783603B2 (en) * | 2007-05-10 | 2010-08-24 | Dot Hill Systems Corporation | Backing store re-initialization method and apparatus |
US8175099B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Embedded system development platform |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US8688920B2 (en) | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
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 |
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 |
US8140520B2 (en) * | 2008-05-15 | 2012-03-20 | International Business Machines Corporation | Embedding densities in a data structure |
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 |
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 |
US9269080B2 (en) | 2009-10-30 | 2016-02-23 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9235829B2 (en) | 2009-10-30 | 2016-01-12 | 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 |
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 |
WO2013016868A1 (en) * | 2011-08-03 | 2013-02-07 | Amazon Technologies, Inc. | Gathering transaction data associated with locally stored 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 |
US8965850B2 (en) | 2011-11-18 | 2015-02-24 | Dell 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 | 阿尔卡特朗讯 | 一种用于比较和重构地理冗余的数据库的方法 |
US10102570B1 (en) | 2013-03-14 | 2018-10-16 | Consumerinfo.Com, Inc. | Account vulnerability alerts |
US9406085B1 (en) | 2013-03-14 | 2016-08-02 | Consumerinfo.Com, Inc. | System and methods for credit dispute processing, resolution, and reporting |
CN105264525A (zh) * | 2013-06-04 | 2016-01-20 | 马维尔国际贸易有限公司 | 内部搜索引擎架构 |
US8886601B1 (en) * | 2013-06-20 | 2014-11-11 | Palantir Technologies, Inc. | System and method for incrementally replicating investigative analysis data |
WO2015026971A2 (en) * | 2013-08-20 | 2015-02-26 | Shanklin Steven Dale | 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 |
US9925492B2 (en) | 2014-03-24 | 2018-03-27 | Mellanox Technologies, Ltd. | Remote transactional memory |
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 |
JP6232127B2 (ja) * | 2014-04-22 | 2017-11-15 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
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 |
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 |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
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 | 安徽兆尹信息科技股份有限公司 | 一种用于生成现金流量表的云计算应用平台构建方法 |
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 |
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 |
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 |
CA3007479A1 (en) * | 2015-12-18 | 2017-06-22 | Walmart Apollo, Llc | Systems and methods for resolving data discrepancy |
WO2017106779A1 (en) * | 2015-12-18 | 2017-06-22 | F5 Networks, Inc. | Methods of collaborative hardware and software dns acceleration and ddos protection |
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 |
CN106790544A (zh) * | 2016-12-22 | 2017-05-31 | 郑州云海信息技术有限公司 | 减少远程客户端与数据中心间通信数据量的方法及装置 |
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 | 經貿聯網科技股份有限公司 | 動態更新金融資料的方法及其處理系統以及動態調整電源配置的方法及其處理系統 |
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控股有限公司 | 用于搜索目录访问组的方法和系统 |
US11265324B2 (en) | 2018-09-05 | 2022-03-01 | Consumerinfo.Com, Inc. | User permissions for access to secure data at third-party |
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 |
WO2021021734A1 (en) * | 2019-07-30 | 2021-02-04 | 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 | 珠海格力电器股份有限公司 | 线程管理方法、存储介质及电子设备 |
JP7297107B2 (ja) * | 2020-02-24 | 2023-06-23 | センストーン インコーポレイテッド | 仮想コードを用いたユーザ設定情報認証方法、プログラム及び装置 |
KR102479729B1 (ko) * | 2020-02-24 | 2022-12-20 | 주식회사 센스톤 | 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치 |
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 |
EP4323888A2 (en) * | 2021-04-14 | 2024-02-21 | 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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924098A (en) * | 1997-06-30 | 1999-07-13 | Sun Microsystems, Inc. | Method and apparatus for managing a linked-list data structure |
WO2001011443A2 (en) * | 1999-08-06 | 2001-02-15 | Namezero.Com, Inc. | Internet hosting system |
Family Cites Families (138)
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 |
EP0447145B1 (en) * | 1990-03-12 | 2000-07-12 | Hewlett-Packard Company | User scheduled direct memory access using virtual addresses |
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 |
EP0594196B1 (en) * | 1992-10-22 | 1999-03-31 | Cabletron Systems, Inc. | Address lookup in packet data communications link, using hashing and content-addressable memory |
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 |
US6330568B1 (en) * | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of databases |
US6044381A (en) * | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing 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 | 윤종용 | 교환기 시스템의 운영 프로그램 및 데이터베이스 인스톨 방법 |
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 |
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
US6061678A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Approach for managing access to large objects in database systems using large object indexes |
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 |
EP1142227A2 (en) * | 1998-12-23 | 2001-10-10 | Nokia Wireless Routers, Inc. | A unified routing scheme for ad-hoc internetworking |
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 |
DE60037502T2 (de) * | 1999-03-03 | 2008-12-11 | Ultradns, Inc., Danville | Domänennamen-Auflösungssystem mit einem oder mehreren Servern |
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 |
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 |
US6892359B1 (en) * | 2000-02-18 | 2005-05-10 | Xside 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 |
KR100970122B1 (ko) | 2001-11-01 | 2010-07-13 | 베리사인 인코포레이티드 | 고속 논-콘커런시 제어된 데이터베이스 |
US20030208511A1 (en) * | 2002-05-02 | 2003-11-06 | Earl Leroy D. | Database replication system |
US20050027882A1 (en) | 2003-05-05 | 2005-02-03 | Sullivan Alan T. | Systems and methods for direction of communication traffic |
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 |
US20050105513A1 (en) | 2002-10-27 | 2005-05-19 | Alan Sullivan | Systems and methods for direction of communication traffic |
US7769826B2 (en) | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
US7761570B1 (en) | 2003-06-26 | 2010-07-20 | Nominum, Inc. | Extensible domain name service |
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 |
EP1891539A2 (en) | 2005-05-24 | 2008-02-27 | 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 |
JP2009524355A (ja) | 2006-01-20 | 2009-06-25 | パックスファイアー インコーポレイテッド | 通信トラフィックを判別し、制御するためのシステムおよび方法 |
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 |
US20080155254A1 (en) | 2006-12-20 | 2008-06-26 | Comodo Ca, Ltd. | 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 |
US7925747B2 (en) | 2007-10-18 | 2011-04-12 | 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 |
US20090282027A1 (en) | 2008-09-23 | 2009-11-12 | Michael Subotin | Distributional Similarity Based Method and System for Determining 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 KR KR1020047006695A patent/KR100970122B1/ko not_active IP Right Cessation
- 2002-11-01 MX MXPA04004169A patent/MXPA04004169A/es active IP Right Grant
- 2002-11-01 MX MXPA04004201A patent/MXPA04004201A/es active IP Right Grant
- 2002-11-01 EA EA200400618A patent/EA005646B1/ru not_active IP Right Cessation
- 2002-11-01 EA EA200400613A patent/EA006038B1/ru not_active IP Right Cessation
- 2002-11-01 KR KR1020047006649A patent/KR100953137B1/ko not_active IP Right Cessation
- 2002-11-01 CN CN02826620XA patent/CN1610902B/zh not_active Expired - Fee Related
- 2002-11-01 EP EP12175016.0A patent/EP2562661A3/en not_active Withdrawn
- 2002-11-01 US US10/285,549 patent/US7167877B2/en not_active Expired - Lifetime
- 2002-11-01 CA CA2466117A patent/CA2466117C/en not_active Expired - Fee Related
- 2002-11-01 BR BR0213863-8A patent/BR0213863A/pt not_active Application Discontinuation
- 2002-11-01 US US10/285,618 patent/US7203682B2/en not_active Expired - Lifetime
- 2002-11-01 EP EP12153314A patent/EP2450812A1/en not_active Withdrawn
- 2002-11-01 EP EP11181796.1A patent/EP2477126A3/en not_active Withdrawn
- 2002-11-01 US US10/285,575 patent/US6681228B2/en not_active Expired - Lifetime
- 2002-11-01 BR BR0213862-0A patent/BR0213862A/pt not_active Application Discontinuation
- 2002-11-01 EP EP12153315A patent/EP2495671A1/en not_active Withdrawn
- 2002-11-01 CN CN028265092A patent/CN1610906B/zh not_active Expired - Fee Related
- 2002-11-01 IL IL16172302A patent/IL161723A0/xx unknown
- 2002-11-01 MX MXPA04004203A patent/MXPA04004203A/es active IP Right Grant
- 2002-11-01 AU AU2002356884A patent/AU2002356884B2/en not_active Ceased
- 2002-11-01 US US10/285,544 patent/US20030084038A1/en not_active Abandoned
- 2002-11-01 IL IL16172202A patent/IL161722A0/xx unknown
- 2002-11-01 EP EP02786633.4A patent/EP1449062B1/en not_active Expired - Lifetime
- 2002-11-01 NZ NZ532773A patent/NZ532773A/en not_active IP Right Cessation
- 2002-11-01 KR KR1020047006689A patent/KR100941350B1/ko not_active IP Right Cessation
- 2002-11-01 EP EP12153543A patent/EP2503476A1/en not_active Withdrawn
- 2002-11-01 JP JP2003540846A patent/JP4897196B2/ja not_active Expired - Fee Related
- 2002-11-01 WO PCT/US2002/035081 patent/WO2003038653A1/en active IP Right Grant
- 2002-11-01 KR KR1020047006658A patent/KR100977161B1/ko not_active IP Right Cessation
- 2002-11-01 IL IL16171202A patent/IL161712A0/xx active IP Right Grant
- 2002-11-01 WO PCT/US2002/035080 patent/WO2003038683A1/en active IP Right Grant
- 2002-11-01 CA CA2472014A patent/CA2472014C/en not_active Expired - Fee Related
- 2002-11-01 AU AU2002350104A patent/AU2002350104B2/en not_active Expired
- 2002-11-01 EP EP02786632A patent/EP1461723A4/en not_active Ceased
- 2002-11-01 NZ NZ533166A patent/NZ533166A/en not_active IP Right Cessation
- 2002-11-01 EP EP02802516A patent/EP1449049A4/en not_active Withdrawn
- 2002-11-01 AU AU2002356886A patent/AU2002356886A1/en not_active Abandoned
- 2002-11-01 BR BR0213807-7A patent/BR0213807A/pt not_active Application Discontinuation
- 2002-11-01 JP JP2003540847A patent/JP4399552B2/ja not_active Expired - Fee Related
- 2002-11-01 EA EA200400614A patent/EA006223B1/ru not_active IP Right Cessation
- 2002-11-01 EP EP02802514A patent/EP1451728A4/en not_active Ceased
- 2002-11-01 EP EP02802515.3A patent/EP1451714B1/en not_active Expired - Lifetime
- 2002-11-01 AU AU2002356885A patent/AU2002356885B2/en not_active Expired
- 2002-11-01 JP JP2003540792A patent/JP4420324B2/ja not_active Expired - Fee Related
- 2002-11-01 IL IL16172102A patent/IL161721A0/xx unknown
- 2002-11-01 EA EA200400612A patent/EA006045B1/ru not_active IP Right Cessation
- 2002-11-01 CA CA2466107A patent/CA2466107C/en not_active Expired - Fee Related
- 2002-11-01 CN CN028266196A patent/CN1610877B/zh not_active Expired - Fee Related
- 2002-11-01 NZ NZ532772A patent/NZ532772A/en not_active IP Right Cessation
- 2002-11-01 WO PCT/US2002/035083 patent/WO2003038654A1/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 WO PCT/US2002/035082 patent/WO2003038596A1/en active IP Right Grant
- 2002-11-01 US US10/285,547 patent/US7047258B2/en not_active Expired - Lifetime
- 2002-11-01 CA CA2466110A patent/CA2466110C/en not_active Expired - Fee Related
- 2002-11-01 CN CNB028265114A patent/CN100557595C/zh not_active Expired - Fee Related
- 2002-11-01 NZ NZ532771A patent/NZ532771A/en not_active IP Right Cessation
- 2002-11-01 AU AU2002350106A patent/AU2002350106B2/en not_active Expired
- 2002-11-01 MX MXPA04004202A patent/MXPA04004202A/es active IP Right Grant
- 2002-11-01 WO PCT/US2002/035084 patent/WO2003038565A2/en not_active Application Discontinuation
-
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/04267A patent/ZA200404267B/en unknown
- 2004-05-31 ZA ZA2004/04266A patent/ZA200404266B/en unknown
- 2004-06-01 NO NO20042258A patent/NO20042258L/no not_active Application Discontinuation
- 2004-06-01 NO NO20042260A patent/NO331574B1/no not_active IP Right Cessation
- 2004-06-01 NO NO20042261A patent/NO20042261L/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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924098A (en) * | 1997-06-30 | 1999-07-13 | Sun Microsystems, Inc. | Method and apparatus for managing a linked-list data structure |
WO2001011443A2 (en) * | 1999-08-06 | 2001-02-15 | Namezero.Com, Inc. | Internet hosting system |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1610877B (zh) | 高速非并发控制数据库 | |
US20210042282A1 (en) | Providing snapshots of journal tables | |
AU2002350106A1 (en) | High speed non-concurrency controlled database | |
AU2002356884A1 (en) | Transactional memory manager | |
US9922075B2 (en) | Scalable distributed transaction processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100602 Termination date: 20151101 |
|
EXPY | Termination of patent right or utility model |