CN1610906A - 事务处理存储器管理器 - Google Patents
事务处理存储器管理器 Download PDFInfo
- Publication number
- CN1610906A CN1610906A CNA028265092A CN02826509A CN1610906A CN 1610906 A CN1610906 A CN 1610906A CN A028265092 A CNA028265092 A CN A028265092A CN 02826509 A CN02826509 A CN 02826509A CN 1610906 A CN1610906 A CN 1610906A
- Authority
- CN
- China
- Prior art keywords
- search
- new
- database
- pointer
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 38
- 230000004048 modification Effects 0.000 claims description 54
- 238000012986 modification Methods 0.000 claims description 54
- 238000003860 storage Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 description 62
- 238000010586 diagram Methods 0.000 description 33
- 230000000875 corresponding effect Effects 0.000 description 32
- 238000012217 deletion Methods 0.000 description 32
- 230000037430 deletion Effects 0.000 description 32
- 239000012634 fragment Substances 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 12
- 238000011049 filling Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 244000305267 Quercus macrolepis Species 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 244000105624 Arachis hypogaea Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 101100042793 Gallus gallus SMC2 gene Proteins 0.000 description 1
- 240000005373 Panax quinquefolius Species 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 241001138418 Sequoia sempervirens Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- JLQUFIHWVLZVTJ-UHFFFAOYSA-N carbosulfan Chemical compound CCCCN(CCCC)SN(C)C(=O)OC1=CC=CC2=C1OC(C)(C)C2 JLQUFIHWVLZVTJ-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 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
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000004927 fusion Effects 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
- 238000002955 isolation Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/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
Abstract
本发明的实施例提供一种用于大型数据库系统的高速数据库搜索和同时的基于事务处理的更新的方法和系统。具体而言,可以在网络上接收多个搜索查询(910),可以搜索该数据库(930),并可以在网络上发送多个搜索应答(940)(950)。在搜索数据库(930)的同时,可以在网络上接收新信息(960),可以根据新信息创建多个新的数据库元素(970),可以在每个新的数据库元素内设置修改位(975),可以使用单个不可中断操作将至每个新的数据库元素的指针写入数据库(980),并可以清除在每个新的数据库元素内的修改位(985)。
Description
要求优先权/相关申请的交叉参考
此非临时申请要求其全文引用作为参考的于2001年11月1日提交的美国临时专利申请序列号No.60/330,842以及其全文引用作为参考的于2002年3月19日提交的美国临时专利申请序列号No.60/365,169的优先权。
技术领域
本公开申请涉及计算机系统。更具体地说,本公开申请涉及一种用于为大型数据库系统提供高速数据库搜索与同时更新的方法和系统。
背景技术
随着互联网继续其迅速增长,以合理的价格用于根和通用顶级域(generictop level domain)(gTLD)服务器的定标域名服务(scaling domain name service)(DNS)解析变得越来越困难。A根服务器(即a.root-server.net)保存并将互联网名称空间根区域文件分配给在地理上分布在全世界的12个次级根服务器(即,b.root-server.net,c.root-server.net,等等),而相应的gTLD服务器(即,a.gtld-servers.net,b.gtld-servers.net,等等)类似地被分配并支持顶级域(例如,*.com,*.net,*.org,等等)。与查询率的持续增长相关的不断增加的数据量正在迫使全部重新考虑在随后的若干年内对于根和gTLD DNS业务所需要的硬件和软件基础设施。标准“bind(绑定)”软件分配的典型单服务器安装已经不足以满足A根的需要,并很快将甚至不能符合gTLD需要。随着公用交换电话网络(PSTN)和互联网的融合,存在通用、高性能搜索机制在PSTN的SS7信令网络上提供通常与业务控制点(SCP)有关的特性的机会,因为提供跨越PSTN和互联网的新的先进业务,包括先进智能网(AIN)、基于网际协议的语音(VoIP)业务、地理定位业务等等。
附图说明
图1是根据本发明一种实施例的系统方框图;
图2是图示根据本发明一种实施例的消息数据结构的详细方框图;
图3是图示根据本发明一种实施例的消息延迟数据结构构造的详细方框图;
图4是图示根据本发明一种实施例的通用数据库结构的详细方框图;
图5是图示根据本发明一种实施例的通用数据库结构的详细方框图;
图6是图示根据本发明一种实施例的通用数据库结构的详细方框图;
图7是图示根据本发明一种实施例的通用数据库结构的详细方框图;
图8是图示根据本发明一种实施例的通用数据库结构的详细方框图;
图9是图示根据本发明一种实施例的用于搜索和同时更新数据库的方法的顶级流程图;
图10是图示根据本发明一种实施例的用于搜索和同时更新数据库的方法的顶级流程图。
具体实施方式
本发明的实施例提供一种用于大型数据库系统的高速数据库搜索与同时更新的方法和系统。具体而言,可以在网络上接收多个搜索查询,可以搜索数据库,并可以在网络上发送多个搜索应答。在搜索数据库的同时,可以在网络上接收新信息,并可以基于新信息创建多个新的数据库元素(element),并可以将修改位(dirty bit)设置在每个新的数据库元素内。可以使用单个不可中断操作将指向每个新的数据库元素的指针写入数据库,并可以清除每个新的数据库元素内的修改位。
图1是图示根据本发明一种实施例的系统的方框图。通常,系统100可装备(host)一大型存储器驻留数据库,接收搜索请求并在网络上提供搜索响应。例如,系统100可以是对称的多处理(SMP)计算机,例如由纽约的Armonk的国际商业机器公司制造的IBM RS/6000M80或S80、加利福尼亚州的圣克来克的Sun微系统公司制造的Sun EnterpriseTM 10000等等。系统100也可以是多处理器个人计算机,例如加利福尼亚州的Palo Alto的惠普公司制造的CompaqProLiantTM ML530(包括两个英特尔奔腾III866MHz处理器)。系统100还可以包括多处理操作系统,例如IBM AIX4、Sun SolarisTM 8操作环境、Red HatLinux6.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之间(例如监听结构),或者可选择地,至少一个辅助存储器超高速缓存103-1可耦合到总线101(例如后备结构)。系统100可包括耦合到总线101的存储器104,例如随机存取存储器(RAM),等等,用于存储信息和将由多个处理器102-1、……、102-P执行的指令。
存储器104可存储大型数据库,例如用于将互联网域名转换成内部网地址,用于将姓名或电话号码转换成网络地址,用于提供和更新用户简档数据,用于提供和更新用户出现数据、等等。有利地,数据库的大小和每秒转换的数量可以非常大。例如,存储器104可包括至少64GB的RAM,并可以装备有500M(即500×106)记录域名数据库、500M记录用户数据库、450M记录电话号码可移植性数据库、等等。
在示例性的64比特系统结构上,例如包括耦合到至少64比特总线101和64比特存储器104的至少一个64比特大型终端(big-endian)处理器102-1,可使用单个不可中断操作将8字节指针值写入8字节边界上的存储器地址(即可被八整除的存储器地址,或者例如8N)。通常,辅助存储器超高速缓存103-1的存在可简单地延迟写入存储器104的8字节指针。例如,在一种实施例中,辅助存储器超高速缓存103-1可以是在直接写入(write-through)模式中操作的监听超高速缓存,所以单个8字节存储指令可在没有中断的情况下并在仅两个系统时钟周期内将八字节的数据从处理器102-1移动到存储器104。在另一种实施例中,辅助存储器超高速缓存103-1可以是在回写模式中操作的监听超高速缓存,所以8字节指针可以首先被写入到辅助存储器超高速缓存103-1,其随后可以在以后将该8字节指针写入存储器104,例如,当将其中存储有8字节指针的超高速缓存线被写入存储器104时(即,例如,当特定的超高速缓存线或整个辅助存储器超高速缓存被“冲洗”时)。
最后,从处理器102-1的角度来看,一旦将数据锁存到处理器102-1的输出引线上,在一个连续的不中断的传送中将所有八字节的数据写入到存储器104内,这可以由于辅助存储器超高速缓存103-1的作用而被延迟,如果存在的话。从处理器102-2、……、102-P的角度来看,一旦将数据锁存到处理器102-1的输出引线上,则在一个连续的不中断的传送中将所有八字节的数据写入到存储器104内,这通过辅助存储器超高速缓存103-1、……、103-P上的超高速缓存相干协议来实施,这可以延迟到存储器104的写入,如果存在的话。
然而,如果将8字节指针值写入到存储器104内错误对准的位置上,例如跨越8字节边界的存储器地址,则不能使用单个8字节存储指令从存储器102-1传送所有八字节数据。相反,处理器102-1可发出两个单独的并且不同的存储指令。例如,如果存储器地址在8字节边界之前的4字节开始(例如8N-4),则第一存储指令将4个最高有效字节传送给存储器104(例如8N-4),而第二存储指令将4个最低有效字节传送给存储器104(例如8N)。重要地,在这两个单独的存储指令之间,处理器102-1可被中断,或者处理器102-1可放松总线101对另一系统组件(例如处理器102-P等等)的控制。因此,驻留在存储器104内的指针值将是无效的,直到处理器102-1可完成第二存储指令。如果另一个组件开始对这个存储器位置的单个不可中断的存储器读取,则该无效的值将作为可推测有效的值而被返回。
类似地,可使用单个不可中断操作将新的4字节指针值写入可被4整除的存储器地址(例如4N)。注意,在上面讨论的例子中,可使用单个存储指令将4字节指针值写入8N-4存储器位置。当然,如果将4字节指针值写入跨越4字节边界的位置,例如4N-2,则不能使用单个存储指令将所有的四字节数据从处理器102-1传送,并且在存储器104内驻留的指针值在一定的时间周期可能是无效的。
系统100还可以包括耦合到总线101的只读存储器(ROM)106或者其它静态存储设备,用于存储静态信息和用于处理器102-1的指令。诸如磁盘或光盘的存储设备108可耦合到总线101,用于存储信息和指令。系统100还可以包括耦合到总线101的显示器110(例如LCD监视器)和输入设备112(例如键盘、鼠标、跟踪球、等等)。系统100可以包括多个网络接口114-1、……、114-O,其可以发送和接收承载代表各种类型信息的数字数据流的电、电磁或光信号。在一种实施例中,网络接口114-1可耦合到总线101和局域网(LAN)122,而网络接口114-O可耦合到总线101和广域网(WAN)124。多个网络接口114-1、……、114-O可支持各种网络协议,包括诸如吉比特以太网(例如IEEE标准802.3-2002,于2002年出版)、光纤通道(例如ANSI标准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解析(resolution)服务。在DNS解析实施例中,通常可在网络传送和数据查找功能之间划分DNS解析服务。例如,系统100可以是为可在大型数据组上的数据查找而优化的后端查找引擎(LUE),而多个网络计算机120-1、……、120-N可以是为了网络处理和传送而优化的多个前端协议引擎(PE)。LUE可以是功能强大的多处理器服务器,在存储器104内存储整个DNS记录集,以便于高速、高通过量搜索和更新。在一种可选实施例中,DNS解析服务可利用一系列功能强大的多处理器服务器或LUE来提供,每个服务器或LUE在存储器内存储整个DNS记录集的子集,以便于高速、高通过量搜索和更新。
相反地,多个PE可以是普通的低简档的基于PC的机器,运行高效的多任务操作系统(例如Red Hat Linux6.2),最小化在LUE上的网络处理传送负载,以最大化DNS解析的可用资源。PE可以处理有线DNS协议的细微差别,响应无效的DNS查询,并在LAN 122将多个有效的DNS查询复用到LUE。例如,可利用每秒将要处理的DNS查询的数量和特定系统的性能特性来确定用于单个LUE的PE的数量。也可以使用其它的量度来确定合适的映射比和行为。
通常,可支持其它的大容量的基于查询的实施例,例如包括电话号码解析、SS7信令处理、地理位置确定、电话号码到用户映射、用户位置和存在确定等等。
在一种实施例中,中央在线事务处理(OLTP)服务器140-1可耦合到WAN124,并接收来自各个信源的到数据库142-1的添加、修改和删除(即更新业务)。OLTP服务器140-1可在WAN 124上向系统100发送更新,其包括数据库142-1的本地拷贝。OLTP服务器140-1可为了以各种格式和协议处理更新业务而被优化,其中所述协议例如包括超文本传输协议(HyperText Transmission Protocol)(HTTP)、注册记录者协议(Registry Registrar Protocol)(RRP)、可扩展供应协议(Extensible Provisioning Protocol)(EPP)、服务管理系统(ServiceManagement System)/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上向系统100发送更新,其可包括数据库142-1、……、142-S的拷贝和其它动态创建的数据、等等。例如,在地理位置实施例中,OLTP服务器140-1、……、140-S可从多组远程传感器中接收更新业务。在另一种可选实施例中,多个网络计算120-1、……、120-N也可在WAN 124或LAN 122从各个信源接收添加、修改和删除(即更新业务)。在这个实施例中,多个网络计算机120-1、……、120-N可向系统100发送更新以及查询。
在DNS解析实施例中,每个PE(例如多个网络计算机120-1、……、120-N中的每个)可将在广域网(例如WAN 124)上接收到的若干DNS查询消息组合或复用成单个请求超分组,并在局域网(例如LAN 122)上将该请求超分组发送给LUE(例如系统100)。LUE可将若干DNS查询消息应答组合或复用成单个响应超分组,并在局域网上将该响应超分组发送给合适的PE。通常,请求或响应超分组的最大大小可由物理网络层(例如吉比特以太网)的最大传输单元(MTU)来限制。例如,低于100字节和200字节的典型DNS查询和应答消息大小分别允许超过30个查询被复用成单个请求超分组,以及超过15个应答被复用成单个响应超分组。然而,更少数量的查询(例如20个查询)可包括在单个请求超分组中,以避免在响应上的MTU溢出(例如10个应答)。对于较大的MTU大小,可相应地增加被复用的查询和响应的个数。
每个多任务PE可包括入站线程和出站线程以分别管理DNS查询和应答。例如,入站线程可不整理(un-marshal)来自在广域网上接收的输入DNS查询分组的DNS查询组分,并将若干毫秒的查询复用成单个请求超分组。随后,入站线程可在局域网上将该请求超分组发送给LUE。相反地,出站线程可接收来自LUE的响应超分组,解复用在其中包含的应答,并将各个字段整理(marshal)成有效的DNS应答,随后可以在广域网上予以发送。通常,如上而所指出的,也可以支持其它的大容量的基于查询的实施例。
在一种实施例中,请求超分组也可以包括与每个DNS查询有关的状态信息,例如信源地址、协议类型、等等。LUE可在响应超分组内包括状态信息和相关的DNS应答。随后,每个PE可以使用从LUE发送的信息构建并返回有效的DNS应答消息。因此,每个PE可有利地作为无状态机器操作,即可以根据在响应超分组内包含的信息形成有效的DNS应答。通常,LUE可以将响应超分组返回给PE,从所述PE始发输入超分组;然而,其它的变化显然也是可能的。
在一种可选实施例中,每个PE可保存与每个DNS查询有关的状态信息,并包括对请求超分组内的状态信息的参考或手柄(handle)。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、……、232-S和多个消息计数232-1、……、232-S的首部230和具有由PE在预定的时间周期上累计的多个DNS查询236-1、……、236-Q的数据负载235,所述预定时间周期例如是若干毫秒。在一种实施例中,每个DNS查询236-1、……、236-Q可包括状态信息,而在可选实施例中,每个DNS查询236-1、……、236-Q可包括到状态信息的手柄(handle)。
类似地,响应超分组240可以包括具有多个顺序号251-1、……、251-S和多个消息计数252-1、……、252-S的首部250和包含大致对应于请求超分组220内包含的多个DNS查询的多个DNS应答256-1、……、256-R的数据负载255。在一种实施例中,每个DNS应答256-1、……、256-R可包括与相应DNS查询相关的状态信息,而在一种可选实施例中,每个DNS应答256-1、……、256-R可包括到与相应DNS查询相关的状态信息的手柄。偶尔,相应DNS应答的总大小可超过响应超分组240的数据负载255的大小。这种溢出可以限制于例如单个应答,即与请求超分组220内包含的最后一个查询相关的应答。并不发送仅包含单个应答的附加响应超分组240,溢出应答可最好被包括在对应于下一请求超分组的下一个响应超分组240内。有利地,首部250可包括确定溢出条件范围的合适信息。在峰值处理条件下,多个应答可以溢出到下一响应超分组。
例如,在响应超分组240内,首部250可包括至少两个顺序号251-1和251-2以及至少两个消息计数252-1和252-2,组合成两对互补字段。虽然可能存在“S”个顺序号和消息计数对,通常,S是小数目,例如2、3、4、等等。因而,首部250可以包括与消息计数252-1成对的顺序号25 1-1以及与消息计数252-2成对的顺序号251-2,等等。通常,消息计数252-1可以反映在与顺序号251-1相关的数据负载255内包含的应答数量。在一种实施例中,顺序号251-1可以是双字节字段,而消息计数252-1可以是一字节字段。
在更具体的例子中,请求超分组220的数据负载235可以包括七个DNS查询(如图2所示)。在一种实施例中,顺序号231-1可以设置为唯一值(例如1024)和消息计数232-1可以设置为七,而顺序号231-2和消息计数232-2可以设置为零。在另一种实施例中,首部230可以仅包含一个顺序号和一个消息计数,例如分别设置为1024和七的顺序号231-1和消息计数232-1。典型地,请求超分组220可以包括与特定顺序号相关的所有查询。
响应超分组240的数据负载255可以包括七个相应的DNS应答(如图2所示)。在这个例子中,首部250可以包括类似于请求超分组220的信息,即设置为相同唯一值(即1024)的顺序号251-1,设置为七的消息计数252-1,和都设置为零的顺序号252-2与消息计数252-2。然而,在另一个例子中,响应超分组240的数据负载255可以仅包括五个相应的DNS应答,并且可以将消息计数设置为五。与顺序号1024相关的其余两个响应可包括在下一个响应超分组240内。
下一个响应超分组240可以包括不同的顺序号(例如1025)和至少一个DNS查询,以便下一个响应超分组240可以包括与1024顺序号相关的两个先前应答以及与1025顺序号相关的至少一个应答。在这个例子中,下一个响应超分组240的首部250可以包括设置为1024的顺序号251-1、设置为二的消息计数252-1、设置为1025的顺序号251-2和设置为一的消息计数252-2。因而,响应超分组240可以包括与包含在两个不同请求超分组内的三个查询相关的总共三个应答。
图3是图示根据本发明一种实施例的消息延迟数据结构的详细方框图。消息延迟数据结构300可以包括通常与消息200的发送和接收相关的信息。在DNS解析实施例中,消息延迟数据结构300可以包括与请求超分组和响应超分组相关的延迟信息;这个延迟信息可以组织在根据顺序号值进行索引的表格格式内(例如索引301)。例如,消息延迟数据结构300可以包括若干行,行数N等于唯一顺序号的总数,如通常用表格元素310、320和330所表示的。在一个实施例中,超分组首部顺序号在长度上可以是两个字节,并定义从零到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。在一种可选实施例中,初始响应时间标记可以表示何时在PE上接收到包含对此顺序号(即1024)应答的第一响应超分组。在这个实施例中,当接收到附加(即第二和后续)响应超分组时可以更新响应时间标记304。
可根据在消息延迟数据结构300内包含的延迟信息来确定各个重要的延迟量度。例如,简单的用于给定索引301(即顺序号)的请求查询计数303和响应应答计数305之间的交叉核对(cross-checking)可以表示丢失应答的数量。这个不同可以表示由LUE不能说明地丢弃的查询的数量。比较请求时间标记302和响应时间标记304可以表示在当前的消息负载情况下执行特定的PE/LUE组合的情况。当前请求超分组顺序号和当前响应超分组顺序号之间的差值可以与LUE的响应性能相关;例如,差值越大,则性能越慢。响应消息计数306可以表示有多少个响应超分组在用于每个请求超分组,并且在DNS解析业务分析中可能是重要的。当在PE和LUE之间移动的查询和应答的延迟增加时,则PE可以减少由系统处理的DNS查询分组的数量。
通常,LUE可以在输入的复用请求超分组上执行多线程查找,并可以将应答组合到输出的复用响应超分组内。例如,LUE可以为每个有源PE引起一个搜索线程或者处理,并将来自该PE的所有输入请求超分组路由选择到该搜索线程。LUE可以引起一个管理器线程或者处理,以控制PE与搜索线程的相关,以及更新线程或者处理以更新位于存储器104内的数据库。每个搜索线程可以从输入请求超分组中提取搜索查询,执行各个搜索,构造包含搜索应答的输出响应超分组,并将该超分组发送给合适的PE。更新线程可以接收来自OLTP1401-1的对数据库的更新,并将新数据合并到数据库内。在可选实施例中,多个网络计算机120-1、……、120-N可以将更新发送给系统100。这些更新例如可以包括在输入请求超分组消息流内。
因此,利用超分组协议,LUE可以在网络处理上花费它的低于15%的处理器容量,从而显著地提高搜索查询通过量。在一种实施例中,IBM8路M80可以维持每秒180k至220k查询的搜索速率(qps),而IBM24路S80可以维持400k至500k qps。使搜索速率加倍,即分别到500k和1Mqps,简单地需要两倍的硬件,即例如两个LUE及其辅助PE。在另一种实施例中,运行Red HatLinux6.2的双奔腾III 866MHz多处理器个人计算机可维持在100K/秒量级上的更新速率。当然,硬件性能上的提高也提高了与本发明实施例相关的搜索和更新速率,并且当制造商使用更快执行机器替换这些多处理器计算机时,例如,所维持的搜索和更新速率可等量地提高。通常,系统100并不限于客户机或服务器结构,并且本发明的实施例并不限于硬件和/或软件的任何特定组合。
图4是图示根据本发明一种实施例的通用数据库结构的方框图。在这个实施例中,数据库400可包括数据库记录的至少一个表格或组401和至少一个相应的搜索索引402,所述搜索索引具有到数据库记录组401内各个记录的指针(索引、直接字节偏移、等等)。例如,指针405可以参考数据库记录410。
在一种实施例中,数据库400可以包括作为搜索索引的至少一个散列表403,该搜索索引具有到数据库记录表格或组401内的指针(索引、直接字节偏移、等等)。散列函数可以将搜索密钥映射到整数值,此值随后可以用作到散列表403的索引。因为一个以上的搜索密钥可映射到单个整数值,可使用散列链指针的单独链接列表创建散列桶(bucket)。例如,散列表403内的每个表目可包含到散列桶的第一元素的指针,并且该散列桶的每个元素可包含到链接列表内下一元素或数据库记录的散列链指针。有利地,对于参考散列桶内随后元素的那些元素或数据库记录来说,可能仅需要散列链指针。
散列表403可包括到各个数据库记录401的8字节指针阵列。例如,散列表403内的散列指针404可参考数据库记录420作为散列桶内的第一元素。数据库记录420可包含散列链指针424,其可以参考散列桶内的下一元素或数据库记录。数据库记录420还可以包括数据长度421和相关的固定或可变长度数据422。在一种实施例中,可包括表示数据结束422的空字符423。此外,数据库记录420可包括数据指针425,它可以参考在数据库记录组401或不同的数据库记录表格或组(未图示)内的另一个数据库记录,其中可以定位附加的数据。
系统100可以使用各种公知的算法来在这个数据结构内搜索给定的搜索项目或密钥。通常,可以通过在多个处理器102-1、……、102-P中的至少一个处理器上执行的多个搜索处理或线程来搜索数据库400。然而,对数据库400的修改不能完全由一个或多个更新线程来执行,除非禁止搜索线程在添加、修改或删除数据库400内信息所必需的时间周期内访问数据库400。例如,为了修改数据库400内的数据库记录430,可通过更新线程锁定数据库记录组401以防止搜索线程在更新线程正在修改数据库记录430内的信息时访问数据库400。存在多种公知的锁定数据库400以防止搜索访问的机制,包括自旋锁、信号量、互斥(mutex)等等的使用。此外,各个现有的商业数据库提供特定命令来锁定全部或部分数据库400,例如由加利福尼亚州Redwood Shore的Oracle公司制造的Oracle 8数据库等内的锁定表格命令。
图5是图示根据本发明另一种实施例的通用数据库结构的方框图。在这个实施例中,数据库500可以包括高度优化的只读主快照文件(master snapshotfile)510和不断完善的后备文件520。主快照文件510可包括数据库记录511的至少一个表格或组和至少一个相应的搜索索引512,具有指向数据库记录组511内的各个记录的指针(索引、直接字节偏移等等)。可选择地,主快照文件510可以包括作为搜索索引的至少一个散列表513,所述搜索索引具有指向数据库记录表格或组511内的指针(索引、直接字节偏移、等等)。类似地,后备文件520可以包括至少两个数据库记录表格或组,包括数据库添加记录521和数据库删除记录531。相应的搜索索引522和532可以提供有指向数据库添加记录521和数据库删除记录531内的各个记录的指针(索引、直接字节偏移、等等)。可选择地,后备表520可以包括作为搜索索引的散列表523和533,具有分别指向数据库添加记录521和数据库删除记录531内的指针(索引、直接字节偏移、等等)。
系统100可使用各种公知的算法来在这个数据结构中搜索给定搜索项或密钥。在典型的例子中,后备文件520可包括所有的对数据的最新改变,并可以在只读主快照文件510之前被搜索。如果在后备文件520内找到搜索密钥,则在不访问快照文件510的情况下返回响应,但是如果未发现密钥,则可以搜索快照文件510。然而,当后备文件520在存储器104内不再适合快照文件510时,则搜索查询速率以10至50或者更大因数显著地降低。因此,为了避免或最小化搜索查询速率中的任何降低,通过合并在后备文件520内包含的所有添加、删除和修改,可定期地更新或重新创建快照文件510。
快照文件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、等等,为了简明未图示)。类似地,后备文件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。散列表612可包括到各个域名记录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以及名称服务器网络地址647,该地址例如可以是网际协议(IP)网络地址。通常,名称服务器网络地址可以以ASCII(美国信息交换标准码,例如ISO-14962-1997,ANSI-X3.4-1997,等等)或二进制格式进行存储;在这个例子中,名称服务器网络地址长度646表示以二进制格式(即四字节)存储名称服务器网络地址647。链指针644的大小也可以被优化,以反映所需要的名称服务器数据块大小,例如四个字节。
通常,诸如散列表和可变长度数据记录的两个搜索索引可以被构建,以便将8字节指针定位在存储器内的8字节边界上。例如,散列表612可以包含指向域名记录611的8字节指针连续阵列,并可以存储在可被八整除的存储器地址上(即8字节边界或8N)。类似地,诸如散列表和可变长度数据记录的两个搜索索引可以被构建,以便将4字节指针定位在存储器内的4字节边界上。例如,散列表632可以包含指向名称服务器记录631的4字节指针连续阵列,并可以存储在可被四整除的存储器地址上(即4字节边界或4N)。因此,对数据库600的修改可以通过使用单个不可中断操作更新指向存储器内的对准地址的指针来结束,包括例如将新指针写入搜索索引,例如散列表,或者将新散列链指针写入可变长度数据记录。
图7是图示根据本发明一种实施例的通用数据库结构的详细方框图。通常,数据库700也可以组织成单个的可搜索的数据表示。数据集更新可连续地被并入数据库700内,并可以在相关数据库记录上物理地执行删除或修改以释放存储器104内的空间,例如用于随后的添加或修改。单个可搜索的表示极限地定标到大的数据集大小以及高的搜索与更新速率,并避免了定期地在多个搜索引擎计算机之间重新创建、传播和重新装载快照文件的需要。
可以使用多种不同的物理数据结构组织方式。一种示例性的组织方式可以使用到散列表的可选搜索索引,用于排列的顺序访问数据记录,例如三进制搜索树(特里结构(trie))或者TST,其组合二进制搜索树和数字搜索特里结构的特点。在基于文本的应用中,例如whois,域名解析使用DNS安全扩展(互联网工程任务组征求意见:2535)等等,TST有利地最小化需要执行的比较操作的数量,尤其在搜索丢失的情况下,并可以产生超越使用散列的搜索引擎实施方法的搜索性能量度。此外,TST还可以提供先进的文本搜索特征,例如通配符搜索,这在例如whois、域名解析和互联网内容搜索等等的文本搜索应用中可能是有用的。
在一种实施例中,TST可以包含以分级关系链接在一起的一系列节点。根节点可定位在树的顶部,相关的子节点和链路可构成旁支,并且叶节点可以结束每个旁支的末尾。每个叶节点可以与特定的搜索密钥相关,在到叶节点的路径上的每个节点可以包含该密钥的单个顺序元素。该树中的每个节点包含比较字符或分割值(split value)以及到该树中其它的相连或“子”节点的3个指针。这些指针参考其分割值小于、等于或大于该节点分割值的子节点。因此,在TST内搜索特定密钥涉及从根节点到最终的叶节点遍历该树,顺序地比较该密钥的每个元素或字符位置与沿着该路径的节点的分割值。此外,叶节点还可以包含到密钥记录的指针,其又包含到终端数据记录的至少一个指针,所述终端数据记录包含与该密钥相关的记录数据(例如IP地址)。可选择地,密钥记录可以包含整个记录数据。可以以二进制格式、ASCII文本格式等等来存储记录数据。
在一种实施例中,数据库700可以组织为TST,包括多个固定长度的搜索节点701、多个可变长度的密钥数据记录702和多个可变长度的终端数据记录703。搜索节点701可以包括上面描述的各种类型的信息,包括例如比较字符(或值)和位置、旁支节点指针和密钥指针。节点指针的大小通常可以通过节点数量来确定,而密钥指针的大小通常可以通过可变长度密钥数据集的大小来确定。密钥数据记录702可以包含密钥信息以及终端数据信息,例如包括到终端数据记录的指针或嵌入记录数据,而终端数据记录703可以包含记录数据。
在一种实施例中,每个固定长度搜索节点的长度可以是24字节。搜索节点710例如可以包含八比特比较字符(或字节值)711、12比特字符(或字节)位置712和12比特节点类型/状态(为了简明未图示);这些数据可以编码在节点的前四个字节内。比较字符711可以被编码在节点的第一字节内,如图7所示,或者可选择地,字符位置712可以被编码在节点的前十二个比特,以便使用简单的移位操作来优化对字符位置712的访问。每个搜索节点的后12字节可以包含三个32比特指针,即指针713、指针714和指针715,分别代表“小于”、“等于”和“大于”支路节点指针。这些指针可包含计数器或节点索引,而不是字节偏移或存储器地址。对于固定长度的搜索节点来说,可以根据计数器或索引值以及固定长度例如计数器*长度来计算字节偏移。最后的四个字节包含40比特密钥指针716,它可以是表示相应密钥数据记录并不存在的空值(图示)或者到现有相应密钥数据记录的指针(未图示)以及其它数据,例如包括12比特密钥长度和12比特指针类型/状态字段。密钥指针716可以包含到适当密钥数据记录的字节偏移,而密钥长度可用于在消除TST内的单向分支时优化搜索和插入。指针类型/状态字段可包含在有效性检查内使用的信息和在存储器管理中使用的分配数据。
在一种实施例中,密钥数据记录750例如可以包括可变长度密钥753和至少一个终端数据指针。如图7所示,密钥数据记录750包括两个终端数据指针:终端数据指针757和终端数据指针758。密钥数据记录750可以前缀有12比特密钥长度751和12比特终端指针计数/状态752,并可以包括填充(为了简明未图示),以便在存储器104内的8字节边界上对准终端数据指针757和终端数据指针758。终端数据指针757和终端数据指针758可以均包括各种数据,例如终端数据类型、长度、状态或者在二进制记录搜索内有用的数据。终端数据指针757和终端数据指针758可以通过用于更快地检索特定资源记录(例如终端数据记录760和终端数据记录770)的终端数据类型来存储。在另一种实施例中,密钥数据记录740可以包括嵌入的终端数据746,而不是或者还包含终端数据记录指针。例如,密钥数据记录740可以包含密钥长度741、终端指针计数742、可变长度密钥743、嵌入记录元素的个数744、随后是记录元素长度745(例如以字节为单位)和嵌入的用于这些嵌入记录元素744之中每个的记录数据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可以包含到密钥数据记录740的8字节(或更少)指针,并可以存储在可被八整除的存储器地址上(即8字节边界或8N)。类似地,诸如TST和数据记录的两个搜索索引可以被构建,以便4字节指针定位在存储器内的4字节边界上。例如,节点支路指针724可以包含到节点730的4字节(或更少)指针,并可以存储在可被四整除的存储器地址上(即4字节边界或4N)。因此,对数据库700的修改可以通过使用单个不可中断的操作来更新指向存储器内对准地址的指针来结束,包括例如将新指针写入搜索索引,例如TST节点,或者将新指针写入数据记录。
图8是图示根据本发明一种实施例的通用数据库结构的详细方框图。如上所述,数据库800还可以组织成单个可搜索的数据表示。数据集更新可以被连续地并入数据库800,并可以对相关数据库物理地执行删除或修改以释放存储器104内的空间,例如用于随后的添加或修改。单个可搜索的表示也极限地定标到大的数据集大小和高的搜索与更新速率,并避免了在多个搜索引擎计算机之中定期重新创建、传播和重新装载快照文件的需要。
其它的搜索索引结构对于访问记录数据也是可能的。在一种实施例中,数据库800可以使用一种可选的排序搜索索引,组织成排序访问密钥树(即“OAK树”)。数据库800可以包括例如多个可变长度搜索节点801、多个可变长度密钥记录802和多个可变长度终端数据记录803。搜索节点801可以包括上面描述的各种类型的信息,例如搜索密钥、到其它搜索节点的指针和到密钥记录的指针、等等。在一种实施例中,多个搜索节点801可以包括包含搜索密钥片段(fragment)(例如字符串)的垂直和水平节点以及到其它搜索节点或密钥记录的指针。垂直节点可以包括例如至少一个搜索密钥或字符、到多个搜索节点801内的水平节点的指针、到多个密钥记录802内的密钥记录的指针等等。水平节点可以包括例如至少两个搜索密钥或字符、到多个搜索节点801内的垂直节点的指针、到多个搜索节点801内的水平节点的指针、到多个密钥记录802内的密钥记录的指针等等。通常,垂直节点可以包括代表搜索密钥片段(例如字符串)的密钥序列(例如字符),而水平节点可以包括各种密钥(例如字符),它们可以存在于搜索密钥片段(例如字符串)内的特定位置上。
在一种实施例中,多个搜索节点801可以包括垂直节点810、垂直节点820和水平节点830。垂直节点810例如可以包括2比特节点类型811(例如“10”)、38比特地址812、8比特长度813(例如“8”)、8比特第一字符814(例如“1”)和8比特第二字符815(例如“null(空)”)。在这个例子中,地址812可以指向搜索树中的下一节点即垂直节点820。在一种实施例中,38比特地址812可以包括1比特终端/节点标志和参考存储器104的1T字节(1012字节)地址空间内的8字节字之一的37比特偏移地址。因此,垂直节点810的长度可以是8字节(64比特),并有利地,可以定位在存储器104内的8字节字边界上。通常,多个搜索节点801内的每个垂直节点可以定位在存储器104内的8字节字边界上。
垂直节点可以包括多字符搜索密钥片段(例如字符串)。通常,可以将没有相关密钥数据记录的搜索密钥压缩成单个的垂直节点,以有效地降低在多个搜索节点801内需要的垂直节点的数量。在一种实施例中,垂直节点810可以包括用于搜索密钥片段内两个字符以上的每个附加字符的八个比特,例如8比特字符816-1、816-2、……、816-N(如剖视图所示)。有利地,根据在串片段内包含的附加字符数量,可以将垂直节点810填充到存储器104内的64比特边界。例如,如果在垂直节点810内将包括九个字符,则可以将字符一和二分别分配给第一字符814和第二字符815,并且可以将对应于字符三至九的附加字符信息的56个比特添加给垂直节点810。可以包括填充的附加八个比特以对准在8字节字边界上的附加字符信息。
类似地,垂直节点820可以包括例如2比特节点类型821(例如“10”)、38比特地址822、8比特长度823(例如“8”)、8比特第一字符824(例如“a”)和8比特第二字符825(例如“空”)。在这个例子中,地址822可以指向搜索树内的下一个节点,即水平节点830。因此,垂直节点820的长度可以是八个字节,并且有利地,可以定位在存储器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可以包括代表由垂直节点810和820定义的搜索密钥片段“law”的单个字符“w”和水平节点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”之间的包括“a”到“z”的字符之一。在这个例子中,附加的38比特地址将被添加给水平节点830的末尾,对应于在位图836中表示的每个字符。可以填充这些38比特地址中的每个地址以及位图836,以对准在存储器104内8字节字边界上的每个数量值。在一种实施例中,八比特ASCII字符集可以被用作搜索密钥空间,以便位图836的长度可以是256比特(即28比特或32字节)。在图8所图示的例子中,由于特殊参考字符“·”和“2”的地址计数833,位图836的长度可以是两个比特,并可以在对应于最后一个字符835的每个比特位置中包括“1”。
在一种实施例中,并且如参考密钥数据记录750(图7)讨论的,密钥数据记录850可以包括例如可变长度密钥853和至少一个终端数据指针。如图8所示,密钥数据记录850包括两个终端数据指针,即终端数据指针857和终端数据指针858。密钥数据记录850可以前缀有12比特密钥长度851和12比特终端指针计数/状态852,并可以包括填充(为了简明未图示),以便在存储器104内的8字节边界上对准终端数据指针857和终端数据指针858。终端数据指针857和终端数据指针858可以均包含10比特终端数据类型和其它数据,例如长度、状态或者在二进制记录搜索中有用的数据。终端数据指针857和终端数据指针858可以通过终端数据类型来排序,以便更快地检索特定资源记录(例如终端数据记录860和终端数据记录870)。
在一种实施例中,并且如上面参考密钥数据记录740(图7)所讨论的,密钥数据记录840可以包括嵌入终端数据846,而不是终端数据记录指针。例如,密钥数据记录840可以包括密钥长度841、终端指针计数842、可变长度密钥843、嵌入记录元素的数量844、继之以记录元素长度845(例如以字节为单位)和用于每个嵌入记录元素数量844的嵌入记录数据846(例如字符串、字节序列、等等)。
在另一种实施例中,并且如参考终端数据记录760(图7)所讨论,终端数据记录860例如可以包括12比特长度861、4比特状态和可变长度串862(例如IP地址)。可选择地,可变长度串862可以是字节序列。终端数据记录860可以包括填充(为了简明未图示)以对准每个终端数据记录与存储器104内的8字节边界。可选择地,终端数据记录860可以包括到4字节边界的填充(为了简明未图示),或者终端数据记录860可以不包括任何填充。存储器管理算法通常可以确定终端数据记录760是填充到8字节、4字节还是填充到0字节边界。类似地,终端数据记录870可以包括12比特长度871、4比特状态和可变长度串872(例如IP地址)。
通常,诸如OAK树和数据记录的两个搜索索引可以被构建,以便8字节指针定位在存储器内的8字节边界上。例如,垂直节点810可以包含到垂直节点820的8字节(或更少)的指针,并可以存储在可被八整除的存储器地址上(即8字节边界或8N)。类似地,诸如OAK树和数据记录的两个搜索索引可以被构建,以便将4字节指针定位在存储器内的4字节边界上。因此,对数据库800的修改可以结束于使用单个不可中断操作将指针更新成存储器内的对准地址,例如包括将新指针写入搜索索引,例如OAK树节点,或者将新指针写入数据记录。
上面参考图8讨论的各种实施例具有许多优点。例如,OAK树数据结构的空间非常有效,并且是8比特清洁(clean)的。可以使用常规的表达搜索来搜索包含多字符串片段的垂直节点,因为8比特第一字符(例如第一字符814)、8比特第二字符(例如第二字符8-15)和任一附加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接收到的每个对话请求而生成搜索线程。例如,管理器线程可以轮询与一个或多个网络接口114-1、……、114-O相关的一个或多个控制端口有关从多个网络计算机120-1、……、120-N发送的对话请求。一旦接收到来自特定网络计算机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或可选择地在WAN 124上将多个搜索查询发送给系统100。多个搜索查询例如可以包含搜索项目或密钥以及可以与每个查询相关的状态信息(例如查询源地址、协议类型、等等)。状态信息可以明确地由系统100维持,或者可选择地,可以提供状态信息手柄。在优选实施例,多个网络计算机120-1、……、120-N中的每个计算机可以将预定数量的搜索查询复用成用于传送给系统100的单个网络分组(例如图2中图示的请求超分组220)。
在一种可选实施例中,可以在网络上同时接收多个搜索查询和新信息(910,960)。例如,多个网络计算机120-1、……、120-N可以在LAN 122或可选择地在WAN 124上将多个搜索查询和新信息发送给系统100。多个搜索查询例如可以包含搜索项目或密钥以及可以与每个查询相关的状态信息(例如查询源地址、协议类型、等等)。新信息可以包括例如对数据库的添加、修改或删除,并可以组合在一起作为带有相关标识符的事务处理。例如,在一种实施例中,多个网络计算机120-1、……、120-N中的每个计算机可以将预定数量的搜索查询和新信息复用成用于传送给系统100的单个网络分组,例如单个请求超分组220(为了简明未图示出新信息)。对于取决于事务处理内的新信息的那些查询来说,与那些查询有关的状态信息可以包括事务处理标识符,和典型地,可以由系统100来维护。当更新线程将事务处理应用于数据库(即,例如正在进行事务处理)时,取决于事务处理的搜索查询将暂停,直至更新线程成功地完成并提交事务处理。
每个搜索查询可以被分配给搜索线程之一用于处理(920)。在一种实施例中,每个搜索线程可以与多个网络计算机120-1、……、120-N之一相关,并可以将从特定网络计算机接收到的所有搜索查询分配给搜索线程(920)。换句话说,一个搜索线程可以处理从单个网络计算机(例如单个PE)抵达的所有搜索查询。在一种实施例中,每个搜索线程可以从单个复用的网络分组(例如如图2所示的请求超分组220)中提取各个搜索查询,或者可选择地,可以由不同的处理或线程来执行该提取。
在另一种实施例中,可以将从多个网络计算机120-1、……、120-N中的每个计算机接收到的搜索查询分配给不同的搜索线程(920)。在这个实施例中,多线程分配可以基于最佳分布函数,此函数可以合并包括例如处理器负载的各个系统参数。当然,根据各个系统参数,包括处理器可用性、系统组件性能等,搜索查询到搜索线程的分配可以随着时间而改变。可以使用各种机制来将搜索查询传送给系统100内所分配的搜索线程,例如共享存储器、处理间消息、令牌、信号量、等等。
每个搜索线程可以根据所分配的搜索查询搜索数据库(930)。在一种实施例中,每个搜索线程可以从单个复用的网络分组(例如如图2所示的请求超分组220)提取各个搜索查询,或者可选择地,可以通过不同的处理或线程执行该提取。显然,搜索数据库可以取决于数据库的基础结构。在一种实施例中,搜索数据库可以取决于在特定事务处理内包含的用于取决于该事务处理的那些搜索查询的修改。
参见图4所示的数据库实施例,可以在数据库400中搜索搜索密钥(930)。随后,可以确定对应于搜索密钥的数据记录(例如数据库记录420)。参见图5所示的数据库实施例,可以首先在后备文件520中搜索搜索密钥(930),并且如果未确定匹配,则可以搜索快照文件510(930)。随后,可以确定对应于搜索密钥的数据记录。
参见图6所示的数据库实施例,可以首先在域名数据610中搜索搜索密钥(930),并随后可以确定在名称服务器数据630内对应于搜索密钥的源数据。例如,对于“la.com”搜索密钥,可以确定与域名数据610内的域名记录620的匹配。可以提取合适的信息,包括例如名称服务器指针626。随后,可以使用名称服务器指针626来索引合适的名称服务器记录640,并可以提取名称服务器网络地址647。
参见图7所示的数据库实施例,可以在TST中搜索搜索密钥(930),从中可以确定源数据。例如,对于“law.com”搜索密钥,可以搜索搜索节点701(930),并确定与节点730的匹配。可以提取密钥指针736,从中可以确定密钥数据记录750。随后可以识别终端数据指针752的数量,并可以提取每个终端数据指针。例如,终端数据指针757可以参考终端数据记录760,而终端数据指针758可以参考终端数据记录770。随后,可以分别使用长度761和771从每个终端数据记录中提取可变长度源数据例如名称服务器网络地址762和名称服务器网络地址772。
参见图8所示的数据库实施例,可以在OAK树中搜索搜索密钥(930),据此可以确定源数据。例如,对于“law.com”搜索密钥,可以搜索搜索节点801(930),并确定与节点830的匹配。可以提取第二地址837,据此可以确定密钥数据记录850。随后可以识别终端数据指针的数量852,并可以提取每个终端数据指针。例如,终端数据指针857可以参考终端数据记录860,并且终端数据指针858可以参考终端数据记录870。随后,可以分别使用长度861和871从每个终端数据记录中提取可变长度源数据例如名称服务器网络地址862和名称服务器网络地址872。
每个搜索线程可以创建(940)对应于所分配的搜索查询的多个搜索应答。如果对于特定搜索密钥未找到匹配,则应答可以包括合适的指示,例如空字符。参见图6至图8,例如,搜索密钥可以是“law.com”,并且相应的源数据可以是“180.1.1.1”。一个以上的名称服务器网络地址可以与搜索密钥相关,在这种情况下,可以确定一个以上的名称服务器网络地址。
可以在网络上发送这些应答(950)。在一种实施例中,每个搜索线程可以将合适的应答复用到单个网络分组(例如响应超分组240),所述网络分组对应于包含原始查询的单个网络分组(例如请求超分组220)。可选择地,不同的处理或线程可以将合适的应答复用在单个网络分组内。随后,可以通过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接收更新。如上面所讨论的,在一种实施例中,多个网络计算机120-1、……、120-N可以在LAN 122上或者可选择地在WAN 124上将多个搜索查询和新信息发送给系统100。因此,在这个实施例中,可以在网络上同时接收多个搜索查询和新信息(910,960)。
在DNS解析实施例中,例如,新信息可以包括新域名数据、新名称服务器数据、用于现有域名的新名称服务器、等等。可选择地,新信息可以表示:域名记录和名称服务器记录等可以从数据库中删除。通常,在合适的时候,可以添加、修改或删除在数据库内包含的任何信息。在一种实施例中,可以将对数据库的若干修改组合在一起作为事务处理,并作为一致的修改集合应用于数据库。
例如,事务处理可以包括数据记录添加、修改或删除的各种组合。因为不限制对数据库的搜索访问,所以可以在每个数据库记录中提供指示符字段(例如“修改位(dirty bit)”),以便向搜索线程通知何时为特定数据库记录设置修改位、与事务处理相关的数据库修改正在进行中和需要该特定数据库记录的随后的查询重试。一旦已经应用事务处理并完成修改,则可以对于受该事务处理影响的所有新数据库元素清除这些修改位。在某种意义上,可以认为新信息被“提交”。因而,数据库可以从一种有效状态转换到另一种有效状态而不限制对数据库的搜索访问。
有利地,不需要操作系统或数据库表格锁来防止搜索查询在这些更新周期内访问数据库。导致轻微的性能恶化,因为在确定将为任何特定数据库记录设置修改位时可能需要重复搜索查询。修改位可以定位在数据库记录的最高有效字内,所以只要例如将该字从存储器104传送给处理器102-1,则可以检查该比特。因而,如果确定要设置修改位,则可以避免与数据库记录的其余部分相关的其它存储器传输。对于参见图1讨论的示例性系统实施例来说,查询重试周期可以在纳秒的量级上。典型地,可以在查询重试再次访问特定数据库记录之前清除修改位。
可选择地,或者当在正在进行事务处理的过程中设置修改位时,可以根据重新执行工作记录(redo log)或工作记录管理器的内容重新构建时间点一致的查询结果,例如,如在事务处理数据库系统内通常的做法。对于由于并非正在进行的事务处理一部分的单个进行中修改而可能遇到修改位的搜索查询来说,重复查询通常可能导致比从工作记录管理器重新构建查询结果更低的性能二话。当修改位是由于带有在扩展时间周期上接收到的修改扩展集的正在进行事务处理而引起时,可能最好从工作记录管理器重新构建查询结果,以便可以不过度延迟查询结果。
当单个事务处理内的数据库记录修改的数量通常是不受限制的时候,通常,事务处理包括足够的信息来维持数据库的可分性、一致性、隔离性和持久性。可以为图4和图6至图8中图示的每个数据库实施例预见多种不同的事务处理。参见图4,例如,事务处理可以包括修改数据库记录410和420、修改数据库记录420和添加新数据库记录(例如数据库记录430)、修改数据库记录420和删除数据库记录(例如数据库记录410)、等等。参见图6,例如事务处理可以包括修改域名记录620和名称服务器记录640、删除域名记录620和添加域名记录615、等等。参见图7,例如,事务处理可以包括修改密钥数据记录750和终端数据记录760,并删除终端数据记录770、添加密钥数据记录780和删除密钥数据记录740、等等。类似地,参见图8,例如,事务处理可以包括修改密钥数据记录850和终端数据记录860并删除终端数据记录870、添加密钥数据记录880和删除密钥数据记录840、等等。
更新线程可以根据新信息创建多个新元素(970)。典型地,通过根据现有元素创建新元素并随后修改新元素以包括新信息,可以合并对数据库的现有元素内包括的信息的修改。在这个处理过程期间,新元素对于当前在系统100上执行的搜索线程或处理来说是不可见的,直至已经将指向新元素的指针写入数据库。通常,可以以类似的方式完成对数据库的添加,而不需要使用在现有元素内包含的信息。在一种实施例中,可以通过向数据库中添加新的明确的“删除”元素来完成从数据库中删除现有的元素。在另一种实施例中,可以通过利用合适指示符(例如空指针等)改写到现有元素的指针来实现从数据库中删除现有元素。在这个实施例中,更新线程并不在包含新信息的数据库中创建新元素。
参见图4,例如,可以从与数据库记录401相关的存储库(pool)中分配用于新数据记录(例如数据记录430)的存储空间。可以将新信息拷贝到数据记录430的数据432,并且可以计算其它信息,并添加给数据记录430,例如链指针434、数据指针435、等等。修改位408也可以包括在新数据记录430内。参见图6至图8所示的数据库实施例,例如,新信息可以包括将要添加给数据库的新域名和/或域名服务器。
参见图6,例如,可以从与域名记录611相关的存储库或者可选择地从与域名数据610相关的通用存储库中分配用于新域名记录615的存储空间。新域名可以被标准化并被拷贝到新域名记录615,到现有名称服务器的指针(例如名称服务器记录655)可以被确定并被拷贝到新域名记录615。修改位618可以包括在新域名记录615内。可计算其它信息并添加到新域名记录615,例如名称服务器的数量、链指针、等等。在更复杂的例子中,新信息可以包含带有相应资源数据的新搜索密钥。
参见图7,在更复杂的例子中,可以创建新搜索节点705以及新密钥数据记录780。在这个例子中,新搜索节点705可以包括第一位置内的比较字符(“m”),它大于现有搜索节点710的第一位置内的比较字符(“1”)。因此,可以在与搜索节点710相同的“级别”(即第一字符位置)上将搜索节点705插入TST中。在将搜索节点705提交给数据库之前,搜索节点710的4字节“大于”指针715可以包含“空”指针。搜索节点705还可以包括4字节密钥指针706,它可以包含指向新密钥数据记录780的40比特指针。密钥数据记录780可以包括密钥长度781(例如“5”)和类型782(例如表示嵌入的源数据)、可变长度密钥783(例如“m.com”)、嵌入源的数量784(例如“1”)、源长度785(例如“9”)、可变长度源串786或字节序列(例如“180.1.1.1”)和修改位707。可以从与TST节点701相关的存储库分配用于搜索节点705的存储空间,而从与多个密钥数据记录702相关的存储库中分配用于密钥数据记录770的存储空间。
参见图8,例如,可以创建新搜索节点890以及新密钥数据记录880。在这个例子中,新搜索节点890可以是水平节点,包括例如两比特节点类型891(例如“01”)、38比特第一地址892、八比特地址计数893(例如2)、八比特第一字符894(“例如“1”)、八比特最后字符895(例如“m”)、可变长度位图896和38比特第二地址897。第一地址892可以指向垂直节点820,即在“1<...>”搜索串路径内的下一垂直节点,而第二地址897可以指向与搜索密钥片段“m”相关的密钥数据记录880。密钥数据记录880可以包括密钥长度881(例如“5”)和类型882(例如表示嵌入的源数据)、可变长度密钥883(例如“m.com”)、嵌入源数量884(例如“1”)、源长度885(例如“9”)、可变长度源串886或字节序列(例如“180.1.1.1”)和修改位807。可以从与多个搜索节点801相关的存储库分配用于搜索节点890的存储空间,而从与多个密钥数据记录702相关的存储库中分配用于密钥数据记录880的存储空间。
新信息还可以包括对数据库内现有记录的若干修改。参见图4,新信息可以包括对数据记录410的修改。在这个例子中,可以创建新数据记录420,并向其拷贝来自数据记录410的信息。如上所述,可以从与数据库记录401相关的存储库中分配用于数据记录420的存储空间。随后,可以将这些修改应用于数据422。数据记录410和420还可以分别包括修改位406和407。
参见图6,新信息可以包括对名称服务器记录640的修改,例如新IP地址(例如“180.2.1.2”)。在这个例子中,可以创建新名称服务器记录660,并向其拷贝来自旧名称服务器记录640的信息。如上所述,可以从与名称服务器记录631相关的存储库中分配用于名称服务器记录660的存储空间,或者可选择地,从与名称服务器数据630相关的通用存储库中分配存储空间。随后,可以将新名称服务器IP地址拷贝到名称服务器记录660即例如名称服务器IP地址667中的合适字段。修改位668可以包括在新的名称服务器记录660内。类似的对参考图7和图8描述的数据库实施例内各种元素的修改也被预料。
新信息还可以包括删除数据库内的至少一个现有元素。在一种实施例中,可以不创建新的元素,但是可以由更新线程设置将要删除的元素的修改位。在另一种实施例中,可以创建新的明确的“删除”元素,带有设置的修改位,表示已经从数据库中删除先前的元素。参见图4,例如,新信息可以包括删除数据记录410,其可以包括修改位407。参见图6,例如,新信息可以包括删除域名记录670,其可以包括修改位678。类似的对上面参考图7和图8描述的数据库实施例内的各种元素的删除也被预料。
更新线程可以设置(975)多个新元素中每个元素内的修改位。如上面所指出的,修改位可以向搜索线程通知特定数据库记录与当前事务处理相关,以及应当执行随后的数据库的查询重试。因而,可以识别出受事务处理影响的每个数据库记录。参见图4和图6至图8,例如,更新线程可以设置受事务处理影响的每个数据库记录内的修改位。分别地,可以为新数据记录430将修改位408设置为“1”,并且可以为已修改的数据记录410和420将修改位407和406设置为“1”。分别地,可以为新域名记录615将修改位618设置为“1”,并且可以为已修改的名称服务器记录640和660将修改位606和668设置为“1”。分别地,可以为新的密钥数据记录780和880将修改位707和807设置为“1”。
为了清楚起见,通过流程图连接符号“A”将在图9中图示的顶级流程图扩展到图10。参见图10,对于将要删除的数据库记录,更新线程也可以设置(1075)合适数据库记录内的修改位。例如,可以为删除的数据记录410将修改位407设置为“1”,并且可以为删除的域名记录670将修改位678设置为“1”。可以将数据记录420和430、域名记录615、名称服务器记录660和密钥数据记录780与880视为数据库内的“新”元素,而将已修改的数据记录410、已修改的名称服务器记录640、已删除的数据记录410和已删除的域名记录670视为数据库内的“旧”元素。在这些例子中,将数据记录410用作“已修改”数据记录和用作“已删除”数据记录。
更新线程可以使用单个不可中断操作将指针写入(980)数据库。通常,通过将指向新元素的指针写入数据库内的合适位置,可以将新元素提交给数据库,(即变成对于搜索线程或处理来说是立即可见的)。如上面所讨论的,这个合适的位置可以在存储器内被对准,以便单个操作包括合适长度的单个存储指令。即使在指针写入之后新元素对于搜索线程可以是可见的,“设置”修改位向搜索线程通知:每个新数据库元素可以是当前事务处理的一部分,并且根据重新执行工作记录的随后的查询重试或重新构建可以是必需的。对于包含多个索引的数据库实施例来说,对于一个索引可能包含指向“旧”元素的指针,而另一个索引包含指向“新”元素的指针。因此,在DNS解析实施例中,例如,带有相同域名或原始密钥的两个域名记录可以同时存在于搜索空间内,但是在事务处理过程期间仅涉及用于唯一索引的那个记录。
参见图4,可以将对应于新数据记录430的8字节指针写入散列表403。参见图6,可以将对应于新域名记录615的8字节指针写入散列表612。重要的是,这些散列表表目可以在存储器104内的8字节边界上被对准,以确保使用单个8字节存储指令来更新这个值。参见图7,可以将对应于新搜索节点705的4字节指针写入搜索节点710内的4字节“大于”节点指针715。重要的是,节点指针715可以在存储器104内的4字节边界上被对准,以确保可以使用单个4字节存储指令来更新这个值。参见图8,多个搜索节点801也可以包括树顶(top-of-tree)地址899,它可以在存储器104内的8字节字边界上被对准,并可以参考多个搜索节点801(即例如垂直节点810)内的第一节点。可以使用单个存储指令将对应于新搜索节点890的8字节指针写入树顶地址899。在这每一个实施例中,恰好在存储指令之前,新数据对于搜索线程是不可见的,而恰好在存储指令之后,新数据对于搜索线程是可见的。因而,使用单个不可中断的操作,可以在不使用操作系统或数据库表格锁的情况下将新数据提交给数据库。
参见图10,对于将要从数据库删除的数据库记录来说,在一种实施例中,可以使用单个不可中断的操作利用空指针写入指向现有记录的一个或多个指针。空指针可以解除参考(de-reference)现有记录,并表示已经从数据库中删除现有记录。参见图4,例如,通过使用8字节空指针改写散列表403内的合适表目,可以从数据库400中删除数据记录410。参见图6,例如,通过使用8字节空指针改写散列表612内的合适表目,可以从数据库600中删除域名记录670。在可选实施例中,可以将对应于“已删除”域名记录670的指向新的“明确”删除记录的8字节指针写入散列表613。在这个实施例中,可以类似地完成对数据的修改、添加和删除。
更新线程可以清除(985)多个新元素之中每个元素内的修改位。在一种实施例中,可以通过将修改位设置为“0”,从每个新元素中清除修改位。例如,并且如参考图4和图6至图8所讨论的,修改位406和408对于数据记录420和430可以分别设置为“0”。修改位618对于域名记录615可以设置为“0”,修改位606和668对于名称服务器记录640和660可以分别地设置为“0”。修改位707和807对于密钥数据记录780和880可以分别地设置为“0”。在一种实施例,修改位以任意顺序对于每个新元素可以设置为“0”。在已经清除(985)每个新元素内的修改位之后,“旧的”或现有的数据库元素不再有效,即在数据库内被参考。在一种实施例中,随后可以通过将修改位设置为“0”来清除这些元素内的修改位,而在可选的实施例中,可以完全不清除这些修改位。
在一种实施例中,更新线程可以物理地删除(990)在从每个新元素清除(985)修改位之后已被修改的现有数据库元素。有利地,可以延迟从存储器104中物理删除这些已修改元素,从而保持正在进行的搜索的一致性。例如,在已修改现有的元素并将相应新元素提交给数据库之后,可以延迟从存储器104中物理地删除现有元素,以便具有恰在新元素被提交给数据库之前获得的结果的现有搜索线程可以继续使用数据的先前状态。在已经完成在修改现有元素之前开始的所有搜索线程之后,更新线程可以物理地删除(990)现有元素。
类似地,在已经从数据库删除现有元素之后,可以延迟从存储器104物理删除现有元素,以便具有恰在从数据库删除现有元素之前获得的结果的现有搜索线程可以继续使用数据的先前状态。参见图10,在已经完成在删除现有元素之前开始的所有搜索线程之后,更新线程可以物理地删除(1090)现有元素。
潜在的复杂性可能因为与本发明实施例相关的方法以及系统100的各种结构特性的相互作用而产生。例如,在其上执行更新线程的处理器(例如处理器102-1、102-2、等等)可以包括硬件以支持无序的指令执行。在另一个例子中,系统100可以包括最佳化编译器,其可以生成与本发明的实施例相关的一系列指令,这些指令已经被优化地重新安排,以利用处理器内部结构的并行性(例如处理器102-1、102-2、等等)。本领域的技术人员可以容易地允许多种其它的复杂性。例如,通过创建新元素的创建(970)和指针写入(980)数据库之间的依赖性,可以消除由于无序指令执行而导致的数据危险。
在一种实施例中,通过将诸如异或(XOR)指令的附加算术操作插入由处理器102-1执行的指令序列,以强制执行与新元素的创建(970)有关的指令,从而在执行将指针写入(980)数据库之前发出或完成,可以创建这些依赖性。例如,对应于新元素并包括修改位的存储器104内位置的内容可以与对应于指向新元素的指针的存储器104内位置的内容进行XOR(异或)。随后,可以将新元素的地址写入(980)存储器,以便将新元素提交给数据库。克服这些复杂性的许多方法对于本领域的技术人员来说是显而易见的。
在此具体图示和描述了本发明的若干实施例。然而,将认识到,在不脱离本发明的精神和预期范围的情况下,本发明的修改和变化被上述教导所覆盖,并在所附的权利要求书的范围之内。
Claims (54)
1.一种多线程化网络数据库系统,包括:
耦合到网络的至少一个处理器;和
耦合到处理器的存储器,该存储器包括数据库和适合于由处理器执行的指令,以便:
创建更新线程和多个搜索线程;
将在网络上接收到的多个搜索查询中的每个搜索查询分配给多个搜索线程之一;
对于每个搜索线程:
根据所分配的搜索查询来搜索数据库,
创建对应于所分配的搜索查询的多个搜索应答,和
在网络上发送多个搜索应答;和
对于更新线程:
根据在网络上接收到的新信息创建多个新元素,
在多个新元素之中的每个新元素内设置修改位,
在对于多个搜索线程不限制对数据库访问的情况下,使用单个不可中断操作将指向多个新元素之中的每个新元素的指针写入数据库,和
清除多个新元素之中的每个新元素的修改位。
2.权利要求1的系统,其中所述指令还包括:
对于更新线程:
设置将从数据库中删除的至少一个现有元素内的修改位;和
在对于多个搜索线程不限制对数据库访问的情况下,使用单个不可中断操作解除参考将要被删除的现有元素。
3.权利要求1的系统,其中所述指令还包括:
对于更新线程:
在将指针写入相应的新元素之前,设置在数据库内将要修改的至少一个现有元素内的修改位;和
在将指针写入相应的新元素之后,清除现有元素内的修改位。
4.权利要求1的系统,其中单个不可中断操作是存储指令。
5.权利要求4的系统,其中存储指令将四个字节写入位于四字节边界上的存储地址。
6.权利要求4的系统,其中存储指令将八个字节写入位于八字节边界上的存储地址。
7.权利要求4的系统,其中处理器具有至少n字节的字大小,存储器具有至少n字节的宽度,并且存储指令将n字节写入位于n字节边界上的存储地址。
8.权利要求1的系统,其中在单个网络分组内接收多个搜索查询。
9.权利要求1的系统,其中在单个网络分组内发送多个搜索应答。
10.权利要求1的系统,其中所述限制访问包括数据库锁定。
11.权利要求1的系统,其中所述限制访问包括自旋锁定。
12.权利要求11的系统,其中所述自旋锁定包括至少一个信号量的使用。
13.权利要求12的系统,其中所述信号量是互斥信号量。
14.权利要求1的系统,还包括多个处理器和对称的多处理操作系统。
15.权利要求14的系统,其中多个搜索线程每秒执行至少100000个搜索。
16.权利要求15的系统,其中更新线程每秒执行至少10000个更新。
17.权利要求16的系统,其中更新线程每秒执行在50000和130000之间个更新。
18.权利要求1的系统,其中将至新元素的指针写入搜索索引。
19.权利要求18的系统,其中搜索索引是TST。
20.权利要求1的系统,其中将至新元素的指针写入数据库内的数据记录。
21.一种用于搜索和同时更新数据库的方法,包括:
创建更新线程和多个搜索线程;
将在附络上接收到的多个搜索查询之中的每个搜索查询分配给多个搜索线程之一;
对于每个搜索线程:
根据所分配的搜索查询来搜索数据库,
创建对应于所分配的搜索查询的多个搜索应答,和
在网络上发送多个搜索应答;和
对于更新线程:
根据在网络上接收到的新信息创建多个新元素;
在多个新元素之中的每个新元素内设置修改位;
在对于多个搜索线程不限制对数据库访问的情况下,使用单个不可中断操作将指向多个新元素之中的每个新元素的指针写入数据库,和
清除多个新元素之中的每个新元素内的修改位。
22.权利要求21的方法,其中所述指令还包括:
对于更新线程:
设置将要从数据库中删除的至少一个现有元素内的修改位,和
在对于多个搜索线程不限制对数据库访问的情况下,使用单个不可中断操作解除参考将要删除的现有元素。
23.权利要求21的方法,还包括:
对于更新线程:
在将指针写入相应的新元素之前,设置在数据库内将要修改的至少一个现有元素内的修改位;和
在将指针写入相应的新元素之后,清除现有元素内的修改位。
24.权利要求21的方法,其中单个不可中断操作是存储指令。
25.权利要求23的方法,其中存储指令将四个字节写入位于四字节边界上的存储地址。
26.权利要求23的方法,其中存储指令将八个字节写入位于八字节边界上的存储地址。
27.权利要求21的方法,其中在单个网络分组内接收多个搜索查询。
28.权利要求21的方法,其中在单个网络分组内发送多个搜索应答。
29.权利要求21的方法,其中所述限制访问包括数据库锁定。
30.权利要求21的方法,其中所述限制访问包括自旋锁定。
31.权利要求30的方法,其中所述自旋锁定包括至少一个信号量的使用。
32.权利要求31的方法,其中所述信号量是互斥信号量。
33.权利要求21的方法,其中多个搜索线程每秒执行至少100000个搜索。
34.权利要求21的方法,其中更新线程每秒执行至少10000个更新。
35.权利要求34的方法,其中更新线程每秒执行在50000和130000之间个更新。
36.权利要求21的方法,其中将至新元素的指针写入搜索索引。
37.权利要求21的方法,其中将至新元素的指针写入数据库内的数据记录。
38.一种计算机可读媒体,包括适合于由至少一个处理器执行以实现一种用于搜索和同时更新数据库的方法的指令,该方法包括:
创建更新线程和多个搜索线程;
将在网络上接收到的多个搜索查询之中的每个搜索查询分配给多个搜索线程之一;
对于每个搜索线程:
根据所分配的搜索查询来搜索数据库,
创建对应于所分配的搜索查询的多个搜索应答,和
在网络上发送多个搜索应答;和
对于更新线程:
根据在网络上接收到的新信息创建多个新元素;
在多个新元素之中的每个新元素内设置修改位;
在对于多个搜索线程不限制对数据库访问的情况下,使用单个不可中断操作将至多个新元素之中的每个新元素的指针写入数据库,和
清除多个新元素之中的每个新元素内的修改位。
39.权利要求38的计算机可读媒体,其中该方法还包括:
对于更新线程:
设置将要从数据库中删除的至少一个元素的修改位;和
在对于多个搜索线程不限制对数据库访问的情况下,使用单个不可中断操作解除参考将要删除的现有元素。
40.权利要求38的计算机可读媒体,其中该方法还包括:
对于更新线程:
在将指针写入相应的新元素之前,设置在数据库内将要修改的至少一个现有元素内的修改位;和
在将指针写入相应的新元素之后,清除现有元素内的修改位。
41.权利要求38的计算机可读媒体,其中单个不可中断操作是存储指令。
42.权利要求41的计算机可读媒体,其中存储指令将四个字节写入位于四字节边界上的存储地址。
43.权利要求41的计算机可读媒体,其中存储指令将八个字节写入位于八字节边界上的存储地址。
44.权利要求38的计算机可读媒体,其中在单个网络分组内接收多个搜索查询。
45.权利要求38的计算机可读媒体,其中在单个网络分组内发送多个搜索应答。
46.权利要求38的计算机可读媒体,其中所述限制访问包括数据库锁定。
47.权利要求38的计算机可读媒体,其中所述限制访问包括自旋锁定。
48.权利要求47的计算机可读媒体,其中所述自旋锁定包括至少一个信号量的使用。
49.权利要求48的计算机可读媒体,其中所述信号量是互斥信号量。
50.权利要求38的计算机可读媒体,其中将至新元素的指针写入搜索索引。
51.权利要求38的计算机可读媒体,其中将至新元素的指针写入数据库内的数据记录。
52.权利要求8的系统,其中在单个网络分组内接收新信息。
53.权利要求27的方法,其中在单个网络分组内接收新信息。
54.权利要求44的计算机可读媒体,其中在单个网络分组内接收新信息。
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/035080 WO2003038683A1 (en) | 2001-11-01 | 2002-11-01 | Transactional memory manager |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1610906A true CN1610906A (zh) | 2005-04-27 |
CN1610906B CN1610906B (zh) | 2012-05-09 |
Family
ID=26987480
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN028266196A Expired - Fee Related CN1610877B (zh) | 2001-11-01 | 2002-11-01 | 高速非并发控制数据库 |
CNB028265114A Expired - Fee Related CN100557595C (zh) | 2001-11-01 | 2002-11-01 | 用于验证远程数据库的方法和系统 |
CN028265092A Expired - Fee Related CN1610906B (zh) | 2001-11-01 | 2002-11-01 | 事务处理存储器管理器 |
CN02826620XA Expired - Fee Related CN1610902B (zh) | 2001-11-01 | 2002-11-01 | 更新远程数据库的方法和系统 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02826620XA Expired - Fee Related CN1610902B (zh) | 2001-11-01 | 2002-11-01 | 更新远程数据库的方法和系统 |
Country Status (16)
Country | Link |
---|---|
US (10) | US7047258B2 (zh) |
EP (10) | EP1451728A4 (zh) |
JP (4) | JP4420324B2 (zh) |
KR (4) | KR100970122B1 (zh) |
CN (4) | CN1610877B (zh) |
AU (5) | AU2002356885B2 (zh) |
BR (4) | BR0213862A (zh) |
CA (4) | CA2466107C (zh) |
EA (4) | EA006045B1 (zh) |
HK (1) | HK1075308A1 (zh) |
IL (8) | IL161721A0 (zh) |
MX (4) | MXPA04004202A (zh) |
NO (4) | NO20042261L (zh) |
NZ (4) | NZ532771A (zh) |
WO (5) | WO2003038653A1 (zh) |
ZA (4) | ZA200403597B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101432702B (zh) * | 2006-05-02 | 2012-09-26 | 英特尔公司 | 在事务处理码内对存储器分配和解除分配的系统和方法 |
CN103636166A (zh) * | 2011-07-06 | 2014-03-12 | 国际商业机器公司 | 与请求-答复消息排队环境关联的动态数据保护策略 |
CN103842986A (zh) * | 2011-09-29 | 2014-06-04 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自调谐锁定机制的系统和方法 |
CN106462395A (zh) * | 2014-05-05 | 2017-02-22 | 谷歌公司 | 多线程处理器架构中的线程等待 |
US9846603B2 (en) | 2012-03-07 | 2017-12-19 | Oracle International Corporation | System and method for supporting an adaptive self-tuning locking mechanism in a transactional middleware machine environment |
Families Citing this family (262)
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 |
US7689569B2 (en) * | 2003-03-31 | 2010-03-30 | Qwest Communications International Inc. | Systems and methods for managing large data environments |
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 |
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 |
US7212817B2 (en) * | 2003-04-30 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Partitioning a database keyed with variable length keys |
US20040220941A1 (en) * | 2003-04-30 | 2004-11-04 | Nielson Mark R. | Sorting variable length keys in a database |
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 |
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 |
US8131739B2 (en) * | 2003-08-21 | 2012-03-06 | Microsoft Corporation | Systems and methods for interfacing application programs with an item-based storage platform |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
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 | 华为技术有限公司 | 一种使前后台数据库中数据相一致的方法 |
US7290129B2 (en) | 2003-09-16 | 2007-10-30 | At&T Bls Intellectual Property, Inc. | Remote administration of computer access settings |
US20050066290A1 (en) * | 2003-09-16 | 2005-03-24 | Chebolu Anil Kumar | Pop-up capture |
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 |
ATE343303T1 (de) * | 2004-05-11 | 2006-11-15 | Cit Alcatel | Netzelement und verfahren zur abbildung von adressinformationen |
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 |
US8819048B1 (en) * | 2005-10-24 | 2014-08-26 | Emc Corporation | Virtual repository management to provide retention management services |
US8015222B2 (en) | 2005-10-24 | 2011-09-06 | Emc Corporation | Virtual repository management |
US20070100783A1 (en) * | 2005-10-29 | 2007-05-03 | International Business Machines Corporation | Method, system, and program for determining discrepancies between database management systems |
US20070106729A1 (en) * | 2005-11-04 | 2007-05-10 | Research In Motion Limited | Method and system for updating message threads |
US8266609B2 (en) * | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
WO2007074286A1 (fr) * | 2005-12-27 | 2007-07-05 | France Telecom | Serveur et procede pour gerer des requetes dnssec |
US20070192374A1 (en) * | 2006-02-16 | 2007-08-16 | Emc Corporation | Virtual repository management to provide functionality |
US20110087792A2 (en) * | 2006-02-07 | 2011-04-14 | Dot Hill Systems Corporation | Data replication method and apparatus |
US7761293B2 (en) * | 2006-03-06 | 2010-07-20 | Tran Bao Q | Spoken mobile engine |
US20070208564A1 (en) * | 2006-03-06 | 2007-09-06 | Available For Licensing | Telephone based search system |
US20070226264A1 (en) * | 2006-03-22 | 2007-09-27 | Gang Luo | System and method for real-time materialized view maintenance |
US7783850B2 (en) * | 2006-03-28 | 2010-08-24 | Dot Hill Systems Corporation | Method and apparatus for master volume access during volume copy |
KR100728982B1 (ko) * | 2006-04-14 | 2007-06-15 | 주식회사 하이닉스반도체 | 상변환 기억 소자 및 그의 제조방법 |
KR100728983B1 (ko) * | 2006-04-14 | 2007-06-15 | 주식회사 하이닉스반도체 | 상변환 기억 소자 및 그의 제조방법 |
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 |
US8751467B2 (en) * | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US7831565B2 (en) * | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
DE102007008293B4 (de) * | 2007-02-16 | 2010-02-25 | Continental Automotive Gmbh | Verfahren und Vorrichtung zum gesicherten Speichern und zum gesicherten Lesen von Nutzdaten |
US9690790B2 (en) * | 2007-03-05 | 2017-06-27 | Dell Software Inc. | Method and apparatus for efficiently merging, storing and retrieving incremental data |
JP2008226167A (ja) * | 2007-03-15 | 2008-09-25 | Toshiba Corp | データ配布システム及びデータ配布プログラム |
US7716183B2 (en) * | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US7975115B2 (en) * | 2007-04-11 | 2011-07-05 | Dot Hill Systems Corporation | Method and apparatus for separating snapshot preserved and write data |
US8768898B1 (en) * | 2007-04-26 | 2014-07-01 | Netapp, Inc. | Performing direct data manipulation on a storage device |
US8856094B2 (en) * | 2007-05-08 | 2014-10-07 | Digital River, Inc. | Remote segmentation system and method |
US20090182718A1 (en) * | 2007-05-08 | 2009-07-16 | Digital River, Inc. | Remote Segmentation System and Method Applied To A Segmentation Data Mart |
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 |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US8688920B2 (en) | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8175099B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Embedded system development platform |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US7882337B2 (en) * | 2007-05-19 | 2011-02-01 | International Business Machines Corporation | Method and system for efficient tentative tracing of software in multiprocessors |
US8204858B2 (en) | 2007-06-25 | 2012-06-19 | Dot Hill Systems Corporation | Snapshot reset method and apparatus |
US8140961B2 (en) * | 2007-11-21 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Automated re-ordering of columns for alignment trap reduction |
US11347771B2 (en) * | 2007-11-28 | 2022-05-31 | International Business Machines Corporation | Content engine asynchronous upgrade framework |
US8412700B2 (en) | 2008-01-11 | 2013-04-02 | International Business Machines Corporation | Database query optimization using index carryover to subset an index |
US7912867B2 (en) * | 2008-02-25 | 2011-03-22 | United Parcel Services Of America, Inc. | Systems and methods of profiling data for integration |
US8015191B2 (en) * | 2008-03-27 | 2011-09-06 | International Business Machines Corporation | Implementing dynamic processor allocation based upon data density |
US8170988B2 (en) * | 2008-04-17 | 2012-05-01 | The Boeing Company | System and method for synchronizing databases |
US8768349B1 (en) * | 2008-04-24 | 2014-07-01 | Sprint Communications Company L.P. | Real-time subscriber profile consolidation system |
US9094140B2 (en) * | 2008-04-28 | 2015-07-28 | Time Warner Cable Enterprises Llc | Methods and apparatus for audience research in a content-based network |
DE102008022415A1 (de) * | 2008-05-06 | 2009-11-12 | TÜV Rheinland Industrie Service GmbH | Absinkverhinderungsvorrichtung |
US8140520B2 (en) * | 2008-05-15 | 2012-03-20 | International Business Machines Corporation | Embedding densities in a data structure |
US8275761B2 (en) | 2008-05-15 | 2012-09-25 | International Business Machines Corporation | Determining a density of a key value referenced in a database query over a range of rows |
EP2134122A1 (en) * | 2008-06-13 | 2009-12-16 | Hewlett-Packard Development Company, L.P. | Controlling access to a communication network using a local device database and a shared device database |
US8312033B1 (en) | 2008-06-26 | 2012-11-13 | Experian Marketing Solutions, Inc. | Systems and methods for providing an integrated identifier |
CN101309177B (zh) * | 2008-07-11 | 2012-01-11 | 中国移动通信集团云南有限公司 | 一种网络资源数据管理方法及系统 |
US9418005B2 (en) | 2008-07-15 | 2016-08-16 | International Business Machines Corporation | Managing garbage collection in a data processing system |
CN101639950B (zh) * | 2008-07-29 | 2011-07-13 | 中兴通讯股份有限公司 | 一种车道收费系统中的数据同步方法及装置 |
US8751441B2 (en) * | 2008-07-31 | 2014-06-10 | Sybase, Inc. | System, method, and computer program product for determining SQL replication process |
US8239417B2 (en) * | 2008-08-07 | 2012-08-07 | Armanta, Inc. | System, method, and computer program product for accessing and manipulating remote datasets |
US8768933B2 (en) * | 2008-08-08 | 2014-07-01 | Kabushiki Kaisha Toshiba | System and method for type-ahead address lookup employing historically weighted address placement |
CN101727383B (zh) * | 2008-10-16 | 2012-07-04 | 上海市医疗保险信息中心 | 数据库的仿真测试方法和系统 |
US9292612B2 (en) | 2009-04-22 | 2016-03-22 | Verisign, Inc. | Internet profile service |
US8676989B2 (en) | 2009-04-23 | 2014-03-18 | Opendns, Inc. | Robust domain name resolution |
US8527945B2 (en) | 2009-05-07 | 2013-09-03 | Verisign, Inc. | Method and system for integrating multiple scripts |
US8037076B2 (en) * | 2009-05-11 | 2011-10-11 | Red Hat, Inc. | Federated indexing from hashed primary key slices |
US8510263B2 (en) * | 2009-06-15 | 2013-08-13 | Verisign, Inc. | Method and system for auditing transaction data from database operations |
US8739125B2 (en) * | 2009-06-16 | 2014-05-27 | Red Hat, Inc. | Automated and unattended process for testing software applications |
US20100333071A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines |
US8977705B2 (en) * | 2009-07-27 | 2015-03-10 | Verisign, Inc. | Method and system for data logging and analysis |
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 |
US8327019B2 (en) * | 2009-08-18 | 2012-12-04 | Verisign, Inc. | Method and system for intelligent routing of requests 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 |
US9235829B2 (en) | 2009-10-30 | 2016-01-12 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9269080B2 (en) | 2009-10-30 | 2016-02-23 | Verisign, Inc. | Hierarchical publish/subscribe system |
US9047589B2 (en) | 2009-10-30 | 2015-06-02 | Verisign, Inc. | Hierarchical publish and subscribe system |
US9569753B2 (en) | 2009-10-30 | 2017-02-14 | Verisign, Inc. | Hierarchical publish/subscribe system performed by multiple central relays |
US9762405B2 (en) | 2009-10-30 | 2017-09-12 | Verisign, Inc. | Hierarchical publish/subscribe system |
US8982882B2 (en) | 2009-11-09 | 2015-03-17 | Verisign, Inc. | Method and system for application level load balancing in a publish/subscribe message architecture |
CN102096676B (zh) * | 2009-12-11 | 2014-04-09 | 中国移动通信集团公司 | 数据更新及查询控制方法及系统 |
US20110178984A1 (en) * | 2010-01-18 | 2011-07-21 | Microsoft Corporation | Replication protocol for database systems |
US8825601B2 (en) * | 2010-02-01 | 2014-09-02 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
US9176783B2 (en) | 2010-05-24 | 2015-11-03 | International Business Machines Corporation | Idle transitions sampling with execution context |
US8843684B2 (en) | 2010-06-11 | 2014-09-23 | International Business Machines Corporation | Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration |
US8799872B2 (en) | 2010-06-27 | 2014-08-05 | International Business Machines Corporation | Sampling with sample pacing |
FR2964213B1 (fr) * | 2010-09-01 | 2013-04-26 | Evidian | Annuaire d'identite et procede de mise a jour d'un annuaire d'identite |
US8489724B2 (en) * | 2010-09-14 | 2013-07-16 | Cdnetworks Co., Ltd. | CNAME-based round-trip time measurement in a content delivery network |
US20120089646A1 (en) * | 2010-10-08 | 2012-04-12 | Jain Rohit N | Processing change data |
US8332433B2 (en) | 2010-10-18 | 2012-12-11 | Verisign, Inc. | Database synchronization and validation |
US8799904B2 (en) | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
JP5652281B2 (ja) * | 2011-03-18 | 2015-01-14 | 富士通株式会社 | 業務処理サーバ、業務処理方法及び業務処理プログラム |
RU2480819C2 (ru) * | 2011-06-28 | 2013-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ оптимизации работы со связными списками |
US9087071B2 (en) * | 2011-08-03 | 2015-07-21 | Amazon Technologies, Inc. | Gathering transaction data associated with locally stored data files |
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 |
EP2780796B1 (en) | 2011-11-18 | 2019-01-02 | 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 |
WO2014195804A2 (en) * | 2013-06-04 | 2014-12-11 | Marvell World Trade Ltd. | Internal search engine architecture |
US8886601B1 (en) | 2013-06-20 | 2014-11-11 | Palantir Technologies, Inc. | System and method for incrementally replicating investigative analysis data |
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 |
US10162841B1 (en) * | 2013-10-28 | 2018-12-25 | 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 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
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 | 安徽兆尹信息科技股份有限公司 | 一种用于生成现金流量表的云计算应用平台构建方法 |
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 |
WO2017063048A1 (en) * | 2015-10-15 | 2017-04-20 | Big Ip Pty Ltd | A system, method, computer program and data signal for the provision of a database of information for lead generating purposes |
IL242218B (en) | 2015-10-22 | 2020-11-30 | Verint Systems Ltd | A system and method for maintaining a dynamic dictionary |
IL242219B (en) * | 2015-10-22 | 2020-11-30 | Verint Systems Ltd | System and method for keyword searching using both static and dynamic dictionaries |
MX2018007425A (es) * | 2015-12-18 | 2018-08-15 | Walmart Apollo Llc | Sistemas y metodos para resolver discrepancia de datos. |
US10530758B2 (en) * | 2015-12-18 | 2020-01-07 | 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 |
TWI643146B (zh) * | 2016-12-22 | 2018-12-01 | 經貿聯網科技股份有限公司 | 動態更新金融資料的方法及其處理系統以及動態調整電源配置的方法及其處理系統 |
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 |
CN111107175B (zh) * | 2017-03-31 | 2023-08-08 | 贵州白山云科技股份有限公司 | 一种构建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控股有限公司 | 用于搜索目录访问组的方法和系统 |
US20200074541A1 (en) | 2018-09-05 | 2020-03-05 | Consumerinfo.Com, Inc. | Generation of data structures based on categories of matched data items |
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 |
JP7245954B2 (ja) * | 2019-07-30 | 2023-03-24 | ファルコンリー インコーポレイテッド | 大量の時系列データの滑らか且つ解像度が扱いやすいビュー |
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 | 珠海格力电器股份有限公司 | 线程管理方法、存储介质及电子设备 |
CN113966591B (zh) * | 2020-02-24 | 2023-09-19 | 森斯通株式会社 | 利用虚拟代码的使用者设定信息认证方法、记录介质以及装置 |
WO2021172875A1 (ko) * | 2020-02-24 | 2021-09-02 | 주식회사 센스톤 | 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치 |
US20230138113A1 (en) * | 2021-02-09 | 2023-05-04 | Micro Focus Llc | System for retrieval of large datasets in cloud environments |
US11934377B2 (en) * | 2021-02-25 | 2024-03-19 | Microsoft Technology Licensing, Llc | Consistency checking for distributed analytical database systems |
US20220335049A1 (en) * | 2021-04-14 | 2022-10-20 | Google Llc | Powering Scalable Data Warehousing with Robust Query Performance |
CN113806342A (zh) * | 2021-07-21 | 2021-12-17 | 厦门莲隐科技有限公司 | 一种提取以太坊区块链底层数据的系统 |
US20240045753A1 (en) * | 2022-08-02 | 2024-02-08 | Nxp B.V. | Dynamic Configuration Of Reaction Policies In Virtualized Fault Management System |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4412285A (en) * | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
US5010478A (en) * | 1986-04-11 | 1991-04-23 | Deran Roger L | Entity-attribute value database system with inverse attribute for selectively relating two different entities |
GB8704882D0 (en) * | 1987-03-03 | 1987-04-08 | Hewlett Packard Co | Secure messaging systems |
US4947366A (en) | 1987-10-02 | 1990-08-07 | Advanced Micro Devices, Inc. | Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities |
US5175849A (en) * | 1988-07-28 | 1992-12-29 | Amdahl Corporation | Capturing data of a database system |
US5089952A (en) * | 1988-10-07 | 1992-02-18 | International Business Machines Corporation | Method for allowing weak searchers to access pointer-connected data structures without locking |
US5161223A (en) | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Resumeable batch query for processing time consuming queries in an object oriented database management system |
DE69132300T2 (de) * | 1990-03-12 | 2000-11-30 | Hewlett Packard Co | Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen |
CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
US5893117A (en) | 1990-08-17 | 1999-04-06 | Texas Instruments Incorporated | Time-stamped database transaction and version management system |
US5287496A (en) * | 1991-02-25 | 1994-02-15 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing |
US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US6188428B1 (en) * | 1992-02-11 | 2001-02-13 | Mark Koz | Transcoding video file server and methods for its use |
US5749079A (en) * | 1992-03-04 | 1998-05-05 | Singapore Computer Systems Limited | End user query facility including a query connectivity driver |
US5260942A (en) * | 1992-03-06 | 1993-11-09 | International Business Machines Corporation | Method and apparatus for batching the receipt of data packets |
DE69324204T2 (de) * | 1992-10-22 | 1999-12-23 | Cabletron Systems Inc | Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers |
US5684990A (en) * | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5729735A (en) * | 1995-02-08 | 1998-03-17 | Meyering; Samuel C. | Remote database file synchronizer |
US5615337A (en) * | 1995-04-06 | 1997-03-25 | International Business Machines Corporation | System and method for efficiently processing diverse result sets returned by a stored procedures |
US5974409A (en) * | 1995-08-23 | 1999-10-26 | Microsoft Corporation | System and method for locating information in an on-line network |
US5758150A (en) * | 1995-10-06 | 1998-05-26 | Tele-Communications, Inc. | System and method for database synchronization |
US6047323A (en) | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US5875443A (en) | 1996-01-30 | 1999-02-23 | Sun Microsystems, Inc. | Internet-based spelling checker dictionary system with automatic updating |
US5852715A (en) * | 1996-03-19 | 1998-12-22 | Emc Corporation | System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions |
US5765028A (en) | 1996-05-07 | 1998-06-09 | Ncr Corporation | Method and apparatus for providing neural intelligence to a mail query agent in an online analytical processing system |
US5787452A (en) * | 1996-05-21 | 1998-07-28 | Sybase, Inc. | Client/server database system with methods for multi-threaded data processing in a heterogeneous language environment |
US6154777A (en) * | 1996-07-01 | 2000-11-28 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US5995980A (en) * | 1996-07-23 | 1999-11-30 | Olson; Jack E. | System and method for database update replication |
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
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 |
AU6183698A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths |
US5937414A (en) * | 1997-02-28 | 1999-08-10 | Oracle Corporation | Method and apparatus for providing database system replication in a mixed propagation environment |
US6862602B2 (en) * | 1997-03-07 | 2005-03-01 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US5920886A (en) * | 1997-03-14 | 1999-07-06 | Music Semiconductor Corporation | Accelerated hierarchical address filtering and translation using binary and ternary CAMs |
KR19990001093A (ko) * | 1997-06-12 | 1999-01-15 | 윤종용 | 교환기 시스템의 운영 프로그램 및 데이터베이스 인스톨 방법 |
US5924098A (en) * | 1997-06-30 | 1999-07-13 | Sun Microsystems, Inc. | Method and apparatus for managing a linked-list data structure |
US6098108A (en) * | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6148070A (en) * | 1997-07-02 | 2000-11-14 | Ameritech Corporation | Method, system, and database for providing a telecommunication service |
US5924096A (en) | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6061678A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Approach for managing access to large objects in database systems using large object indexes |
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
US6029170A (en) * | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
US6044448A (en) * | 1997-12-16 | 2000-03-28 | S3 Incorporated | Processor having multiple datapath instances |
US6256256B1 (en) * | 1998-01-30 | 2001-07-03 | Silicon Aquarius, Inc. | Dual port random access memories and systems using the same |
US6304259B1 (en) * | 1998-02-09 | 2001-10-16 | International Business Machines Corporation | Computer system, method and user interface components for abstracting and accessing a body of knowledge |
US6304881B1 (en) * | 1998-03-03 | 2001-10-16 | Pumatech, Inc. | Remote data access and synchronization |
US6237019B1 (en) | 1998-03-18 | 2001-05-22 | International Business Machines Corporation | Method and apparatus for performing a semaphore operation |
US6185567B1 (en) * | 1998-05-29 | 2001-02-06 | The Trustees Of The University Of Pennsylvania | Authenticated access to internet based research and data services |
US6131122A (en) * | 1998-06-01 | 2000-10-10 | Nortel Networks Corporation | Programmable internet automation |
AU4547099A (en) * | 1998-06-05 | 1999-12-20 | 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 |
AU774602B2 (en) * | 1998-12-23 | 2004-07-01 | Nokia 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 |
EP1157524B1 (en) * | 1999-03-03 | 2007-12-19 | Ultradns, Inc. | Scalable and efficient domain name resolution |
US6484185B1 (en) * | 1999-04-05 | 2002-11-19 | Microsoft Corporation | Atomic operations on data structures |
US6745177B2 (en) * | 1999-04-09 | 2004-06-01 | Metro One Telecommunications, Inc. | Method and system for retrieving data from multiple data sources using a search routing database |
US6938057B2 (en) * | 1999-05-21 | 2005-08-30 | International Business Machines Corporation | Method and apparatus for networked backup storage |
US6529504B1 (en) * | 1999-06-02 | 2003-03-04 | Sprint Communications Company, L.P. | Telecommunications service control point interface |
WO2001011443A2 (en) * | 1999-08-06 | 2001-02-15 | Namezero.Com, Inc. | Internet hosting system |
US6449657B2 (en) * | 1999-08-06 | 2002-09-10 | Namezero.Com, Inc. | Internet hosting system |
US6785704B1 (en) * | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6792458B1 (en) * | 1999-10-04 | 2004-09-14 | Urchin Software Corporation | System and method for monitoring and analyzing internet traffic |
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
KR100856149B1 (ko) * | 1999-11-26 | 2008-09-03 | 네테카 인코포레이티드 | 전자 메일 서버 및 전자 메일 통신을 용이하게 하기 위한 방법 |
US6980990B2 (en) * | 1999-12-01 | 2005-12-27 | Barry Fellman | Internet domain name registration system |
US6434681B1 (en) * | 1999-12-02 | 2002-08-13 | Emc Corporation | Snapshot copy facility for a data storage system permitting continued host read/write access |
US6625621B2 (en) * | 2000-01-04 | 2003-09-23 | Starfish Software, Inc. | System and methods for a fast and scalable synchronization server |
US6727918B1 (en) * | 2000-02-18 | 2004-04-27 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
US6789073B1 (en) * | 2000-02-22 | 2004-09-07 | Harvey Lunenfeld | Client-server multitasking |
JP2001236257A (ja) | 2000-02-24 | 2001-08-31 | Fujitsu Ltd | 情報記憶装置及び加入者データのデータ更新方法並びに移動通信システム |
US6615223B1 (en) * | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
US6643669B1 (en) * | 2000-03-14 | 2003-11-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for optimization of synchronization between a client's database and a server database |
JP2001290689A (ja) | 2000-04-07 | 2001-10-19 | Hitachi Ltd | 複数データベース間のレプリケーションのデータ検証方法 |
US6976090B2 (en) * | 2000-04-20 | 2005-12-13 | Actona Technologies Ltd. | Differentiated content and application delivery via internet |
US6725218B1 (en) * | 2000-04-28 | 2004-04-20 | Cisco Technology, Inc. | Computerized database system and method |
US7734815B2 (en) * | 2006-09-18 | 2010-06-08 | Akamai Technologies, Inc. | Global load balancing across mirrored data centers |
US7165116B2 (en) * | 2000-07-10 | 2007-01-16 | Netli, Inc. | Method for network discovery using name servers |
US7725602B2 (en) * | 2000-07-19 | 2010-05-25 | Akamai Technologies, Inc. | Domain name resolution using a distributed DNS network |
US20020029226A1 (en) | 2000-09-05 | 2002-03-07 | Gang Li | Method for combining data with maps |
FR2813986B1 (fr) * | 2000-09-08 | 2002-11-29 | Eric Vincenot | Dispositif de sonorisation a guide d'onde acoustique |
JP2002108836A (ja) * | 2000-09-29 | 2002-04-12 | Hitachi Ltd | プロセッサシステム |
US6785675B1 (en) * | 2000-11-13 | 2004-08-31 | Convey Development, Inc. | Aggregation of resource requests from multiple individual requestors |
US6636854B2 (en) * | 2000-12-07 | 2003-10-21 | International Business Machines Corporation | Method and system for augmenting web-indexed search engine results with peer-to-peer search results |
US6868414B2 (en) * | 2001-01-03 | 2005-03-15 | International Business Machines Corporation | Technique for serializing data structure updates and retrievals without requiring searchers to use locks |
US6728736B2 (en) * | 2001-03-14 | 2004-04-27 | Storage Technology Corporation | System and method for synchronizing a data copy using an accumulation remote copy trio |
US6691124B2 (en) * | 2001-04-04 | 2004-02-10 | Cypress Semiconductor Corp. | Compact data structures for pipelined message forwarding lookups |
GB2374951B (en) * | 2001-04-24 | 2005-06-15 | Discreet Logic Inc | Asynchronous database updates |
US7171415B2 (en) * | 2001-05-04 | 2007-01-30 | Sun Microsystems, Inc. | Distributed information discovery through searching selected registered information providers |
US20030182447A1 (en) * | 2001-05-31 | 2003-09-25 | Schilling Frank T. | Generic top-level domain re-routing system |
US6744652B2 (en) * | 2001-08-22 | 2004-06-01 | Netlogic Microsystems, Inc. | Concurrent searching of different tables within a content addressable memory |
KR100970122B1 (ko) | 2001-11-01 | 2010-07-13 | 베리사인 인코포레이티드 | 고속 논-콘커런시 제어된 데이터베이스 |
US20030208511A1 (en) * | 2002-05-02 | 2003-11-06 | Earl Leroy D. | Database replication system |
US7310686B2 (en) * | 2002-10-27 | 2007-12-18 | Paxfire, Inc. | Apparatus and method for transparent selection of an Internet server based on geographic location of a user |
US20050105513A1 (en) * | 2002-10-27 | 2005-05-19 | Alan Sullivan | Systems and methods for direction of communication traffic |
US20050027882A1 (en) * | 2003-05-05 | 2005-02-03 | Sullivan Alan T. | Systems and methods for direction of communication traffic |
US7761570B1 (en) * | 2003-06-26 | 2010-07-20 | Nominum, Inc. | Extensible domain name service |
US7769826B2 (en) * | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
US7761678B1 (en) * | 2004-09-29 | 2010-07-20 | Verisign, Inc. | Method and apparatus for an improved file repository |
US7685270B1 (en) * | 2005-03-31 | 2010-03-23 | Amazon Technologies, Inc. | Method and apparatus for measuring latency in web services |
US20080201413A1 (en) * | 2005-05-24 | 2008-08-21 | Sullivan Alan T | Enhanced Features for Direction of Communication Traffic |
US7546368B2 (en) * | 2005-06-01 | 2009-06-09 | Neustar, Inc. | Systems and methods for isolating local performance variation in website monitoring |
US7477575B2 (en) * | 2005-09-23 | 2009-01-13 | Verisign, Inc. | Redundant timer system and method |
CN101371246A (zh) * | 2006-01-20 | 2009-02-18 | 派克斯费尔有限公司 | 用于辨识并控制通信业务的系统和方法 |
US8606926B2 (en) * | 2006-06-14 | 2013-12-10 | Opendns, Inc. | Recursive DNS nameserver |
US8713188B2 (en) * | 2007-12-13 | 2014-04-29 | Opendns, Inc. | Per-request control of DNS behavior |
EP2054830A2 (en) * | 2006-08-17 | 2009-05-06 | Neustar, Inc. | System and method for managing domain policy for interconnected communication networks |
WO2008021512A2 (en) * | 2006-08-17 | 2008-02-21 | Neustar, Inc. | System and method for handling jargon in communication systems |
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 |
EP2201457A2 (en) * | 2007-10-18 | 2010-06-30 | Neustar, Inc. | System and method for sharing web performance monitoring data |
US20090235359A1 (en) * | 2008-03-12 | 2009-09-17 | Comodo Ca Limited | Method and system for performing security and vulnerability scans on devices behind a network security device |
US7925782B2 (en) * | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US7991737B2 (en) * | 2008-09-04 | 2011-08-02 | Microsoft Corporation | Synchronization of records of a table using bookmarks |
US20090282028A1 (en) * | 2008-09-23 | 2009-11-12 | Michael Subotin | User Interface and Method for Web Browsing based on Topical Relatedness of Domain Names |
US9172713B2 (en) * | 2008-09-24 | 2015-10-27 | Neustar, Inc. | Secure domain name system |
US7930393B1 (en) * | 2008-09-29 | 2011-04-19 | Amazon Technologies, Inc. | Monitoring domain allocation performance |
US8527658B2 (en) * | 2009-04-07 | 2013-09-03 | Verisign, Inc | Domain traffic ranking |
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 |
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 |
US20110035497A1 (en) * | 2009-08-05 | 2011-02-10 | Dynamic Network Services, Inc. | System and method for providing global server load balancing |
US8380870B2 (en) * | 2009-08-05 | 2013-02-19 | Verisign, Inc. | Method and system for filtering of network traffic |
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 |
US9047589B2 (en) * | 2009-10-30 | 2015-06-02 | Verisign, Inc. | Hierarchical publish and subscribe system |
US8982882B2 (en) * | 2009-11-09 | 2015-03-17 | Verisign, Inc. | Method and system for application level load balancing in a publish/subscribe message architecture |
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 CA CA2466107A patent/CA2466107C/en not_active Expired - Fee Related
- 2002-11-01 EP EP02802514A patent/EP1451728A4/en not_active Ceased
- 2002-11-01 CA CA2466117A patent/CA2466117C/en not_active Expired - Fee Related
- 2002-11-01 CN CN028266196A patent/CN1610877B/zh not_active Expired - Fee Related
- 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 BR BR0213862-0A patent/BR0213862A/pt not_active Application Discontinuation
- 2002-11-01 EP EP02786633.4A patent/EP1449062B1/en not_active Expired - Lifetime
- 2002-11-01 WO PCT/US2002/035081 patent/WO2003038653A1/en active IP Right Grant
- 2002-11-01 KR KR1020047006689A patent/KR100941350B1/ko not_active IP Right Cessation
- 2002-11-01 AU AU2002356885A patent/AU2002356885B2/en not_active Expired
- 2002-11-01 BR BR0213863-8A patent/BR0213863A/pt not_active Application Discontinuation
- 2002-11-01 IL IL16172302A patent/IL161723A0/xx unknown
- 2002-11-01 KR KR1020047006649A patent/KR100953137B1/ko not_active IP Right Cessation
- 2002-11-01 EA EA200400612A patent/EA006045B1/ru not_active IP Right Cessation
- 2002-11-01 EP EP12153315A patent/EP2495671A1/en not_active Withdrawn
- 2002-11-01 MX MXPA04004202A patent/MXPA04004202A/es active IP Right Grant
- 2002-11-01 EP EP12175016.0A patent/EP2562661A3/en not_active Withdrawn
- 2002-11-01 BR BR0213864-6A patent/BR0213864A/pt not_active Application Discontinuation
- 2002-11-01 AU AU2002350104A patent/AU2002350104B2/en not_active Expired
- 2002-11-01 WO PCT/US2002/035083 patent/WO2003038654A1/en active IP Right Grant
- 2002-11-01 CN CNB028265114A patent/CN100557595C/zh not_active Expired - Fee Related
- 2002-11-01 US US10/285,547 patent/US7047258B2/en not_active Expired - Lifetime
- 2002-11-01 NZ NZ532771A patent/NZ532771A/en not_active IP Right Cessation
- 2002-11-01 NZ NZ532772A patent/NZ532772A/en not_active IP Right Cessation
- 2002-11-01 EP EP11181796.1A patent/EP2477126A3/en not_active Withdrawn
- 2002-11-01 US US10/285,549 patent/US7167877B2/en not_active Expired - Lifetime
- 2002-11-01 CN CN028265092A patent/CN1610906B/zh not_active Expired - Fee Related
- 2002-11-01 MX MXPA04004169A patent/MXPA04004169A/es active IP Right Grant
- 2002-11-01 EP EP12153543A patent/EP2503476A1/en not_active Withdrawn
- 2002-11-01 EA EA200400613A patent/EA006038B1/ru not_active IP Right Cessation
- 2002-11-01 KR KR1020047006658A patent/KR100977161B1/ko not_active IP Right Cessation
- 2002-11-01 CA CA2472014A patent/CA2472014C/en not_active Expired - Fee Related
- 2002-11-01 EA EA200400614A patent/EA006223B1/ru not_active IP Right Cessation
- 2002-11-01 AU AU2002356886A patent/AU2002356886A1/en not_active Abandoned
- 2002-11-01 WO PCT/US2002/035082 patent/WO2003038596A1/en active IP Right Grant
- 2002-11-01 AU AU2002350106A patent/AU2002350106B2/en not_active Expired
- 2002-11-01 IL IL16172202A patent/IL161722A0/xx unknown
- 2002-11-01 EP EP02802516A patent/EP1449049A4/en not_active Withdrawn
- 2002-11-01 NZ NZ533166A patent/NZ533166A/en not_active IP Right Cessation
- 2002-11-01 MX MXPA04004203A patent/MXPA04004203A/es active IP Right Grant
- 2002-11-01 JP JP2003540847A patent/JP4399552B2/ja not_active Expired - Fee Related
- 2002-11-01 EP EP12153314A patent/EP2450812A1/en not_active Withdrawn
- 2002-11-01 CA CA2466110A patent/CA2466110C/en not_active Expired - Fee Related
- 2002-11-01 WO PCT/US2002/035080 patent/WO2003038683A1/en active IP Right Grant
- 2002-11-01 JP JP2003540846A patent/JP4897196B2/ja not_active Expired - Fee Related
- 2002-11-01 US US10/285,618 patent/US7203682B2/en not_active Expired - Lifetime
- 2002-11-01 IL IL16171202A patent/IL161712A0/xx active IP Right Grant
- 2002-11-01 WO PCT/US2002/035084 patent/WO2003038565A2/en not_active Application Discontinuation
- 2002-11-01 EP EP02802515.3A patent/EP1451714B1/en not_active Expired - Lifetime
- 2002-11-01 JP JP2003540874A patent/JP4420325B2/ja not_active Expired - Fee Related
- 2002-11-01 US US10/285,575 patent/US6681228B2/en not_active Expired - Lifetime
- 2002-11-01 EP EP02786632A patent/EP1461723A4/en not_active Ceased
- 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 BR BR0213807-7A patent/BR0213807A/pt not_active Application Discontinuation
- 2002-11-01 US US10/285,544 patent/US20030084038A1/en not_active Abandoned
- 2002-11-01 NZ NZ532773A patent/NZ532773A/en not_active IP Right Cessation
- 2002-11-01 AU AU2002356884A patent/AU2002356884B2/en not_active Ceased
- 2002-11-01 CN CN02826620XA patent/CN1610902B/zh not_active Expired - Fee Related
-
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 IL161721A patent/IL161721A/en active IP Right Grant
- 2004-05-02 IL IL161722A patent/IL161722A/en unknown
- 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/04266A patent/ZA200404266B/en unknown
- 2004-05-31 ZA ZA2004/04267A patent/ZA200404267B/en unknown
- 2004-05-31 ZA ZA2004/04268A patent/ZA200404268B/en unknown
- 2004-06-01 NO NO20042261A patent/NO20042261L/no not_active Application Discontinuation
- 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 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
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101432702B (zh) * | 2006-05-02 | 2012-09-26 | 英特尔公司 | 在事务处理码内对存储器分配和解除分配的系统和方法 |
CN103636166A (zh) * | 2011-07-06 | 2014-03-12 | 国际商业机器公司 | 与请求-答复消息排队环境关联的动态数据保护策略 |
CN103636166B (zh) * | 2011-07-06 | 2016-09-07 | 国际商业机器公司 | 一种用于处理请求消息的方法及系统 |
CN103842986A (zh) * | 2011-09-29 | 2014-06-04 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自调谐锁定机制的系统和方法 |
CN103842986B (zh) * | 2011-09-29 | 2017-07-04 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自调谐锁定机制的系统和方法 |
US9846603B2 (en) | 2012-03-07 | 2017-12-19 | Oracle International Corporation | System and method for supporting an adaptive self-tuning locking mechanism in a transactional middleware machine environment |
CN106462395A (zh) * | 2014-05-05 | 2017-02-22 | 谷歌公司 | 多线程处理器架构中的线程等待 |
CN106462395B (zh) * | 2014-05-05 | 2019-04-16 | 谷歌有限责任公司 | 多线程处理器架构中的线程等待 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1610906B (zh) | 事务处理存储器管理器 | |
AU2002356884A1 (en) | Transactional memory manager | |
AU2002350106A1 (en) | High speed non-concurrency controlled database |
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: 20120509 Termination date: 20151101 |
|
EXPY | Termination of patent right or utility model |