CN1610877A - 高速非并发控制数据库 - Google Patents

高速非并发控制数据库 Download PDF

Info

Publication number
CN1610877A
CN1610877A CNA028266196A CN02826619A CN1610877A CN 1610877 A CN1610877 A CN 1610877A CN A028266196 A CNA028266196 A CN A028266196A CN 02826619 A CN02826619 A CN 02826619A CN 1610877 A CN1610877 A CN 1610877A
Authority
CN
China
Prior art keywords
search
database
pointer
new
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
Application number
CNA028266196A
Other languages
English (en)
Other versions
CN1610877B (zh
Inventor
A·N·巴洛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FLISAEN Co
Original Assignee
FLISAEN Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26987480&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1610877(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by FLISAEN Co filed Critical FLISAEN Co
Publication of CN1610877A publication Critical patent/CN1610877A/zh
Application granted granted Critical
Publication of CN1610877B publication Critical patent/CN1610877B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

本发明描述了对于大型数据库系统利用并发更新而无需使用数据库锁或访问控制的高速数据库搜索的方法和系统。系统(100)包括与总线(101)连接的多个处理器(102-1…102-p);多个二级存储器缓存(103-1...103-p);存储器(即RAM)(104);只读存储器(ROM)(106);存储设备(108);显示器(即LCD监视器);输入设备(112);可发送/接收代表各种信息的电子信号的网络接口(114-1…114-O);广域网(124);局域网(LAN)(122);多个网络计算机(120-1…120-N前端协议引擎);和接收更新业务量到数据库(142-1…142-S)的多个在线事务处理(OLTP)服务器(140-1…140-S)。

Description

高速非并发控制数据库
对相关申请的先前/交叉引用的要求
这个非临时申请要求这里被引证作为它全部的参考的2001年11月1号提交的U.S.临时专利申请序列号为60/330,842,以及这里被引证作为它全部的参考的2002年3月19日提交的序列号为60/365,169的U.S.临时专利申请的利益。
技术领域
本公开涉及计算机系统。更具体的,本公开涉及用于对大型数据库系统利用并发更新而不使用数据库锁或访问控制的进行高速数据库搜索方法和系统。
背景技术
随着互联网的继续急速增长,为根服务器和通用顶级域名(gTLD)服务器在合理的价格点的扩展域名服务(DNS)的解决方案开始日益困难。A根服务器(即a.root-server.net)维护和分配互联网名字空间根区域文件给12个地理上分布在全世界的二级根服务器(即b.root-servers.net,c.root-servers.net等),同时对应的gTLD服务器(即a.gtld-servers.net,b.gtld-servers.net等)被类似地分配并支持顶级域(即*.com,*.net,*.org等)。一直增长的数据容量加上不断增加的查询速度促使全面再思考在今后几十年内的根服务器和gTLD DNS服务所需的硬件和软件体系结构。标准“绑定”软件分配的典型单服务器安装已经不满足A根的需要并且甚至很快将不能满足gTLD的需要。随着公共交换电话网(PSTN)和互联网的会聚,因为提供了跨越PSTN和互联网的新的、先进的服务,包括先进智能网络(AIN),IP电话(VoIP)服务,地理位置服务等,所以出现了用于通用目的、高性能搜索机制的机会以提供将在PSTN的SS7信令网络上通常与服务控制点(SCP)相关联的特征。
附图说明
图1是根据本发明的实施例的系统框图。
图2是图解说明根据本发明的实施例的消息数据结构的详细框图。
图3是图解说明根据本发明的实施例的消息等待时间数据结构体系结构的详细框图。
图4是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图5是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图6是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图7是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图8是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。
图9是图解说明根据本发明的实施例的用于搜索和并发更新数据库而不使用数据锁或访问控制的方法的顶层流程图。
具体实施方式
本发明的实施例提供用于对大型数据库系统利用并发更新而不使用数据库锁或访问控制的高速数据库搜索的方法和系统。具体地,可通过网络接收多个搜索查询,数据库可被搜索,并且可通过网络发送多个搜索应答。在搜索数据库的同时,通过根据新信息创建新元素,和在不需要锁定数据库的情况下利用单个不可中断操作将新元素的指针写到数据库,可以将通过网络接收的新信息合并到数据库中。
图1图解说明根据本发明的实施例的系统的框图。一般地,系统100可持有大型的存储器常驻的数据库,通过网络接收搜索请求并提供搜索响应。例如,系统100可以是对称多处理(SMP)计算机,诸如New York,Armonk的国际商用机器公司制造的IBMRS/6000M80或S80,California,Santa Clara的太阳微系统公司制造的Sun EnterpriseTM 10000等。系统100还可以是多处理器个人计算机,诸如California,Palo Alto的Hewlett-packard公司制造的Compaq ProliantTM ML530(包括双Intel PentiumIII866MHz处理器)。系统100还可以包括多处理操作系统,诸如IBMAIX4,Sun SolarisTM 8 Operating Environment,Red Hat Linux6.2等。系统100可通过网络124接收可并发地合并到数据库中的周期性的更新。本发明的实施例可通过将每个更新合并到数据库中来达到很高的数据库搜索和更新吞吐量,而不需要使用数据库锁或访问控制。
在一个实施例中,系统100可包括至少一个和总线101连接的处理器102-1。处理器102-1可包括内部存储器缓存(例如L1缓存,为清晰而没有示出)。二级存储器缓存103-1(例如L2缓存,L2/L3缓存等)可驻留在处理器102-1和总线101之间。在优选实施例中,系统100可包括和总线101连接的多个处理器102-1...102-P。多个二级存储器缓存103-1...103-P也可驻留在多个处理器102-1...102-P和总线101之间(例如,look-through体系结构),或者,替替换的,至少一个二级存储器缓存103-1可以连接总线101(例如look-aside体系结构)。系统100可包括和总线101连接的存储器104,诸如,例如随机存取存储器(RAM)等,用于存储将被多个处理器102-1...102-P执行的信息和指令。
存储器104可以存储大型的数据库,例如用于将互联网域名转换成互联网地址,用于将名字或电话号码转换成互联网地址,用于提供并更新用户简档数据(subscriber profile data),用于提供并更新用户存在数据等等。有利地,数据库的大小和每秒的转换量都非常的大。例如,存储器104可包括至少64GB的RAM并且可持有500M(即500×106)记录域名数据库,500M记录用户数据库,450M记录电话号码可移植性数据库等。
在示例的64-位系统体系结构上,诸如包括至少连接64-位总线104和64-位存储器104的至少一个64-位大尾数的(big-endian)处理器102-1的系统,利用单个不可中断操作可将8-字节指针值写到8-字节边界(即可被8整除的存储器地址,或者例如8N)上的存储器地址。一般地,二级存储器缓存103-1的存在可简单地延迟8-字节指针写入存储器104。例如,在一个实施例中,二级存储器缓存103-1是以直写方式(write-through mode)操作的审核(look-through)缓存,使得单个8-字节存储指令可在没有中断的情况下且以两个系统时钟周期把数据的8个字节从处理器102-1移动到存储器104。在另一个实施例中,二级存储器缓存103-1以写回式(write-back mode)操作的审核缓存,使得可以将8-字节的指针首先写入到二级存储器缓冲103-1,然后在随后的时间,诸如,当其中存储了8-字节指针的缓存线被写入到存储器104时(即例如,当特定缓存线,或整个二级存储器缓存被“刷新”时),该二级存储器缓冲103-1把8-字节指针写入到存储器104。
最后,从处理器102-1的角度,一旦数据被锁存在处理器102-1的输出引脚上,所有的8个字节的数据在一个连续的、不可中断的传输中被写到存储器104,该传输可被二级存储器缓存103-1的作用延迟,如果存在的话。从处理器102-1...102-P的角度,一旦数据被锁存在处理器102-1的输出引脚上,所有的8个字节的数据在一个连续的、不可中断的传输中被写到存储器104,这由经过二级存储器缓冲103-1...103-P的缓存相干协议强制执行,二级存储器缓冲103-1...103-P可延迟对存储器104的写入,如果存在的话。
但是,如果8字节的指针值被写到存储器104中的未对准的位置,比如跨越8字节边界的存储器地址,利用单个8-字节存储指令不能从处理器102-1中传送所有的8个字节的数据。而是,处理器102-1可以发布两个分离的并且截然不同的存储指令。例如,如果存储器地址开始于在8-字节边界前面的4个字节(例如,8N-4),第一存储指令传输四个最高位字节到存储器104(例如,8N-4),而第二存储指令传输四个最低位字节到存储器104(例如,8N)。重要地,在这两个分离的存储指令之间,处理器102-1可被中断,或处理器102-1相对于另一个系统部件(例如处理器102-P等)可放松对总线101的控制。结果,驻留在存储器104中的指针值是无效的,直到处理器102-1完成第二存储指令。如果另一个部件开始单个不可中断的存储器读操作来读这个存储器位置,一个无效值将被作为一个假设有效的值返回。
类似地,可利用单个不可中断操作将新的4字节指针值写入可被4整除的存储器地址(例如4N)。需要注意,在上面讨论的例子中,可利用单个存储指令将4字节指针值写入8N-4存储器位置。当然,如果将4字节指针值写到跨越4字节边界的位置,例如4N-2,不能利用单个存储指令从处理器102-1传输所有的4个字节的数据,并且驻留在存储器104中的指针值在某些时间期间无效。
系统100还可包括和总线101连接的只读存储器(ROM)106,或其它静态存储设备用于存储处理器102-1的静态信息和指令。存储设备108,比如磁盘或光盘,可与总线101连接用于存储信息和指令。系统100还可以包括连接总线101的显示器110(例如,LCD监视器)和输入设备112(例如,键盘,鼠标,跟踪球等)。系统100还可包括多个网络接口114-1...114-O,这些接口可发送和接收载有代表各种类型信息的数字数据流的电、电磁或者光信号。在一个实施例中,网络接口114-1可与总线101和局域网(LAN)122连接,而网络接口114-O可与总线101和广域网(WAN)124连接。多个网络接口114-1...114-O可支持多种网络协议,包括,例如千兆位以太网(例如IEEE Standard 802.3-2002,2002年公布),光纤通道(例如ANSI Standard X.3230-1994,1994年公布)等。多个网络计算机120-1...120-N可与LAN 122和WAN 124连接。在一个实施例中,LAN 122和WAN 124可以是物理上不同的网络,而在另一个实施例中,LAN 122和WAN 124可以是经由网络网关或路由器(为了清楚起见没有示出)。或者,LAN 122和WAN 124是相同的网络。
如上面注意的,系统100可提供DNS解析服务。在DNS解析实施例中,DNS解析服务一般地可以被分成网络传输和数据查找功能。例如,系统100可以是为大型数据集的数据查询而最优化的后端查询引擎(LUE),而多个网络计算机120-1...120-N可以是为网络处理和传输而最优化的多个前端协议引擎(PE)。LUE可以是强大的多处理器服务器,其在存储器104中存储了整个DNS记录集以便于高速、高吞吐量地搜索和更新。在一个可替换实施例中,DNS解析服务可由一系列强大的多处理器服务器或LUE提供,每一个在存储器中存储了整个DNS记录集的子集以便于高速、高吞吐量地搜索和更新。
相反地,多个PE可以是通用的、低配置、基于PC机运行有效的多任务操作系统(例如Red Hat Linux6.2),该操作系统最小化LUE上的网络处理传输负载,以便最大化用于DNS解析的可用资源。PE可以响应对LAN 122上的LUE的无效DNS查询和多路复用的有效DNS查询,处理有线线路(wire-line)DNS协议的细微差别。在另一个包括存储DNS记录子集的多个LUE的可替换实施例中,PE可确定哪个LUE应该接收对于适当的LUE的每个有效DNS查询和多路复用有效DNS查询。对于单个LUE的PE数目可由例如每秒处理的DNS查询数目和特定系统的性能特征来确定。其它量度也可用作确定恰当的映射比率和行为。
一般的,可支持其它大容量、基于查询的实施例,包括例如电话号码解析,SS7信令处理,地理位置确定,电话号码到用户的映射,用户位置和存在确定等等。
在一个实施例中,中央联机事务处理(OLTP)服务器140-1可与WAN 124连接,并接收从各种来源对数据库142-1的添加、修改和删除(即,更新业务量)。OLTP服务器140-1可通过WAN 124发送包括有数据库142-1的本地拷贝的更新到系统100。OLTP服务器140-1可以用多种格式和协议来优化处理更新业务量,所述多种格式和协议包括例如超文本传输协议(HTTP)、注册登记员协议(Registry Registrar Potocol RRP)、可扩展供应协议(ExtensibleProvisioning Protocol EPP)、服务管理系统/800机械化通用接口(Mechanized Generic Interface MGI)和其它的在线供应协议。只读LUE群可被部署在集线器和辐条(spoke)体系结构以提供高速搜索能力以及来自OLTP服务器140-1的大容量、递增的更新。
在一个可替换实施例中,可以通过多个OLTP服务器140-1...140-S分布数据,它们的每一个可与WAN 124连接。OLTP服务器140-1...140-S可以接收从各种来源对它们各自的数据库142-1...142-S(为清楚起见没有示出)的添加、修改和删除(即,更新业务量)。OLTP服务器140-1...140-S可以通过WAN 124发送包括有数据库142-1...142-S的拷贝、其它动态创建的数据等的更新到系统100。例如,在一个地理位置实施例中,OLTP服务器140-1...140-S可以从多组远程传感器接收更新业务量。在另一个可替换实施例中,多个网络计算机120-1...120-N也可通过WAN 124或LAN 122接收来自各种来源的添加、修改和删除(即,更新业务量)。在这个实施例中,多个网络计算机120-1...120-N可给系统100发送更新以及查询。
在DNS解析实施例中,每个PE(例如,多个网络计算机120-1...120-N的每一个)可以将通过广域网(例如WAN 124)接收的若干DNS查询消息结合或多路复用成单个请求超级包(RequestSuperPakcet)并通过局域网(例如LAN 122)发送该请求超级包到LUE(例如系统100)。LUE可结合或多路复用若干DNS查询消息应答形成单个响应超级包(Response SuperPakcet)并通过局域网发送该响应超级包到适当的PE。一般地,请求或响应超级包的最大长度可由物理网络层(例如千兆位以太网)的最大传输单元(MTU)限制。例如,分别小于100字节和200字节的典型DNS查询和应答消息长度允许超过30个查询被多路复用形成单个请求超级包,同时允许超过15个应答被多路复用形成单个响应超级包。但是,较少数量的查询(例如20个查询)可被包括在单个请求超级包,以避免MTU在响应时(例如10个应答)溢出。对于更大的MTU长度,多路复用的查询和应答的数量可相应地增加。
每个多任务PE可包括用于分别管理DNS查询和应答的入线程和出线程。例如,入线程可以不整理来自通过广域网接收的进入DNS查询包的DNS查询成分,并且多路复用几毫秒的查询形成单个请求超级包。然后该入线程可通过局域网发送请求超级包到LUE。相反地,出线程可接收来自LUE的响应超级包,多路分解在其中包含的应答,并整理各种字段到有效的DNS应答中,该应答接着通过广域网被传送。一般地,如上所述,可支持其它大容量、基于查询的实施例。
在一个实施例中,请求超级包还可以包括与每个DNS查询有关的状态信息,例如源地址、协议类型等。LUE可以在响应超级包中包括状态信息和相关的DNS应答。那么每个PE可利用从LUE传送的信息构建并返回有效DNS应答消息。结果,每个PE可以有利地作为无状态机操作,即有效DNS应答可根据包含在响应超级包中的信息形成。一般地,该LUE可以将响应超级包返回到PE,而进入的超级包从该PE中产生;但是,其它变化也明显可能。
在一个可替换实施例中,每个PE可维护与每个DNS查询相关的状态信息并在请求超级包中包括状态信息的引用或句柄。LUE可在响应超级包中包括状态信息引用和相关的DNS应答。然后每个PE可利用从LUE传送的状态信息引用以及其上维护的状态信息来构建并返回有效DNS应答消息。在这个实施例中,该LUE可将响应超级包返回给PE,而进入的超级包从该PE中产生。
图2是图解说明根据本发明的实施例的消息数据结构的详细框图。一般地,消息200可包括具有多个序列号211-1...211-S以及多个消息计数212-1...212-S的头部210,和数据有效负载215。
在DNS解析实施例中,消息200可用作请求超级包和响应超级包。例如,请求超级包220可包括具有多个序列号231-1...231-S以及多个消息计数232-1...232-S的头部230,和具有多个DNS查询236-1...236-Q的数据有效负载235,这些DNS查询是在例如几毫秒的预定时间内由PE积累的。在一个实施例中,每个DNS查询236-1...236-Q可以包括状态信息,而在一个可替换实施例中,每个DNS查询236-1...236-Q可包括状态信息的句柄。
类似地,响应超级包240可包括具有多个序列号251-1...251-S以及多个消息计数252-1...252-S的头部250,和具有近似地对应于包含在请求超级包220内的多个DNS查询的多个DNS应答236-1...236-R的数据有效负载255。在一个实施例中,每个DNS应答256-1...256-R可包括与对应的DNS查询有关的状态信息,而在可替换实施例中,每个DNS应答256-1...256-R可包括与对应的DNS查询有关的状态信息的句柄。偶尔,对应的DNS应答的总长度可超过响应超级包240的数据有效负载255的长度。这个溢出可以被限制例如到单个应答,即和包含在请求超级包220内的上一次查询有关的应答。该溢出应答优选包括在对应于下一个请求超级包的下一个响应超级包240中,而不是发送只包含有单个应答的附加响应超级包240。有利地,头部250可包括恰当的信息来确定溢出条件的范围。在峰值处理条件下,多于一个的应答可溢出到下一个响应超级包中。
例如,在响应超级包240中,头部250可包括作为两对补充字段而成组的至少两个序列号251-1和251-2以及至少两个消息计数252-1和252-2。然而可以有“S”数目的序列号和消息计数对,一般地,S是一个较小的数,比如2,3,4等等。这样,头部250可包括和消息计数252-1成对的序列号251-1,和消息计数252-2成对的序列号251-2等等。一般地,消息计数252-1可反映和序列号251-1有关的、包含在数据有效负载255内的应答数。在一个实施例中,序列号251-1可以是2个字节的字段,而消息计数252-1可以是1个字节的字段。
在更具体的例子中,请求超级包220的数据有效负载235可包括7个DNS查询(如图2中描述的)。在一个实施例中,序列号231-1可被设置为唯一值(例如1024)以及消息计数232-1可被设置为7,而序列号231-2和消息计数232-2可被设置为0。在另一个实施例中,头部230可以只包含一个序列号和一个消息计数,例如被分别设置为1024和7的序列号231-1和消息计数232-1。一般地,请求超级包220可包含和特定序列号有关的所有查询。
响应超级包240的数据有效负载255可以包括7个对应的DNS应答(如图2中描述的)。在这个例子中,头部250可包括和请求超级包220类似的信息,即设置了相同唯一值(即1024)的序列号251-1,设置为7的消息计数252-1,并且序列号251-2和消息计数252-2都被设置为0。但是,在另一个例子中,响应超级包240的数据有效负载255可以只包括5个对应的DNS应答,并且消息计数252-1也设置成5。和序列号1024相关的剩余的两个响应可以包括在下一个响应超级包240中。
该下一个响应超级包240可以包括不同的序列号(例如1025)以及至少一个DNS查询,使得下一个响应超级包240可以包括和这个1024的序列号相关的两个先前的应答,以及和这个1025的序列号相关的至少一个应答。在这个例子中,下一个响应超级包240的头部250可以包括设置为1024的序列号251-1,设置为2的消息计数252-1,设置为1025的序列号251-2,设置为1的消息计数252-2。这样,响应超级包240可包括和包含在2个不同的请求超级包中的3个查询相关的总共3个应答。
图3是图解说明根据本发明的实施例的消息等待时间数据结构体系结构的详细框图。消息等待时间数据结构300可包括通常与消息200的传送和接收相关的信息。在DNS解析实施例中,消息等待时间数据结构300可包括关于请求超级包和响应超级包的等待时间信息;该等待时间信息可以被组织成根据序列号值(例如索引301)索引的表的格式。例如,消息等待时间数据结构300可包括和唯一序列号的总数相等的多个行N,如图所示,一般为表元素310、320、330。在一个实施例中,超级包头部序列号可是2个字节长度并定义唯一序列号的范围从0到216-1(即65,535)。在这个情况下,N可以等于65,536。等待时间信息可以包括请求时间戳302,请求查询计数303,响应时间戳304,响应应答计数305和响应消息计数306。在可替换实施例中,等待时间信息还可包括初始响应时间戳(没有示出)。
在一个例子中,表元素320显示对于具有等于1024的单个序列号231-1的请求超级包220的等待时间消息。请求时间戳302可以表示这个特定的请求超级包何时被发送到LUE。请求查询计数303可以表示在特定请求超级包中包含了多少查询。响应时间戳304可以表示具有等于1024的序列号的响应超级包何时在PE(例如网络计算机120-N)被接收,并且在多于一个的响应超级包在PE被接收时被更新。响应应答计数305可以表示在与这个序列号(即1024)有关的所有接收的响应超级包内包含的应答总数。响应消息计数306可表示有多少具有这个序列号(即1024)的响应超级包到达PE。根据多个响应超级包可以分解对在这个特定请求超级包中包含的查询的应答,在此情况下,响应时间戳304,响应应答计数305和响应消息计数306可以在每个附加的响应超级包被接收时更新。在可替换实施例中,初始响应时间戳可以表示包含对这个序列号(即1024)应答的第一响应超级包何时在PE被接收。在这个实施例中,响应时间戳304可在附加(即第二和后续的)响应超级包被接收时更新。
各种重要的等待时间量度可以根据包含在消息等待时间数据结构300中的等待时间消息来确定。例如,对于给定索引301(即序列号)的请求查询计数303和响应应答计数305之间的简单交叉检查可以表示丢失应答的数量。该差异可以表示被LUE无法解释地减少的查询数。比较请求时间戳302和响应时间戳304可以表示特定PE/LUE组合在当前消息负载下是如何被很好地执行。当前请求超级包序列号和当前响应超级包序列号的差值和LUE的响应性能相关;例如,差值越大,执行越慢。响应消息计数306可表示有多少响应超级包被用于每个请求超级包,并对于分析DNS解析业务量很重要。当在PE和LUE之间传输的查询和应答的等待时间增加时,PE可减少由系统处理的DNS查询包的数量。
一般地,LUE可以对进入的多路复用的请求超级包执行多线程查询,并可以将应答组合成出去的多路复用的响应超级包。例如,LUE可以为每个活动PE产生一个搜索线程或进程,并将所有来自该PE的进入的请求超级包路由到那个搜索线程。LUE可以产生一个管理器线程或进程,以便控制PE对搜索线程的相关性,以及更新线程或者进程以便更新存储器104中的数据库。每个搜索线程可以从进入的请求超级包中提取搜索查询,执行各种搜索,构建包含搜索应答的出去的响应超级包并发送该超级包给恰当的PE。更新线程可从OLTP 140-1接收对数据库的更新,并将新数据合并到数据库中。在可替换实施例中,多个网络计算机120-1...120-N可发送更新到系统100。这些更新可被包括在例如进入的请求超级包消息流中。
相应的,根据超级包协议,LUE可以对在网络处理花费少于15%的处理器能力,因此动态增加了搜索查询的吞吐量。在一个实施例中,IBM8-路M80可承受每秒180k到220k查询的搜索率(qps),而IBM24-路S80可承受400k到500k qps。分别将搜索率加倍,即达到500k和1M qps,简单地请求两次硬件,即,例如两个LUE及其伴随的PE。在另一个实施例中,运行Red Hat Linux6.2的双PentiumIII 866MHz多处理器个人计算机可承受大约100K/sec的更新率。当然,提高硬件的性能同样提高了和本发明实施例相关的搜索和更新率,并且当制造商将这些多处理器替代为执行更快的机器时,例如,所能承受的搜索和更新率可以匹配地增加。一般地,系统100不限于客户机和服务器的体系结构,并且本发明的实施例不限于硬件和/或软件的任何特定组合。
图4是图解说明根据本发明的实施例的一般数据库体系结构的框图。在这个实施例中,数据库400可包括至少一个数据库记录401的表或组,和至少一个相应的具有指向数据库记录401的组中单个记录的指针(索引,直接字节偏移量等)的搜索索引402。例如,指针405可以引用数据库记录410。
在一个实施例中,数据库400可以在数据库记录401的表或组中包括至少一个散列表403作为带有指针(索引,直接字节偏移量等)的搜索索引。散列函数可以映射搜索关键字到一个整数值,该整数值接着可被用作散列表403中的索引。因为多于一个的搜索关键字可映射到单个整数值,可利用散列链指针的单连接列表创建散列表元。例如,散列表403中的每个入口可以包含指向散列表元的第一元素的指针,并且散列表元的每个元素可以包含指向连接列表中的下一个元素或数据库记录的散列链指针。有利地,对于那些元素或数据库记录可以只要求散列链指针,该散列链指针引用散列表元中的后续元素。
散列表403可以包括指向单个数据库记录401的8字节指针数组。例如,散列表403中的散列指针404可以引用数据库记录420作为散列表元中的第一元素。数据库记录420可以包含可引用散列表元中的下一个元素或数据库记录的散列链指针424。数据库记录420还可以包括数据长度421和相关的固定或可变长度的数据422。在一个实施例中,可以包括表明数据422终止的空字符423。另外,数据库记录420可以包括能引用另一个数据库记录的数据指针425,该另一个数据库记录或者在数据库记录401的组中,或者在其中可定位附加数据的不同的数据库记录的组或表(没有示出)中。
系统100可以使用各种公知的算法以便对给定的搜索项或关键字来搜索这个数据结构体系结构。一般地,数据库400可以由在多个处理器102-1...102-P中的至少一个上执行的多个搜索进程或线程来搜索。但是,通过一个更新线程(或多个线程)不能完整地执行对数据库400的修改,除非阻止该搜索线程(多个线程)在添加、修改或删除数据库400中的信息所必要的时间周期中访问数据库400。例如,为了修改数据库400中的数据库记录430,数据库401的组可以由更新线程锁定,以阻止搜索线程在更新线程修改数据库430中的信息时访问数据库400。存在许多公知的用于锁定数据库400的机制以阻止搜索访问,包括利用自旋锁、信号灯、互斥等。另外,各种现成的商用数据库提供特定命令来锁定所有或部分数据库400,例如在由California,Redwood Shores的Oracle公司制作的Oracle 8数据库中的锁定表命令。
图5是图解说明根据本发明的另一个实施例的一般数据库体系结构的框图。在这个实施例中,数据库500可包括高级优化的、只读的主快照文件510和增长的look-aside文件520。主快照文件510可包括至少一个数据库记录511的表或组,和至少一个相应的具有指向数据库记录511的组中的单个记录的指针(索引,直接字节偏移量等)的搜索索引512。或者,主快照文件510可以在数据库记录511的表或组中包括至少一个散列表513作为具有指针(索引,直接字节偏移量等)的搜索索引。类似地,look-aside文件520可以包括至少两个数据库记录的表或组,包括有数据库添加记录521和数据库删除记录531。可以提供具有指向数据库添加记录521和数据库删除记录531中的单个记录的指针(索引,直接字节偏移量等)的对应的搜索索引522和532。或者,look-aside文件520可以分别在数据库添加记录521和数据库删除记录531中包括散列表523和533作为具有指针(索引,直接字节偏移量等)的搜索索引。
系统100可以使用各种公知的算法以便对给定的检索项或关键字来搜索这个数据结构体系结构。在一个典型的例子中,look-aside文件520可以包括所有的数据的最近变化,并且可以在只读的主快照文件510之前被搜索。如果在look-aside文件520中找到搜索关键字,返回响应而不需要访问快照文件510,但是如果没有找到关键字,那么可以搜索快照文件510。但是,当look-aside文件520不再适合具有快照文件510的存储器104时,搜索查询率按例如10至50或者更多的因子剧烈地下降。结果,为了避免或者最小化搜索查询率的任何下降,快照文件510可以通过合并包含在look-aside文件520中所有的添加、删除和修改来周期性地更新或重建。
在快照文件510中的数据不是物理上的改变而是逻辑上的添加、修改或删除。例如,可以通过创建在数据库删除记录531中对应的删除记录以及通过将指向该删除记录的指针写到散列表533中恰当的位置来将快照文件510中的数据删除或逻辑“遗忘”。可以通过将来自快照文件510的数据记录拷贝到数据库添加记录521中的新数据记录,修改新入口中的数据,并接着将指向该新入口的指针写到恰当的散列表(例如散列表522)或者数据库添加记录521中的链指针,将快照文件510中的数据进行逻辑上修改。类似地,可以通过创建数据库添加记录521中的新的数据记录,并接着将指向新入口的指针写到恰当的散列表(例如散列表522)或者数据库添加记录521中的链指针,将快照文件510中的数据逻辑上添加到快照文件510。
在DNS解析实施例中,例如,快照文件510可包括按着具有分离的搜索索引(例如511-1,511-2,512-1,512-2,513-1,513-2等,为清楚起见没有示出)的分离的数据表或块来组织的域名数据和名字服务器数据,。类似地,look-aside文件520可包括对域名数据和名字服务器数据两者的添加和修改,以及对域名数据和名字服务器数据的删除(例如521-1,521-2,522-1,522-2,523-1,523-2,531-1,531-2,532-1,532-2,533-1,533-2等,为清楚起见没有示出)。
图6是图解说明根据本发明的实施例的非并发控制的数据结构体系结构的详细框图。一般地,数据库600可以被组织成单个、可搜索的数据表示。数据集更新可以被连续地合并到数据库600中,并且可以对相关数据库记录物理执行删除或修改以便例如为后续的添加或修改释放存储器104中的空间。单个、可搜索的表示极其适合对大型数据集的大小以及高搜索与更新率的换算,并且消除对在多个搜索引擎计算机中周期性地重新创建、传输和重新载入快照文件的需要。
在DNS解析实施例中,例如数据库600可以包括域名数据610和名字服务器数据620。域名数据610和名字服务器数据620可以将带有指针(索引,直接字节偏移量等)的搜索索引包括到可变长度记录的块中。如上面所讨论的,散列函数可以映射搜索关键字到一个整数值,该整数值接着可被用作散列表中的索引。类似地,可利用散列链指针的单连接列表为每个散列表索引创建散列表元。域名数据610可包括例如散列表612作为搜索索引和可变长度的域名记录611的块。域名数据610可包括指向单个域名记录611的8字节指针数组,例如引用域名记录620的指针613。可变长度的域名记录620可包括例如下一个记录偏移量621、名字长度622、标准化名字623、链指针624(即,例如指向散列链中的下一个记录),多个名字服务器625和名字服务器指针626。链指针624和名字服务器指针626两者的大小可被优化以反映对每个特定类型数据所要求的块大小,例如对于链指针624是八个字节和对于名字服务器指针626的四个字节。
名字服务器数据630可包括例如散列表632作为搜索索引和可变长度的名字服务器记录631的块。散列表632可包括指向单个名字服务器记录631的4字节指针数组,例如引用名字服务器记录640的指针633。可变长度的名字服务器记录640可包括例如下一个记录偏移量641、名字长度642、标准化名字643、链指针644(即,例如指向散列链中的下一个记录),多个名字服务器网络地址645,名字服务器地址长度646、和一个可以是例如互联网协议(IP)网络地址的名字服务器网络地址647。一般地,名字服务器网络地址可以存储在ASCII(American Standard Code for InformationInterchange,例如ISO-14962-1997,ANSI-X3.4-1997等)或二进制格式;在这个例子中,名字服务器网络地址长度646表示名字服务器网络地址647以二进制格式存储(即4字节)。链指针644的长度也可以被优化以反映所要求的名字服务器数据块大小,例如4字节。
一般地,例如散列表的搜索索引和可变长度的数据记录都可以被构造,使得将8字节指针定位在存储器中的8字节边界。例如,散列表612可以包含连续的指向域名记录611的8字节指针数组,并且可以存储在可被8整除(即8字节边界,或8N)的存储器地址。类似地,例如散列表的搜索索引和可变长度的数据记录都可以被构造,使得将4字节指针定位在存储器中的4字节边界。例如,散列表632可以包含指向名字服务器记录631的连续的4字节指针数组,并且可以存储在可被4整除(即4字节边界,或4N)的存储器地址。结果,数据库600的修改可通过利用单个不可中断操作更新指向存储器中对齐的地址的指针来完成,该单个不可中断操作包括例如将新指针写到搜索索引,比如散列表,或将新散列链指针写到可变长度的数据记录。
图7是图解说明根据本发明的实施例的非并发控制数据结构体系结构的详细框图。一般地,数据库700可以被组织成单个、可搜索的数据表示。数据集更新可以连续地合并到数据库700中,并且可以对相关数据库记录物理执行删除或修改以便例如为后续的添加或修改释放存储器104中的空间。单个、可搜索的表示极其适合对大型数据集的大小以及高搜索与更新率的换算,并且消除对在多个搜索引擎计算机中周期性地重新创建、传输和重新载入快照文件的需要。
许多不同的物理数据结构组织是可能的。一个示例性的组织可以使用散列表的一个可替换的搜索索引以便有序地、连续地访问数据记录,例如结合了对分检索树和数字检索trie的特征的三叉检索树(trie)或TST。在基于文本的应用中,例如,whois,利用DNS安全扩展(对评述:2535的互联网工程工作小组的请求)的域名解析等,TST有利地最小化要求执行的比较操作的数量,特别是在搜索失败的情况下,并且可以利用散列法产生超过搜索引擎执行的搜索性能量度。另外,TST还可以提供先进的文本搜索特征,比如在文本搜索应用中是有用的通配符搜索,文本检索应用的例子有whois、域名解析、互联网内容搜索等。
在一个实施例中,TST可包括一系列以层次关系连接在一起的节点。根节点可以位于树的顶部,相关的子节点和连接可以形成分枝,叶子节点可以结束每个分枝的末端。每个叶子节点可以和特定的搜索关键字相关联,并且到叶子节点的路径上的每个节点可以包含该关键字的单个连续元素。树中的每个节点包含比较字符或分离值,以及指向该树中的其它连续的或子“子”节点的三个指针。这些指针引用分离值小于、等于或大于节点分离值的子节点。因此根据特定关键字检索TST涉及从根节点到最后的叶子节点穿过该树,顺序地比较关键字的每个元素或字符位置和沿着该路径的节点的分离值。另外,叶子节点还可以包含指向关键字记录的指针,其反过来可以包含指向包含和关键字(例如IP地址)相关联的记录数据的终结数据记录的至少一个指针。或者,该关键字记录可以包含在它的整体中的记录数据。记录数据可以以二进制格式、ASCII文本格式等存储。
在一个实施例中,数据库700可以被组织成TST,包括多个固定长度的搜索节点701,多个可变长度的关键字数据记录702和多个可变长度的终结数据记录703。搜索节点701可以包括如上所述的各种类型的信息,包括例如比较字符(或值)与位置,分枝节点指针和关键字指针。节点指针的长度一般可由节点数目决定,而关键字指针的长度一般可由可变长度的关键字数据集的长度决定。关键字数据记录702可以包含关键字信息和终结数据信息,包括例如指向终结数据记录或嵌入的数据记录的指针,而终结数据记录703可以包含记录数据。
在一个实施例中,每个固定长度的搜索节点的长度可以是24个字节。例如搜索节点710可以包含8比特的比较字符(或字节值)711、12比特的字符(或字节)位置712,和12比特的节点类型/状态(为清楚起见没有示出);这些数据可在该节点的头四个字节内被编码。比较字符711可以在如图7中所示的节点的第一字节内被编码,或者,可替换地,字符位置712可以在该节点的头12个比特内被编码以便利用简单移位操作优化对字符位置712的访问。每个搜索节点的下一个12字节可以包含三个32比特的指针,例如分别代表“小于”、“等于”、和“大于”分枝节点指针的指针713、指针714和指针715。这些指针可以包含计数器,或节点索引,而不是字节偏移量或存储器地址。对于固定长度的检索节点,字节偏移量可以根据计数器或索引值和固定长度来计算,比如计数器*长度。最后4个字节可以包含40比特的关键字指针716,其可以是表明对应的关键字数据记录不存在(没有示出)的空值,或指向存在的对应的关键字数据记录(没有示出)的指针以及其它数据,包括例如12比特的关键字长度和12比特的指针类型/状态字段。关键字指针716可以包含对适当关键字数据记录的1个字节偏移量,而关键字长度在消除TST内的一路分枝时可用于优化搜索和插入。该指针类型/状态字段可以包含用于有效性检查的信息和用于存储器管理的分配数据。
在一个实施例中,关键字数据记录750可以包括,例如可变长度的关键字753和至少一个终结数据指针。如图7描述的,关键字数据记录750包括两个终结数据指针:终结数据指针757和终结数据指针758。关键字数据记录750可在其前头加上12比特的关键字长度751和12比特的终结指针计数/状态752,并且可以包括填充值(为清楚起见没有示出)以便使终结数据指针757和终结数据指针758对齐存储器104中的8个字节边界。终结数据指针757和终结数据指针758可以分别包含各种数据,例如在二进制记录搜索中有用的终结数据类型、长度、状态或数据。终结数据指针757和终结数据指针758可以根据用于更快检索指定资源记录(例如终结数据记录760和终结数据记录770)的终结数据类型来存储。在另一个实施例中,关键字数据记录740可以包括除了终结数据记录指针外的嵌入的终结数据746,或者还包括终结数据记录指针。例如,关键字数据记录740可包括关键字长度741、终结指针计数742、可变长度的关键字743、嵌入记录元素744的数量,接着是嵌入记录元素744的数量中的每一个的记录元素长度745(例如,以字节为单位)和嵌入记录数据746(例如,字符串、字节序列等)。
在一个实施例中,终结数据记录760,例如可以包括12比特的长度761,4比特的状态和可变长度的字符串762(例如一个IP地址)。可替换地,可变长度的字符串762可以是字节序列。终结数据记录760可以包括填充值以便使每个终结数据记录对齐存储器104中的8字节边界。可替换地,终结数据记录760可以包括对4字节边界的填充值,或终结数据记录760可以不包括任何填充值。存储器管理算法通常可以确定终结数据记录760是否填充了8字节、4字节或0字节边界。类似地,终结数据记录770可以包括12比特的长度771、4比特的状态和可变长度的字符串772(例如一个IP地址)。
一般地,诸如TST的搜索索引和数据记录都可被构造,使得将8字节的指针定位在存储器中的8字节边界上。例如,关键字指针726可以包含8字节(或更小的)的指向关键字数据记录740的指针,并且可以被存储在可被8整除(即8字节边界,或8N)的存储器地址上。类似地,诸如TST的搜索索引和数据记录都可被构造,使得将4字节的指针定位在存储器4字节边界上。例如,节点分枝指针724可以包含4字节(或更小的)的指向节点730的指针,并且可以存储在可被4整除(即4字节边界,或4N)的存储器地址上。结果,数据库700的修改可以通过利用单个不可中断操作更新指向对齐的地址的指针来完成,该单个不可中断操作包括例如将新指针写到搜索索引,比如TST节点,或将新指针写到数据记录。
图8是图解说明根据本发明的实施例的另一个数据结构体系结构的详细框图。如上面的那样,数据库800也可以被组织成单个、可搜索的数据表示。数据集更新可以被连续地合并到数据库800中,并且可以对相关数据库记录物理执行删除或修改以便例如为后续的添加或修改释放存储器104中的空间。单个、可搜索的表示极其适合对大型数据集的大小以及高搜索与更新率的换算,并且消除了对在多个搜索引擎计算机周期性地重新创建、传输和重新载入快照文件的需要。
其它搜索索引结构可以用于访问记录数据。在一个实施例中,数据库800可以使用按有序访问关键字树(即“OAK树”)组织的可替换的有序的搜索索引。数据库800可以包括,例如多个可变长度的搜索节点801、多个可变长度的关键字记录802和多个可变长度的终结数据记录803。搜索节点801可以包括如上面所述的各种类型的信息,比如搜索关键字、指向其它搜索节点的指针、指向关键字记录的指针等。在一个实施例中,多个搜索节点801可以包括包含有搜索关键字(例如字符串)的分段以及指向其它搜索节点或关键字记录的指针的垂直和平行的节点。垂直节点可以包括,例如至少一个搜索关键字、或字符、指向多个搜索节点801内的平行节点的指针、指向多个关键字记录802内的关键字记录的指针等。平行节点可以包括,例如至少两个搜索关键字、或字符、指向多个搜索节点801内的垂直节点的指针、指向多个搜索节点801内的水平节点的指针、指向多个关键字记录802内的关键字记录的指针等。一般的,垂直节点可以包括表示搜索关键字分段(例如字符串)的一系列关键字(例如字符),而平行节点可以包括存在于搜索关键字分段(例如字符串)中的特定位置的各种关键字(例如字符)。
在一个实施例中,多个搜索节点801可以包括垂直节点810,垂直节点820和水平节点830。垂直节点810可以包括,例如2比特的节点类型811(例如“10”),38比特的地址812,8比特的长度813(例如“8”),8比特的第一字符814(例如“i”)和8比特的第二字符815(例如“null”)。在这个例子中,地址812可以指向搜索树中的下一个节点,例如垂直节点820。在一个实施例中,38比特的地址812可以包括1比特的终结/节点的指示符和引用存储器104的1T字节(~1012字节)地址空间中的8字节字之一的37比特的偏移量地址。从而,垂直节点810可以是8字节(64比特)长,并且有利地,可以定位在存储器104内的8字节字边界上。一般地,多个搜索节点801中的每个垂直节点可以定位在存储器104内的8字节字边界上。
垂直节点可以包括多字符,搜索关键字分段(例如字符串)。一般地,没有相关联的关键字数据记录的搜索关键字可以被压缩成一单个垂直节点,以便有效地减少多个搜索节点801中所要求的垂直节点的数量。在一个实施例中,垂直节点810可以在搜索关键字分段内的两个字符之上包括对于每个附加字符的8个比特,例如8比特的字符816-1、816-2...816-N(在虚轮廓中示出)。有利地,垂直节点810可以根据位于字符串分段内的附加字符数目来被填充到存储器104内的64比特的边界。例如,如果9个字符将包括到垂直节点810中,那么字符1和2可以分别被分配给第一字符814和第二字符815,并且对应于字符3到9的附加字符信息的56个比特可以被附加到垂直节点810上。可以包括附加的8个比特填充值以便使附加字符信息对齐8字节字边界。
类似地,垂直节点820可以包括,例如2比特的节点类型821(例如“10”),38比特的地址822,8比特的长度823(例如“8”),8比特的第一字符824(例如“a”)和8比特的第二字符825(例如“null”)。在这个例子中,地址822可以指向搜索树中的下一个节点,例如水平节点830。从而,垂直节点820可以是8个字节长,并且有利地,可以定位在存储器104中的8字节字边界上。当然,如果需要的话,附加信息也可以被包括在垂直节点820中,如上面所述引用垂直节点810。
水平节点830可以包括,例如2比特的节点类型831(例如“01”),38比特的第一地址832,8比特的地址计数833(例如2),8比特的第一字符834(例如“·”),8比特的最后字符835(例如“w”),可变长度的位图836,和38比特的第二地址837。在这个例子中,第一字符834可以包括一单个字符“·”,表示由垂直节点810和820定义的搜索关键字分段“la”,而最后字符831可以包括一单个字符“w”,表示由垂直节点810和820定义的搜索关键字分段“law”,以及水平节点830的最后字符835。第一地址832可以指向和搜索关键字分段“la”相关联的关键字数据记录840,而第二地址837可以指向和搜索关键字分段“law”相关联的关键字数据记录850。
位图836可以有利地表示哪个关键字(例如字符)由水平节点830引用。位图836内的一个比特位置中的“1”表示该关键字或字符由水平节点830引用,而位图836内的一个比特位置中的“0”表示该关键字或字符不由水平节点830引用。一般地,位图836的长度可以取决于在第一字符834和最后字符835之间且包括这些边界字符的连续关键字或字符的数量。例如,如果第一字符834是“a”并且最后字符835是“z”,那么位图836是26比特长,其中每个比特对应于包括“a”到“z”之间的一个字符。在这个例子中,附加的38比特的地址将被附加到对应于位图836内表示的每一个字符的平行节点830的末尾。这些38比特的地址的每一个以及位图836可以被填充,以便使每一个数量对齐存储器104中的8字节字边界。在一个实施例中,8比特的ASCII字符集可以被用作搜索关键字空间,使得位图836可以是256比特长(即28比特或32个字节)。在图8中描述的例子中,由于特定的引用字符“·”和“2”的地址计数833,位图836可以是2个比特长,并且在对应于最后字符835的每个比特位置中包括一个“1”。
在一个实施例中,如所讨论的参考关键字数据记录750(图7),关键字数据记录850可以包括,例如可变长度的关键字853和至少一个终结数据指针。如图8所描述的,关键字数据记录850包括两个终结数据指针,终结数据指针857和终结数据指针858。关键字数据记录850可以在其前头加上12比特的关键字长度851和12比特的终结指针计数/状态852,并且可以包括填充值(为清楚起见没有示出)以便使终结数据指针857和终结数据指针858对齐存储器104中的8字节边界。终结数据指针857和终结数据指针858可以分别包含10比特的终结数据类型和其它数据,例如在二进制记录搜索中使用的长度、状态或者数据。终结数据指针857和终结数据指针858可以根据用于更快检索特定资源记录(例如终结数据记录860和终结数据记录870)的终结数据类型来存储。
在另一个实施例中,并如参考关键字数据记录740所讨论的(图7),关键字数据记录840可以包括嵌入的终结数据846,而不是终结数据记录指针。例如,关键字数据记录840可以包括关键字长度841、终结指针计数842、可变长度的关键字843、嵌入记录元素844的数量,接着是嵌入记录元素844的数量中的每一个的记录元素长度845(例如,以字节为单位)和嵌入记录数据846(例如,字符串、字节序列等)。
在另一个实施例中,并如参考终结数据记录760所讨论的(图7),终结数据记录860,例如可以包括12比特的长度861,4比特的状态,和可变长度的字符串862(例如一个IP地址)。可替换地,可变长度的字符串862可是字节序列。终结数据记录860可以包括填充值(为清楚起见没有示出)以便使每个终结数据记录对齐存储器104中的8字节边界。可替换地,终结数据记录860可以包括对4字节边界的填充值(为清楚起见没有示出),或终结数据记录860可以不包括任何填充值。存储器管理算法通常可以确定终结数据记录860是否填充了8字节、4字节或0字节边界。类似地,终结数据记录870可以包括12比特的长度871、4比特的状态和可变长度的字符串872(例如一个IP地址)。
一般地,诸如OAK树的搜索索引和数据记录都可被构造,使得8字节的指针定位在存储器中的8字节边界上。例如,垂直节点810可以包含8字节(或更小的)的指向垂直节点820的指针,并且可以存储在可被8整除(即8字节边界,或8N)的存储器地址上。类似地,诸如OAK树的搜索索引和数据记录都可被构造,使得4字节的指针定位在存储器的4字节边界上。结果,数据库800的修改可以利用单个不可中断操作通过更新指向对齐的地址的指针来完成,该单个不可中断操作包括例如将新指针写到搜索索引,比如OAK树节点,或将新指针写到数据记录。
以上参考图8讨论的不同实施例显示了很多的优点。例如,OAK树数据结构是极其空间有效的和8比特清除的。正则表达式搜索可以被用于搜索包括多个字符的字符串分段的垂直节点,因为8比特第一字符(例如第一字符814),8比特第二字符(例如第二字符815)以及任何附加的8比特字符(例如附加字符816-1...816-N)可以连续地定位在垂直节点(例如垂直节点810)中。搜索失败可以很快地被发现,并且可以需要穿过不多于N个节点来搜索N字符长的搜索字符串。
图9是图解说明根据本发明的实施例的用于搜索和并发更新数据库而不使用数据库锁或访问控制的方法的顶层流程图。
可以创建一个更新线程和多个搜索线程(900)。在一个实施例中,系统100可以产生单个更新线程,以合并从例如WAN 124上的OLTP服务器140-1接收的对本地数据库的更新。在其它实施例中,系统100可以接收来自WAN 124上的OLTP服务器140-1...140-S和来自WAN 124或LAN 122上的多个网络计算机120-1...120-N的更新。系统100还可以响应从多个网络计算机120-1...120-N接收的每个对话请求来产生搜索线程。例如,一个管理器线程可以为从多个网络计算机120-1...120-N传送的对话请求轮询与一个或多个网络接口114-1...114-O相关联的一个或多个控制端口。一旦来自特定网络计算机120-1...120-N的对话请求被接收,该管理线程可以产生一个搜索线程并将该搜索线程和该特定网络计算机(例如PE)相关联。
在一个可替换实施例中,系统100可以产生多个搜索线程而不用为来自多个网络计算机120-1...120-N的对话请求轮询。在这个实施例中,该搜索线程可以不和特定网络计算机相关联,并且可以均匀分布在多个处理器102-1...102-P中。或者,该搜索线程可以在多个处理器102-1...102-P的子集上执行。搜索线程的数量可以不必和网络计算机的数量(比如N)匹配。
多个搜索查询可以通过网络被接收(910)。在一个实施例中,多个网络计算机120-1...120-N可以通过LAN 122或可替换的WAN124向系统100发送多个搜索查询。该多个搜索查询可以包括,例如搜索项或关键字,以及跟每个查询相关联的状态信息(例如查询源地址,协议类型等)。状态信息可以由系统100显式地维护,或可替换地,提供状态信息句柄。在优选实施例中,多个网络计算机120-1...120-N的每一个可以将预先确定数量的搜索查询多路复用成用于传输给系统100的单个网络包(例如如图2描述的请求超级包)。
每个搜索查询可以被分配给多个搜索线程之一用于处理(920)。在一个实施例中,每个搜索线程可以和多个网络计算机120-1...120-N之一相关联,并且从那个特定网络计算机接收的所有搜索查询可以被分配给搜索线程(920)。换句话说,一个搜索线程可以处理从单个网络计算机(比如单个PE)到达的所有搜索查询。在一个实施例中,每个搜索线程可以从单个多路复用的网络包(例如,如图2描述的请求超级包220)中提取单个搜索查询,或可替换地,该提取可以由不同进程或线程执行。
在另一个实施例中,从多个网络计算机120-1...120-N中的每一个接收的搜索查询可以被分配给不同的搜索线程(920)。在这个实施例中,该多线程分配可以基于一个优化的分布函数,该函数可以结合多种系统参数,包括例如处理器装载。当然,将搜索查询分配给搜索线程可以随时间而变化,根据各种系统参数,包括处理器可利用性、系统部件性能等。各种机制可以用作将搜索查询传送给系统100内分配的搜索线程,例如共享存储器,内部处理消息,令牌,信号灯等。
每个搜索线程可以根据分配的搜索查询来搜索数据库(930)。搜索数据库可以依据数据库的基础结构。
参考图4中描述的的数据库实施例,数据库400可以用搜索关键字来搜索(930)。接着可确定对应于该搜索关键字的数据记录(例如数据库记录420)。参考图5中描述的的数据库实施例,0可以首先用搜索关键字来搜索look-aside文件52(930),并且如果没有确定匹配,那么可搜索快照文件510(930)。接着可以确定对应于该搜索关键字的数据记录。
参考图6中描述的数据库实施例,可以首先用搜索关键字来搜索域名数据610(930),并且接着可确定对应于该搜索关键字的名字服务器数据630中的资源数据。例如,对于搜索关键字“la.com”,可用域名数据610中的域名记录620来确定匹配。提取合适的信息,包括例如名字服务器指针626。那么,可用名字服务器指针626索引合适的名字服务器记录640,并且可提取名字服务器网络地址647。
参考图7中描述的的数据库实施例,可用搜索关键字搜索TST(930),由此确定资源数据。例如,对于搜索关键字“law.com”,可以搜索搜索节点710(930),并且可用节点730来确定匹配。可提取关键字指针736,由此可确定关键字数据记录750。接着可识别终结数据指针752的数量,并且可提取每个终结数据指针。例如,终结数据指针757可以引用终结数据记录760,并且终结记录指针758可以引用终结数据770。接着可以分别利用长度761和771从每个终结数据记录中提取可变长度的资源数据,例如名字服务器网络地址762和名字服务器网络地址772。
参考图8中描述的数据库实施例,可用搜索关键字来搜索OAK树(930),由此确定资源数据。例如,对于搜索关键字“law.com”,可以搜索搜索节点810(930),并且可用节点830来确定匹配。可提取第二地址837,由此确定关键字数据记录850。接着可识别终结数据指针852的数量,并且可提取每个终结数据指针。例如,终结数据指针857可以引用终结数据记录860,并且终结数据指针858可以引用终结数据870。接着可以分别利用长度861和871从每个终结数据记录中提取可变长度的资源数据,例如名字服务器网络地址862和名字服务器网络地址872。
每个搜索线程可以创建对应于分配的搜索查询的多个搜索应答(940)。如果没有为特定搜索关键字找到匹配,那么应答可以包括合适的指示,例如空字符。对于域名解析,例如,搜索关键字可以是“law.com”并且对应的资源数据可以是“180.1.1.1”。多于一个的名字服务器网络地址可以和一个搜索关键字相关联,在这个情况下,可以确定多于一个的名字服务器网络地址。
可以通过网络发送应答(950)。在一个实施例中,每个搜索线程可以将合适的应答多路复用成对应于包含原始查询的单个网络包(例如请求超级包220)的单个网络包(例如响应超级包240)。或者,不同的进程或线程可以将合适的应答多路复用成单个网络包。接着响应网络包可以通过LAN 122或可替换的WAN 124被发送到多个网络计算机120-1...120-N中的合适的网络计算机(950)。在一个实施例中,响应包可以被发送到发出请求包的相同网络计算机,而在另一个实施例中,响应包可以被发送到不同的网络计算机。
更新线程可以接收网络上的新信息(960)。在一个实施例中,新信息可以例如通过WAN 124从OLTP服务器140-1发送到系统100。在其它实施例中,系统100可以通过WAN 124接收来自OLTP服务器140-1...140-S的更新,和通过WAN 124或LAN 122接收来自多个网络计算机120-1...120-N的更新。在DNS解析实施例中,例如,新信息可以包括新域名数据、新名字服务器数据、用于存在的域名的新名字服务器等。可替换地,新信息可以表示可从数据库中删除域名、名字服务器、名字服务器网络地址等。一般地,包括在数据库中的任何信息都可被适当地添加、修改或删除。
更新线程可以在数据库中创建包含新信息的新元素(970)。一般地,对在数据库的存在的元素内包含的信息的修改是通过根据存在的元素来创建新元素,然后修改新元素以包括该新信息来体现。在这个过程中,在该新元素被确认到数据库前,新元素对于正在系统100上执行的搜索线程或进程是不可见的。一般地,对数据库的添加可以用类似的方式完成,而不需要使用在存在的元素内包含的信息。在一个实施例中,从数据库中删除一个存在的元素可以通过添加新的、显式的“删除”元素到数据库来完成。在另一个实施例中,从数据库删除一个存在的元素可以通过用适当的指示符(比如空指针等)重写指向存在的元素的指针来完成。在这个实施例中,更新线程在数据库中不创建包含新信息的新元素。
在DNS解析实施例中,例如,新信息可以包括被添加到数据库的新域名。在这个例子中,为了简明,该新域名可以引用存在的名字服务器。参考图6,用于新域名记录615的存储器空间可以从和域名记录611相关联的存储器池中分配,或可替换地,从和域名数据610相关联的通用存储器池中分配。该新域名可以被标准化并且拷贝到新域名记录615,并且指向存在的名字服务器(例如名字服务器记录655)的指针可以被确定并且拷贝到新域名记录615。其它信息可以被计算并且添加到新域名记录615;例如多个名字服务器、链指针等。在更复杂的例子中,新信息可以包括具有对应的资源数据的新搜索关键字。
参考图7,可以首先创建新搜索节点705以及新关键字数据记录780。在这个例子中,新搜索节点705可以包括在第一位置中的比较字符(“m”),它比在存在的搜索节点710的第一位置中的比较字符(“l”)大。结果,搜索节点705可以被插入到同搜索节点710一样的“level”处的TST中(即,第一字符位置)。在搜索节点705被确认到数据库之前,搜索节点710的4字节的“大于”指针715可以包含一个“空“指针。搜索节点705还可以包含4字节的关键字指针706,其包含有指向新关键字数据记录780的40比特的指针。关键字数据记录780可以包括关键字长度781(例如“5”)和类型782(例如指明嵌入资源数据),可变长度的关键字783(例如“m.com”),多个嵌入资源784(例如“1”),资源长度785(例如“g”),以及可变长度的资源字符串786或字节序列(例如“180.1.1.1”)。在一个实施例中,可以从与TST节点701相关联的存储器池中为搜索节点705分配存储器空间,而可从与多个关键字数据记录702相关联的存储器池中为关键字数据记录770分配存储器空间。
参考图8,可以首先创新搜索节点890以及新关键字数据记录880。在这个例子中,新搜索节点890可以是水平节点,包括例如2比特的节点类型(例如“01”),38比特的第一地址892,8比特的地址计数893(例如2),8比特的第一字符894(例如“l”),8比特的最后字符895(例如“m”),可变长度的位图896和38比特的第二地址897。第一地址892可以指向垂直节点820,在“l...”搜索字符串路径中的下一个垂直节点,而第二地址897可以指向和搜索关键字分段“m”相关联的关键字数据记录880。关键字数据记录880可以包括关键字长度881(例如“5”)和类型882(例如指明嵌入资源数据),可变长度的关键字883(例如“m.com”),多个嵌入资源884(例如“1”),资源长度885(例如“g”),以及可变长度的资源字符串886或字节序列(例如“180.1.1.1”)。在一个实施例中,可从与多个搜索节点801相关联的存储器池中为搜索节点890分配存储器空间,而可从与多个关键字数据记录802相关联的存储器池中为关键字数据记录880分配存储器空间。
更新线程可以利用单个不可中断操作将指针写到数据库(980)。一般地,新元素在将指向新元素的指针写到数据库的适当位置的瞬间被确认到数据库中(即,对于搜索线程或进程变为可见)。如上所讨论的,可以在存储器中对齐该适当的位置,使得单个操作包括适当长度的单个存储指令。在实施例中,可以通过用适当的指示符(例如“null”指针等)重写指向存在的元素的指针的瞬间,从数据库删除该存在的元素(即,对于搜索线程或进程变为可见)。又一次,可在存储器中对齐该适当的位置,使得单个操作包括适当长度的单个存储指令。
参考图6,对应于域名记录620的8字节的指针可以被写到散列表612(例如元素613)中。重要地,该散列表入口在存储器104的8字节的边界上对齐,以保证单个8字节存储指令用于更新这个值。参考图7,对应于新搜索节点705的4字节的指针可以被写到搜索节点710中的4字节的“更大”节点指针715。重要地,该节点指针715在存储器104的4字节的边界上对齐,以保证单个4字节存储指令用于更新这个值。参考图8,多个搜索节点801也可以包括树顶地址899,该地址可以在存储器104的8字节的字边界上对齐并且引用多个搜索节点801中的第一节点(即,例如垂直节点810)。可以利用单个存储指令将对应于新搜索节点890的8字节的指针写到树顶地址899。在这些实施例中的每一个中,刚好在存储指令之前,该新数据对于搜索线程是不可见的,而刚好存储指令之后,该新数据对于搜索线程是可见的。这样,通过单个不可中断操作,新数据可以被确定到数据库而不需使用数据库锁或访问控制。
在一个实施例中,更新线程可以在指针被写到(980)数据库之后物理上删除(990)存在的元素。有利地,对于数据库中被修改或被删除的存在的元素,从存储器104中物理删除这些元素可以被延迟,以保持正在进行的搜索的一致性。例如,在修改了存在的元素以及对应的新元素被确认到数据库之后,从存储器104中物理删除这些元素可以被延迟,使得具有刚在新元素被确认到数据库之前获得的结果的存在的搜索线程可以继续使用数据的前一个状态。类似地,在已经从数据库中删除一个存在的元素之后,从存储器104中物理删除该存在的元素可以被延迟,使得具有刚在从数据库中删除该存在的元素之前获得的结果的该存在的搜索线程可以继续使用数据的前一个状态。该更新线程可以在存在的元素被修改、或删除之前开始的所有搜索线程结束之后物理地删除(990)存在的元素。
潜在的复杂性可以由本发明实施例相关的方法与系统100的各种体系结构特性的相互作用而出现。例如,其上运行更新线程的处理器(例如处理器102-1,102-2等)可以包括支持无序指令执行的硬件。在另一个例子中,系统100可以包括可生成一系列指令的、与本发明实施例相关的优化编译器,这些指令已经被最佳地重新安排以开发处理器内部体系结构(例如处理器102-1,102-2等)的并行性。本领域的技术人员随时承认还有许多其它的复杂性。例如通过创建在新元素的创建(970)和到数据库的指针写入(980)之间的相关性,可以消除由无序指令执行引起的数据危险性。
在一个实施例中,可以通过插入附加算法操作,比如异或(XOR)指令到由处理器102-1执行的指令序列中,以便在执行到数据库的指针写入(980)之前强制执行与新元素的创建(970)相关联的指令或者完成,来建立这些相关性。例如,存储器104中对应于新元素的位置的内容可以和存储器104中对应于指向该新元素的指针的位置的内容进行异或。结果,新元素的地址可以被写到(980)存储器104,以确认该新元素到数据库。本领域技术人员随时明白克服这些复杂性的许多方法。
在这里详细地描述和示例了本发明的几个实施例。但是,需要理解,本发明的修改和变化可由上述的教授覆盖,并且都在所附的权利要求的范围内而没有偏离本发明的精神和意图范围。

Claims (54)

1.一种多线程网络数据库系统,包括:
与网络连接的至少一个处理器;和
与所述处理器连接的存储器,该存储器包括数据库和指令,所述处理器执行该指令以:
创建更新线程和多个搜索线程;
将通过网络接收的多个搜索查询的每一个分配到多个搜索线程之一;
对于每个搜索线程:
根据分配的搜索查询搜索数据库,
创建对应于分配的搜索查询的多个搜索应答,并且
通过网络发送多个搜索应答;并且
对于更新线程:
根据通过网络接收的新信息创建新元素,并且
在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向新元素的指针写到数据库。
2.如权利要求1所述系统,其中单个不可中断操作是存储指令。
3.如权利要求1所述系统,还包括:
对于更新线程:
将所述指针写到数据库之后,从存储器物理地删除存在的元素。
4.如权利要求2所述系统,其中存储指令将4个字节写到位于4字节边界上的存储器地址。
5.如权利要求2所述系统,其中存储指令将8个字节写到位于8字节边界上的存储器地址。
6.如权利要求2所述系统,其中所述处理器具有至少n个字节大小的字,所述存储器具有至少n个字节宽并且该存储指令将n个字节写到位于n字节边界的存储器地址。
7.如权利要求1所述系统,其中多个搜索查询在单个网络包中接收。
8.如权利要求1所述系统,其中多个搜索应答在单个网络包中发送。
9.如权利要求1所述系统,其中所述限制访问包括数据库锁定。
10.如权利要求1所述系统,其中所述限制访问包括自旋锁定。
11.如权利要求10所述系统,其中所述自旋锁定包括利用至少一个信号灯。
12.如权利要求11所述系统,其中信号灯是互斥信号灯。
13.如权利要求1所述系统,还包括多个处理器和对称多处理操作系统。
14.如权利要求13所述系统,其中多个搜索线程至少每秒执行100,000个搜索。
15.如权利要求14所述系统,其中更新线程至少每秒执行10,000个更新。
16.如权利要求15所述系统,其中更新线程每秒执行50,000到130,000个更新。
17.如权利要求1所述系统,其中将指向新元素的指针写到搜索索引。
18.如权利要求17所述系统,其中搜索索引是TST。
19.如权利要求17所述系统,其中搜索索引是散列表。
20.如权利要求1所述系统,其中将指向新元素的指针写到数据库中的数据记录。
21.一种搜索和并发更新数据库的方法,包括:
创建更新线程和多个搜索线程;
将通过网络接收的多个搜索查询中的每一个分配到多个搜索线程之一;
对于每个搜索线程:
根据分配的搜索查询搜索数据库,
创建对应于分配的搜索查询的多个搜索应答,并且
通过网络发送多个搜索应答;并且
对于更新线程:
根据通过网络接收的新信息创建新元素,并且
在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向新元素的指针写到数据库。
22.如权利要求21所述方法,其中单个不可中断操作是存储指令。
23.如权利要求21所述方法,还包括:
对于更新线程:
将所述指针写到数据库之后,物理删除存在的元素。
24.如权利要求22所述方法,其中存储指令将4个字节写到位于4字节边界上的存储器地址。
25.如权利要求22所述方法,其中存储指令将8个字节写到位于8字节边界上的存储器地址。
26.如权利要求21所述方法,其中多个搜索查询在单个网络包中接收。
27.如权利要求21所述方法,其中多个搜索应答在单个网络包中发送。
28.如权利要求21所述方法,其中所述限制访问包括数据库锁定。
29.如权利要求21所述方法,其中所述限制访问包括自旋锁定。
30.如权利要求29所述方法,其中所述自旋锁定包括利用至少一个信号灯。
31.如权利要求30所述方法,其中信号灯是互斥信号灯。
32.如权利要求21所述方法,其中多个搜索线程至少每秒执行100,000个搜索。
33.如权利要求32所述方法,其中更新线程至少每秒执行10,000个更新。
34.如权利要求33所述方法,其中更新线程每秒执行50,000到130,000个更新。
35.如权利要求21所述方法,其中将指向新元素的指针写到搜索索引。
36.如权利要求35所述方法,其中搜索索引是TST。
37.如权利要求21所述方法,其中将指向新元素的指针写到数据库中的数据记录。
38.一种计算机可读介质,包括由至少一个处理器执行以实现搜索和并发更新数据库的方法的指令,该方法包括:
创建更新线程和多个搜索线程;
将通过网络接收的多个搜索查询中的每一个分配到多个搜索线程之一;
对于每个搜索线程:
根据分配的搜索查询搜索数据库,
创建对应于分配的搜索查询的多个搜索应答,并且
通过网络发送多个搜索应答;并且
对于更新线程:
根据通过网络接收的新信息创建新元素,并且
在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向新元素的指针写到数据库。
39.如权利要求38所述计算机可读介质,其中单个不可中断操作是存储指令。
40.如权利要求38所述计算机可读介质,还包括:
对于更新线程:
将所述指针写到数据库之后,物理删除存在的元素。
41.如权利要求39所述计算机可读介质,其中存储指令将4个字节写到位于4字节边界上的存储器地址。
42.如权利要求39所述计算机可读介质,其中存储指令将8个字节写到位于8字节边界上的存储器地址。
43.如权利要求38所述计算机可读介质,其中多个搜索查询在单个网络包中接收。
44.如权利要求38所述计算机可读介质,其中多个搜索应答在单个网络包中发送。
45.如权利要求38所述计算机可读介质,其中所述限制访问包括数据库锁定。
46.如权利要求38所述计算机可读介质,其中所述限制访问包括自旋锁定。
47.如权利要求46所述计算机可读介质,其中所述自旋锁定包括利用至少一个信号灯。
48.如权利要求47所述计算机可读介质,其中信号灯是互斥信号灯。
49.如权利要求38所述计算机可读介质,其中将指向新元素的指针写到搜索索引。
50.如权利要求49所述计算机可读介质,其中搜索索引是TST。
51.如权利要求38所述计算机可读介质,其中将指向新元素的指针写到数据库中的数据记录。
52.一种搜索和并发更新数据库的方法,包括:
创建更新线程和多个搜索线程;
将通过网络接收的多个搜索查询中的每一个分配到多个搜索线程之一;
对于每个搜索线程:
根据分配的搜索查询搜索数据库,
创建对应于分配的搜索查询的多个搜索应答,并且
通过网络发送多个搜索应答;并且
对于更新线程:
在不需要限制多个搜索线程对数据库访问的情况下,利用单个不可中断操作将指向存在的元素的指针写到数据库。
53.如权利要求52所述方法,其中指针包括空指针。
54.如权利要求52所述方法,还包括:
对于更新线程:
将所述指针写到数据库之后,物理删除存在的元素。
CN028266196A 2001-11-01 2002-11-01 高速非并发控制数据库 Expired - Fee Related CN1610877B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US33084201P 2001-11-01 2001-11-01
US60/330,842 2001-11-01
US36516902P 2002-03-19 2002-03-19
US60/365,169 2002-03-19
PCT/US2002/035082 WO2003038596A1 (en) 2001-11-01 2002-11-01 High speed non-concurrency controlled database

Publications (2)

Publication Number Publication Date
CN1610877A true CN1610877A (zh) 2005-04-27
CN1610877B CN1610877B (zh) 2010-06-02

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 After (3)

Application Number Title Priority Date Filing Date
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 更新远程数据库的方法和系统

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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395996C (zh) * 2005-06-23 2008-06-18 华为技术有限公司 一种网络管理系统的信息同步方法
CN102096676A (zh) * 2009-12-11 2011-06-15 中国移动通信集团公司 数据更新及查询控制方法及系统
CN101617299B (zh) * 2007-01-05 2011-12-21 索尼爱立信移动通讯股份有限公司 数据库管理方法
CN105574407A (zh) * 2015-12-28 2016-05-11 无锡天脉聚源传媒科技有限公司 一种共享的处理方法和装置
CN106250487A (zh) * 2016-07-29 2016-12-21 杭州华三通信技术有限公司 一种数据库并发控制方法及装置
CN107710200A (zh) * 2015-06-24 2018-02-16 华为技术有限公司 用于并行化smp数据库中的基于散列的运算符的系统和方法
CN110798332A (zh) * 2018-08-03 2020-02-14 Emc Ip控股有限公司 用于搜索目录访问组的方法和系统
CN110990377A (zh) * 2019-11-21 2020-04-10 上海达梦数据库有限公司 一种数据装载方法、装置、服务器及存储介质

Families Citing this family (259)

* Cited by examiner, † Cited by third party
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号码域名存储和查询方法
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 주식회사 하이닉스반도체 상변환 기억 소자 및 그의 제조방법
US7636829B2 (en) * 2006-05-02 2009-12-22 Intel Corporation System and method for allocating and deallocating memory within transactional code
TW200743000A (en) * 2006-05-11 2007-11-16 Ming-Ta Hsu Report retrieval and presentation methods and systems
US8713188B2 (en) 2007-12-13 2014-04-29 Opendns, Inc. Per-request control of DNS behavior
US8606926B2 (en) * 2006-06-14 2013-12-10 Opendns, Inc. Recursive DNS nameserver
US7575163B2 (en) 2006-07-18 2009-08-18 At&T Intellectual Property I, L.P. Interactive management of storefront purchases
US8400947B2 (en) * 2006-07-20 2013-03-19 Tekelec, Inc. Methods, systems, and computer program products for specifying a particular ENUM service type in a communications network that utilizes a plurality of different ENUM service types
US20080034053A1 (en) * 2006-08-04 2008-02-07 Apple Computer, Inc. Mail Server Clustering
US20080052270A1 (en) * 2006-08-23 2008-02-28 Telefonaktiebolaget Lm Ericsson (Publ) Hash table structure and search method
US7921075B2 (en) * 2006-09-29 2011-04-05 International Business Machines Corporation Generic sequencing service for business integration
US9274857B2 (en) * 2006-10-13 2016-03-01 International Business Machines Corporation Method and system for detecting work completion in loosely coupled components
US9514201B2 (en) * 2006-10-13 2016-12-06 International Business Machines Corporation Method and system for non-intrusive event sequencing
US7680956B2 (en) * 2006-10-24 2010-03-16 Cisco Technology, Inc. Communicating additional information in a DNS update response by requesting deletion of a specific record
US9824107B2 (en) 2006-10-25 2017-11-21 Entit Software Llc Tracking changing state data to assist in computer network security
KR100898995B1 (ko) * 2006-10-25 2009-05-21 노키아 코포레이션 원격 전자 거래
US7593973B2 (en) * 2006-11-15 2009-09-22 Dot Hill Systems Corp. Method and apparatus for transferring snapshot data
US20080254436A1 (en) * 2006-11-16 2008-10-16 Morgia Michael A Selection Of A Consensus From A Plurality Of Ideas
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US8181187B2 (en) * 2006-12-01 2012-05-15 Portico Systems Gateways having localized in-memory databases and business logic execution
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
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US9176783B2 (en) 2010-05-24 2015-11-03 International Business Machines Corporation Idle transitions sampling with execution context
US8843684B2 (en) 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
FR2964213B1 (fr) * 2010-09-01 2013-04-26 Evidian Annuaire d'identite et procede de mise a jour d'un annuaire d'identite
US8489724B2 (en) * 2010-09-14 2013-07-16 Cdnetworks Co., Ltd. CNAME-based round-trip time measurement in a content delivery network
US20120089646A1 (en) * 2010-10-08 2012-04-12 Jain Rohit N Processing change data
US8332433B2 (en) 2010-10-18 2012-12-11 Verisign, Inc. Database synchronization and validation
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
JP5652281B2 (ja) * 2011-03-18 2015-01-14 富士通株式会社 業務処理サーバ、業務処理方法及び業務処理プログラム
RU2480819C2 (ru) * 2011-06-28 2013-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ оптимизации работы со связными списками
US8549579B2 (en) * 2011-07-06 2013-10-01 International Business Machines Corporation Dynamic data-protection policies within a request-reply message queuing environment
US9087071B2 (en) * 2011-08-03 2015-07-21 Amazon Technologies, Inc. Gathering transaction data associated with locally stored data files
US8782352B2 (en) * 2011-09-29 2014-07-15 Oracle International Corporation System and method for supporting a self-tuning locking mechanism in a transactional middleware machine environment
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 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
KR102239280B1 (ko) 2014-04-30 2021-04-13 오라클 인터내셔날 코포레이션 트랜잭셔널 미들웨어 머신 환경에서 적응적 셀프-튜닝 락킹 메커니즘을 지원하는 시스템 및 방법
US9778949B2 (en) * 2014-05-05 2017-10-03 Google Inc. Thread waiting in a multithreaded processor architecture
US9021260B1 (en) 2014-07-03 2015-04-28 Palantir Technologies Inc. Malware data item analysis
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9699023B2 (en) * 2014-07-18 2017-07-04 Fujitsu Limited Initializing a network interface based on stored data
US10204134B2 (en) 2014-08-14 2019-02-12 International Business Machines Corporation Automatic detection of problems in a large-scale multi-record update system and method
US11176106B2 (en) * 2014-11-19 2021-11-16 Unisys Corporation Dynamic modification of database schema
CN104572881A (zh) * 2014-12-23 2015-04-29 国家电网公司 基于多任务并发的配网图模导入方法
US9734016B2 (en) * 2015-02-24 2017-08-15 Red Hat Israel, Ltd. Secure live virtual machine guest based snapshot recovery
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
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
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 亳州市药通信息咨询有限公司 一种中药材价格指数系统
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
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)

* Cited by examiner, † Cited by third party
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

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395996C (zh) * 2005-06-23 2008-06-18 华为技术有限公司 一种网络管理系统的信息同步方法
CN101617299B (zh) * 2007-01-05 2011-12-21 索尼爱立信移动通讯股份有限公司 数据库管理方法
CN102096676A (zh) * 2009-12-11 2011-06-15 中国移动通信集团公司 数据更新及查询控制方法及系统
CN102096676B (zh) * 2009-12-11 2014-04-09 中国移动通信集团公司 数据更新及查询控制方法及系统
CN107710200A (zh) * 2015-06-24 2018-02-16 华为技术有限公司 用于并行化smp数据库中的基于散列的运算符的系统和方法
CN107710200B (zh) * 2015-06-24 2020-11-06 华为技术有限公司 用于并行化smp数据库中的基于散列的运算符的系统和方法
CN105574407A (zh) * 2015-12-28 2016-05-11 无锡天脉聚源传媒科技有限公司 一种共享的处理方法和装置
CN105574407B (zh) * 2015-12-28 2018-09-25 无锡天脉聚源传媒科技有限公司 一种共享的处理方法和装置
CN106250487A (zh) * 2016-07-29 2016-12-21 杭州华三通信技术有限公司 一种数据库并发控制方法及装置
CN110798332A (zh) * 2018-08-03 2020-02-14 Emc Ip控股有限公司 用于搜索目录访问组的方法和系统
CN110798332B (zh) * 2018-08-03 2022-09-06 Emc Ip控股有限公司 用于搜索目录访问组的方法和系统
US11500873B2 (en) 2018-08-03 2022-11-15 EMC IP Holding Company LLC Methods and systems for searching directory access groups
CN110990377A (zh) * 2019-11-21 2020-04-10 上海达梦数据库有限公司 一种数据装载方法、装置、服务器及存储介质
CN110990377B (zh) * 2019-11-21 2023-08-22 上海达梦数据库有限公司 一种数据装载方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
AU2002356885B2 (en) 2008-10-02
KR100941350B1 (ko) 2010-02-11
US20030084074A1 (en) 2003-05-01
EA005646B1 (ru) 2005-04-28
EA200400614A1 (ru) 2004-10-28
EA200400618A1 (ru) 2004-10-28
AU2002350104B2 (en) 2008-12-04
NZ533166A (en) 2005-12-23
CN1610906B (zh) 2012-05-09
MXPA04004169A (es) 2004-07-08
CA2472014A1 (en) 2003-05-08
KR20040053255A (ko) 2004-06-23
EP1451714A1 (en) 2004-09-01
IL161723A (en) 2010-06-30
EP2477126A2 (en) 2012-07-18
EP2562661A2 (en) 2013-02-27
IL161712A0 (en) 2004-09-27
EA200400612A1 (ru) 2004-12-30
JP4897196B2 (ja) 2012-03-14
WO2003038565A3 (en) 2004-02-26
US7203682B2 (en) 2007-04-10
US6681228B2 (en) 2004-01-20
JP4399552B2 (ja) 2010-01-20
KR20040053266A (ko) 2004-06-23
IL161723A0 (en) 2005-11-20
BR0213862A (pt) 2004-12-21
IL161722A0 (en) 2005-11-20
CA2466107A1 (en) 2003-05-08
NZ532773A (en) 2005-11-25
CA2466117C (en) 2013-12-31
EP1451728A1 (en) 2004-09-01
MXPA04004201A (es) 2005-01-25
HK1075308A1 (en) 2005-12-09
JP2005508050A (ja) 2005-03-24
AU2002356884B2 (en) 2008-12-04
EP1451714B1 (en) 2018-05-02
BR0213864A (pt) 2004-12-21
US20030084039A1 (en) 2003-05-01
BR0213863A (pt) 2004-12-21
CA2466110A1 (en) 2003-05-08
JP2005508051A (ja) 2005-03-24
EP1449062A1 (en) 2004-08-25
EP1461723A4 (en) 2009-08-05
US8171019B2 (en) 2012-05-01
US20030084075A1 (en) 2003-05-01
EA006223B1 (ru) 2005-10-27
CA2466110C (en) 2011-04-19
IL161722A (en) 2009-07-20
CA2472014C (en) 2012-07-10
NO331574B1 (no) 2012-01-30
CN1610901A (zh) 2005-04-27
JP4420325B2 (ja) 2010-02-24
EP1451728A4 (en) 2009-08-05
ZA200404266B (en) 2005-10-26
US8682856B2 (en) 2014-03-25
US7047258B2 (en) 2006-05-16
EP1449049A2 (en) 2004-08-25
US20040254926A1 (en) 2004-12-16
ZA200404267B (en) 2005-08-31
MXPA04004203A (es) 2005-05-16
IL161712A (en) 2011-02-28
US7167877B2 (en) 2007-01-23
AU2002356886A1 (en) 2003-05-12
US20070100808A1 (en) 2007-05-03
US20140108452A1 (en) 2014-04-17
IL161721A0 (en) 2005-11-20
NO20042259L (no) 2004-08-02
CN1610906A (zh) 2005-04-27
ZA200403597B (en) 2005-10-26
NO20042258L (no) 2004-08-02
EP1449062B1 (en) 2018-05-16
AU2002350106B2 (en) 2008-09-11
CN1610902B (zh) 2010-05-05
NZ532772A (en) 2005-12-23
US20030084057A1 (en) 2003-05-01
US20090106211A1 (en) 2009-04-23
CA2466107C (en) 2013-01-08
WO2003038654A1 (en) 2003-05-08
CA2466117A1 (en) 2003-05-08
WO2003038683A1 (en) 2003-05-08
KR20040053254A (ko) 2004-06-23
CN100557595C (zh) 2009-11-04
NO20042260L (no) 2004-08-02
BR0213807A (pt) 2004-12-07
EP1461723A1 (en) 2004-09-29
MXPA04004202A (es) 2005-05-16
EP2477126A3 (en) 2013-09-11
EA006045B1 (ru) 2005-08-25
KR100970122B1 (ko) 2010-07-13
JP2005510782A (ja) 2005-04-21
EP1449062A4 (en) 2009-08-05
EP2503476A1 (en) 2012-09-26
CN1610902A (zh) 2005-04-27
IL161721A (en) 2011-08-31
EP2450812A1 (en) 2012-05-09
EA006038B1 (ru) 2005-08-25
EP1449049A4 (en) 2009-10-28
CN1610877B (zh) 2010-06-02
JP4420324B2 (ja) 2010-02-24
EP2495671A1 (en) 2012-09-05
JP2005508042A (ja) 2005-03-24
KR100953137B1 (ko) 2010-04-16
WO2003038565A2 (en) 2003-05-08
US20030084038A1 (en) 2003-05-01
US20120102016A1 (en) 2012-04-26
EP2562661A3 (en) 2016-05-25
ZA200404268B (en) 2005-10-26
EA200400613A1 (ru) 2004-10-28
NZ532771A (en) 2005-12-23
EP1451714A4 (en) 2009-08-05
KR100977161B1 (ko) 2010-08-20
US8630988B2 (en) 2014-01-14
WO2003038596A1 (en) 2003-05-08
WO2003038653A1 (en) 2003-05-08
NO20042261L (no) 2004-08-02
KR20040053268A (ko) 2004-06-23

Similar Documents

Publication Publication Date Title
CN1610877B (zh) 高速非并发控制数据库
AU2002350106A1 (en) High speed non-concurrency controlled database
AU2002356884A1 (en) Transactional memory manager
US8336051B2 (en) Systems and methods for grouped request execution
US8156082B2 (en) System and methods for temporary data management in shared disk cluster
Kalidhindi et al. Angela: A sparse, distributed, and highly concurrent merkle tree

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100602

Termination date: 20151101

EXPY Termination of patent right or utility model