MXPA04004202A - Administrador de memoria de transaccion. - Google Patents

Administrador de memoria de transaccion.

Info

Publication number
MXPA04004202A
MXPA04004202A MXPA04004202A MXPA04004202A MXPA04004202A MX PA04004202 A MXPA04004202 A MX PA04004202A MX PA04004202 A MXPA04004202 A MX PA04004202A MX PA04004202 A MXPA04004202 A MX PA04004202A MX PA04004202 A MXPA04004202 A MX PA04004202A
Authority
MX
Mexico
Prior art keywords
search
database
pointer
new
bytes
Prior art date
Application number
MXPA04004202A
Other languages
English (en)
Inventor
Frederick Haworth William Jr
Original Assignee
Verisign Inc
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=MXPA04004202(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Verisign Inc filed Critical Verisign Inc
Publication of MXPA04004202A publication Critical patent/MXPA04004202A/es

Links

Classifications

    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)
  • Selective Calling Equipment (AREA)

Abstract

Las modalidades e la presente invencion proporcionan un metodo y sistema para la busqueda de datos a alta velocidad con actualizacion a base de transaccion, concurrente, para sistemas grandes de bases de datos. Especificamente, una pluralidad de consultas de busquedas puede ser recibida a traves de una red (910), la base de datos puede ser buscada (930), y una pluralidad de respuestas de busqueda (940) puede ser enviada a traves de la red (950). Mientras se busca la base de datos (930), se puede recuperar nueva informacion a traves de la red (960), una pluralidad de nuevos elementos de base de datos puede ser creada basandose en la nueva informacion (970), se puede enviar un bit sucio fijado dentro de cada elemento de la nueva base de datos (975), un senalador para cada nuevo elemento de la base de datos usando una operacion ininterrumpible individual (980), y el bit sucio dentro de cada nuevo elemento de la base de datos puede ser eliminado. (985).

Description

ADMINISTRADOR DE MEMORIA DE TRANSACCION RECLAMACION DE PRIORIDAD/REFERENCIA CRUZADA A SOLICITUDES RELACIONADAS Esta solicitud no provisional reclama el beneficio de la Patente Provisional de E.U.A. No. 60/330,842, presentada el 1o. de noviembre del 2001, la cual se incorpora por referencia en su totalidad, y la Solicitud de Patente Provisional de E.U.A. No. 60/365,169, presentada el 19 de marzo del 2002, la cual se incorpora por referencia en su totalidad.
CAMPO TECNICO Esta descripción se refiere a sistemas de computadora. Más específicamente, esta descripción se refiere a un método y sistema para proporcionar la búsqueda de bases de datos de alta velocidad con actualización concurrente para grandes sistemas de base de datos.
ANTECEDENTES DE LA INVENCION Mientras el Internet continúa su crecimiento meteórico, el escalamiento de la resolución del servicio de nombre de dominio (DNS) para servidores de domino de nivel superior de raíz y genéricos (gTLD) en puntos de precio razonables se está convirtiendo en muy difícil de manera incrementante. El servidor raíz (es decir, a. servidor-raiz.net) administra y distribuye el archivo de zona de raíz de nombre de espacio en Internet a los 12 servidores raíz secundarios geográficamente distribuidos alrededor del mundo (es decir, b. servidor-ra íz. net, c. servidor-raíz. net, etc.) mientras los servidores gTLD correspondientes (es decir, a. servidores-gtld.net., etc.) son distribuidos similarmente y soportan dominios de nivel superior (por ejemplo, *.com, *.net, *.org, etc). El siempre creciente volumen de datos acoplados con implacable crecimiento en tasas de búsqueda está forzando un replanteamíento completo de infraestructuras de hardware y software necesario para el servicio DNS de raíz y gTLD a través de los siguientes años. La instalación de servidor individual típica de la distribución de software "ciego" estándar ya es insuficiente para las demandas de raíz A y pronto será incapaz de alcanzar aún las necesidades gTLD. Con la convergencia de la red telefónica conmutada pública (PSTN) y el Internet, existen oportunidades para un propósito general, un mecanismo de búsqueda de alto rendimiento para proporcionar características normalmente asociadas con los Puntos de Control de Servicio (SCPs) en la red de señalización SS7 para PSTN como nuevos, servicios avanzados se ofrecen para extender el PSTN y el Internet, incluyendo Red Inteligente Avanzada (AIN), servicios Voz a Través del Protocolo de Internet (VolP), servicios de ubicación geográfica, etc.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 es un diagrama de bloque, de acuerdo con una modalidad de la presente invención. La Figura 2 es un diagrama de bloque detallado que ilustra una estructura de datos de mensaje, de acuerdo con una modalidad de la presente invención. La Figura 3 es un diagrama de bloque detallado que ¡lustra una arquitectura de la estructura de datos de latencia del mensaje, de acuerdo con una modalidad de la presente invención. La Figura 4 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. La Figura 5 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. La Figura 6 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. La Figura 7 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. La Figura 8 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención.
La Figura 9 es un diagrama de flujo de nivel superior que ilustra un método para buscar y concurrentemente actualizar una base de datos, de acuerdo con una modalidad de la presente invención. La Figura 10 es un diagrama de flujo de nivel superior que ilustra un método para buscar y concurrentemente actualizar una base de datos, de acuerdo con una modalidad de la presente invención.
DESCRIPCION DETALLADA Las modalidades de la presente invención proporcionan un método y sistema para buscar bases de datos de alta velocidad con actualización concurrente para grandes sistemas de bases de datos. Específicamente, una pluralidad de búsquedas de consulta pueden ser recibidas a través de una red, la base de datos puede ser explorada, y una pluralidad de respuestas de búsqueda pueden ser enviadas a través de la red. Mientras se explora la base de datos, nueva información puede ser recibida a través de la red, una pluralidad de nuevos elementos de base de datos pueden ser creados en base a la nueva información y un bit sucio puede ser establecido dentro de cada nuevo elemento de la base de datos. Se puede escribir un nuevo apuntador para cada nuevo elemento de la base de datos a la base de datos utilizando una operación no interrumpible individual y el bit sucio dentro del nuevo elemento de la base de datos puede ser aclarado.
La Figura 1 es un diagrama de bloque que ilustra un sistema de acuerdo con una modalidad de la presente invención. Generalmente, el sistema 100 puede hospedar una base de datos residente en memoria, grande, recibir solicitudes de búsqueda y proporcionar respuestas de búsqueda a través de una red. Por ejemplo, el sistema 100 puede ser una computadora de multiprocesamiento, simétrica (SMP), tal como, por ejemplo, una IBM RS/6000® o S80 fabricada por International Business Machines Corporation of Armonk, Nueva York, una Sun Enterprise™ 1000 fabricada por Sun Microsystems, Inc. de Santa Clara, California, etc. El sistema 100 también puede ser una computadora personal multiprocesador, tal como por ejemplo, una Compaq ProLiant™ (incluyendo dos procesadores Intel Pentium® III 866 MHz) fabricada por Hewlett-Packard Company de Palo Alto, California. El sistema 100 puede incluir un sistema operativo de multiprocesamiento, tal como, por ejemplo, el Ambiente Operativo IBM AIX® 4, Sun Solaris™, Red Hat Linux® 6.2, etc. El sistema 100 puede recibir actualizaciones periódicas a través de la red 124, las cuales pueden ser concurrentemente incorporadas en la base de datos. Las modalidades de la presente invención pueden lograr el rendimiento total de búsquedas y actualizaciones de bases de datos muy altas a través de la incorporación de cada actualización a la base de datos sin el uso de controles de bloqueo o acceso a la base de datos. En una modalidad, el sistema 100 puede incluir por lo menos un procesador 102-1 acoplado al conductor común 101. El procesador 102-1 puede incluir un caché de memoria interna (por ejemplo, un caché L1, no mostrado para clarificar). Un caché de memoria secundaria 103-1 (por ejemplo un caché L2, cachés L2/L3, etc.) pueden residir entre procesador 102-1 y el conductor común 101. En una modalidad preferida, el sistema 100 puede incluir una pluralidad de procesadores 102-1...102-P acoplados al conductor común 101. Una pluralidad de cachés de memoria secundaria 103-1...103-P también reside entre la pluralidad de procesadores 102-1...102-P y el conductor común 101 (por ejemplo, una arquitectura de echar una ojeada), o, alternativamente, por lo menos un caché de memoria secundaria 103-1 puede estar acoplada al conductor común 101 (por ejemplo, una arquitectura de ver además). El sistema 100 puede incluir la memoria 104, tal como, por ejemplo, la memoria de acceso aleatorio (RAM), etc., está acoplada al conductor común 101, para almacenar información e instrucciones que se van ejecutar a través de la pluralidad de procesadores 102- 1....102-P. La memoria 104 puede almacenar grandes bases de datos, por ejemplo, para traducir nombres de dominio en direcciones de Internet, para traducir nombres y números telefónicos en direcciones de red, para proporcionar y actualizar los datos del perfil de suscriptor, para proporcionar y actualizar los datos de la presencia del usuario, etcétera. Ventajosamente, ambos, el tamaño de la base de datos y el número de traducciones por segundo pueden ser muy grandes. Por ejemplo, la memoria 104 puede incluir por lo menos 64 GB de RAM y puede hospedar 500M (es decir, 500x106) de registros de bases de datos de nombre de dominio, un registro de 500M de la base de datos del suscriptor, un registro de 450M de la base de datos de probabilidades de números telefónicos, etc. En una arquitectura del sistema de 64 bits ilustrativo, tal como por ejemplo, un sistema que incluye por lo menos un procesador b i g -endian (bit más significativo primero) 102-1 acoplado a por lo menos al conductor común 101 de 64 bits y una memoria de 64 bits 104, un valor de apuntador de 8 bytes puede ser escrito en una dirección de memoria en un limite de 8 bytes (es decir, una dirección de memoria visible a través de ocho, o por ejemplo 8N) utilizando una operación no interrumpible, individual. Generalmente, la presencia del caché de la memoria secundaria 103-1 puede simplemente retrasar la escritura de el apuntador de 8 bytes a la memoria 104. Por ejemplo, en una modalidad, el caché de memoria secundaria 103-1 puede ser un caché de mirar-a través de de operando en modo de escribir-a través de, por lo que una instrucción de almacenamiento de 8 bytes puede mover ocho bytes de los datos desde el procesador 102-1 a la memoria 104, sin interrupción, y tan poco como dos ciclos del reloj del sistema. En otra modalidad, el caché de memoria secundaria 103-1 puede ser un caché de mirar-a través de operando en un modo de escribir-otra vez, por lo que el apuntador de 8 bytes puede primero ser escrita en el caché de la memoria secundaria 103-1, la cual puede entonces escribir el apuntador de 8 bytes en la memoria 104 después, tal como, por ejemplo, cuando la línea del caché en la cual el apuntador de 8 bytes está almacenada es escrita a la memoria 104 (es decir, por ejemplo, cuando la línea de caché particular, o el caché de la memoria secundaria total, es "descargado"). Finalmente, a partir de la perspectiva del procesador 102-1, una vez que los datos son asegurados en los pins de salida del procesador 102-1, todos los ocho bytes de datos son escritos en la memoria 104 en una transferencia ininterrumpida, contigua, la cual puede ser retrasada por los efectos del caché de la memoria secundaria 103-1 si está presente. A partir de la perspectiva de los procesadores 102-2...102-P, una vez que los datos son asegurados en los pins de salida del procesador 102-1, todos los ocho bytes de los datos son escritos en la memoria 104 en una transferencia ininterrumpida, contigua, lo cual se refuerza a través del protocolo de coherencia del caché a lo largo de los cachés de memoria secundaria 103-1....103-P, lo cual puede retrasar la escritura en la memoria 104 si está presente. Sin embargo, si un valor de apuntador de 8 bytes es escrito en una ubicación desalineada en la memoria 104, tal como la dirección de memoria que cruza el limite de 8 bytes, todos los ocho bytes de los datos no pueden ser transferidos del procesador 102-1 utilizando una instrucción de almacenamiento de 8 bytes, individual. En su lugar, el procesador 102-1 puede emitir dos instrucciones de almacenamiento separadas. Por ejemplo, si la dirección de la memoria empieza cuatro bytes antes del límite de 8 bytes (por ejemplo, 8N - 4), la primera instrucción de almacenamiento transfiere los cuatro bytes más significativos a la memoria (por ejemplo, 8N - 4), mientras que la segunda instrucción de almacenamiento transfiere los cuatro bytes de memoria menos significativos a la memoria 104 (por ejemplo, 8N). Es muy importante entre estas dos instrucciones separadas, que el procesador 102-1 pueda ser interrumpido, o el procesador 102-1 pueda perder el control del conductor común 101 a otro componente del sistema (por ejemplo, procesador 102-P, etc.). Consecuentemente, el valor de apuntador que reside en la memoria 104 será inválido hasta que el procesador 102-1 pueda completar la segunda instrucción de almacenamiento. Si otro componente inicia una lectura de memoria no interrumpible, individual en su ubicación de memoria, un valor inválido será devuelto como uno presumiblemente válido. Similarmente, un nuevo valor de apuntador de 4 bytes puede ser escrito a una dirección de memoria disponible por cuatro (por ejemplo, 4N), utilizando una operación no interrumpible, individual. Notar que en el ejemplo discutido anteriormente, un valor de apuntador de 4 bytes puede ser escrito a una ubicación de memoria de 8N - 4 utilizando una instrucción de almacenamiento individual. Por supuesto, si un valor de apuntador de 4 bytes que cruza un límite de 4 bytes, por ejemplo 4N - 2, los cuatro bytes de datos no pueden ser transferidos desde el procesador 102-1 utilizando una instrucción de almacenamiento individual, y el valor de el apuntador residente en la memoria 104 puede ser inválida durante algún período de tiempo.
El sistema 100 también puede incluir una memoria de solo lectura (ROM) 106, u otro dispositivo de almacenamiento estático, acoplado al conductor común 101 para almacenar información estática e instrucciones para el procesador 102-1. Un dispositivo de almacenamiento 108, tal como un disco magnético u óptico, puede estar acoplado al conductor común 10 para almacenar información e instrucciones. El sistema 100 también puede incluir el despliegue 110 (por ejemplo, un monitor LCD) y el dispositivo de entrada 112 (por ejemplo, teclado, ratón, seguibola, etc.) acoplado a conductor común 101. El sistema 100 también puede incluir una pluralidad de interfases de red 114-1 , ...114-0, la cual puede enviar y recibir señales eléctricas, electromagnéticas u ópticas que pueden llevar corrientes de datos representando varios tipos de información. En una modalidad, la interfase de red 114-1 puede estar acoplado al conductor común 101 y una red de área local (LAN) 122, mientras la interfase de red 114-0 puede estar acoplado al conductor común 101 y red de' área amplia (WAN) 124. La pluralidad de interfases de red 114-1 114-0 puede soportar varios protocolos de red, incluyendo, por ejemplo. Gigabit Ethernet (por ejemplo, IEEE Estándar 802.3-2002, publicado en 2002). El Canal de Fibra (por ejemplo, ANSI Estándar X.3230-1994, publicado en 1994), etc. La pluralidad de las computadoras de red 120-1 , ....120-N puede estar acopladas a la LAN 122 y WAN 124. En una modalidad, LAN 122 y WAN 124 pueden ser físicamente distintas redes, mientras en otra modalidad, LAN 122 y WAN 124 pueden ser a través de una compuerta de red o direccionador (no mostrado para claridad). Alternativamente, LAN 122 y WAN 124 pueden ser la misma red. Como se observó anteriormente, el sistema 100 proporciona servicios de resolución DNS. En una modalidad de resolución DNS, lo servicios de resolución DNS pueden generalmente ser divididos entre las funciones de transporte de datos y de búsqueda de datos. Por ejemplo, el sistema 100 puede ser un motor secundario o de búsqueda (LUE) optimizado para la búsqueda de datos en grandes datos fijos, mientras la pluralidad de las computadoras de red 120-1,.,.120-N puede ser una pluralidad de motores del protocolo del extremo frontal (PEs) optimizados para el procesamiento de la red y transporte. El LUE puede ser un servidor multiprocesador poderoso que almacena el grupo de registros DNS completo en la memoria 104 para facilitar la búsqueda y actualización de alto rendimiento, y alta velocidad. En una modalidad alternativa, los servicios de resolución DNS pueden ser provistos a través de series de servidores multiprocesador poderosos, o LUEs, cada uno almacenando un subgrupo de grupos de registro DNS completos para facilitar la búsqueda y actualización de alto rendimiento, alta velocidad. Inversamente, la pluralidad de PEs puede ser máquinas en base a PC, bajo perfil, genéricas, corriendo un sistema operativo multitareas eficiente (por ejemplo, Red Hat Linux® 6.2), que minimiza la carga de transporte de procesamiento de la red en el LUR con el fin de maximizar los recursos disponibles para la resolución DNS. Las PEs pueden manejar las matrices del protocolo DNS de linea cableada, responde a investigaciones DNS inválidas y multiplaza in estigaciones DNS válidas para el LUE a través de la LAN 122. En una modalidad alternativa incluyendo múltiples LUEs almacenando subgrupos de registro DNS, los PEs pueden determinar que LUE deberá recibir cada investigación DNS válida, e investigaciones DNS válidas multiplexadas a los LUEs apropiados. El número de PEs para un LUE individual puede ser determinado, por ejemplo, mediante el número de búsquedas DNS que van a ser procesadas por segundo y las características de funcionamiento del sistema particular. Otras mediciones también pueden ser utilizadas para determinar las relaciones de mapeo y comportamientos apropiados. Generalmente, otras modalidades basadas en búsquedas, de volumen grande puede ser soportadas, incluyendo, por ejemplo, resolución de números de teléfono, procesamiento de señalización SS7, determinación de ubicación geográfica, mapeo del número-a-suscriptor telefónico, ubicación del suscriptor y determinación de presencia, etc. En una modalidad, un servidor de procesamiento de transacción en línea central (OLTP) 140-1 puede estar acoplado a WAN 124 y recibe adiciones, modificaciones y eliminaciones (es decir, tráfico de actualizaciones) a la base de datos 142-1 de varias fuentes. El servidor OLTP 140-1 puede enviar actualizaciones al sistema 124. El servidor OLTP 140-1 puede ser optimizado para procesar tráfico de actualizaciones. En varios formatos y protocolos, incluyendo, por ejemplo, el Protocolo de Transmisión de Hipertexto (HTTP), el Protocolo de Registro de Registros (RRP), el Protocolo de Aprovisionamiento Extensible (EEP), la Interfase Genérica Mecanizada del Sistema/800 de Administración del Servicio (MGI), y otros protocolos de aprovisionamiento en línea. Una constelación de LUEs solo de lectura puede ser utilizada en un concentrador de puertos y arquitectura de palabras para proporcionar capacidad de búsqueda de alta velocidad con actualizaciones increméntales, de alto volumen desde el servidor OLTP 140-1. En una modalidad alternativa, los datos pueden ser distribuidos a través de múltiples servidores OLTP 140-1 , ...140-S, cada uno de los cuales puede estar acoplado a la WAN 124. Los servidores OLTP 140-1.,,,,140-S pueden recibir adiciones, modificaciones y eliminaciones (es decir, tráfico de actualización) a sus respectivas bases de datos 142-1 , ...142-S (no mostradas por claridad) de varias fuentes. Los servidores OLTP 140-1 140-S pueden enviar actualizaciones al sistema 100, el cual puede incluir copias de bases de datos 142-1 142-S, otros datos dinámicamente creados, etc. a través de la WAN 124. Por ejemplo, en una modalidad de ubicación geográfica, los servidores OLTP 1401-1 140-S pueden recibir tráfico de actualización de grupos de sensores remotos. En otra modalidad alternativa, la pluralidad de computadoras de red 120- 1 120-N también pueden recibir adiciones, modificaciones y eliminaciones (es decir, tráfico de actualización) de varias fuentes a través de la WAN 124 o LAN 122. En esta modalidad, la pluralidad de redes de computadora 120-1 , ...120-N puede enviar actualizaciones, así como búsquedas, al sistema 100. En la modalidad de resolución DNS, cada PE (por ejemplo, cada una de la pluralidad de redes de computadora 120-1 120-N) puede combinar, o multiplexar varios mensajes de búsqueda DNS, recibir a través de una red de área amplia (por ejemplo, WAN 124), en un Super Paquete de Solicitud y enviar el Super Paquete de Solicitud a LUE (por ejemplo, sistema 100) a través de una red de área local (por ejemplo, LAN 122). El LUE puede combinar, o multiplexar, varias contestaciones de mensajes de búsqueda DNS en un Super Paquete de Respuesta y enviar el Super Paquete de Respuesta al PE apropiado a través de la red de área local. Generalmente, el tamaño máximo de una Super Paquete de Respuesta o de Solicitud puede estar limitado por la unidad de transmisión máxima (MTU) de la capa de la red física (por ejemplo, Ethernet Gigabit). Por ejemplo, el tamaño de los mensajes de búsqueda y de respuesta DNS típico de menos de 100 bytes y 200 bytes, respectivamente, permite que aproximadamente 30 búsquedas sean multiplexadas en un Super Paquete de solicitud individual, así como alrededor de 15 respuestas sean multiplexadas supimos en un Super Paquete de respuesta individual. Sin embargo, un número más pequeño de búsquedas (por ejemplo, 20 búsquedas) puede estar incluido en un Super Paquete de solicitud individual con el fin evitar el sobre flujo MTU en la respuesta (por ejemplo 10 contestaciones). Para tamaños de MTU más grandes, el número de búsquedas y contestaciones multiplexadas puede ser incrementado por consiguiente. Cada PE de multitareas puede incluir un paquete entrante y un paquete saliente para manejar búsquedas y respuestas DNS, respectivamente. Por ejemplo, el paquete entrante puede no estar colocado los componentes de búsqueda DNS a partir de los paquetes de búsqueda DNS entrantes recibidos a través de la red de área amplia y multiplexar varios milisegundos de búsquedas en un Super Paquete de solicitud. El paquete entrante entonces puede enviar el Super Paquete de Solicitud a LUE a través de una red de área local. Inversamente, el paquete de salida puede recibir el Super Paquete de Respuesta desde LUE, desmultiplicar las respuestas contenidas ahí, y colocar los varios campos en una contestación DNS válida, la cual después puede ser transmitida a través de una red de área amplia. Generalmente, como se notó anteriormente, otras modalidades basadas en búsquedas, de volumen grande pueden ser soportadas. En una modalidad, el Super Paquete de Solicitud también puede incluir información de estado asociada con cada búsqueda DNS, tal como, por ejemplo, la dirección fuente, el tipo de protocolo, etc. El LUE puede incluir la información de estado, y contestaciones DNS asociadas, dentro del Super Paquete de Respuesta. Cada PE entonces puede ser construida y devolver mensajes de contestación DNS válidos utilizando la información transmitida de LUE. En consecuencia, cada PE puede ventajosamente operar como una máquina sin información sobre el estado anterior, es decir, las contestaciones DNS válidas pueden estar formadas a partir de la información contenida en el Super Paquete de Respuesta. Generalmente, LUE puede devolver el Super Paquete de Respuesta a PE a partir del Super Paquete de origen entrante; sin embargo, otras variaciones pueden obviamente ser posibles. En una modalidad alternativa, cada PE puede mantener la información de estado asociada con cada búsqueda DNS e incluir una referencia, o manipulador, de la información de estado dentro del Super Paquete de Solicitud. LUE también puede incluir las referencias de la información de estado, y contestaciones DNS asociadas, dentro del Super Paquete de Respuesta. Cada PE puede entonces ser construido y devolver mensajes de contestación DNS válidos utilizando las referencias de la información de estado transmitidas desde LUE, así como la información de estado mantenida en el mismo. En esta modalidad, LUE puede devolver el Super Paquete de Respuesta a PE a partir del cual el Super Paquete de Entrante se origina. La Figura 2 es un diagrama de bloque detallado que ¡lustra una estructura de datos de mensaje, de acuerdo con una modalidad de la presente invención. Generalmente, el mensaje 200 puede incluir un encabezado 210, teniendo una pluralidad de números de secuencia 211-1, ...211-S y una pluralidad de contadores de mensajes 212- 1.....212-S, y una carga útil 215. En la modalidad de resolución DNS, el mensaje 200 puede ser utilizado para Super Paquetes de Solicitud y Super Paquetes de Respuesta. Por ejemplo, el Super Paquete de Solicitud 220 puede incluir el encabezado 230, que tiene una pluralidad de números de secuencia 231 - 1 , ....231 -S y una pluralidad de contadores de mensajes 232-1 232-S, y una carga útil de datos 235 que tiene múltiples consultas DNS 236-1 , ....236-Q, acumuladas mediante un PE durante un período de tiempo predeterminado, tal como, por ejemplo, varios milisegundos. En una modalidad, cada consulta DNS 236-1,...236-Q puede incluir información manifestada, mientras en una modalidad alternativa, cada consulta DNS 236-1 , ...236-Q puede incluir un manipulador de información de estado. Similarmente, el Super Paquete de Respuesta 240 puede incluir el encabezad 250, teniendo una pluralidad de números de secuencia 251-1 ,...251 -S y una pluralidad de contadores de mensajes 252-1,.,.252-S, y carga útil de datos 255 que tienen múltiples respuestas DNS 256-1 , ...256-R aproximadamente correspondientes a las múltiples consultas DNS contenidas en el Super Paquete de Solicitud 220. En una modalidad, cada respuesta DNS 256-1 , ...256-R puede incluir información de estado asociada con la consulta DNS correspondiente, mientras en una modalidad alternativa, cada respuesta DNS 256-1 , ....256-R puede incluir un manipulador de información de estado asociada con la consulta DNS correspondiente. Ocasionalmente, el tamaño total de las respuestas DNS correspondientes puede exceder el tamaño de la carga útil de datos 255 del Super Paquete de Respuesta 240. Este sobre flujo puede ser limitado, por ejemplo, a una contestación individual, es decir, la contestación asociada con la última consulta contenida dentro del Super Paquete de Solicitud 220. En lugar de enviar un Super Paquete de Respuesta 240 adicional conteniendo solamente una respuesta individual, el sobre flujo puede ser preferiblemente incluido en el siguiente Super Paquete de Respuesta 240 correspondiente al siguiente Super Paquete de Solicitud. Ventajosamente, el encabezado 250 puede incluir información apropiada para determinar la extensión de la condición de sobre flujo. Bajo condiciones de procesamiento pico, más de una respuesta puede sobre cargar el Super Paquete de Respuesta. Por ejemplo, en el Super Paquete de Respuesta 240, en encabezado 250 puede incluir por lo menos dos números de secuencias 251-1 y 251-2 y por lo menos dos contadores de mensajes 252-1 y 252-2, agrupados como dos pares de campos complementarios. Mientras puede haber "S" número de números de secuencia y pares de contadores de mensajes, típicamente, S es un número pequeño, tal como, por ejemplo, 2, 3, 4, etc. De esta manera, el encabezado 250 puede incluir el número de secuencia 251-1 acoplado con el contador de mensaje 252-1, el número de secuencia 251-1 acoplado con el contador de mensaje 252-2, etc. Generalmente, el contador de mensaje 252-1 puede reflejar el número de respuestas contenidas dentro de la carga útil de datos 255 que están asociadas con el número de secuencia 251-1. En una modalidad, el número de secuencia 251-1 puede ser un campo de dos bytes, mientras el contador del mensaje 252-1 puede ser un campo de un byte. En un ejemplo más específico, la carga útil de datos 235 del Super Paquete de Solicitud 220 puede incluir siete consultas DNS (como se describen la Figura 2). En una modalidad, el número de secuencia 231-1 puede ser fijado a un valor único (por ejemplo 1024) y el contador de mensaje 232-1 puede ser fijado en siete, mientras el número de secuencia 231-2 y el contador de mensaje 232-2 pueden ser fijados a cero. En otra modalidad, el encabezado 230 puede contener solamente un número de secuencia y un contador de mensaje, por ejemplo, en número de secuencia 231-1 el contador de mensaje 232-1 fijados a 1024 y siete respectivamente. Típicamente, el Super Paquete 220 para contener todas las consultas asociadas con un número de secuencia particular. La carga útil de datos 255 del Super Paquete respuesta 240 puede incluir siete consultas DNS correspondientes (como se describen la figura 2). En este ejemplo, el encabezado 250 puede incluir información similar al Super paquete de Solicitud 220, es decir el número de secuencia 251-1 fijado al mismo valor único (es decir 1024), el contador de mensaje 252-1 fijado en siete, y ambos números de secuencia 252-2 fijados a cero. Sin embargo, en otro ejemplo, la carga útil de datos 255 del Super paquete de respuesta 240 puede incluir solamente cinco respuestas DNS correspondientes, y a cambio el contador de mensaje 252-1 puede ser fijado en cinco. Las respuestas restantes asociadas con el número de secuencia 1024 pueden ser incluidas dentro del Super paquete de respuesta pacientes 40. El siguiente Super paquete de Solicitud 240 puede incluir un número de secuencia diferente (por ejemplo 1025) y por lo menos una consulta DNS, por lo que el siguiente Super paquete de respuesta 240 puede incluir las dos respuestas previas asociadas con el número de secuencia 1024, así como también por lo menos una respuesta asociada con el número de secuencia 1025. En este ejemplo, el encabezado 250 el siguiente Super paquete de respuesta 240 puede incluir el número de secuencia 251-1 fijado a 1024, el contador de mensaje 252-1 fijado a dos, el número de secuencia 251- 2 fijado a 1025 y el contador de mensaje 252-2 fijado 1. Esta manera, el Super paquete respuesta 240 puede incluir un total de 3 respuestas asociadas con tres consultas contenidas dentro de los dos diferentes Super paquete de Solicitud. La Figura 3 es un grado de bloque detallado que ilustra una arquitectura de estructura de datos de latencia de mensaje, de acuerdo con una modalidad de la presente invención. La estructura de datos de latencia de mensaje 300 puede incluir información generalmente asociada con la transmisión y recepción de mensajes 200. En la modalidad de resolución DNS, la estructura de datos de la latencia de mensaje 300 puede incluir información de latencia acerca de los Super paquetes de Solicitud y los Super paquetes de respuesta; esta información de latencia puede estar organizada en un formato de cuadro de acuerdo con el valor del número de secuencia (por ejemplo índice 301). Por ejemplo, la estructura de datos de la latencia el mensaje 300 puede incluir número de filas N igual al número total de números de secuencia únicos, como se ilustra, generalmente, a través de elementos de cuadro, 310, 320 y 330. En una modalidad, los números de secuencia del encabezado del Super paquete pueden ser de dos bytes en longitud y definen un rango de números de secuencia únicos de 0 a 216-1 (es decir, 65,535). En este caso, N puede ser igual a 65,536. La información de latencia puede incluir la estampa de tiempo de Solicitud 302, el contador de consulta de Solicitud 303, la estampa de tiempo de respuesta 304, el contador de contestación de respuesta 305, y el contador del mensaje de respuesta 306. En una modalidad alternativa, la información de latencia también puede incluir la estampa del tiempo de respuesta inicial (no mostrada). En un ejemplo, el elemento de cuadro 320 ¡lustra la información de latencia de un Super paquete de Solicitud 220 que tiene un número de secuencia individual 231-1 igual a 1024. La estampa de tiempo de Solicitud 302 puede indicar cuándo éste Super paquete de Solicitud fue enviado a LUE. El contador de consulta de respuesta 303 puede indicar cuantas consultas están contenidas dentro de éste Super paquete de Solicitud particular. La estampa de tiempo de respuesta 304 puede indicar cuándo un Super paquete respuesta tiene un número de secuencia igual a 1024 fue recibido en PE (por ejemplo, la computadora de red 120-N) y puede ser actualizado si se recibieron más de un Super paquete respuesta en PE. El contador de de contestación de respuesta 305 puede indicar el número total de respuestas contenidas dentro de todos los Super paquete respuesta recibidos asociados con este número de secuencia (es decir, 1024). El contador de mensajes de respuesta 306 puede indicar cuántos Super paquete respuesta que tienen este número de secuencia (es decir, 1024) llegaron a PE. Las respuestas a las consultas contenidas dentro de éste Super Paquete de Solicitud particular pueden ser divididas a través de varios Super paquete respuesta, en cuyo caso, la Estampa de Tiempo de Respuesta 304, el Contador de Contestación de Respuesta 305, y el Contador de Mensajes de Respuesta 306 puede ser actualizados según cada uno de los Super Paquetes de Respuesta son recibidos. En una modalidad alternativa, la Estampa del Tiempo de la respuesta inicial puede indicar cuándo el primer Super Paquete de Respuesta que contiene las respuestas para éste número de secuencia (es decir, 1024) fue recibido en PE. En esta modalidad, la Estampa de Tiempo de Respuesta 304 puede ser actualizada cuando los Super Paquetes de Respuesta adicionales son recibidos (es decir segundo y subsiguiente). Se pueden determinar varias mediciones de latencia importantes a partir de la información de latencia contenida dentro de la estructura de datos de la latencia del mensaje 300. Por ejemplo, una verificación cruzada simple entre el contador de Consultas de Solicitud 303 y el contador de Contestaciones de Respuesta 305 para un índice dado 301 (es decir, número de secuencia) puede indicar o número de contestaciones perdidas. Ésta diferencia puede indicar el número de consultas inexplicablemente deshabitadas por LUE. Al comparar la Estampa de Tiempo de Solicitud 302 y la Estampa de Tiempo de Respuesta 304 puede indicar que también la combinación PE/LUE puede ser llevada cabo bajo la carga de mensajes actual. La diferencia entre el número de secuencia del Super Paquete de Solicitud actual y el número de secuencia del Super Paquete Respuesta actual puede estar asociado con el funcionamiento de las respuestas de LUE; por ejemplo, entre más grande es la diferencia, más lento es el funcionamiento. El contador de Mensajes de Respuesta 306 puede indicar cuántos Super Paquetes de Respuesta se están utilizando para cada Super Paquete de Solicitud, y puede ser importante en el análisis de tráfico de resolución DNS. Mientras la latencia de las consultas y las contestaciones viajan entre los PEs y LUE se incrementa, los PEs pueden reducir el número de Paquetes de Consulta DNS procesados por el sistema. Generalmente, LUE puede llevar a cabo una búsqueda multi-argumentos sobre los Super Paquetes de Solicitud multiplexados entrantes, y puede combinar las contestaciones dentro de los Super Paquetes de Respuesta multiplexados salientes. Por ejemplo, LUE puede extender un argumento de búsqueda o proceso, para cada PE y dirigir todos los Super Paquetes de Solicitud entrantes a partir de PE a ese argumento de búsqueda. LUE puede extender un argumento de administración, o proceso, para controlarla asociación de los PEs a los argumentos de búsqueda, así como un argumento de actualización, o proceso, para actualizar la base de datos localizada en la memoria 104. Cada argumento de búsqueda puede extraer las consultas de búsqueda del Super Paquete de Solicitud, ejecutar las varias búsquedas, construir un Super Paquete de Respuesta conteniendo las contestaciones de búsqueda y enviar el Super Paquete al PE apropiado. El argumento actualizado puede recibir actualizaciones de la base de datos, de OLTP 140-1, e incorporar los nuevos datos en la base de datos. En una modalidad alternativa, la pluralidad de computadoras en red 120-1....120-N pueden enviar actualizaciones al sistema 100. Estas actualizaciones pueden ser incluidas, por ejemplo dentro de la corriente de mensajes del Super Paquete de Solicitud entrante. Por consiguiente, mediante la ventaja del protocolo del Super Paquete, LUE puede gastar menos del 15% de la capacidad de su procesador en procesamiento de red, por lo tanto dramáticamente incrementando el rendimiento de la consulta de búsqueda. En una modalidad, una IBM® M80 de 8 vías puede soportar dichas velocidades de 180 k a 200 k de consultas por segundo (qps), mientras una IBM® S80 de 24 vías puede soportar de 400 k a 500 k qps. Al duplicar las velocidades de búsqueda, es decir de 500 k a 1 M qps, respectivamente, simplemente se requiere el doble del hardware, es decir, dos LUEs con sus PEs asistentes. En otra modalidad, una computadora personal multiprocesador Pentium® III 866 MHz dual operando Red Hat Linux® 6.2 puede soportar velocidades de actualizaciones en el orden de 100 k/seg. Por supuesto, los incrementos en el funcionamiento del hardware también incrementan las velocidades de búsqueda y actualización asociadas con las modalidades de la presente invención, y cuando los fabricantes reemplazan estas computadoras multiprocesador con máquinas de funcionamiento más rápido, por ejemplo, las velocidades de búsqueda y actualización soportadas pueden incrementarse conmensurablemente. Generalmente, el sistema 100 no está limitado a una arquitectura de cliente o servidor, y las modalidades de la presente invención no están limitadas a ninguna combinación específica de hardware y/o software. La Figura 4 es un diagrama de bloque que ilustra una arquitectura de la base de datos general de acuerdo con una modalidad de la presente invención. En esta modalidad, la base de datos 400 puede incluir por lo menos un cuadro o grupo de registros de la base de datos 401, y por lo menos un índice de búsqueda correspondiente 402 con apuntadores (índices, compensaciones de bytes directas, etc.) para registros individuales dentro del grupo de los registros de la base de datos 401. Por ejemplo, el apuntador 405 puede hacer referencia a al registro de la base de datos 410. En una modalidad, la base de datos 400 puede incluir por lo menos un cuadro de resumen criptográfico 403 como un índice de búsqueda con apuntadores (índices, compensaciones de byte directas, etc.) en el cuadro o grupo de registros de la base de datos 401. Una función hash (resumen criptográfico) puede mapear una clave de búsqueda a un valor entero el cual puede después ser utilizado como índice en la tabla hash 403. Debido a que más de una clave de búsqueda a un valor de búsqueda entero mapea un valor entero individual, los compartimientos del resumen criptográfico pueden ser creados utilizando una lista enlazada individualmente de apuntadores en cadena hash. Por ejemplo, cada entrada dentro del cuadro hash 403 puede contener un apuntador para el primer elemento del compartimiento de resumen criptográfico, y cada elemento del compartimiento del resumen criptográfico puede contener un apuntador en cadena hash al siguiente elemento, o registro de la base de datos, en la lista enlazada. Ventajosamente, un apuntador en cadena hash puede ser requerida solamente por aquellos elementos, o registros en la base de datos, que hacen referencia a un elemento subsiguiente en el compartimiento hash. El cuadro hash 403 puede incluir un arreglo de apuntadores de 8 bytes a registros de la base de datos individuales 401. Por ejemplo, el apuntador hash 404 dentro del cuadro hash 403 puede hacer referencia al registro de la base de datos 420 como el primer elemento dentro de un compartimiento hash. El registro de la base de datos 420 puede contener un apuntador en cadena hash 424 la cual puede hacer referencia al siguiente elemento, o registro de la base de datos, en el compartimiento hash. El registro de la base de datos 420 también puede incluir una longitud de datos 421, y datos de longitud fija o variable asociados 422. En una modalidad, un carácter nulo 423, indicando la terminación de los datos 422, puede ser incluido. Adicionalmente, el registro de la base de datos 420 puede incluir un apuntador de datos 425 el cual puede hacer referencia a otro registro de la base de datos, ya sea dentro del grupo de los registros de la base de datos 401 o dentro de un cuadro o grupo diferente de los registros de la base de datos (no mostrado), en el cual los datos adicionales pueden estar localizados. El sistema 100 puede utilizar varios algoritmos bien conocidos para buscar esta arquitectura de la estructura de datos para un término de búsqueda o clave dada. Generalmente, la base de datos 400 puede ser consultada a través de múltiples procesos de búsqueda, o argumentos, ejecutándose sobre por lo menos uno de la pluralidad de procesadores 102-1 , ...102-P. Sin embargo, las modificaciones a la base de datos 400 puede no ser íntegramente llevada a cabo por un argumento de actualización (o argumentos) a menos que el argumento(s) sea prevenido de acceder la base de datos 400 durante un período de tiempo necesario para agregar, modificar o eliminar información dentro de la base de datos 400. Por ejemplo, con el fin de modificar el registro de la base de datos 430 dentro de la base de datos 400, el grupo de registros de la base de datos 401 puede ser bloqueado por un argumento de búsqueda para prevenir que los argumentos de búsqueda accedan la base de datos 400 mientras el argumento de actualización está modificando la información dentro del registro de la base de datos 430. Existen varios mecanismos bien conocidos para bloquear la base de datos 400 para prevenir el acceso a la búsqueda, incluyendo el uso de candados giratorios, semáforos, exclusiones mutuas, etc.
Adicionalmente, varias bases de datos comerciales fuera del librero proporcionan comandos específicos para bloquear toda o partes de la base de datos 400, por ejemplo, el comando de bloquear cuadro en la base de datos Oracle 8, fabricada por Oracle Corporation de Redwood Shores, California, etc. La Figura 5 es un diagrama de bloque que ilustra una arquitectura de la base de datos general de acuerdo con otra modalidad de la presente invención. En esta modalidad, la base de datos 500 puede incluir un archivo de vista instantánea maestro, de solo lectura, altamente optimizado 510 y un archivo de ver hacia los lados, creciente, 520. El archivo de vista instantánea maestro 510 puede incluir por lo menos un cuadro o grupo de registros de la base de datos 511, y por lo menos un índice de búsqueda correspondientes 512 con otras apuntadores (índices, compensaciones de bytes directas, etc.) para registros individuales dentro del grupo de registros de la base de datos 511. Alternativamente, el archivo de vista instantánea maestro 510 puede incluir por lo menos un cuadro hash 513 como un índice de búsqueda con apuntadores (índices, compensaciones de bytes directas, etc.) dentro del cuadro o grupo de registros de la base de datos, incluyendo los registros de adición a la base de datos 521 y los registros de eliminación de la base de datos 531. Los índices de búsqueda correspondientes 522 y 532 pueden ser provistos, con apuntadores (índices, compensaciones de bytes directas, etc.) a registros individuales dentro de los registros de adición de la base de datos 521 y los registros de eliminación de la base de datos 531. Alternativamente, el archivo de vista hacia los lados 520 puede incluir cuadros hash 523 y 533 como índices de búsqueda, con apuntadores (índices, compensaciones de bytes directas, etc.) dentro de los registros de adición de la base de datos 521 y los registros de eliminación de la base de datos 531, respectivamente. El sistema 100 puede utilizar varios algoritmos bien conocidos para buscar la arquitectura de la estructura de datos para un término o clave de búsqueda dado. En un ejemplo típico, el archivo de buscar aparte 520 puede incluir todos los cambios recientes a los datos, y puede ser consultada antes del archivo de vista instantánea maestro de solo lectura 510. Si la clave de búsqueda se encuentra en el archivo de buscar aparte 520, la respuesta se devuelve sin accesar el archivo de vista instantánea 510, pero si la clave si se encuentra, entonces el archivo de vista instantánea 510 puede ser consultado. Sin embargo, el archivo de buscar aparte 520 ya no se ajusta a la memoria 104 con el archivo de vista instantánea 510, las velocidades de consulta de búsquedas caen dramáticamente, por un factor de 10 a 50, o más, por ejemplo. Consecuentemente, para evitar o minimizar cualquier caída en las velocidades de consulta de búsqueda, el archivo de vista instantánea 510 puede ser periódicamente actualizado, o creado, incorporando todas las adiciones, eliminaciones y modificaciones contenidas dentro del archivo de buscar aparte 520. Los datos dentro del archivo de vista instantánea 510 no son físicamente alterados pero lógicamente agregados, modificados o eliminados. Por ejemplo, los datos entro del archivo de vis.ta instantánea 510 pueden ser eliminados, o lógicamente "olvidados", creando un registro de eliminación correspondiente dentro de los registros de eliminación de la base de datos 531 y escribiendo un apuntador para el registro de eliminación en la ubicación apropiada en el cuadro hash 533. Los datos dentro de archivo de vista instantánea 510 pueden ser lógicamente modificados copiando un registro de datos del archivo de vista instantánea 510 a un nuevo registro de datos dentro de los registros de adición de la base de datos 521, modificando los datos dentro de la nueva entrada, y después escribiendo un apuntador para la nueva entrada en el cuadro hash apropiado (por ejemplo, el cuadro hash 522) o pauta en cadena dentro de los registros de adición de la base de datos 521. Similarmente, los datos dentro del archivo de vista instantánea 510 pueden ser lógicamente agregados al archivo de vista instantánea 510 creando un nuevo registro de datos dentro de los registros de adición de la base de datos 521 y después escribiendo un apuntador para la nueva entrada al cuadro hash apropiado (por ejemplo, el cuadro hash 521) o pauta en cadena dentro de los registros de adición de la base de datos 521. En la modalidad de resolución DNS, por ejemplo, el archivo de vista instantánea 521 puede incluir datos del nombre de dominio y datos del nombre del servidor, organizados como cuadros de datos separados, o bloques, con índices de búsqueda separados (por ejemplo, 511-1, 511-2, 512-1, 512-2, 513-1, 513-2, etc. no mostrados para clarificar). Similarmente, el archivo de buscar aparte 520 puede incluir adiciones y modificaciones a ambos, los datos del nombre de dominio y datos del nombre del servidor, así como eliminaciones a ambos, los datos del nombre de dominio y los datos del nombre del , servidor (por ejemplo 521-1, 521-2, 522-2, 523-1, 531-1, 532-1, 532-2, 533-1, 533-2, etc., no mostrados para clarificar). La Figura 6 es un diagrama de bloque detallado que ¡lustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. Generalmente, la base de datos 600 puede estar organizada en una representación sujeta a búsquedas, individual de datos. Las actualizaciones fijas de los datos pueden ser continuamente incorporadas en la base de datos 600, y las eliminaciones o modificaciones pueden ser físicamente realizadas sobre los registros de la base de datos relevantes para liberar espacio dentro de la memoria 104, por ejemplo, para subsiguientes adiciones o modificaciones. La representación sujeta a búsquedas, individual escala extremadamente bien tamaños de datos fijos grandes y velocidades de búsqueda y actualización altas, y obvia la necesidad de periódicamente recrear, propagar y recargar archivos de vista instantánea entre múltiples computadoras de motor de búsqueda. En una modalidad de resolución DNS, por ejemplo, la base de datos 600 puede incluir datos del nombre de dominio 610 y datos del nombre del servidor 620. Los datos del nombre de domino 610 y los datos del nombre del servidor 620 puede incluir índices de búsqueda con apuntadores (índices, compensaciones de bytes directas, etc.) en bloques de registros de longitud variable. Como se discutió anteriormente, una función hash puede mapear una clave de búsqueda en un valor entero el cual puede después ser utilizado como un índice dentro de un cuadro hash. Similarmente, los compartimientos hash pueden ser creados para cada índice de cuadro hash utilizando una lista enlazada individualmente de apuntadores en cadena hash. Los datos del nombre de dominio 610 pueden incluir, por ejemplo, un cuadro hash 612 como un índice de búsqueda y un bloque de registros de nombre de domino de longitud variable 611. El cuadro hash 612 puede incluir un arreglo de apuntadores de 8 bytes para registros de nombre de dominio individuales 611, tales como, por ejemplo, el apuntador 613 que hace una referencia al registro del nombre de dominio 620. El registro del nombre de dominio de longitud variable 620 puede incluir, por ejemplo, una compensación del siguiente registro 621, una longitud del nombre 622, un nombre normalizado 623, un apuntador en cadena 624 (es decir, apuntando hacia el siguiente registro en la cadena hash), un número servidores de nombre 625, y un apuntador del servidor de nombre 626. El tamaño de ambas, el apuntador de cadena 624 y el apuntador del servidor de nombre 626 pueden ser optimizados para reflejar el tamaño de bloque requerido para cada tipo particular de datos, por ejemplo, ocho bytes para el apuntador de cadena 624 y cuatro bytes para el apuntador del servidor de nombre 626. Los datos del servidor de nombre 630 pueden incluir, por ejemplo, un cuadro hash 632 como un índice de búsqueda y un bloque de registros del servidor de nombre de longitud variable 631. El cuadro hash 632 puede incluir un arreglo de apuntadores de 4 bytes para los registros de servidor de nombre individuales 631, tales como, por ejemplo, el apuntador 633 que hace referencia al registro del servidor de nombre 640. El registro del servidor de nombre de longitud variable 640 puede incluir, por ejemplo, una compensación del siguiente registro 641, una longitud de nombre 642, un nombre normalizado 643, un apuntador de cadena 644 (es decir, apuntando hacia el siguiente registro en la cadena hash), un número de direcciones de red del servidor de nombre 645, una longitud de la dirección del servidor de nombre 646, y una dirección de red del servidor de nombre 647, las cuales pueden ser, por ejemplo, una dirección de red de Protocolo de Internet (IP). Generalmente, las direcciones de red del servidor de nombre pueden ser almacenadas en formato ASCII (Código Estándar Americano para Intercambio de Información, por ejemplo, ISO-14962-1997, ANSI-X3.4-1997, etc.) o binario; en este ejemplo, la longitud de la dirección de la red del servidor de nombre 646 indica que la dirección de red del servidor de nombre 647 se almacena en formato binario (es decir, 4 bytes). El tamaño del apuntador de cadena 644 también puede ser optimizado para reflejar el tamaño de bloque de datos del servidor de nombre requerido, por ejemplo, cuatro bytes.
Generalmente, ambos índices de búsqueda, tales como los cuadros hash, y los registros de datos de longitud variable, pueden ser estructurados por lo que los apuntadores de 8 bytes están localizados en límites de 8 bytes en la memoria. Por ejemplo, el cuadro hash 612 puede contener un arreglo contiguo de apuntadores de 8 bytes a los registros del nombre de dominio 611, y pueden ser almacenados en una dirección de memoria divisible entre ocho (es decir, un límite de 8 bytes, u 8N). Similarmente, ambos índices de búsqueda, tales como los cuadros hash y los registros de datos de longitud variable pueden ser estructurados por lo que los apuntadores de 4 bytes están localizados en límites de 4 bytes en la memoria. Por ejemplo, el cuadro hash 632 puede contener un arreglo contiguo de apuntadores de 4 bytes para los registros del servidor de nombre 631, y pueden ser almacenadas en la dirección de la memoria divisible entre cuatro (es decir, límite de 4 bytes, o 4N). Consecuentemente, las modificaciones a la base de datos 600 pueden concluir mediante la actualización de un apuntador para una dirección alineada en la memoria utilizando una operación no interrumpible individual, incluyendo, por ejemplo, la escritura de un nuevo apuntador en el índice de búsqueda, tal como un cuadro hash o escribir un nuevo apuntador en cadena a un registro de longitud variable. La Figura 7 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. Generalmente, la base de datos 700 también puede estar organizada en una representación sujeta a búsquedas, individual de los datos. Las actualizaciones fijas de los datos pueden ser continuamente incorporadas a la base de datos 700, y las eliminaciones y modificaciones pueden ser físicamente realizadas sobre los registros de la base de datos relevantes para liberar espacio dentro de la memoria 104, por ejemplo, para subsiguientes adiciones o modificaciones. La representación sujeta a búsquedas, individual escala extremadamente bien tamaños fijos de datos grandes y velocidades de búsqueda y actualización altas, y obvia la necesidad de periódicamente recrear, propagar y recargar archivos de vista instantánea entre múltiples computadoras de motor de búsqueda. Muchas diferentes organizaciones de estructura de datos físicas son posibles. Una organización ilustrativa puede utilizar un índice de búsqueda alternativo para cuadros hash para el acceso secuencial ordenado a registros de datos, tales como el árbol de búsqueda ternario (suposición), o TST, el cual combina las características de los árboles de búsqueda binarios y suposiciones de búsqueda digitales. En una aplicación basada en texto, tal como, por ejemplo, quien es (whois), la resolución del nombre de dominio utilizando Extensiones Seguras DNS (Solicitud de Grupo de Comandos de Ingeniería en Internet para Comentarios: 2535), etc. los TSTs ventajosamente minimizan el número de operaciones de comparación requeridas para realizar, particularmente en el caso de una falla en la búsqueda, y puede producir mediciones del funcionamiento de la búsqueda excediendo las implementaciones del motor de búsqueda hash. Adicionalmente, los TSTs también pueden proporcionar características de búsqueda de texto avanzadas, tales como, por ejemplo, búsquedas de comodines, las cuales pueden ser útiles en aplicaciones de búsqueda de texto, tales como, por ejemplo, quien es (whois), resolución de nombre de dominio, búsqueda de contenido en Internet, etc. En una modalidad, un TST puede contener una secuencia de nodos enlazados juntos en una relación jerárquica. Un nodo raíz puede estar localizado en la parte superior del árbol, los nodos hijos relacionados y los enlaces pueden ser ramas, y nodos hoja pueden terminar al final de cada rama. Cada nodo hoja puede estar asociado con una clave de búsqueda particular, y cada nodo en la trayectoria hacia el nodo hoja puede contener un elemento secuencial, individual de la clave. Cada nodo en el árbol contiene un carácter de comparación, o valor dividido, y tres apuntadores a otros nodos "hijo" sucesivos en el árbol. Estos apuntadores hacen referencia a los nodos hijo cuyos valores divididos son menores que, igual a, o mayores que el valor dividido del nodo. Al buscar el TST para una clave particular, por lo tanto, involucra atravesar el árbol desde el nodo raíz al nodo hoja final, secuencialmente comparando cada elemento, o posición de carácter, de la clave con los valores de división de los nodos a lo largo de la trayectoria. Adicionalmente, un nodo hoja también puede contener un apuntador a un registro clave, el cual puede, a su vez, contener por lo menos un apuntador a un registro de datos terminal conteniendo los datos de registro asociados con la clave (por ejemplo, una dirección IP). Alternativamente, el registro clave puede contener los datos de registro en su totalidad. Los datos de registro pueden ser almacenados en formato binario, formato de texto ASCII, etc. En una modalidad, la base de datos 700 puede estar organizada como un TST, incluyendo una pluralidad de nodos de búsqueda de longitud fija 701, una pluralidad de registros de datos clave de longitud variable 702 y una pluralidad de registros de datos de longitud variable 703. Los nodos de búsqueda 701 pueden incluir varios tipos de información como se describió anteriormente, incluyendo, por ejemplo, un carácter de comparación (o valor) y posición, apuntadores de nodo de rama y un apuntador clave. El tamaño de las apuntadores de noto puede generalmente ser determinado a través del número de nodos, mientras el tamaño de las apuntadores clave puede generalmente ser determinado por el tamaño del grupo de datos clave de longitud variable. Los registros de datos clave 702 pueden contener información clave e información de datos terminal, incluyendo, por ejemplo, apuntadores para los registros de datos terminales o datos de registro embebidos, mientras los registros de los daos terminales 703 pueden contener datos de registro. En una modalidad, cada nodo de búsqueda de longitud fija puede ser de 24 bytes de longitud. El nodo de búsqueda 710, por ejemplo, puede contener un carácter de comparación de ocho bits (o valor de byte) 711, una posición de carácter de 12 bits (o byte) 712, y un estado/tipo de nodo de 12 bits (no mostrado por clarificar); estos datos pueden ser codificados dentro de los primeros cuatro bytes del nodo. El carácter de comparación 711 puede ser codificado dentro del primer byte del nodo como se describe en la Figura 7, o alternativamente, la posición del carácter 712 puede ser codificada dentro de los primeros 12 bis del nodo con el fin de optimizar el acceso a la posición del carácter 712 utilizando un operación de intercambio individual. Los siguientes 12 bytes de cada nodo de búsqueda pueden contener tres apuntadores de 32 bits, es decir, pauta 713, pauta 714 y pauta 715, representando las apuntadores del nodo rama "menor que", "igual a", y "mayor que", respectivamente. Estos apuntadores pueden contener un contador, un índice nodo, en lugar de una compensación de byte o dirección de memoria. Para los nodos de búsqueda de longitud fija, la compensación de byte puede ser calculada a partir del contador, o valor índice, y la longitud fija, por ejemplo, contador*longitud . Los últimos cuatro bytes pueden contener un apuntador clave de 40 bits 716, la cual puede ser un valor nulo indicando que un registro de datos clave correspondiente no existe (mostrado) o un apuntador a una registro de datos clave correspondiente (no mostrado), así como otros datos, incluyendo, por ejemplo, una longitud clave de 12 bits y un campo de tipo/estado de pauta 12 bits. El apuntador clave 716 puede contener una compensación de byte al registro de datos clave apropiado, mientras que la longitud clave puede ser utilizada para optimizar la búsqueda e inserción cuando se elimina una ramificación en una vía dentro de TST. El campo de tipo/estado de pauta puede contener información utilizada en la verificación de validación y asignación de datos utilizados en el administrador de memoria. En una modalidad, los registros de datos clave 750 pueden incluir, por ejemplo, una clave de longitud variable 753 y por lo menos un apuntador de datos terminar. Como se describe en la Figura 7, el registro de datos clave 750 incluye dos apuntadores de datos terminales: apuntador de datos terminal 757 y apuntador de datos terminal 758. El registro de datos clave 750 puede ser prefijado con una longitud clave de 12 bits y un contador/estado de apuntador terminal de 12 bits 752, y puede incluir un relleno para alinear el apuntador de datos terminal (no mostrado para claridad) 757 y apuntador de datos terminal 758 sobre un límite de 8 bytes en la memoria 104. El apuntador de datos termina 757 y el apuntador de datos termina 758 puede cada uno contener varios datos, tales como, por ejemplo, tipo de dato terminal, estado o datos útiles en búsquedas de registros binarios. El apuntador de datos terminal 757 y el apuntador de datos terminal 758 pueden ser almacenados por tipo de dato terminal para una recuperación más rápida de los registros fuente específicos (por ejemplo, registro de datos terminal 760 y registro de datos terminal 770). En otra modalidad, el registro de datos clave 740 puede incluir datos terminal embebidos 746 en lugar de, o además de, los apuntadores de registro de datos terminal. Por ejemplo, el registro de datos clave 740 puede incluir una longitud clave 741, un contador de apuntador terminal 742, una clave de longitud variable 742, el número de elementos de registro embebidos 744, seguido por una longitud de elemento de registro 745 (en bytes, por ejemplo) y datos de registro embebidos 746 (por ejemplo, una cadena, una secuencia de bytes, etc.) para cada uno del número de elementos del registro embebido 744. En una modalidad, el registro de datos terminal 760, por ejemplo, puede incluir una longitud de 12 bits, un estado de 4 bits, y una cadena de longitud variable 762 (por ejemplo, una dirección IP). Alternativamente, la cadena de longitud variable 762 puede ser una secuencia de byte. El registro de datos terminal 760 puede incluir el relleno para alinear cada registro de datos terminal a un límite de 8 bytes en la memoria 104. Alternativamente, el registro de datos terminar 760 puede no incluir ningún relleno. Los algoritmos de administración de memoria pueden determinar, generalmente, si los registros de datos terminal 760 están rellenados a límites de 8 bytes, 4 bytes o 0 bytes. Similarmente, el registro de datos terminal 770 puede incluir una longitud de 12 bits 771, un estado de 4 bits, y una cadena de longitud variable 772 (por ejemplo, una dirección IP). Generalmente, ambos índices de búsqueda, tales como TSTs, y registros de datos pueden estar estructurados para que los apuntadores de 8 bytes estén localizados en límites de 8 bytes en la memoria. Por ejemplo, el apuntador clave 726 puede contener un apuntador de 8 bytes (o menos) al registro de datos clave 740, y puede ser almacenado como una dirección de memoria divisible entre ocho (es decir, un límite de 8 bytes, u 8N). Similarmente, ambos índices de búsqueda, tales como TSTs, y registros de datos pueden ser estructurados para que los apuntadores de 4 bytes estén localizados en límites de 4 bytes en la memoria. Por ejemplo, el apuntador de rama de nodo 724 puede contener un apuntador de 4 bytes (o menos) al nodo 730, y puede ser almacenado en una dirección de memoria divisible entre cuatro (es decir, un límite de 4 bytes, o 4N). Consecuentemente, las modificaciones a la base de datos 700 pueden concluirse actualizando un apuntador a una dirección alineada en la memoria utilizando una operación no interrumpible individual, incluyendo, por ejemplo a escritura de un nuevo apuntador en el índice de búsqueda, tal como un nodo TST, o escribiendo un nuevo apuntador al registro de datos. La Figura 8 es un diagrama de bloque detallado que ilustra una arquitectura de la base de datos general, de acuerdo con una modalidad de la presente invención. Como anteriormente, la base de datos 800 también puede ser organizada en una representación localizable, individual de los datos. Las actualizaciones fijas de los datos pueden ser continuamente incorporadas a la base de datos 800 y las eliminaciones o modificaciones pueden ser físicamente realizadas sobre registros de la base de datos relevante para liberar espacio dentro de la memoria 104, por ejemplo, para subsiguientes adiciones o modificaciones. La representación localizable, individual escala extremadamente bien grandes tamaños de datos fijos y búsquedas altas y velocidades de actualización y obvia la necesidad de periódicamente recrear, propagar y recargar archivos de vista instantánea entre múltiples computadoras de motor de búsqueda. Otras estructuras de índices de búsqueda son posibles para accesar datos de registro. En una modalidad, la base de datos 800 puede utilizar un índice de búsqueda ordenado alternativo, organizado como un árbol clave ordenado (es decir, un "árbol OAK"). La base de datos 800 puede incluir, por ejemplo, una pluralidad de nodos de búsqueda de longitud variable 801, una pluralidad de registros de longitud variable 802 y una pluralidad de registros de datos terminal de longitud variable 803. Dichos nodos 801 pueden incluir varios tipos de información como se describió anteriormente, tales como, por ejemplo, claves de búsqueda, apuntadores a otros nodos de búsqueda, apuntadores a registros clave, etc. En una modalidad, la pluralidad de nodos de búsqueda 801 puede incluir nodos verticales y horizontales conteniendo fragmentos de claves de búsqueda (por ejemplo, cadenas), así como apuntadores a otros nodos de búsqueda o registros clave. Los nodos verticales pueden incluir, por ejemplo, por lo menos una clave de búsqueda, apuntadores a nodos horizontales dentro del pluralidad de nodos de búsqueda 801, apuntadores a los registros clave dentro de la pluralidad de registros clave 802, etc. Los nodos horizontales puede incluir, por ejemplo, por lo menos dos claves de búsqueda, o caracteres, apuntadores a nodos verticales dentro de la pluralidad de nodos de búsqueda 801, apuntadores a nodos horizontales dentro de la pluralidad de nodos de búsqueda 801, apuntadores a los registros clave dentro de la pluralidad de registros clave 802, etc. Generalmente, los nodos verticales pueden incluir una secuencia de claves (por ejemplo, caracteres) representando un fragmento de clave de búsqueda (por ejemplo, una cadena), mientras los nodos horizontales pueden incluir varias claves (por ejemplo, caracteres) que pueden existir en una posición particular dentro del fragmento de clave de búsqueda (por ejemplo, cadena). En una modalidad, la pluralidad de nodos de búsqueda 801 puede incluir nodos verticales 810, nodos verticales 820 y nodos horizontales 830. Los nodos verticales 810 pueden incluir, por ejemplo, un tipo de nodo de 2 bits (por ejemplo, "10") 811, una dirección de 38 bits 812, un longitud de 8 bits 813 (por ejemplo, "8"), un primer carácter de 8 bits 814 (por ejemplo, "I"), y un segundo carácter de 8 bits 815 (por ejemplo, "nulo"). En este ejemplo, la dirección 812 puede apuntar hacia el siguiente nodo en el árbol de búsqueda, es decir, el nodo vertical 820. En una modalidad, la dirección de 38 bits 812 puede incluir un indicador terminal/nodal de 12 bits y una dirección de compensación de 37 bits para hacer referencia a una de las palabras de 8 bytes dentro de un espacio de memoria de 1 Tbyte (aproximadamente 1012 byte) de la memoria 104. Por consiguiente, el nodo vertical 810 puede ser de ocho bytes (64 bits) de longitud, y, ventajosamente, puede estar localizado en un límite de palabra de 8 bytes en la memoria 104. Generalmente, cada nodo vertical dentro de la pluralidad de nodos de búsqueda 801 puede estar localizado en un límite de palabra de 8 bytes dentro de la memoria 104. Un nodo vertical puede incluir un fragmento clave de búsqueda, multicaracter (por ejemplo, cadena). Generalmente, las claves de búsqueda sin registros de datos asociados se pueden colapsar en un nodo vertical individual para efectivamente reducir el número de nodos verticales requeridos dentro de la pluralidad de nodos de búsqueda 801. En una modalidad, el nodo vertical 810 puede incluir 8 bits para cada carácter adicional, por arriba de dos caracteres, dentro del fragmento clave de búsqueda, tal como, por ejemplo, caracteres de 8 bits 816-1, 816 + -2.....816-N (mostrado en contorno fantasma). Ventajosamente, el nodo vertical 810 puede ser rellenado para un limite de 64 bits dentro de la memoria 104 de acuerdo con el número de caracteres adicionales localizados dentro del fragmento cadena. Por ejemplo, si nueve caracteres van a ser concluidos dentro del nodo vertical 810, entonces los caracteres uno y dos pueden ser asignados al primer carácter 814 y el segundo carácter 815, respectivamente, y 56 bits de información de carácter adicional, correspondiente a los caracteres tres a nueve, pueden ser anexados al nodo vertical 810. Un relleno adicional de 8 bits puede ser incluido para alinear la información de carácter adicional en un limite de palabra de 8 bytes. Similarmente, el nodo vertical 820 puede incluir, por ejemplo, un tipo de nodo de 2 bits 821 (por ejemplo, "10"), una dirección de 38 bits 822, una longitud de 8 bits 823 (por ejemplo, "8"), un primer carácter de 8 bits 824 (por ejemplo, "a), y un segundo carácter de 8 bits (por ejemplo, "nulo"). En este ejemplo, la dirección 822 puede apuntar hacia el siguiente nodo en el árbol de búsqueda, es decir, el nodo horizontal 830. Por consiguiente, el nodo vertical 820 puede ser de ocho bytes en longitud, y ventajosamente, puede estar localizado en un límite de palabra de 8 bytes dentro de la memoria 104. Por supuesto, la información adicional también puede ser incluida dentro del nodo vertical 820 si se requiere, como se describió anteriormente con referencia al nodo vertical 810. El nodo horizontal 830 puede incluir, por ejemplo, un tipo de nodo de 2 bits 831 (por ejemplo, "01"), una dirección de 38 bits 832, un contador de dirección de 8 bits 833 (por ejemplo, 2), un primer carácter de 8 bits 834 (por ejemplo "·"), un último carácter de 8 bits 835 (por ejemplo, "w"), un mapa de bits de longitud variable 836 y una segunda dirección de 38 bits 837. En este ejemplo, el primer carácter 834 puede incluir un carácter individual, "·", representando el fragmento clave de búsqueda "la" definido por nodos verticales 810 y 820, mientras que el último carácter 831 puede incluir un carácter individual "w", representando el fragmento clave de búsqueda "law" definido por los nodos verticales 810 y 820, y el último carácter 835 del nodo horizontal 830. La primera dirección 832 puede apuntar hacia el registro de datos clave 840, asociado con el fragmento clave de búsqueda "la" mientras la segunda dirección 837 puede apuntar hacia el registro de datos clave 850 asociado con el fragmento de clave de búsqueda "law". El mapa de bits 836 puede ventajosamente indicar que claves (por ejemplo, caracteres) hace referencia al nodo horizontal 830. Un "1" dentro de una posición de bits en el mapa de bits 836 indica que la clave, o carácter, hace referencia al nodo horizontal 830, mientras un "0" hace referencia al nodo horizontal 830. Generalmente, la longitud del mapa de bits 836 puede depender del número de claves secuenciales, o caracteres, entre el primer carácter 824 y el último carácter 835, inclusive de estos caracteres de límite. Por ejemplo, si el primer carácter 834 es "a" y el último carácter 835 es "z", entonces el mapa de bits 836 puede ser de 26 bits de longitud, en donde cada bit corresponde a uno de los caracteres entre, e incluyendo, "a" a "z". En este ejemplo, las direcciones de 38 bits adicionales podrían ser anexadas al final de nodo horizontal 830, correspondiente a cada uno de los caracteres representados dentro del mapa de bits 836. Cada uno de estas direcciones de 38 bits, así como el mapa de bits 836, puede ser rellenado para alinear cada cantidad de un límite de palabra de 8 bytes dentro de la memoria 104. En una modalidad, el grupo de caracteres ASCII de ocho bits puede ser utilizado como el espacio clave de búsqueda por lo que el mapa de bits 836 puede ser tan grande como 256 bits (es decir, 28 bits o 32 bytes). En el ejemplo descrito en la Figura 8, debido al carácter de referencia especial "·", y el contador de dirección 833 de "2", el mapa de bits 836 puede ser de dos bits en longitud y puede incluir un "1" en cada posición de bits correspondiente al último carácter 835. En una modalidad, y como se discutió aquí con referencia al registro de datos clave 750 (Figura 7), el registro de datos clave 850 puede incluir, por ejemplo, una clave de longitud variable 853 y por lo menos un apuntador de datos terminal. Como se describió en la Figura 8, el registro de datos clave 850 incluye dos apuntadores de datos terminal, apuntador de datos terminal 857 y apuntador de datos terminal 858. El registro de datos clave 850 puede ser prefijado con una longitud clave de 12 bits 851 y el contador/estado del apuntador de terminal de 12 bits 852, y puede incluir rellenado (no mostrado para claridad) para alinear el apuntador de datos terminal 857 y el apuntadora de datos terminal 858 en un límite de 8 bytes en la memoria 104. El apuntador de datos terminal 856 y el apuntador de datos terminal 858 puede cada uno contener un tipo de datos terminal de 8 bits y otros datos, tales como, por ejemplo, longitud, estado o datos útiles en búsquedas de registros binarios. El apuntador de datos terminal 857 y el apuntador de datos terminal 858 pueden ser clasificados por tipo de dato terminal para una recuperación más rápida de registros fuente específicos (por ejemplo, registro de datos terminal 860 y registro de datos terminal 870). En otra modalidad, y como se discute aquí con referencia al registro de datos clave 740 (Figura 7), el registro de datos clave 840 puede incluir datos terminal embebidos 846 en lugar de un apuntador de datos de registro terminal. Por ejemplo, el registro de datos clave 840 puede incluir una longitud clave 841, un contador del apuntador terminal 842, una clave de longitud variable 843, el número de elementos de registro embebidos 844, seguido por una longitud del elemento de registro 845 (en bytes, por ejemplo), y datos de registro embebidos 846 (por ejemplo, una cadena, una secuencia de bytes, etc.) para cada uno del número de elementos de registro embebidos 844. En otra modalidad, y como se discute aquí con referencia al registro de datos terminal 760 (Figura 7), el registro de datos terminal 860, por ejemplo, puede incluir una longitud de 12 bits 861, un estado de 4 bits, y una cadena de longitud variable 862 (por ejemplo, una dirección IP). Alternativamente, la cadena de longitud variable 862 puede ser una secuencia de byte. El registro de datos terminal 860 puede incluir rellenado (no mostrado por claridad) para alinear cada registro de datos terminal a un límite de 8 bytes en la memoria 104. Alternativamente, el registro de datos terminal 860 puede incluir rellenado (no mostrado por claridad) a un límite de 4 bytes, o, registro de datos terminal 869 puede no incluir ningún relleno. Los algoritmos de administración de memoria pueden determinar, generalmente, si los registros de datos terminales 760 están rellenados a límites de 8 bytes, 4 bytes o 0 bytes. Similarmente, el registro de datos terminal 870 puede incluir una longitud de 12 bits 871, un estado de 4 bits, y una cadena de longitud variable 872 (por ejemplo, una dirección IP). Generalmente, ambos índices de búsqueda, tales como los árboles OAK, y los registros de datos pueden estar estructurados para que los apuntadores de 8 bytes estén localizados en límites de 8 bytes en la memoria. Por ejemplo, el nodo vertical 810 puede contener un apuntador de 8 bytes (o menos) a un nodo vertical 820, y puede ser almacenado en una dirección de memoria divisible entre ocho (por ejemplo un límite de 8 bytes, u 8N). Similarmente, ambos índices de búsqueda, tales como los árboles OAK, y los registros de datos pueden ser estructurados por lo que los apuntadores de 4 bytes están localizados en límites de 4 bytes en la memoria. Consecuentemente, las modificaciones a la base de datos 800 puede concluirse a través de un apuntador a una dirección alineada en la memoria utilizando una operación no interrumpible individual, incluyendo, por ejemplo, escribir un nuevo apuntador en el índice de búsqueda, tal como un nodo árbol OAK, o escribir un nuevo apuntador en un registro de datos. Las varias modalidades discutidas anteriormente con referencia a la Figura 8 presentan muchas ventajas. Por ejemplo, una estructura de datos OAK es extremadamente eficiente en cuanto a espacio y limpia en 8 bits. Las búsquedas de expresión regular pueden ser utilizadas para buscar nodos verticales conteniendo fragmentos de cadena multicaracter, ya que el primer carácter de 8 bits (por ejemplo, el primer carácter 814), el segundo carácter de 8 bits (por ejemplo, segundo carácter 815), y cualesquiera caracteres adicionales de 8 bits (por ejemplo, caracteres adicionales 816-1.....816-N) pueden ser contiguamente localizados dentro del nodo vertical (por ejemplo, nodo vertical 810). Las fallas en las búsquedas pueden ser rápidamente descubiertas, y, no más de N nodos pueden necesitar ser atravesados para buscar una cadena de búsqueda de longitud de N caracteres. La Figura 9 es un diagrama de bloque de nivel superior que ilustra un método para buscar y concurrentemente actualizar una base de datos sin el uso de sistema operativo o bloqueos de cuadro de base de datos, de acuerdo con modalidades de la presente invención. Un argumento de actualización y una pluralidad de argumentos de búsqueda pueden ser creados (900). En una modalidad, el sistema 100 puede extender un argumento de actualización individual para incorporar las actualizaciones a la base de datos local recibidas, por ejemplo, desde el servidor OLTP 140-1 a traes de WAN 124. En otras modalidades, el sistema 100 puede recibir actualizaciones desde los servidores OLTP 140-1 , ...140-S a través de WAN 124, y a partir de la pluralidad de computadoras en red 120-1....120-N a través de WAN 124 o LAN 122. El sistema 100 también puede extender un argumento de búsqueda en respuesta a cada sesión solicitada recibida de la pluralidad de computadoras en red 120-1 , ...120-N. Por ejemplo, un argumento de administración puede sondear uno o más puertos de control, asociados con una o más interfases de red 114-1 ,...114-0, para solicitudes de sesión transmitidas desde la pluralidad de computadoras en red 120-1....120-N. Una vez que ser recibe una solicitud de sesión de una computadora en red particular 120-1 120-N , el administrador de argumentos puede extender un argumento de búsqueda y asociar el argumento de búsqueda con esa computadora en red particular (por ejemplo, PE). En una modalidad alternativa, el sistema 100 puede extender un número de argumentos de búsqueda sin sondear solicitudes de sesión de la pluralidad de computadoras en red 120-1 , ...120-N. En esta modalidad, los argumentos de búsqueda pueden no estar asociados con computadoras en red particulares y pueden estar distribuidos uniformemente entre la pluralidad de procesadores 102-1.,,,102-P. Alternativamente, los argumentos de búsqueda pueden ejecutarse sobre un subgrupo de la pluralidad de procesadores 102-1....102-P. El número de argumentos de búsqueda puede no necesariamente coincidir con el número de computadoras en red (por ejemplo, N). Una pluralidad de consultas de búsqueda pueden ser recibidas (910) a través de la red. En una modalidad, la pluralidad de computadoras en red 120-1 120-N pueden enviar la pluralidad de consultas de búsqueda al sistema 100 a través de LAN 122 o, alternativamente, WAN 124. La pluralidad de consultas de búsqueda puede contener, por ejemplo, un término de búsqueda o clave, así como información de estado que puede estar asociada con cada consulta (por ejemplo, dirección de la fuente de consulta, tipo de protocolo, etc.). La información de estado puede ser explícitamente mantenida a través del sistema 100, o, alternativamente, un manipulador de la información de estado puede ser provisto. En una modalidad preferida, cada uno de la pluralidad de computadoras en red 120-1 , ...120-N pueden multiplexar un número predeterminado de consultas de búsqueda en un paquete de red individual para la transmisión al sistema 100 (por ejemplo, un Super Paquete de Solicitud 220 como se describe en la Figura 2). En una modalidad alternativa, una pluralidad de consultas de búsqueda y la nueva información pueden ser recibidas (910, 960) concurrentemente a través de la red. Por ejemplo, la pluralidad de computadoras en red 120-1 120-N, pueden enviar la pluralidad de consultas de búsqueda y la nueva información al sistema 100 a través de LAN 122, o alternativamente WAN 124. La pluralidad de consultas de búsqueda puede contener, por ejemplo, un término de búsqueda o clave, así como una información de estado que puede estar asociada con cada consulta (por ejemplo, dirección de la fuente de consulta, tipo de protocolo, etc.). La nueva información puede incluir, por ejemplo, adiciones, modificaciones o eliminaciones a la base de datos, o puede ser agrupada junta como una transacción con un identif icador asociado. Por ejemplo, en una modalidad, cada una de la pluralidad de computadoras en red 120-1 120-N puede multiplexar un número predeterminado de consultas de búsqueda y nueva información en un paquete de red individual para transmisión al sistema 100, tal como, por ejemplo, un Super Paquete de Solicitud 220 (nueva información no descrita por claridad). Para aquellas consultas que dependen de la nueva información dentro de la transacción, la información de estado asociada con esas consultas puede incluir el identif icador de transacción, y típicamente, pueden ser mantenidas por el sistema 100. Cuando el argumento de actualización aplica a la transacción a la base de datos (es decir, por ejemplo, una transacción en proceso), las consultas de búsqueda que dependen de la transacción penderán hasta que el argumento de actualización se complete exitosamente y se comprometa la transacción . Cada consulta de búsqueda puede ser asignada (920) a uno de los argumentos de búsqueda para procesamiento. En una modalidad, el argumento de búsqueda puede estar asociado con una de la pluralidad de computadoras en red 120-1 , ...120-N y todas las consultas de búsqueda recibidas de la computadora en red particular pueden ser asignadas (920) al argumento de búsqueda. En otras palabras, un argumento de búsqueda puede procesar todas las consultas de búsqueda que llegan de una computadora en red individual (por ejemplo, una PE individual). En una modalidad preferida, cada argumento de búsqueda puede extraer consultas de búsqueda individuales de un paquete de red multiplexado, individual (por ejemplo, Super Paquete de Solicitud 220 como se describe en la Figura 2), o, alternativamente, la extracción puede ser realizada a través de un proceso diferente o argumento. En otra modalidad, las consultas de búsqueda recibidas de cada una de la pluralidad de computadoras en red 120-1 120-N pueden ser asignadas (920) a diferentes argumentos de búsqueda. En esta modalidad, la asignación multi-argumento puede estar basada en una función de distribución óptima la cual puede incorporar varios parámetros del sistema incluyendo, por ejemplo, cargar el procesador. Por supuesto, la asignación de consultas de búsqueda para los argumentos de búsqueda puede cambiar a través del tiempo, en base a varios parámetros del sistema, incluyendo la disponibilidad del procesador, funcionamiento del componente del sistema, etc. Varios mecanismos pueden ser utilizados para transportar consultas de búsqueda a los argumentos de búsqueda asignados dentro del sistema 100, tales como, por ejemplo, memoria compartida, mensajes entre procesos, fichas, semáforos, etc. Cada consulta de búsqueda puede consultar (930) la base de datos en las consultas de búsqueda asignadas. En una modalidad, cada consulta de búsqueda puede extraer consultas de búsqueda individuales de un paquete de red multiplexado, individual (por ejemplo, Super Paquete de Solicitud 220 como se describe en la Figura 2), o, alternativamente, la extracción puede ser realizada a través de un proceso o argumento diferente. Claramente, la búsqueda de bases de datos puede depender de la estructura subyacente de la base de datos. En una modalidad, la búsqueda de la base de datos puede depender de las modificaciones contenidas dentro de una transacción particular para aquellas consultas de búsqueda dependientes de la transacción. Haciendo referencia a la modalidad de la base de datos ¡lustrada en la Figura 4, la base de datos 400 puede ser consultada (930) para la clave de búsqueda. El registro de datos (por ejemplo, registro de base de datos 420) correspondiente a la clave de búsqueda puede entonces ser determinado. Haciendo referencia a la modalidad de la base de datos ilustrada en la Figura 5, el archivo de buscar aparte 520 puede primero ser consultado (930) para la clave de búsqueda, y, si una comparación no se determina, entonces el archivo de vista instantánea 510 puede ser consultado (930). El registro de datos correspondiente a la clave de búsqueda puede entonces ser determinado. Haciendo referencia a la modalidad de la base de datos ilustrada en la Figura 6, los datos de nombre de dominio 610 pueden primero ser consultados (930) para la clave de búsqueda, y entonces los datos fuente dentro de los datos del servidor del nombre 630, correspondientes a la clave de búsqueda, pueden entonces ser determinados. Por ejemplo, para la clave de búsqueda "la.com", se puede determinar una coincidencia con el registro del nombre de dominio 620 en los datos del nombre de dominio 610. La información apropiada puede ser extraída, incluyendo, por ejemplo, el apuntador del servidor del nombre 626. Entonces, el registro del servidor del nombre apropiado 640 puede ser indexado utilizando el apuntador del servidor de nombre 626, y la dirección de la red del servidor de nombre 647 puede ser extraído. Haciendo referencia a la modalidad de la base de datos ilustrada en la Figura 7, el TST puede ser consultado (930) para la clave de búsqueda, a partir de la cual los datos fuente pueden ser determinados. Por ejemplo, para la clave de búsqueda "law.com", los nodos de búsqueda 710 pueden ser consultados (930), y se determina una coincidencia con el nodo 730. El apuntador de clave 736 puede ser extraído, a partir del cual el registro de datos clave 750 puede ser determinado. El número de apuntadores de datos terminal 752 puede entonces ser identificado y cada apuntador de datos terminal puede ser extraído. Por ejemplo, el apuntador de datos terminal 757 puede hacer referencia al registro de datos terminal 760 y al apuntador de datos terminal 758 puede hacer referencia y el registro de datos terminal 770. Los datos fuente de longitud variable 772, pueden ser entonces extraídos de cada registro de datos terminal utilizando la longitud 761 y 771, respectivamente. Haciendo referencia a la modalidad de la base de datos ilustrada en la Figura 8, el árbol OAK puede ser consultado (930) para la clave de búsqueda, a partir de la cual los datos fuente pueden ser determinados. Por ejemplo, para la clave de búsqueda "law.com", los nodos de búsqueda 801 pueden ser consultados (930), y se determina una coincidencia con el nodo 830. La segunda dirección 837 puede ser extraída, a partir de la cual el registro de datos clave 850 puede ser determinado. El número de apuntadores de datos terminal 852 puede entonces ser identificado y cada apuntador de datos terminal puede ser extraído. Por ejemplo, el apuntador de datos terminal 857 puede hacer referencia al registro de datos terminal 860 y al apuntador de datos terminal 858 puede hacer referencia y el registro de datos terminal 870. Los datos fuente de longitud variable, por ejemplo, dirección de la red del servidor del nombre 862 y la dirección de la red del servidor de nombre 872 pueden ser entonces extraídos de cada registro de datos terminal utilizando la longitud 861 y 871, respectivamente. Cada argumento de búsqueda puede crear (940) una pluralidad de respuestas de búsqueda correspondientes a las consultas de búsqueda asignadas. Si no se encuentra una coincidencia para una clave de búsqueda particular, la respuesta puede incluir una indicación apropiada, tal como, por ejemplo, el carácter nulo. Haciendo referencia a las Figuras 6-8, por ejemplo, la clave de búsqueda podría ser "law.com" y los datos fuente correspondientes podrían ser "180.1.1.1". Más de una dirección de la red del servidor de nombre puede estar asociada con una clave de búsqueda, en cuyo caso, más de una dirección de la red del servidor de nombre puede ser determinado. Las respuestas pueden ser enviadas (950) a través de la red.
En una modalidad, cada consulta de búsqueda puede multiplexar las respuestas apropiadas e un paquete de red individual (por ejemplo, Super Paquete de Respuesta 240) correspondiente a un paquete de red individual conteniendo las consultas originales (por ejemplo Super Paquete de Solicitud 220). Alternativamente, un proceso diferente o argumento puede multiplexar las contestaciones apropiadas en un paquete de red individual. El paquete de red de respuesta puede entonces ser enviado (950) a la computadora en red apropiada dentro de la pluralidad de computadoras en red 120-1....120-N a través de la LAN 122, o alternativamente, WAN 124. En una modalidad, los paquetes de respuesta pueden ser enviados a la misma computadora en red a partir de la cual los paquetes de solicitud se originan, mientras en otra modalidad, los paquetes de respuesta pueden ser enviados a una computadora en red diferente. El argumento de actualización puede recibir (960) nueva información a través de la red. En una modalidad, la nueva información puede ser enviada, por ejemplo, desde el servidor OLTP 140-1a sistema 100 a través de WAN 124. En otras modalidades, el sistema 100 puede recibir actualizaciones de los servidores OLTP 140- 140-S a través de WAN 124, y a partir de una pluralidad de computadoras en red 120- 1 , ...120-N a través de WAN 124 o LAN 122. Como se discutió anteriormente, en una modalidad, la pluralidad de computadoras en red 120- 1 , ...120-N pueden enviar la pluralidad de consultas de búsqueda y la nueva información al sistema 100 a través de LAN 122, o, alternativamente, WAN 124. En consecuencia, en esta modalidad, la pluralidad de consultas de búsqueda y la nueva información pueden ser recibidas (910, 960) concurrentemente a través de la red. En la modalidad de resolución de DNS, por ejemplo, la nueva información puede incluir datos de nombre de dominio, datos del servidor de nombre, un nuevo servidor de nombre para un nombre de dominio existente, etc. Alternativamente, la nueva información puede indicar que un registro de nombre de dominio, nuevo registro de servidor, etc., puede ser eliminado de la base de datos. Generalmente, cualquier información contenida dentro de la base de datos puede ser agregada, modificada, o eliminada, según sea apropiado. En una modalidad, varias modificaciones a la base de datos pueden ser agrupadas juntas como una transacción y aplicadas a la base de datos como un grupo de modificación consistente. Por ejemplo, una transacción puede incluir varias combinaciones de adiciones, modificaciones o eliminaciones de registro a la base de datos. Debido que el acceso a la búsqueda en la base de datos no está restringido, un campo indicador (por ejemplo, "bit sucio") puede ser provisto dentro de cada registro de la base de datos para notificar los argumentos de búsqueda que, cuando el bit sucio es establecido para un registro de base de datos particular, las modificaciones de la base de datos asociadas dentro una transacción están en progreso y un reintento de búsqueda subsiguiente de un registro de la base de datos particular es requerido. Una vez que la transacción ha sido aplicada y las modificaciones se completan, los bits sucios pueden ser aclarados para todos los nuevos elementos de la base de datos efectuados por la transacción. En algún sentido, la nueva información puede ser considerada como estando "comprometida". De esta manera, la base de datos puede ser transformada a partir de un estado válido a otro estado válido sin restringir el acceso a la búsqueda en la base de datos. Ventajosamente, ningún bloqueo de cuadro del sistema operativo o base de datos es requerido para prevenir que dichas consultas accedan la base de datos durante estos períodos de actualización. Se incurre en una penalidad de funcionamiento ligera, debido a que una consulta de búsqueda puede necesitar ser repetida si el bit sucio se determina que esté establecido para cualquier registro de la base de datos particular. El bit sucio puede estar localizado dentro de la palabra más significati a del registro de la base de datos, por lo que ese bit puede ser inspeccionado en el momento en que su palabra es transferida de la memoria 104 al procesador 102-1, por ejemplo. Las transferencias de memoria adicionales asociadas con la porción restante del registro de la base de datos puede se esta manera ser evitada si el bit sucio se determina que esté establecido. El período de reintento de consulta puede ser en el orden de nanosegundos para las modalidades del sistema ilustrativo discutidas con referencia a la Figura 1. Típicamente, el bit sucio puede ser aclarado antes de que el reintento de consulta accese el registro de la base de datos particular otra vez. Alternativamente, o cuando un bit sucio es establecido durante la transacción en progreso, el resultado de consulta en el punto en el tiempo consistente puede ser reconstruido a partir del contenido del registro de rehacer, o administrador de registros, por ejemplo, como es común en la práctica en sistemas de bases de datos internacionales. Para consultas de búsqueda que pueden encontrar un bit sucio debido a una modificación en progreso individual que no es parte de una transacción en progreso, la repetición de la consulta puede usualmente incurrir en una penalidad de funcionamiento menor que reconstruir el resultado de la consulta a partir del administrador de registros. En donde el bit sucio es debido a una transacción en progreso con un grupo extendido de modificaciones recibidas a través de un período extendido de tiempo, la reconstrucción del resultado de la consulta del administrador de registro puede ser preferido, por lo que el resultado de la consulta puede no ser indebidamente retrasado. Mientras el número de modificaciones al registro de la base de datos dentro de una transacción individual es generalmente ¡limitado, típicamente, una transacción Incluye información suficiente para mantener la atomicidad, consistencia, aislamiento y durabilidad de la base de datos. Muchas diferentes transacciones pueden ser visualizadas para cada modalidad de base de datos descrita en las Figuras 4 y 6-8. Haciendo referencia a la Figura 4, por ejemplo, una transacción puede incluir modificar los registros de la base de datos 410 y 420, modificar el registro de la base de datos 420 y agregar un nuevo registro de base de datos (por ejemplo, registro 430 de la base de datos), modificar el registro de la base de datos 420 y eliminar el registro de la base de datos (por ejemplo, registro de la base de datos 410), etc. Haciendo referencia a la Figura 6, por ejemplo, una transacción puede incluir la modificación del registro del nombre del dominio 620 y el registro del servidor del nombre 640, eliminar el registro del nombre del dominio 620 y agregar el registro del nombre del dominio 615, etc. Haciendo referencia a la Figura 7, por ejemplo, una transacción puede Incluir la modificación del registro de datos clave 750 y el registro de datos terminal 760 y eliminar el registro de los datos terminal 770, agregar el registro de datos clave 780 y eliminar el registro de datos clave 740, etc. Similarmente, haciendo referencia a la Figura 8, por ejemplo, una transacción puede incluir la modificación del registro de datos clave 850 y registro de datos terminal 860 y eliminar el registro de datos terminal 870, agregar registro de datos clave 880 y eliminar el registro de datos clave 840, etc. El argumento de actualización puede crear (970) una pluralidad de nuevos elementos basados en nueva información. Típicamente, las modificaciones a la información contenida dentro de un elemento existente en la base de datos puede ser incorporado creando un nuevo elemento basado en el elemento existente y después modificar el nuevo elemento para incluir la nueva información. Durante este proceso, el nuevo elemento puede no ser visible para los argumentos de búsqueda o procesos actualmente ejecutándose en el sistema 100 hasta que un apuntador al nuevo elemento ha sido escrito en la base de datos. Generalmente, las adiciones a la base de datos pueden ser logradas en una forma similar, sin necesariamente utilizar la información contenida dentro de un elemento existente. En una modalidad, la eliminación de un elemento existente de la base de datos puede ser lograda agregando un nuevo elemento "eliminar" explícito a la base de datos. En otra modalidad, la eliminación de un elemento existente de la base de datos puede ser lograda sobrescribiendo un apuntador al elemento existente con un indicador apropiado (por ejemplo, un apuntador nulo, etc.)- En esta modalidad, el argumento de actualización no crea un nuevo elemento en la base de datos conteniendo la nueva información. Haciendo referencia a la Figura 4, por ejemplo, el espacio en memoria para un nuevo registro de datos (por ejemplo, registro de datos 430) pude ser asignado de un grupo de memoria asociado con los registros de la base de datos 401. La nueva información puede ser copiada a los datos 432 del registro de datos 430, y otra información puede ser calculada y agregada al registro de datos 430, tal como, por ejemplo, apuntador de cadena 434, apuntador de datos 435, etc. Un bit sucio 408 también puede ser incluido dentro del nuevo registro de datos 430. Haciendo referencia a las modalidades de bases de datos descritas en las Figuras 6-8, por ejemplo, la nueva información puede incluir nuevos nombres de dominio y/o de servidores de nombre de dominio que van a ser agregados a la base de datos. Haciendo referencia a la Figura 6, el espacio en memoria para un nuevo registro de nombre de dominio 615 puede ser asignado de un grupo de memoria asociado con los registros de nombre de dominio 611, o, alternativamente, de un grupo de memoria general asociado con los datos de nombre de dominio 610. El nuevo nombre de dominio puede ser normalizado y copiado al nuevo registro de nombre de dominio 615, un apuntador a un servidor de nombre existente (por ejemplo, registro de servidor de nombre 655) puede ser determinado y copiado al nuevo registro del nombre de dominio 615. Un bit sucio 618 puede ser incluido dentro del nuevo registro de nombre de dominio 615. Otra información puede ser calculada y agregada al nuevo registro de nombre de dominio 615, tal como, por ejemplo, un número de servidores de nombre, un apuntador de cadena, etc. En ejemplos más complicados, la nueva información puede incluir una nueva clave de búsqueda con datos fuente correspondientes. Haciendo referencia a la Figura 7, en un ejemplo más complicado, un nuevo nodo de búsqueda 705, así como un nuevo registro de datos clave 780, puede ser creado. En este ejemplo, el nuevo nodo de búsqueda 705 puede incluir un carácter de comparación ("m"), en la primera posición, que es mayor que el carácter de comparación ("I"), en la primera posición, del nodo de búsqueda existente 710. Consecuentemente, el nodo de búsqueda 705 puede ser insertado en el TST en el mismo "nivel" (es decir, 1a. posición del carácter) como el nodo de búsqueda 710. Antes de que el nodo de búsqueda 705 sea comprometido en la base de datos, el apuntador "mayor que" 4 bytes 715 del nodo de búsqueda 710 puede contener un apuntador "nulo". Dicho nodo de búsqueda 705 también incluye un apuntador clave de 4 bytes 706 el cual puede contener un apuntador de 40 bits al nuevo registro de datos clave 780. El registro de datos clave 780 puede incluir una longitud clave 781 (por ejemplo, "5") y tipo 782 (por ejemplo, indicando los datos fuente embebidos), y clave de longitud variable 783 (por ejemplo, "m.com"), un número de fuentes embebidas 784 (por ejemplo, "1"), una longitud del recurso 785 (por ejemplo, "9"), una cadena de recurso de longitud variable 786 o secuencia de byte (por ejemplo, "180.1.1.1") y el bit sucio 707. El espacio de memoria puede ser asignado para cada nodo 705 de un grupo de memoria asociado con los nodos TST 701, mientras el espacio en memoria puede ser asignado para el registro de datos clave 770 a partir del grupo de memoria asociado cor la pluralidad de registros de datos clave 702. Haciendo referencia a la Figura 8, por ejemplo, un nuevo nodo de búsqueda 890, así como un nuevo registro de datos clave 880, puede ser creado. En este ejemplo, el nuevo nodo de búsqueda 890 puede ser un nodo horizontal incluyendo, por ejemplo, un tipo de nodo de dos bits 891 (por ejemplo, "01"), una primera dirección de 38 bits 892, un contador de dirección de ocho bits 893 (por ejemplo, 2), un primer carácter de ocho bits 894 (por ejemplo, "I"), un último carácter de ocho bits 896 (por ejemplo, "m"), un mapa de bits de longitud variable 896 y una segunda dirección de 38 bits 897. La primera dirección 892 puede apuntar hacia el nodo vertical 820, el siguiente nodo vertical en la trayectoria de cadena de búsqueda "K...>", mientras la segunda dirección 897 puede apuntar hacia el registro de datos clave 880 asociado con el fragmento clave de búsqueda "m". El registro de datos clave 880 puede incluir una longitud de clave 881 (por ejemplo, "5") y tipo 882 (por ejemplo, indicando los datos del recurso embebidos), y una clave de longitud variable 883 (por ejemplo, "m.com"), un número de recursos embebidos 885 (por ejemplo, "1"), una longitud del recurso 885 (por ejemplo, "9"), una cadena del recurso de longitud variable 886 o secuencia de byte (por ejemplo, "180.1.1.1") y el bit sucio 807. El espacio en memoria puede ser asignado para el nodo de búsqueda 890 a partir de un grupo de memoria asociado con la pluralidad de nodos de búsqueda 801, mientras el espacio en memoria puede ser asignado para el registro de datos clave 880 a partir del grupo de memoria asociado con la pluralidad de registros de datos clave 802.
La nueva información también puede incluir varias modificaciones a registros existentes dentro de la base de datos. Haciendo referencia a la Figura 4, la nueva información puede incluir modificaciones al registro de datos 410. En este ejemplo, el nuevo registro de datos 420 puede ser creado y la información a partir del registro de datos 410 copiada al mismo. Como anteriormente, el espacio de memoria para el registro de datos 420 puede ser asignado a partir de un grupo de memoria asociado con los registros de la base de datos 401. Las modificaciones entonces pueden ser aplicadas a los datos 422. Los registros de datos 410 y 420 también pueden incluir bits sucios 406 y 407, respectivamente. Haciendo referencia a la Figura 6, la nueva información puede incluir modificaciones al registro del servidor de nombre 640, tales como, por ejemplo, una nueva dirección IP (por ejemplo, "180.2.1.2"). En este ejemplo, el nuevo registro de servidor de nombre 660 puede ser creado y la información del antiguo registro del servidor de nombre 640 copiado al mismo. Como anteriormente, el espacio en memoria para el registro del servidor de nombre 660 puede ser asignado a partir de un grupo de memoria asociado con los registros del servidor de nombre 631, o, alternativamente, de un grupo de memoria general asociado con los datos del servidor de nombre 630. La nueva dirección IP del servidor de nombre puede entonces ser copiada al campo apropiado dentro del registro del servidor de nombre 660, es decir, la dirección IP del servidor de nombre 667. Un bit sucio 668 puede ser incluido dentro del nuevo registro del servidor de nombre 660. Modificaciones similares a los varios elementos dentro de las modalidades de las bases de datos descritas con referencia a las Figuras 7 y 8 también se contemplan. La nueva información también puede incluir la eliminación de por lo menos un elemento existente dentro de la base de datos. En una modalidad, no se puede crear ningún elemento nuevo, pero el bit sucio del elemento que va a ser eliminado puede ser establecido en el argumento de actualización. En otra modalidad, un nuevo elemento, explícito puede ser creado, con el bit sucio establecido, indicando que el elemento anterior ha sido removido de la base de datos. Haciendo referencia a la Figura 4, por ejemplo, la nueva información puede incluir la eliminación del registro de datos 410, la cual puede incluir el bit sucio 407. Haciendo referencia a la Figura 6, por ejemplo, la nueva información puede incluir la eliminación del registro del nombre de dominio 670, el cual puede incluir el bit sucio 678. Las eliminaciones similares a los varios elementos dentro de las modalidades de bases de datos descritas con referencia a las Figuras 7 y 8 también se contemplan.
El argumento de actualización puede establecer (975) un bit sucio dentro de la pluralidad de nuevos elementos. Como se observó anteriormente, el bit sucio puede notificar a los argumentos de búsqueda que un registro de base de datos particular está asociado con una transacción actual, y que un reintento de consulta subsiguiente de la base de datos deberá ser realizado. De esta manera, cada uno de los registros de la base de datos efectuados a través de una transacción puede ser identificado. Haciendo referencia a las Figuras 4 y 6-8, por ejemplo, el argumento de actualización puede establecer un bit sucio dentro de cada registro de la base de datos afectado por la transacción. El bit sucio 408 también se puede establecer a "1" para el registro de los nuevos datos 430 y los bits sucios 407 y 406 también se pueden establecer a "1" para los registros de datos modificados 410 y 420, respectivamente. El bit sucio 618 también se puede establecer a "1" para el nuevo registro del nombre de dominio y los bits sucios 606 y 608 pueden ser establecidos a "1" para los registros del servidor de nombre modificados 640 y 660, respectivamente. Los bits sucios 707 y 807 pueden ser establecidos a "1" para los nuevos registros clave 780 y 880, respectivamente. Para claridad, el diagrama de flujo de nivel superior ilustrado en la Figura 9 se extiende a la Figura 10 sin embargo con el símbolo de conexión del diagrama de flujo "A". Haciendo referencia a la Figura 10, los registros de la base de datos pueden ser eliminados, el argumento de actualización también puede establecer (1075) un bit sucio dentro de los registros de la base de datos apropiada. Por ejemplo, el bit sucio 407 puede ser establecido a "1" para eliminar e el registro de datos 410 y el bit sucio 678 puede ser establecido a "1" para el registro del nombre dominio eliminado 670. El registro de datos 420 y 430, registro de nombre de dominio 615, registro de servidor de nombre 660 y los registros de datos clave 780 y 880 pueden ser considerados como siendo elementos "nuevos" dentro de la base de datos, mientras el registro de datos modificado 410, el registro del servidor de nombre modificado 640, el registro de datos eliminados 410 y el registro del nombre del dominio eliminado 670 pueden ser considerados como siendo elementos "antiguos" dentro de la base de datos. En estos ejemplos, el registro de datos 410 se utiliza como ambos un registro de datos "modificado" y un registro de datos "eliminado". El argumento de actualización puede escribir (980) un apuntador en la base de datos utilizando una operación no interrumpible individual. Generalmente, un nuevo elemento puede ser comprometido con la base de datos (es decir, se convierte en instantáneamente visible para los argumentos de búsqueda, o procesos), escribiendo un apuntador al nuevo elemento en el lugar apropiado dentro de la base de datos. Como se discutió anteriormente, esta ubicación apropiada puede ser alineada en la memoria, por lo que esa operación individual incluye una instrucción de almacenamiento individual de una longitud apropiada. Aunque los nuevos elementos pueden ser visibles para los argumentos de búsqueda después de que el apuntador escribe, el bit sucio "establecido" notifica a los argumentos de búsqueda que cada nuevo elemento de la base de datos puede ser parte de una transacción actual, y que una subsiguiente consulta de búsqueda, o reconstrucción a partir de registro de rehacer, puede ser necesaria. Para las modalidades de las bases de datos que contienen múltiples índices, puede ser posible para un índice contener apuntadores a elementos "antiguos" mientras otro índice puede contener apuntadores a elementos "nuevos". Consecuentemente, en la modalidad de resolución DNS, por ejemplo, dos registros de nombre de dominio con el mismo nombre de dominio, o clave principal, pueden existir dentro del espacio de búsqueda simultáneamente, pero solamente durante una transacción que involucra ese registro para un índice único. Haciendo referencia a la Figura 4, en un apuntador de 8 bytes correspondiente al nuevo registro de datos 430 puede ser escrito a un cuadro hash 403. Haciendo referencia a la Figura 6, un apuntador de 8 bytes correspondiente a un nuevo registro de nombre de dominio 615 puede ser escrito a un cuadro hash 612. De manera muy importante, estos cuadros hash pueden estar alineados en límites de 8 bytes en la memoria 104 para asegurar que una instrucción de almacenamiento de 8 bytes, individual se utilice para actualizar este valor. Haciendo referencia a la figura 7, un apuntador de 4 bytes correspondiente al nuevo nodo de búsqueda 705 puede escribirse en el apuntador de nodo "mayor que " de 4 bytes 715 dentro del nodo de búsqueda 710. Considerablemente, el apuntador de nodo 715 puede ser alineado con un límite de 4 bytes en la memoria 104 para asegurar que una instrucción de almacenamiento de 4 bytes individual puede ser utilizada para actualizar este valor. Haciendo referencia a la Figura 8, la pluralidad de nodos de búsqueda 801 también pueden incluir una dirección de la parte superior del árbol 899, la cual puede estar alineada con un límite de palabra de 8 bytes en la memoria 104 y puede hacer referencia al primer nodo dentro de la pluralidad de nodos de búsqueda 801 (es decir, nodo vertical 810). Un apuntador de 8 bytes correspondiente al nuevo nodo de búsqueda 890 puede ser escrito en la dirección de la parte superior del árbol 899 utilizando una instrucción de almacenamiento individual. En cada una de estas modalidades, justo antes de la instrucción de almacenar, los nuevos datos no están visibles para los argumentos de búsqueda, mientras justo antes de la instrucción de almacenar, los nuevos datos son visibles para los argumentos de búsqueda. De esta forma, con una operación no interrumplible, individual, los nuevos datos pueden ser comprometidos a la base de datos sin el uso de bloqueos del sistema operativo o del cuadro de la base de datos. Haciendo referencia a la Figura 10, para los registros de base de datos que van a ser eliminados de la base de datos, en una modalidad, un apuntador, o apuntadores, al registro existente pueden ser escritos (1080) con un apuntador de nulo utilizando una operación no ¡nterrumpible individual. El apuntador nulo puede cancela la referencia al registro existente e indicar que el registro existente ha sido eliminado de la base de datos. Haciendo referencia a la Figura 4, por ejemplo, el registro de datos 410 puede ser eliminado de la base de datos 400 sobrescribiendo la entrada apropiada dentro del cuadro has 403 con un apuntador nulo de 8 bytes. Haciendo referencia a la Figura 6, por ejemplo, el registro de nombre de dominio 670 puede ser eliminado de la base de datos 600 sobrescribiendo la entrada apropiada dentro del cuadro hash 612 con un apuntador nulo de 8 bytes. En una modalidad alternativa, un apuntador de 8 bytes para un nuevo registro eliminar "explícito", correspondiente a un registro de nombre de dominio "eliminado" 670, puede ser escrito en el cuadro hash 631. En esta modalidad, las modificaciones, adiciones y eliminaciones a la base de datos pueden ser logradas de manera similar. El argumento de actualización puede aclarar (985) el bit sucio dentro de cada uno de la pluralidad de nuevos elementos, el bit sucio puede ser aclarado a partir de cada nuevo elemento estableciendo el bit sucio a "0". Por ejemplo, y como se discutió con referencia a las Figuras 4 y 6-8, el bit sucio 406 y 408 puede ser establecido a "0" para los registros de datos 420 y 430, respectivamente. El bit sucio 618 puede ser establecido a "0" para el registro del nombre de dominio 615, los bits sucios 606 y 668 pueden ser establecidos a "0" para los registros del servidor de nombre 640 y 660, respectivamente. Los bits sucios 707 y 807 pueden ser establecidos a "0" para los registros de datos clave 780 y 880, respectivamente.
En una modalidad, el bit sucio puede ser establecido a "0" para cada uno de los nuevos elementos en cualquier orden. Después de que los bits sucios dentro de cada uno de los nuevos elementos han sido aclarados (985), los elementos de la base de datos "antiguos" o existentes ya no están activos, por ejemplo, referenciados dentro de la base de datos. En una modalidad, los bits sucios dentro de estos elementos pueden entonces ser aclarados estableciendo el bit sucio a "0", mientras en una modalidad alternativa, los bits sucios pueden no estar aclarados para nada. En una modalidad, el argumento de actualización puede físicamente eliminar (990) elementos de la base de datos existentes que han sido modificados después que los bits sucios se aclararon (985) a partir de cada uno de los nuevos elementos. Ventajosamente, la eliminación física de estos elementos modificados de la memoria 104 puede ser retrasada para conservar la consistencia del progreso de las búsquedas. Por ejemplo, después de un elemento existente ha sido modificado y el nuevo elemento correspondiente comprometido con la base de datos, la eliminación física del elemento existente en la memoria 104 puede ser retrasado por lo que los argumentos de búsqueda existentes que tienen un resultado, adquirido justo antes de que el nuevo elemento ha sido comprometido con la base datos, puede continuar usando el estado previo de los datos. El argumento de actualización puede físicamente eliminar (990) el elemento existente después de que todos los argumentos de búsqueda que empezaron antes de que el elemento existente fuera modificado han terminado. Similarmente, después de que un elemento existente ha sido eliminado de la base de datos, la eliminación física del elemento existente de la memoria 104 puede ser retrasada por lo que los argumentos de búsqueda existentes que tienen resultado, adquirido justo antes de que elemento existente fuera eliminado de la base datos, puede continuar usando el estado previo de los datos. Haciendo referencia a la Figura 10, el argumento de actualización puede físicamente eliminar (1090) el elemento existente después de que todos los argumentos de búsqueda que iniciaron antes de que el elemento existente fuera sido eliminado han terminado. Las complicaciones potenciales pueden surgir a partir de la interacción de los métodos asociados con las modalidades de la presente invención y varias características arquitecturales del sistema 100. Por ejemplo, el procesador en el cual el argumento de actualización se ejecuta (por ejemplo, procesador 102-1, 102-2, etc.) puede incluir hardware para soportar la ejecución de instrucciones fuera de orden. El otro ejemplo, el sistema 100 puede incluir un compilador de optimización el cual puede producir una secuencia instrucciones, asociadas con modalidades de la presente invención, que han sido óptimamente reacomodadas para explotar el paralelismo de la arquitectura interna de los procesadores (por ejemplo, procesador 102-1, 102-2, etc.). Muchas otras complicaciones pueden fácilmente ser admitidas por aquellos con experiencia en la técnica. Los riesgos de los datos surgen de la ejecución de la instrucción fuera de orden puede ser eliminados, por ejemplo creando dependencias entre la creación (970) entre el nuevo elemento, y la apuntador escribe (980) la base datos. En una modalidad, estos dependencias puede ser establecidas insertando operaciones aritméticas adicionales, tales como, por ejemplo, una instrucción OR exclus iva (XOR), dentro de la secuencia instrucciones ejecutadas por el procesador 102-1 para forzar la ejecución estas instrucciones asociadas con la creación (970) el nuevo elemento a emitir, o completar, antes del ejecución de la escritura del apuntador (980) a la base de datos. Por ejemplo, el contenido de la ubicación en la memoria 104 correspondiente al nuevo elemento, y conteniendo el bit sucio puede ser analizado con XOR con el contenido de la ubicación en la memoria 104 correspondiente al apuntador del elemento nuevo. Subsecuentemente, la dirección del nuevo elemento puede ser escrita (980) a la memoria 104 para comprometer el nuevo elemento con la base datos. Numerosos métodos para resolver estas complicaciones pueden ser fácilmente discernibles para uno con experiencia en la técnica. Varias modalidades de la presente invención están específicamente ilustradas y descritas aquí. Sin embargo, se apreciará que las modificaciones y las variaciones de la presente invención están cubiertas por las enseñanzas anteriores y dentro del alcance de las reivindicaciones anexas sin apartarse el espíritu y el alcance pretendido de la invención.

Claims (54)

REIVINDICACIONES
1. Un sistema de base de datos en red multi-argumento, que comprende: por lo menos un procesador acoplado a una red; y una memoria acoplada al procesador, la memoria incluye una base de datos e instrucciones adaptadas para ser ejecutadas a través del procesador para: crear un argumento de actualización y una pluralidad de argumentos de búsqueda; asignar cada una de las consultas de búsqueda, recibidas a través de la red, a uno de la pluralidad de argumentos de búsqueda; para cada argumento de búsqueda: buscar en la base de datos de acuerdo con las consultas de búsqueda asignadas, crear una pluralidad de respuestas de búsqueda correspondiente a la consultas de búsqueda asignadas, y enviar la pluralidad de respuestas de búsqueda a través de la red; y para el argumento de actualización: crear una pluralidad de elementos nuevos de acuerdo con la nueva información recibida a través de la red, establecer un bit sucio dentro de cada uno de la pluralidad de nuevos elementos, sin acceso restringido a la base de datos para la pluralidad de ? ¾ 77 argumentos de búsqueda, escribir un apuntador para uno de la pluralidad de elementos nuevos a la base de datos utilizando una operación ininterrumpible individual, y aclarar el bit sucio dentro de cada uno de la pluralidad de 5 elementos nuevos.
2. El sistema de acuerdo con la reivindicación 1, en donde las instrucciones además incluyen: para el argumento de actualización: establecer un bit sucio dentro de por lo menos uno de los 10 elementos existentes que van a ser eliminados de la base de datos, y sin restringir el acceso a la base de datos para la pluralidad de argumentos de búsqueda, cancelar la referencia al elemento existente que va a ser eliminado utilizando una operación ininterrumpible individual. 15
3. El sistema de acuerdo con la reivindicación 1, en donde las instrucciones además incluyen: para el argumento de actualización: establecer un bit sucio dentro de por lo menos uno elemento existente que va a ser modificado en la base de datos antes de que 20 el apuntador sea escrito en el nuevo elemento correspondiente, y aclarar el bit sucio dentro del elemento existente después de que el apuntador es escrito en el nuevo elemento correspondiente.
4. El sistema de acuerdo con la reivindicación 1, en donde la operación ininterrumpible es una instrucción de almacenamiento. 25
5. El sistema de acuerdo con la reivindicación 4, en donde la instrucción de almacenamiento escribe cuatro bytes en una dirección de memoria localizada en un límite de cuatro bytes.
6. El sistema de acuerdo con la reivindicación 4, en donde la instrucción de almacenamiento escribe ocho bytes en una dirección de memoria localizada en un límite de ocho bytes.
7. El sistema de acuerdo con la reivindicación 4, en donde el procesador tiene un tamaño de palabra de por lo menos n bytes, la memoria tiene un ancho de por lo menos n bytes, y la instrucción de almacenamiento escribe n bytes en la dirección de memoria localizada en un límite de n bytes.
8. El sistema de acuerdo con la reivindicación 1, en donde la pluralidad de consultas de búsqueda son recibidas dentro un paquete de red individual.
9. El sistema de acuerdo con la reivindicación 1, en donde la pluralidad de respuestas de búsqueda son enviadas dentro un paquete de red individual.
10. El sistema de acuerdo con la reivindicación 1, en donde dicho acceso restringido incluye bloquear la base de datos.
11. El sistema de acuerdo con la reivindicación 1, en donde dicho acceso restringido incluye bloqueo giratorio.
12. El sistema de acuerdo con la reivindicación 11, en donde dicho bloqueo giratorio incluye el uso de por lo menos un semáforo.
13. El sistema de acuerdo con la reivindicación 12, en donde dicho semáforo es un semáforo de exclusión mutua.
14. El sistema de acuerdo con la reivindicación 1, que ! - 79 comprende además una pluralidad de procesadores y un sistema operativo multiprocesamiento simétrico.
15. El sistema de acuerdo con la reivindicación 14, en donde la pluralidad de argumentos de búsqueda realiza por lo menos 100,000 búsquedas por segundo.
16. El sistema de acuerdo con la reivindicación 15, en donde el argumento de actualización realiza por lo menos 10,000 actualizaciones por segundo.
17. El sistema de acuerdo con la reivindicación 16, en donde el argumento de actualización realiza entre 50,000 y 130,000 actualizaciones por segundo.
18. El sistema de acuerdo con la reivindicación 1, en donde el apuntador a un elemento nuevo se escribe en un índice de búsqueda.
19. El sistema de acuerdo con la reivindicación 18, en donde el índice de búsqueda es un TST.
20. El sistema de acuerdo con la reivindicación 1, en donde el apuntador al nuevo elemento es escrito en un registro de datos dentro de la base de datos.
21. Un método para buscar y concurrentemente actualizar una base de datos, que comprende: crear un argumento de actualización y una pluralidad de argumentos de búsqueda; asignar a cada una de las consultas de búsqueda, recibidas a través de la red, a una de la pluralidad de argumentos de búsqueda; para cada argumento de búsqueda: buscar en la base de datos de acuerdo con las consultas de búsqueda asignadas, crear una pluralidad de respuestas de búsqueda correspondientes a la consultas de búsquedas asignadas, y enviar la pluralidad de respuestas de búsqueda a través de la red; y para el argumento de actualización: crear una pluralidad de elementos nuevos de acuerdo con la nueva información recibida a través de la red, establecer un bit sucio dentro de cada uno de los elementos nuevos, sin restringir el acceso a la base de datos para la pluralidad de argumentos de búsqueda, escribir un apuntador para cada uno de la pluralidad de elementos nuevos a la base de datos utilizando una operación ininterrumpible individual, y aclarar el bit sucio dentro de cada uno de la pluralidad de elementos nuevos.
22. El método de acuerdo con la reivindicación 21, en donde las instrucciones además incluyen: para el argumento de actualización: establecer un bit sucio dentro de por lo menos un elemento existente que va a ser eliminado de la base de datos; y sin restringir el acceso a la base de datos para la pluralidad de argumentos de búsqueda, cancelar la referencia del elemento existente que va a ser eliminado utilizando una operación ininterrumpible individual.
23. El método de acuerdo con la reivindicación 21, que comprende además: para el argumento de actualización: establecer un bit sucio dentro de por lo menos un elemento existente que va a ser modificado en la base de datos antes de que el apuntador sea escrito en el elemento nuevo correspondiente, y aclarar el bit sucio dentro del elemento existente después de que el apuntador es escrito en el elemento nuevo correspondiente.
24. El método de acuerdo con la reivindicación 21, en donde la operación ininterrumpible individual es una instrucción de almacenamiento.
25. El método de acuerdo con la reivindicación 23, en donde la instrucción de almacenamiento escribe cuatro bytes a una dirección de memoria localizada en un límite de cuatro bytes.
26. El método de acuerdo con la reivindicación 23, en donde la instrucción de almacenamiento escribe ocho bytes en la dirección de la memoria localizada en un límite de ocho bytes.
27. El método de acuerdo con la reivindicación 21, en donde la pluralidad de consultas de búsqueda se recibe dentro de un paquete de red individual.
28. El método de acuerdo con la reivindicación 21, en donde la pluralidad de respuestas de búsqueda se envían dentro de un paquete de red individual.
29. El método de acuerdo con la reivindicación 21, en donde dicha restricción de acceso incluye un bloqueo de la base de datos.
30. El método de acuerdo con la reivindicación 21, en donde dicha restricción de acceso incluye bloqueo giratorio.
31. El método de acuerdo con la reivindicación 30, en donde dicho bloqueo giratorio incluye el uso de por lo menos un semáforo.
32. El método de acuerdo con la reivindicación 31, en donde dicho semáforo es un semáforo de exclusión mutua.
33. El método de acuerdo con la reivindicación 21, en donde la pluralidad de argumentos de búsqueda realizan por lo menos 100,000 búsquedas por segundo.
34. El método de acuerdo con la reivindicación 31, en donde el argumento de búsqueda realiza por lo menos 10,000 actualizaciones por segundo.
35. El método de acuerdo con la reivindicación 34, en donde el argumento de búsqueda realiza entre 50,000 y 130,000 actualizaciones por segundo.
36. El método de acuerdo con la reivindicación 21, en donde el apuntador al elemento nuevo se escribe en un índice de búsqueda.
37. El método de acuerdo con la reivindicación 21, en donde el apuntador al elemento nuevo se escribe en un registro de datos dentro de la base de datos.
38. Un medio legible por computadora que incluye instrucciones adaptadas para ser ejecutadas mediante por lo menos un procesador para implementar un método para buscar y concurrentemente actualizar una base de datos, el método comprende: crear un argumento de búsqueda y una pluralidad de argumentos de búsqueda; asignar cada una de las consultas de búsqueda, recibidas a través de la red, a uno de la pluralidad de argumentos de búsqueda; para cada argumento de búsqueda: buscar en la base de datos de acuerdo con las consultas de búsqueda asignadas, crear una pluralidad de respuestas de búsqueda correspondientes a la consultas de búsquedas asignadas, y enviar la pluralidad de respuestas de búsqueda a través de la red; y para el argumento de actualización : crear una pluralidad de elementos nuevos de acuerdo con la nueva información recibida a través de la red, establecer un bit sucio dentro de cada uno de los elementos nuevos, sin restringir el acceso a la base de datos para la pluralidad de argumentos de búsqueda, escribir un apuntador para cada uno de la pluralidad de elementos nuevos a la base de datos utilizando una operación ininterrumpible individual, y aclarar el bit sucio dentro de cada uno de la pluralidad de elementos nuevos.
39. El medio legible por computadora de acuerdo con la reivindicación 38, en donde el método además comprende: para el argumento de actualización: establecer un bit sucio dentro de por lo menos un elemento existente que va a ser eliminado de la base de datos; y sin restringir el acceso a la base de datos para la pluralidad de argumentos de búsqueda, cancelar la referencia del elemento existente que va a ser eliminado utilizando una operación ininterrumpible individual.
40. El medio legible por computadora de acuerdo con la reivindicación 38, en donde el método además comprende: para el argumento de actualización : establecer un bit sucio dentro de por lo menos un elemento existente que va a ser eliminado de la base de datos; y aclarar el bit sucio dentro del elemento existente después de que el apuntador es escrito en el elemento nuevo correspondiente.
41. El medio legible por computadora de acuerdo con la reivindicación 38, en donde la operación ininterrumpible individual es una instrucción de almacenamiento.
42. El medio legible por computadora de acuerdo con la reivindicación 41, en donde la instrucción de almacenamiento escribe cuatro bytes en una dirección de memoria localizada en un limite de cuatro bytes.
43. El medio legible por computadora de acuerdo con la reivindicación 41, en donde la instrucción de almacenamiento escribe ocho bytes en una dirección de memoria localizada en un limite de ocho bytes.
44. El medio legible por computadora de acuerdo con la |! ¦r 85 reivindicación 38, en donde la pluralidad de consultas de búsqueda son recibidas dentro de un paquete de red individual.
45. El medio legible por computadora de acuerdo con la reivindicación 38, en donde la pluralidad de respuestas de búsqueda 5 se envía dentro de un paquete de red individual.
46. El medio legible por computadora acuerdo con la reivindicación 38, en donde dicha restricción de acceso incluye un bloqueo de la base de datos.
47. El medio legible por computadora de acuerdo con la 10 reivindicación 38, en donde dicha restricción de acceso incluye bloqueo giratorio.
48. El medio legible por computadora de acuerdo con la reivindicación 47, en donde dicho bloqueo giratorio incluye el uso de por lo menos un semáforo. 15 .
49. El medio legible por computadora de acuerdo con la reivindicación 48, en donde dicho semáforo es un semáforo de exclusión mutua.
50. El medio legible por computadora de acuerdo con la reivindicación 38, en donde el apuntador al elemento nuevo se 20 escribe en un índice de búsqueda.
51. El medio legible por computadora de acuerdo con la reivindicación 38, en donde el apuntador al elemento nuevo se escribe en un registro de datos dentro de la base de datos.
52. El sistema de acuerdo con la reivindicación 8, en donde la 25 información nueva se recibe dentro de un paquete de red individual.
53. El método de acuerdo con la reivindicación 27, en donde la información nueva se recibe dentro de un paquete de red individual.
54. El medio legible por computadora de acuerdo con la reivindicación 44, en donde la información nueva se recibe dentro de un paquete de red individual.
MXPA04004202A 2001-11-01 2002-11-01 Administrador de memoria de transaccion. MXPA04004202A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US33084201P 2001-11-01 2001-11-01
US36516902P 2002-03-19 2002-03-19
PCT/US2002/035080 WO2003038683A1 (en) 2001-11-01 2002-11-01 Transactional memory manager

Publications (1)

Publication Number Publication Date
MXPA04004202A true MXPA04004202A (es) 2005-05-16

Family

ID=26987480

Family Applications (4)

Application Number Title Priority Date Filing Date
MXPA04004169A MXPA04004169A (es) 2001-11-01 2002-11-01 Base de datos controlada, sin concurrencia, de alta velocidad.
MXPA04004202A MXPA04004202A (es) 2001-11-01 2002-11-01 Administrador de memoria de transaccion.
MXPA04004201A MXPA04004201A (es) 2001-11-01 2002-11-01 Metodo y sistema para actualizar una base de datos remota.
MXPA04004203A MXPA04004203A (es) 2001-11-01 2002-11-01 Metodo y sistema para validar una base de datos remota.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
MXPA04004169A MXPA04004169A (es) 2001-11-01 2002-11-01 Base de datos controlada, sin concurrencia, de alta velocidad.

Family Applications After (2)

Application Number Title Priority Date Filing Date
MXPA04004201A MXPA04004201A (es) 2001-11-01 2002-11-01 Metodo y sistema para actualizar una base de datos remota.
MXPA04004203A MXPA04004203A (es) 2001-11-01 2002-11-01 Metodo y sistema para validar una base de datos remota.

Country Status (16)

Country Link
US (10) US6681228B2 (es)
EP (10) EP1449049A4 (es)
JP (4) JP4420325B2 (es)
KR (4) KR100953137B1 (es)
CN (4) CN1610902B (es)
AU (5) AU2002356884B2 (es)
BR (4) BR0213863A (es)
CA (4) CA2466110C (es)
EA (4) EA005646B1 (es)
HK (1) HK1075308A1 (es)
IL (8) IL161721A0 (es)
MX (4) MXPA04004169A (es)
NO (4) NO20042261L (es)
NZ (4) NZ532772A (es)
WO (5) WO2003038683A1 (es)
ZA (4) ZA200403597B (es)

Families Citing this family (267)

* 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
WO2002019127A1 (en) * 2000-08-25 2002-03-07 Integrated Business Systems And Services, Inc. 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
WO2003038683A1 (en) * 2001-11-01 2003-05-08 Verisign, Inc. Transactional memory manager
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
US20040193604A1 (en) * 2003-03-31 2004-09-30 Qwest Communications International Inc. Systems and methods for restricting a telephone number's availability for assignment
US20040193509A1 (en) * 2003-03-31 2004-09-30 Qwest Communications International Inc. Systems and methods for managing telephone number inventory
US7395276B2 (en) * 2003-03-31 2008-07-01 Qwest Communications International Inc. Systems and methods for resolving telephone number discrepancies en masse
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
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
JP4374953B2 (ja) * 2003-09-09 2009-12-02 株式会社日立製作所 データ処理システム
JP4124348B2 (ja) 2003-06-27 2008-07-23 株式会社日立製作所 記憶システム
JP2005309550A (ja) 2004-04-19 2005-11-04 Hitachi Ltd リモートコピー方法及びリモートコピーシステム
US7130975B2 (en) * 2003-06-27 2006-10-31 Hitachi, Ltd. Data processing system
TW591441B (en) * 2003-07-28 2004-06-11 Accton Technology Corp Database system and data access method thereof
US8949304B2 (en) * 2003-08-20 2015-02-03 Apple Inc. Method and apparatus for accelerating the expiration of resource records in a local cache
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
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 华为技术有限公司 一种使前后台数据库中数据相一致的方法
US20050060566A1 (en) 2003-09-16 2005-03-17 Chebolu Anil Kumar Online user-access reports with authorization features
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 株式会社日立製作所 複数の記憶システムを有するデータ処理システム
US20070171902A1 (en) * 2003-12-30 2007-07-26 Telefonaktiebolaget Lm Ericsson Method device for transmitting data packets belong to different users in a common transmittal protocol packet
JP4477370B2 (ja) * 2004-01-30 2010-06-09 株式会社日立製作所 データ処理システム
US7895199B2 (en) * 2004-04-20 2011-02-22 Honda Motor Co., Ltd. Method and system for modifying orders
CA2465558A1 (en) * 2004-04-22 2005-10-22 Ibm Canada Limited - Ibm Canada Limitee Framework for retrieval and display of large result sets
US7555634B1 (en) 2004-04-22 2009-06-30 Sun Microsystems, Inc. Multiple data hazards detection and resolution unit
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
US8150797B2 (en) * 2004-05-21 2012-04-03 Computer Associates Think, Inc. Method and apparatus for enhancing directory performance
US20060036720A1 (en) * 2004-06-14 2006-02-16 Faulk Robert L Jr Rate limiting of events
DE602004007903T2 (de) * 2004-06-22 2008-04-17 Sap Ag Datenverarbeitungsvorrichtung von Online-Transaktionsdaten
US7774298B2 (en) * 2004-06-30 2010-08-10 Sap Ag Method and system for data extraction from a transaction system to an analytics system
JP4519563B2 (ja) 2004-08-04 2010-08-04 株式会社日立製作所 記憶システム及びデータ処理システム
US7359923B2 (en) * 2004-08-20 2008-04-15 International Business Machines Corporation Online incremental deferred integrity processing and maintenance of rolled in and rolled out data
US7788282B2 (en) * 2004-09-16 2010-08-31 International Business Machines Corporation Methods and computer programs for database structure comparison
JP2006127028A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
US8356127B2 (en) * 2004-12-09 2013-01-15 Rambus Inc. Memory interface with workload adaptive encode/decode
US7805422B2 (en) * 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
US20060218176A1 (en) * 2005-03-24 2006-09-28 International Business Machines Corporation System, method, and service for organizing data for fast retrieval
US9547780B2 (en) * 2005-03-28 2017-01-17 Absolute Software Corporation Method for determining identification of an electronic device
US7693082B2 (en) * 2005-04-12 2010-04-06 Azimuth Systems, Inc. Latency measurement apparatus and method
CN1878164A (zh) * 2005-06-08 2006-12-13 华为技术有限公司 E.164号码域名存储和查询方法
CN100395996C (zh) * 2005-06-23 2008-06-18 华为技术有限公司 一种网络管理系统的信息同步方法
US7743028B1 (en) * 2005-07-13 2010-06-22 Symantec Corporation Incremental backup of partial volumes
US8015222B2 (en) 2005-10-24 2011-09-06 Emc Corporation Virtual repository management
US8819048B1 (en) * 2005-10-24 2014-08-26 Emc Corporation Virtual repository management to provide retention management services
US20070100783A1 (en) * 2005-10-29 2007-05-03 International Business Machines Corporation Method, system, and program for determining discrepancies between database management systems
US20070106729A1 (en) * 2005-11-04 2007-05-10 Research In Motion Limited Method and system for updating message threads
US8799882B2 (en) * 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
US7747565B2 (en) * 2005-12-07 2010-06-29 Microsoft Corporation Garbage collector support for transactional memory
CN101336535B (zh) * 2005-12-27 2011-10-12 法国电信公司 管理dnssec请求的服务器和方法
US20070192374A1 (en) * 2006-02-16 2007-08-16 Emc Corporation Virtual repository management to provide functionality
US8990153B2 (en) * 2006-02-07 2015-03-24 Dot Hill Systems Corporation Pull data replication model
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
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
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
KR100898995B1 (ko) * 2006-10-25 2009-05-21 노키아 코포레이션 원격 전자 거래
US9824107B2 (en) * 2006-10-25 2017-11-21 Entit Software Llc Tracking changing state data to assist in computer network security
US7593973B2 (en) * 2006-11-15 2009-09-22 Dot Hill Systems Corp. Method and apparatus for transferring snapshot data
US20080254436A1 (en) * 2006-11-16 2008-10-16 Morgia Michael A Selection Of A Consensus From A Plurality Of Ideas
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US8181187B2 (en) * 2006-12-01 2012-05-15 Portico Systems Gateways having localized in-memory databases and business logic execution
US8615635B2 (en) * 2007-01-05 2013-12-24 Sony Corporation Database management methodology
US8751467B2 (en) * 2007-01-18 2014-06-10 Dot Hill Systems Corporation Method and apparatus for quickly accessing backing store metadata
US7831565B2 (en) * 2007-01-18 2010-11-09 Dot Hill Systems Corporation Deletion of rollback snapshot partition
DE102007008293B4 (de) * 2007-02-16 2010-02-25 Continental Automotive Gmbh Verfahren und Vorrichtung zum gesicherten Speichern und zum gesicherten Lesen von Nutzdaten
US9690790B2 (en) * 2007-03-05 2017-06-27 Dell Software Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
JP2008226167A (ja) * 2007-03-15 2008-09-25 Toshiba Corp データ配布システム及びデータ配布プログラム
US7716183B2 (en) * 2007-04-11 2010-05-11 Dot Hill Systems Corporation Snapshot preserved data cloning
US7975115B2 (en) * 2007-04-11 2011-07-05 Dot Hill Systems Corporation Method and apparatus for separating snapshot preserved and write data
US8768898B1 (en) * 2007-04-26 2014-07-01 Netapp, Inc. Performing direct data manipulation on a storage device
US8856094B2 (en) * 2007-05-08 2014-10-07 Digital River, Inc. Remote segmentation system and method
US20090182718A1 (en) * 2007-05-08 2009-07-16 Digital River, Inc. Remote Segmentation System and Method Applied To A Segmentation Data Mart
US7783603B2 (en) * 2007-05-10 2010-08-24 Dot Hill Systems Corporation Backing store re-initialization method and apparatus
US8001345B2 (en) * 2007-05-10 2011-08-16 Dot Hill Systems Corporation Automatic triggering of backing store re-initialization
US8688920B2 (en) 2007-05-14 2014-04-01 International Business Machines Corporation Computing system with guest code support of transactional memory
US8095750B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory system with fast processing of common conflicts
US8117403B2 (en) * 2007-05-14 2012-02-14 International Business Machines Corporation Transactional memory system which employs thread assists using address history tables
US8095741B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory computing system with support for chained transactions
US8321637B2 (en) * 2007-05-14 2012-11-27 International Business Machines Corporation Computing system with optimized support for 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
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
US8275761B2 (en) 2008-05-15 2012-09-25 International Business Machines Corporation Determining a density of a key value referenced in a database query over a range of rows
US8140520B2 (en) * 2008-05-15 2012-03-20 International Business Machines Corporation Embedding densities in a data structure
EP2134122A1 (en) * 2008-06-13 2009-12-16 Hewlett-Packard Development Company, L.P. Controlling access to a communication network using a local device database and a shared device database
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
CN101309177B (zh) * 2008-07-11 2012-01-11 中国移动通信集团云南有限公司 一种网络资源数据管理方法及系统
US9418005B2 (en) 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing system
CN101639950B (zh) * 2008-07-29 2011-07-13 中兴通讯股份有限公司 一种车道收费系统中的数据同步方法及装置
US8751441B2 (en) * 2008-07-31 2014-06-10 Sybase, Inc. System, method, and computer program product for determining SQL replication process
US8239417B2 (en) * 2008-08-07 2012-08-07 Armanta, Inc. System, method, and computer program product for accessing and manipulating remote datasets
US8768933B2 (en) * 2008-08-08 2014-07-01 Kabushiki Kaisha Toshiba System and method for type-ahead address lookup employing historically weighted address placement
CN101727383B (zh) * 2008-10-16 2012-07-04 上海市医疗保险信息中心 数据库的仿真测试方法和系统
US9292612B2 (en) 2009-04-22 2016-03-22 Verisign, Inc. Internet profile service
US8676989B2 (en) 2009-04-23 2014-03-18 Opendns, Inc. Robust domain name resolution
US8527945B2 (en) 2009-05-07 2013-09-03 Verisign, Inc. Method and system for integrating multiple scripts
US8037076B2 (en) * 2009-05-11 2011-10-11 Red Hat, Inc. Federated indexing from hashed primary key slices
US8510263B2 (en) 2009-06-15 2013-08-13 Verisign, Inc. Method and system for auditing transaction data from database operations
US8739125B2 (en) * 2009-06-16 2014-05-27 Red Hat, Inc. Automated and unattended process for testing software applications
US20100333071A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines
US8977705B2 (en) * 2009-07-27 2015-03-10 Verisign, Inc. Method and system for data logging and analysis
US8327019B2 (en) * 2009-08-18 2012-12-04 Verisign, Inc. Method and system for intelligent routing of requests over EPP
US8874694B2 (en) * 2009-08-18 2014-10-28 Facebook, Inc. Adaptive packaging of network resources
US8856344B2 (en) 2009-08-18 2014-10-07 Verisign, Inc. Method and system for intelligent many-to-many service routing over EPP
US20110044320A1 (en) * 2009-08-21 2011-02-24 Avaya Inc. Mechanism for fast evaluation of policies in work assignment
US8175098B2 (en) 2009-08-27 2012-05-08 Verisign, Inc. Method for optimizing a route cache
US8566524B2 (en) 2009-08-31 2013-10-22 International Business Machines Corporation Transactional memory system with efficient cache support
US9269080B2 (en) 2009-10-30 2016-02-23 Verisign, Inc. Hierarchical publish/subscribe system
US9235829B2 (en) 2009-10-30 2016-01-12 Verisign, Inc. Hierarchical publish/subscribe system
US9569753B2 (en) 2009-10-30 2017-02-14 Verisign, Inc. Hierarchical publish/subscribe system performed by multiple central relays
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
US9762405B2 (en) 2009-10-30 2017-09-12 Verisign, Inc. Hierarchical publish/subscribe system
CN102096676B (zh) * 2009-12-11 2014-04-09 中国移动通信集团公司 数据更新及查询控制方法及系统
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US9176783B2 (en) 2010-05-24 2015-11-03 International Business Machines Corporation Idle transitions sampling with execution context
US8843684B2 (en) 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
FR2964213B1 (fr) * 2010-09-01 2013-04-26 Evidian Annuaire d'identite et procede de mise a jour d'un annuaire d'identite
US8489724B2 (en) * 2010-09-14 2013-07-16 Cdnetworks Co., Ltd. CNAME-based round-trip time measurement in a content delivery network
US20120089646A1 (en) * 2010-10-08 2012-04-12 Jain Rohit N Processing change data
US8332433B2 (en) 2010-10-18 2012-12-11 Verisign, Inc. Database synchronization and validation
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
JP5652281B2 (ja) * 2011-03-18 2015-01-14 富士通株式会社 業務処理サーバ、業務処理方法及び業務処理プログラム
RU2480819C2 (ru) * 2011-06-28 2013-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ оптимизации работы со связными списками
US8549579B2 (en) * 2011-07-06 2013-10-01 International Business Machines Corporation Dynamic data-protection policies within a request-reply message queuing environment
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
CN104040481B (zh) 2011-11-18 2017-10-10 戴尔软件股份有限公司 用于融合、存储和检索增量式备份数据的方法和系统
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 バックアップシステムにおけるバックアップデータの同期方法
WO2015165073A1 (en) 2014-04-30 2015-11-05 Oracle International Corporation System and method for supporting adaptive self-tuning locking mechanism in transactional middleware machine environment
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
US20140358886A1 (en) * 2013-06-04 2014-12-04 Marvell World Trade Ltd. Internal search engines 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
WO2015162705A1 (ja) * 2014-04-22 2015-10-29 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
US9778949B2 (en) * 2014-05-05 2017-10-03 Google Inc. Thread waiting in a multithreaded processor architecture
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
US9021260B1 (en) 2014-07-03 2015-04-28 Palantir Technologies Inc. Malware data item analysis
US9699023B2 (en) * 2014-07-18 2017-07-04 Fujitsu Limited Initializing a network interface based on stored data
US10204134B2 (en) * 2014-08-14 2019-02-12 International Business Machines Corporation Automatic detection of problems in a large-scale multi-record update system and method
US11176106B2 (en) * 2014-11-19 2021-11-16 Unisys Corporation Dynamic modification of database schema
CN104572881A (zh) * 2014-12-23 2015-04-29 国家电网公司 基于多任务并发的配网图模导入方法
US9734016B2 (en) * 2015-02-24 2017-08-15 Red Hat Israel, Ltd. Secure live virtual machine guest based snapshot recovery
US20160378824A1 (en) * 2015-06-24 2016-12-29 Futurewei Technologies, Inc. Systems and Methods for Parallelizing Hash-based Operators in SMP Databases
US20160378812A1 (en) * 2015-06-25 2016-12-29 International Business Machines Corporation Reduction of bind breaks
CN104965923B (zh) * 2015-07-08 2018-09-28 安徽兆尹信息科技股份有限公司 一种用于生成现金流量表的云计算应用平台构建方法
AU2016340042A1 (en) * 2015-10-15 2018-05-24 Big Ip Pty Ltd A system, method, computer program and data signal for the provision of a database of information for lead generating purposes
WO2017063049A1 (en) * 2015-10-15 2017-04-20 Big Ip Pty Ltd A system, method, computer program and data signal for conducting an electronic search of a database
IL242219B (en) * 2015-10-22 2020-11-30 Verint Systems Ltd System and method for keyword searching using both static and dynamic dictionaries
IL242218B (en) 2015-10-22 2020-11-30 Verint Systems Ltd A system and method for maintaining a dynamic dictionary
US10530758B2 (en) * 2015-12-18 2020-01-07 F5 Networks, Inc. Methods of collaborative hardware and software DNS acceleration and DDOS protection
MX2018007425A (es) * 2015-12-18 2018-08-15 Walmart Apollo Llc Sistemas y metodos para resolver discrepancia de datos.
CN105574407B (zh) * 2015-12-28 2018-09-25 无锡天脉聚源传媒科技有限公司 一种共享的处理方法和装置
US10621198B1 (en) 2015-12-30 2020-04-14 Palantir Technologies Inc. System and method for secure database replication
RU2623882C1 (ru) * 2016-02-18 2017-06-29 Акционерное общество "Лаборатория Касперского" Способ поиска входной строки в дереве поиска с индексацией узлов дерева поиска
US10353888B1 (en) * 2016-03-03 2019-07-16 Amdocs Development Limited Event processing system, method, and computer program
US10642780B2 (en) 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
WO2017191495A1 (en) * 2016-05-05 2017-11-09 Askarov Bauyrzhan New domain name system and usage thereof
US10089339B2 (en) * 2016-07-18 2018-10-02 Arm Limited Datagram reassembly
CN106250487B (zh) * 2016-07-29 2020-07-03 新华三技术有限公司 一种数据库并发控制方法及装置
US11005977B2 (en) * 2016-08-31 2021-05-11 Viavi Solutions Inc. Packet filtering using binary search trees
US10382562B2 (en) * 2016-11-04 2019-08-13 A10 Networks, Inc. Verification of server certificates using hash codes
US10262053B2 (en) 2016-12-22 2019-04-16 Palantir Technologies Inc. Systems and methods for data replication synchronization
TWI643146B (zh) * 2016-12-22 2018-12-01 經貿聯網科技股份有限公司 動態更新金融資料的方法及其處理系統以及動態調整電源配置的方法及其處理系統
CN106790544A (zh) * 2016-12-22 2017-05-31 郑州云海信息技术有限公司 减少远程客户端与数据中心间通信数据量的方法及装置
CN111107175B (zh) * 2017-03-31 2023-08-08 贵州白山云科技股份有限公司 一种构建dns应答报文的方法及装置
GB2561176A (en) * 2017-04-03 2018-10-10 Edinburgh Napier Univ System and method for management of confidential data
US10068002B1 (en) 2017-04-25 2018-09-04 Palantir Technologies Inc. Systems and methods for adaptive data replication
US10430062B2 (en) 2017-05-30 2019-10-01 Palantir Technologies Inc. Systems and methods for geo-fenced dynamic dissemination
US11030494B1 (en) 2017-06-15 2021-06-08 Palantir Technologies Inc. Systems and methods for managing data spills
US10552367B2 (en) 2017-07-26 2020-02-04 Mellanox Technologies, Ltd. Network data transactions using posted and non-posted operations
US10380196B2 (en) 2017-12-08 2019-08-13 Palantir Technologies Inc. Systems and methods for using linked documents
US10915542B1 (en) 2017-12-19 2021-02-09 Palantir Technologies Inc. Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US20190213271A1 (en) * 2018-01-09 2019-07-11 Unisys Corporation Method and system for data exchange critical event notification
KR102034679B1 (ko) 2018-01-17 2019-10-23 (주)비아이매트릭스 그리드 인터페이스 기반 데이터 입출력 시스템
CN110083596A (zh) * 2018-05-16 2019-08-02 陈刚 一种数据历史跟踪和数据变化历史跟踪的方法
CN108876143A (zh) * 2018-06-13 2018-11-23 亳州市药通信息咨询有限公司 一种中药材价格指数系统
CN110798332B (zh) * 2018-08-03 2022-09-06 Emc Ip控股有限公司 用于搜索目录访问组的方法和系统
US11265324B2 (en) 2018-09-05 2022-03-01 Consumerinfo.Com, Inc. User permissions for access to secure data at third-party
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
CN111831639B (zh) * 2019-04-19 2024-01-30 北京车和家信息技术有限公司 一种全局唯一id生成方法及装置、车辆管理系统
US11303606B1 (en) 2019-06-03 2022-04-12 Amazon Technologies, Inc. Hashing name resolution requests according to an identified routing policy
JP7245954B2 (ja) * 2019-07-30 2023-03-24 ファルコンリー インコーポレイテッド 大量の時系列データの滑らか且つ解像度が扱いやすいビュー
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
CN110990377B (zh) * 2019-11-21 2023-08-22 上海达梦数据库有限公司 一种数据装载方法、装置、服务器及存储介质
US11500849B2 (en) * 2019-12-02 2022-11-15 International Business Machines Corporation Universal streaming change data capture
US11269836B2 (en) * 2019-12-17 2022-03-08 Cerner Innovation, Inc. System and method for generating multi-category searchable ternary tree data structure
CN111240762B (zh) * 2020-01-10 2021-11-23 珠海格力电器股份有限公司 线程管理方法、存储介质及电子设备
WO2021172875A1 (ko) * 2020-02-24 2021-09-02 주식회사 센스톤 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치
KR102479729B1 (ko) * 2020-02-24 2022-12-20 주식회사 센스톤 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치
US20230138113A1 (en) * 2021-02-09 2023-05-04 Micro Focus Llc System for retrieval of large datasets in cloud environments
US11934377B2 (en) * 2021-02-25 2024-03-19 Microsoft Technology Licensing, Llc Consistency checking for distributed analytical database systems
EP4323888A2 (en) * 2021-04-14 2024-02-21 Google LLC Powering scalable data warehousing with robust query performance
CN113806342A (zh) * 2021-07-21 2021-12-17 厦门莲隐科技有限公司 一种提取以太坊区块链底层数据的系统
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
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
CA2045705A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites In-register data manipulation in reduced instruction set processor
US5893117A (en) * 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5369757A (en) * 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US6188428B1 (en) * 1992-02-11 2001-02-13 Mark Koz Transcoding video file server and methods for its use
US5749079A (en) * 1992-03-04 1998-05-05 Singapore Computer Systems Limited End user query facility including a query connectivity driver
US5260942A (en) * 1992-03-06 1993-11-09 International Business Machines Corporation Method and apparatus for batching the receipt of data packets
EP0594196B1 (en) * 1992-10-22 1999-03-31 Cabletron Systems, Inc. Address lookup in packet data communications link, using hashing and content-addressable memory
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5615337A (en) * 1995-04-06 1997-03-25 International Business Machines Corporation System and method for efficiently processing diverse result sets returned by a stored procedures
US5974409A (en) * 1995-08-23 1999-10-26 Microsoft Corporation System and method for locating information in an on-line network
US5758150A (en) * 1995-10-06 1998-05-26 Tele-Communications, Inc. System and method for database synchronization
US6047323A (en) * 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers
US5875443A (en) * 1996-01-30 1999-02-23 Sun Microsystems, Inc. Internet-based spelling checker dictionary system with automatic updating
US5852715A (en) * 1996-03-19 1998-12-22 Emc Corporation System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions
US5765028A (en) * 1996-05-07 1998-06-09 Ncr Corporation Method and apparatus for providing neural intelligence to a mail query agent in an online analytical processing system
US5787452A (en) * 1996-05-21 1998-07-28 Sybase, Inc. Client/server database system with methods for multi-threaded data processing in a heterogeneous language environment
US6154777A (en) * 1996-07-01 2000-11-28 Sun Microsystems, Inc. System for context-dependent name resolution
US5995980A (en) * 1996-07-23 1999-11-30 Olson; Jack E. System and method for database update replication
US5926816A (en) * 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US6330568B1 (en) * 1996-11-13 2001-12-11 Pumatech, Inc. Synchronization of databases
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
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
WO1999063441A1 (en) * 1998-06-05 1999-12-09 Mylex Corporation Snapshot backup strategy
US6434144B1 (en) * 1998-07-06 2002-08-13 Aleksey Romanov Multi-level table lookup
US6360220B1 (en) * 1998-08-04 2002-03-19 Microsoft Corporation Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
US6411966B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic
US6243715B1 (en) * 1998-11-09 2001-06-05 Lucent Technologies Inc. Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated
WO2000039967A2 (en) * 1998-12-23 2000-07-06 Nokia Wireless Routers, Inc. A unified routing scheme for ad-hoc internetworking
US6516327B1 (en) * 1998-12-24 2003-02-04 International Business Machines Corporation System and method for synchronizing data in multiple databases
US6304924B1 (en) * 1999-02-02 2001-10-16 International Business Machines Corporation Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures
US6553392B1 (en) * 1999-02-04 2003-04-22 Hewlett-Packard Development Company, L.P. System and method for purging database update image files after completion of associated transactions
FI106493B (fi) * 1999-02-09 2001-02-15 Nokia Mobile Phones Ltd Menetelmä ja järjestelmä pakettimuotoisen datan luotettavaksi siirtämiseksi
US6721334B1 (en) * 1999-02-18 2004-04-13 3Com Corporation Method and apparatus for packet aggregation in packet-based network
US6314469B1 (en) * 1999-02-26 2001-11-06 I-Dns.Net International Pte Ltd Multi-language domain name service
AU3390500A (en) 1999-03-03 2000-09-21 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
US6449657B2 (en) * 1999-08-06 2002-09-10 Namezero.Com, Inc. Internet hosting system
AU6624100A (en) * 1999-08-06 2001-03-05 Namezero.Com, Inc. Internet hosting system
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6792458B1 (en) * 1999-10-04 2004-09-14 Urchin Software Corporation System and method for monitoring and analyzing internet traffic
US6560614B1 (en) * 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
KR100856149B1 (ko) 1999-11-26 2008-09-03 네테카 인코포레이티드 전자 메일 서버 및 전자 메일 통신을 용이하게 하기 위한 방법
US6980990B2 (en) * 1999-12-01 2005-12-27 Barry Fellman Internet domain name registration system
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6625621B2 (en) * 2000-01-04 2003-09-23 Starfish Software, Inc. System and methods for a fast and scalable synchronization server
US6677964B1 (en) * 2000-02-18 2004-01-13 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US6789073B1 (en) * 2000-02-22 2004-09-07 Harvey Lunenfeld Client-server multitasking
JP2001236257A (ja) 2000-02-24 2001-08-31 Fujitsu Ltd 情報記憶装置及び加入者データのデータ更新方法並びに移動通信システム
US6615223B1 (en) * 2000-02-29 2003-09-02 Oracle International Corporation Method and system for data replication
US6643669B1 (en) * 2000-03-14 2003-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for optimization of synchronization between a client's database and a server database
JP2001290689A (ja) 2000-04-07 2001-10-19 Hitachi Ltd 複数データベース間のレプリケーションのデータ検証方法
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6725218B1 (en) * 2000-04-28 2004-04-20 Cisco Technology, Inc. Computerized database system and method
US7734815B2 (en) 2006-09-18 2010-06-08 Akamai Technologies, Inc. Global load balancing across mirrored data centers
US7165116B2 (en) * 2000-07-10 2007-01-16 Netli, Inc. Method for network discovery using name servers
US7725602B2 (en) 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
US20020029226A1 (en) 2000-09-05 2002-03-07 Gang Li Method for combining data with maps
FR2813986B1 (fr) * 2000-09-08 2002-11-29 Eric Vincenot Dispositif de sonorisation a guide d'onde acoustique
JP2002108836A (ja) * 2000-09-29 2002-04-12 Hitachi Ltd プロセッサシステム
US6785675B1 (en) * 2000-11-13 2004-08-31 Convey Development, Inc. Aggregation of resource requests from multiple individual requestors
US6636854B2 (en) * 2000-12-07 2003-10-21 International Business Machines Corporation Method and system for augmenting web-indexed search engine results with peer-to-peer search results
US6868414B2 (en) * 2001-01-03 2005-03-15 International Business Machines Corporation Technique for serializing data structure updates and retrievals without requiring searchers to use locks
US6728736B2 (en) * 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
US6691124B2 (en) * 2001-04-04 2004-02-10 Cypress Semiconductor Corp. Compact data structures for pipelined message forwarding lookups
GB2374951B (en) 2001-04-24 2005-06-15 Discreet Logic Inc Asynchronous database updates
US7171415B2 (en) * 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
US20030182447A1 (en) * 2001-05-31 2003-09-25 Schilling Frank T. Generic top-level domain re-routing system
US6744652B2 (en) * 2001-08-22 2004-06-01 Netlogic Microsystems, Inc. Concurrent searching of different tables within a content addressable memory
WO2003038683A1 (en) 2001-11-01 2003-05-08 Verisign, Inc. Transactional memory manager
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
US7769826B2 (en) 2003-06-26 2010-08-03 Nominum, Inc. Systems and methods of providing DNS services using separate answer and referral caches
US7761570B1 (en) 2003-06-26 2010-07-20 Nominum, Inc. Extensible domain name service
US7761678B1 (en) 2004-09-29 2010-07-20 Verisign, Inc. Method and apparatus for an improved file repository
US7685270B1 (en) 2005-03-31 2010-03-23 Amazon Technologies, Inc. Method and apparatus for measuring latency in web services
EP1891539A2 (en) 2005-05-24 2008-02-27 Paxfire, Inc. Enhanced features for direction of communication traffic
US7546368B2 (en) 2005-06-01 2009-06-09 Neustar, Inc. Systems and methods for isolating local performance variation in website monitoring
US7477575B2 (en) 2005-09-23 2009-01-13 Verisign, Inc. Redundant timer system and method
CA2637413A1 (en) 2006-01-20 2007-07-26 Paxfire, Inc. Systems and methods for discerning and controlling communication traffic
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
WO2008021512A2 (en) 2006-08-17 2008-02-21 Neustar, Inc. System and method for handling jargon in communication systems
US20080133729A1 (en) 2006-08-17 2008-06-05 Neustar, Inc. System and method for managing domain policy for interconnected communication networks
US8234379B2 (en) 2006-09-14 2012-07-31 Afilias Limited System and method for facilitating distribution of limited resources
WO2008079433A1 (en) 2006-12-20 2008-07-03 Rowley, Richard Method and system for installing a root certificate on a computer with a root update mechanism
US7694016B2 (en) 2007-02-07 2010-04-06 Nominum, Inc. Composite DNS zones
US7925747B2 (en) 2007-10-18 2011-04-12 Neustar, Inc. System and method for sharing web performance monitoring data
US20090235359A1 (en) 2008-03-12 2009-09-17 Comodo Ca Limited Method and system for performing security and vulnerability scans on devices behind a network security device
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US7991737B2 (en) * 2008-09-04 2011-08-02 Microsoft Corporation Synchronization of records of a table using bookmarks
US20090282028A1 (en) 2008-09-23 2009-11-12 Michael Subotin User Interface and Method for Web Browsing based on Topical Relatedness of Domain Names
US9172713B2 (en) 2008-09-24 2015-10-27 Neustar, Inc. Secure domain name system
US7930393B1 (en) 2008-09-29 2011-04-19 Amazon Technologies, Inc. Monitoring domain allocation performance
US9292612B2 (en) 2009-04-22 2016-03-22 Verisign, Inc. Internet profile service
US8521908B2 (en) 2009-04-07 2013-08-27 Verisign, Inc. Existent domain name DNS traffic capture and analysis
US8676989B2 (en) 2009-04-23 2014-03-18 Opendns, Inc. Robust domain name resolution
US8527945B2 (en) 2009-05-07 2013-09-03 Verisign, Inc. Method and system for integrating multiple scripts
US8510263B2 (en) 2009-06-15 2013-08-13 Verisign, Inc. Method and system for auditing transaction data from database operations
US8977705B2 (en) 2009-07-27 2015-03-10 Verisign, Inc. Method and system for data logging and analysis
US8380870B2 (en) 2009-08-05 2013-02-19 Verisign, Inc. Method and system for filtering of network traffic
US20110035497A1 (en) 2009-08-05 2011-02-10 Dynamic Network Services, Inc. System and method for providing global server load balancing
US8327019B2 (en) 2009-08-18 2012-12-04 Verisign, Inc. Method and system for intelligent routing of requests over EPP
US8175098B2 (en) 2009-08-27 2012-05-08 Verisign, Inc. Method for optimizing a route cache
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

Also Published As

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

Similar Documents

Publication Publication Date Title
MXPA04004202A (es) Administrador de memoria de transaccion.
AU2002356884A1 (en) Transactional memory manager
AU2002350106A1 (en) High speed non-concurrency controlled database

Legal Events

Date Code Title Description
FG Grant or registration