ES2813903T3 - Aparato y método de búsqueda - Google Patents

Aparato y método de búsqueda Download PDF

Info

Publication number
ES2813903T3
ES2813903T3 ES14890624T ES14890624T ES2813903T3 ES 2813903 T3 ES2813903 T3 ES 2813903T3 ES 14890624 T ES14890624 T ES 14890624T ES 14890624 T ES14890624 T ES 14890624T ES 2813903 T3 ES2813903 T3 ES 2813903T3
Authority
ES
Spain
Prior art keywords
search
lookup table
keyword
sub
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14890624T
Other languages
English (en)
Inventor
Jun Gong
Shuying Liu
Jing Hu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2813903T3 publication Critical patent/ES2813903T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Navigation (AREA)

Abstract

Un aparato (100) de búsqueda, que comprende un despachador (101) global, un árbitro (103) global, y N motores (102) de búsqueda, en donde N es un entero mayor que 1, los N motores (102) de búsqueda pueden acceder a una primera tabla de búsqueda, cada motor de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda, para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2, y la primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda; el despachador (101) global está configurado para: determinar que una primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda, determinar que la primera tabla de búsqueda se corresponde con los N motores (102) de búsqueda, y despachar la primera palabra clave de búsqueda a los N motores (102) de búsqueda; cada motor de búsqueda en los N motores (102) de búsqueda está configurado para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores (102) de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador (101) global existe; y sacar un resultado de búsqueda al árbitro (103) global; y el árbitro (103) global está configurado para arbitrar el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.

Description

DESCRIPCIÓN
Aparato y método de búsqueda
Campo técnico
Esta solicitud se refiere al campo informático, y en particular, a un aparato y método de búsqueda.
Antecedentes
Un aumento en el volumen de datos, una tasa, y una categoría de servicio en Internet y ocurrencia de requisitos de calidad de servicio (inglés: quality of service, QoS para acortar) e inspección de paquetes profunda (inglés: Deep packet inspection, DPI para acortar) imponen requisitos en un motor de búsqueda de un aparato de red (tal como un enrutador).
Actualmente, un dispositivo de red necesita soportar múltiples tipos de servicios, y los múltiples tipos de servicios pueden corresponderse a múltiples tipos de algoritmos de búsqueda. El dispositivo de red incluye múltiples motores de búsqueda, donde cada motor de búsqueda se corresponde con un tipo de algoritmo de búsqueda. Por ejemplo, un enrutador puede necesitar soportar el reenvío de un paquete de Protocolo de Internet (inglés: internet protocol, IP para acortar) y el reenvío de un paquete de protocolo de Control de Acceso de Medios (inglés: media Access control, MAC para acortar). El reenvío del paquete IP se corresponde con un algoritmo de coincidencia de prefijo más largo, y el reenvío del paquete MAC se corresponde con un algoritmo de coincidencia exacta. El enrutador necesita incluir un motor de búsqueda que se corresponda con el algoritmo de coincidencia de prefijo más largo y un motor de búsqueda correspondiente al algoritmo de coincidencia exacta, donde el motor correspondiente al algoritmo de coincidencia de prefijo más largo es usado para acceder a una tabla de enrutamiento, y el motor de búsqueda correspondiente al algoritmo de coincidencia exacta es usado para acceder a una tabla de protocolo MAC. En la solución técnica precedente, los motores de búsqueda no son suficientemente flexibles. El documento de patente de Estados Unidos No. 6957272 B2 describe motores de búsqueda de direcciones usados para enrutar información. El documento de Publicación de Solicitud de Patente de China No. 103401777A describe un método y sistema de búsqueda en paralelo de Openflow. El documento de patente de Estados Unidos No. 7895213 B2 describe un método y sistema para proporcionar motores de búsqueda de paquetes de red basado en trie en cascada. El documento de patente de Estados Unidos No. 7668890 B2 describe un método de búsqueda de prefijos.
Compendio
Realizaciones de esta aplicación proporcionan un aparato y un método de búsqueda que son útiles en la mejora de la flexibilidad de un motor de búsqueda.
Según un primer aspecto, un aparato de búsqueda es proporcionado, que incluye un despachador global, un árbitro global, y N motores de búsqueda, donde N es un entero mayor que 1, los N motores de búsqueda pueden acceder a una primera tabla de búsqueda, cada motor de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda, para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2, y la primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda;
el despachador global está configurado para: determinar que una primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda, determinar que la primera tabla de búsqueda se corresponde con los N motores de búsqueda, y despachar la primera palabra clave de búsqueda a los N motores de búsqueda;
cada motor de búsqueda en los N motores de búsqueda está configurado para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador global existe; y sacar un resultado de búsqueda al árbitro global; y
el árbitro global está configurado para arbitrar el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.
En la solución técnica precedente, cada motor de búsqueda en los N motores de búsqueda puede acceder a una subtabla de una primera tabla de búsqueda. Comparada con la técnica anterior en la cual un motor de búsqueda se corresponde con una tabla de búsqueda, mediante el uso de la solución técnica precedente, la flexibilidad de un motor de búsqueda es mejorada.
En una posible primera forma de implementación del primer aspecto,
el aparato además incluye una memoria, donde la memoria almacena una correspondencia entre un identificador de la primera tabla de búsqueda e identificadores de los N motores de búsqueda que almacenan todas las subtablas de la primera tabla de búsqueda; y
el despachador global es configurado específicamente para determinar, según el identificador de la primera tabla de búsqueda y la correspondencia entre el identificador de la primera tabla de búsqueda y los identificadores de los N motores de búsqueda, que la primera tabla de búsqueda se corresponde con los N motores de búsqueda.
Según el primer aspecto o la primera forma posible de implementación del primer aspecto, en una segunda forma posible de implementación del primer aspecto,
los N motores de búsqueda incluyen al menos un motor de búsqueda, el al menos un motor de búsqueda incluye un despachador local, una primera unidad de búsqueda, una segunda unidad de búsqueda, y un árbitro local, la primera unidad de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda, la segunda unidad de búsqueda puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda, y la segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda;
el despachador local está configurado para: recibir la primera palabra clave de búsqueda despachada por el despachador global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad de búsqueda;
la primera unidad de búsqueda está configurada para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por la primera unidad de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro local; y
el árbitro local está configurado para: arbitrar un resultado de búsqueda sacado por una unidad de búsqueda en el al menos un motor de búsqueda, y sacar un resultado del arbitraje al árbitro global.
Según el primer aspecto, la primera forma posible de implementación del primer aspecto, o la segunda forma posible de implementación del primer aspecto, en una tercera forma posible de implementación del primer aspecto,
los N motores de búsqueda de un primer motor de búsqueda y un segundo motor de búsqueda, una subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el primer motor de búsqueda es una primera subtabla, y una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es una segunda subtabla, y
el aparato está además configurado para ajustar intervalos de entradas que pueden ser accedidos por los N motores de búsqueda, donde la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es ajustada a una tercera subtabla, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el segundo motor de búsqueda es ajustado a una cuarta subtabla, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
Según el primer aspecto, la primera forma posible de implementación del primer aspecto, o la segunda forma posible de implementación del primer aspecto, o la tercera forma posible de implementación del primer aspecto, en una cuarta forma posible de implementación del primer aspecto,
el árbitro global está además configurado para enviar el resultado de búsqueda correspondiente a la primera tabla de búsqueda al despachador global;
el despachador global está además configurado para almacenar una relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda; y
el despachador global está además configurado para: adquirir una segunda palabra clave de búsqueda, y determinar, según la relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda, que un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda es el resultado de búsqueda correspondiente a la primera tabla de búsqueda, donde la segunda palabra clave de búsqueda es igual a la primera palabra clave de búsqueda.
En la solución técnica precedente, un primer motor de búsqueda puede acceder a una primera tabla de búsqueda o una subtabla de una primera tabla de búsqueda. Además, el primer motor de búsqueda puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda. Comparada con la técnica anterior en la cual un motor de búsqueda puede acceder a solo una tabla de búsqueda, mediante el uso de la solución técnica precedente, la flexibilidad de un motor de búsqueda es mejorada.
Según un segundo aspecto, un método de búsqueda es proporcionado, que incluye:
determinar, por un despachador global, que una primera palabra clave de búsqueda se corresponde con una primera tabla de búsqueda, determinar que una primera tabla de búsqueda se corresponde con los N motores de búsqueda, y despachar la primera palabra clave de búsqueda a los N motores de búsqueda, donde N es un entero mayor que 1, los N motores de búsqueda pueden acceder a la primera tabla de búsqueda, cada motor de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda, para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2, y la primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda;
buscar, por cada motor de búsqueda en los N motores de búsqueda según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador global existe; y sacar un resultado de búsqueda al árbitro global; y
arbitrar, por el árbitro global, el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.
En una posible segunda forma de implementación del segundo aspecto,
la determinación, por un despachador global, de que la primera tabla de búsqueda se corresponde con los N motores de búsqueda incluye específicamente:
determinar, según un identificador de la primera tabla de búsqueda y una correspondencia entre el identificador de la primera tabla de búsqueda e identificadores de los N motores de búsqueda, que la primera tabla de búsqueda se corresponde con los N motores de búsqueda, donde una memoria almacena la correspondencia entre el identificador de la primera tabla de búsqueda y los identificadores de los N motores de búsqueda que almacenan todas las subtablas de la primera tabla de búsqueda.
Según el segundo aspecto o la primera forma posible de implementación del segundo aspecto, en una segunda forma de implementación del segundo aspecto, los N motores de búsqueda incluyen al menos un motor de búsqueda, el al menos un motor de búsqueda incluye un despachador local, una primera unidad de búsqueda, una segunda unidad de búsqueda, y un árbitro local, la primera unidad de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda, la segunda unidad de búsqueda puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda, y la segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda; y
el método además incluye;
recibir, por el despachador local, la primera palabra clave de búsqueda despachada por el despachador global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad de búsqueda;
buscar, por la primera unidad de búsqueda según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por la primera unidad de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro local; y
arbitrar, por el árbitro local, un resultado de búsqueda sacado por una unidad de búsqueda en el al menos un motor de búsqueda, y sacar un resultado de arbitraje al árbitro global.
Según el segundo aspecto, la primera forma posible de implementación del segundo aspecto, o la segunda forma posible de implementación del segundo aspecto, en una tercera forma de implementación del segundo aspecto,
los N motores de búsqueda incluyen un primer motor de búsqueda y un segundo motor de búsqueda, una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es una primera subtabla, y una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es una segunda subtabla; y
el método además incluye:
ajustar intervalos de entradas que pueden ser accedidos por los N motores de búsqueda, donde la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es ajustada a una tercera subtabla, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es ajustada a una cuarta subtabla, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
Según el tercer aspecto, la primera forma posible de implementación del tercer aspecto, la segunda forma posible de implementación del tercer aspecto, o la tercera forma posible de implementación del tercer aspecto, en una cuarta forma posible de implementación del tercer aspecto, el método además incluye:
enviar, por el árbitro global, el resultado de búsqueda correspondiente a la primera tabla de búsqueda al despachador global;
almacenar, por el despachador global, una relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda; y
adquirir, por el despachador global, una segunda palabra clave de búsqueda, y determinar, según la relación de correspondencia, almacenada por el despachador global, entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda, que un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda es el resultado de búsqueda correspondiente a la primera tabla de búsqueda, donde la segunda palabra clave de búsqueda es igual a la primera palabra clave de búsqueda.
Breve descripción de los dibujos
Para describir las soluciones técnicas en las realizaciones de esta solicitud más claramente, a continuación se describen brevemente los dibujos que acompañan requeridos para describir las realizaciones. Aparentemente, los dibujos que acompañan en la siguiente descripción muestran meramente algunas realizaciones de esta solicitud. Una persona experta en la técnica puede todavía derivar otros dibujos a partir de estos dibujos que acompañan sin esfuerzo creativo.
La FIG. 1 es un diagrama estructural esquemático de un aparato de búsqueda según una realización de esta solicitud;
La FIG. 2 es un diagrama estructural esquemático de al menos un motor de búsqueda según una realización de esta solicitud;
La FIG. 3 es un diagrama estructural esquemático de un aparato de búsqueda según una realización de esta solicitud;
La FIG. 4 es un diagrama estructural esquemático de un primer motor de búsqueda según una realización de esta solicitud;
La FIG. 5 es un diagrama de flujo esquemático de un método de búsqueda según una realización de esta solicitud; y
La FIG. 6 es un diagrama de flujo esquemático de un método de búsqueda según una realización de esta solicitud.
Descripción de las realizaciones
Para hacer los objetivos, soluciones técnicas, y ventajas de esta solicitud más claros, a continuación se describe esta solicitud en detalle con referencia a los dibujos que acompañan. Aparentemente, las realizaciones descritas son meramente algunas pero no todas las realizaciones de esta solicitud.
Múltiples realizaciones son proporcionadas a continuación. Un aparato de búsqueda está implicado en cada una de las múltiples realizaciones. En este documento, los aparatos de búsqueda en las múltiples realizaciones son descritos de manera colectiva. El aparato de búsqueda puede ser un procesador, una placa de circuito impreso (PCB), o un aparato de red. El procesador puede ser un circuito integrado específico de aplicación (ASIC) o una matriz de puertas de campo programables (FPGA). La PCB puede incluir el procesador, y la PCB puede ser una tarjeta de línea. El aparato de red puede incluir la PCB, y la PCB puede incluir el procesador. El aparato de red puede ser un enrutador, un conmutador de red, un cortafuegos, un balanceador de carga, una estación base, un centro de datos, un aparato de red de transporte de paquetes (PTN), o un aparato de multiplexación por división de longitud de onda (WDM).
La FIG. 1 es un diagrama estructural esquemático de un aparato de búsqueda según una realización de esta solicitud. En referencia a la FIG. 1, un aparato 100 de búsqueda incluye un despachador 101 global, N motores 102 de búsqueda, y un árbitro 103 global. N es un entero mayor que 1, por ejemplo, N puede ser 2 o 3. Los N motores 102 de búsqueda mostrados en la FIG. 1 incluyen un motor 1 de búsqueda, un motor 2 de búsqueda, un motor 3 de búsqueda, un motor 4 de búsqueda, un motor 5 de búsqueda, ..., y un motor N de búsqueda. Se debería observar que los N motores de búsqueda mostrados en la FIG. 1 son usados meramente para ilustración. Además, el aparato 100 de búsqueda puede además incluir otro motor de búsqueda además de los N motores 102 de búsqueda. Los N motores de búsqueda pueden acceder a una primera tabla de búsqueda, donde cada motor puede acceder a solo una subtabla de la primera tabla de búsqueda. Para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2. La primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda.
Específicamente, la primera tabla de búsqueda incluye N subtablas. Una entrada en cada subtabla constituye un conjunto. Un conjunto de intersección de dos conjuntos correspondientes a cualesquiera dos subtablas es un conjunto vacío.
Por ejemplo, la primera tabla de búsqueda puede ser una lista de control de acceso (ACL), una tabla de enrutamiento, una tabla de mapa de etiqueta entrante (ILM), una tabla de protocolo MAC, o una tabla de gestión de colas (QM).
Cada motor de búsqueda en los N motores 102 de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda. Por ejemplo, la primera tabla de búsqueda incluye una tabla 1, una tabla 2, una tabla 3, una tabla 4, una tabla 5, ..., y una tabla N. En referencia a la FIG. 1, el motor 1 de búsqueda puede solo acceder a la tabla 1, el motor 2 de búsqueda puede solo acceder a la tabla 2, el motor 3 de búsqueda puede solo acceder a la tabla 3, el motor 4 de búsqueda puede solo acceder a la tabla 4, el motor 5 de búsqueda puede solo acceder a la tabla 5, ..., y el motor N de búsqueda puede solo acceder a la tabla N.
El despachador 101 global está configurado para: determinar que una primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda, determinar que la primera tabla de búsqueda se corresponde con los N motores 102 de búsqueda, y despachar la primera palabra clave de búsqueda a los N motores 102 de búsqueda.
Por ejemplo, el despachador 101 global puede recibir señalización enviada por un circuito de procesamiento. La señalización incluye la primera palabra clave de búsqueda y un identificador de la primera tabla de búsqueda. El despachador 101 global puede determinar, según la señalización, que la primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda. El circuito de procesamiento puede ser un analizador, y el analizador puede analizar un paquete recibido para obtener la primera palabra clave de búsqueda. Por ejemplo, el paquete recibido puede ser un paquete IP, y la primera palabra clave de búsqueda puede ser una dirección IP destino. Además, el paquete recibido puede ser una trama Ethernet, y la primera palabra clave de búsqueda puede ser una dirección del protocolo MAC.
Por ejemplo, el despachador 101 global puede acceder a una relación de correspondencia entre el identificador de la primera tabla de búsqueda y un identificador de cada motor de búsqueda en los N motores 102 de búsqueda, para determinar que la primera tabla de búsqueda se corresponde con los N motores 102 de búsqueda.
Por ejemplo, el despachador 101 global puede despachar la primera palabra clave de búsqueda a cada motor de búsqueda en los N motores 102 de búsqueda.
Cada motor de búsqueda en los N motores 102 de búsqueda está configurado para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores 102 de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador global existe; y sacar un resultado de búsqueda al árbitro global.
Por ejemplo, el primer algoritmo de búsqueda puede ser un algoritmo de búsqueda lineal, un algoritmo de búsqueda de prefijo más largo, un algoritmo de búsqueda exacta, o un algoritmo de búsqueda de máscaras.
Por ejemplo, el motor 1 de búsqueda mostrado en la FIG. 1 busca la tabla 1 para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe, el motor 2 de búsqueda busca la tabla 2 para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe, ..., y el motor N de búsqueda busca la tabla N para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe.
Por ejemplo, si una entrada que coincide con la primera palabra clave de búsqueda existe en la subtabla, el resultado de búsqueda puede ser información en la entrada que coincide con la primera palabra clave de búsqueda, o puede ser información indicada por un índice en la entrada que coincide con la primera palabra clave de búsqueda. Por ejemplo, la información en la entrada que coincide la primera palabra clave de búsqueda o la información indicada por el índice en la entrada que coincide con la primera palabra clave de búsqueda puede ser una dirección IP de siguiente salto. El índice en la entrada que coincide con la primera palabra clave de búsqueda puede ser un índice de la dirección IP de siguiente salto. Además, el resultado de búsqueda puede además incluir información usada para indicar que una entrada que coincide la primera palabra clave de búsqueda existe en la subtabla. La información usada para indicar que una entrada que coincide con la primera palabra clave de búsqueda existe en la subtabla puede ser coincidencia.
Por ejemplo, si una entrada que coincide con la primera palabra clave de búsqueda no existe en la subtabla, el resultado de búsqueda puede ser información usada para indicar que una entrada que coincide con la primera palabra clave de búsqueda no existe en la subtabla. La información usada para indicar que una entrada que coincide con la primera palabra clave de búsqueda no existe en la subtabla puede ser fallo.
El árbitro 103 global está configurado para arbitrar el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.
El arbitraje permite al resultado de búsqueda correspondiente a la primera tabla de búsqueda ser igual a un resultado de búsqueda obtenido por un motor de búsqueda mediante la búsqueda de la primera tabla de búsqueda según la primera palabra clave de búsqueda y el primer algoritmo de búsqueda.
Por ejemplo, el primer algoritmo de búsqueda es un algoritmo de coincidencia de prefijo más largo. La primera palabra clave de búsqueda es una dirección IP, y la dirección IP puede ser 192.168.0.1. Los valores de campos de coincidencia en entradas que están en la tabla 1, la tabla 2, la tabla 3, y la tabla 4 y coinciden la primera palabra clave de búsqueda son 192.*.*.*, un valor de un campo de coincidencia en una entrada está en la tabla 5 y coincide con la primera palabra clave de búsqueda es 192.168.*.*, ..., y un valor de un campo de coincidencia en una entrada que está en la tabla N y coincide con la primera palabra clave de búsqueda es 192.168.0.*. Los resultados de búsqueda sacados por el motor 1 de búsqueda al motor 4 de búsqueda son 192.*.*.*, un resultado de búsqueda sacado por el motor 5 de búsqueda es 192.168.*.*, ..., y un resultado de búsqueda sacado por el motor N de búsqueda es 192.168.0.*. El árbitro 103 global obtiene, mediante medios de arbitraje, que el resultado de búsqueda correspondiente a la primera tabla de búsqueda es información en la entrada que está en la tabla N e incluye el campo de coincidencia cuyo valor es 192.168.0.*.
Por ejemplo, el primer algoritmo de búsqueda es un algoritmo de coincidencia exacta. La primera palabra clave de búsqueda es una dirección del protocolo MAC, y la dirección del protocolo MAC puede ser 00-00-00-00-00-00-00-E0. Ninguna de la tabla 1 a la tabla 5 incluye una entrada que incluya un campo de coincidencia cuyo valor sea igual a 00-00-00-00-00-00-00-E0, y los resultados de búsqueda sacados por el motor 1 de búsqueda al motor 5 de búsqueda son fallos... La tabla N incluye la entrada que incluye el campo de coincidencia cuyo valor es igual a 00-00-00-00-00-00-00-E0, y un resultado de búsqueda sacado por el motor N de búsqueda coincide y la información de la entrada que está en la tabla N e incluye el campo de coincidencia cuyo valor es igual a 00-00-00-00-00-00-00-E0. El árbitro 103 global obtiene, por medio del arbitraje, que el resultado de búsqueda correspondiente a la primera tabla de búsqueda es la información en la entrada que está en la tabla N e incluye el campo de coincidencia cuyo valor es igual a 00-00-00-00-00-00-00-E0.
De manera opcional, el aparato 100 de búsqueda además incluye una memoria. La memoria almacena una correspondencia entre el identificador de la primera tabla de búsqueda e identificadores de los N motores 102 de búsqueda que almacenan todas las subtablas de la primera tabla de búsqueda.
Por ejemplo, la memoria almacena una tabla de correspondencia entre el identificador de la primera tabla de búsqueda y la tabla 1 a la tabla N.
El despachador 101 global es especialmente configurado para determinar, según el identificador de la primera tabla de búsqueda y la correspondencia entre el identificador de la primera tabla de búsqueda y los identificadores de los N motores 102 de búsqueda, que la primera tabla de búsqueda se corresponde con los N motores de búsqueda.
De manera opcional, los N motores 102 de búsqueda mostrados en la FIG. 1 incluyen al menos un motor de búsqueda. La FIG. 2 es un diagrama estructural esquemático del al menos un motor de búsqueda. En referencia a la FIG. 2, al menos un motor 200 de búsqueda incluye un despachador 201 local, múltiples unidades 202 de búsqueda, y un árbitro 203 local. Las múltiples unidades 202 de búsqueda incluyen una primera unidad 210 de búsqueda y una segunda unidad 220 de búsqueda. De manera opcional, las múltiples unidades 202 de búsqueda pueden además incluir otra unidad de búsqueda. La otra unidad de búsqueda puede ser una unidad de búsqueda Mésima, donde M es un entero mayor que 2. La primera unidad 210 de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda. La segunda unidad 220 de búsqueda puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda. La segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda.
Por ejemplo, la arquitectura de al menos una unidad de búsqueda en las múltiples unidades 202 de búsqueda es una memoria de acceso aleatorio estática basada en tubería (inglés: pipeline-base SRAM). Esto es, la unidad de búsqueda puede configurarse en una estructura en tubería. La estructura en tubería incluye memorias de acceso aleatorio estática en múltiples niveles. Una memoria de acceso aleatorio estática en cada nivel está configurada para almacenar una estructura de datos de una tabla a ser buscada. La memoria de acceso aleatorio estática en cada nivel tiene una unidad de análisis correspondiente. La unidad de análisis está configurada para: acceder a una estructura de datos en la memoria de acceso aleatorio estática correspondiente, analizar la estructura de datos, y enviar un resultado obtenido después del análisis a una tubería de siguiente nivel. Una unidad de búsqueda en una arquitectura SRAM basada en tubería puede configurarse para implementar múltiples tipos de algoritmos de búsqueda.
Específicamente, una cantidad de entradas incluidas en la segunda tabla de búsqueda es más grande que una cantidad de entradas incluidas en una subtabla de la segunda tabla de búsqueda.
El despachador 201 local está configurado para: recibir la primera palabra clave de búsqueda despachada por el despachador 101 global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad 210 de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad 210 de búsqueda.
La primera unidad 210 de búsqueda está configurada para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y puede ser accedida por la primera unidad 210 de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro 203 local.
Por ejemplo, el al menos un motor 200 de búsqueda mostrado en la FIG. 2 puede ser el motor 1 de búsqueda mostrado en la FIG. 1. La subtabla que es de la primera tabla de búsqueda y puede ser accedida por la primera unidad 210 de búsqueda puede ser la tabla 1.
El árbitro 203 local está configurado para: arbitrar un resultado de búsqueda sacado por una unidad de búsqueda en el al menos un motor 200 de búsqueda, y sacar un resultado de arbitraje al árbitro 103 global.
Por ejemplo, el resultado de búsqueda sacado por la unidad de búsqueda en el al menos un motor 200 de búsqueda puede incluir solo el resultado de búsqueda sacado por la primera unidad 210 de búsqueda, o el resultado de búsqueda sacado por la unidad de búsqueda en el al menos un motor 200 de búsqueda puede incluir el resultado de búsqueda sacado por la primera unidad 210 de búsqueda y un resultado de búsqueda sacado por la segunda unidad 220 de búsqueda. Esto es, el árbitro 203 local puede arbitrar un resultado de búsqueda sacado solo mediante una unidad de búsqueda, o puede arbitrar resultados de búsqueda sacados por múltiples unidades de búsqueda.
De manera opcional, los N motores 102 de búsqueda incluyen un primer motor de búsqueda y un segundo motor de búsqueda. Una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es una primera subtabla. Una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es una segunda subtabla.
El aparato 100 de búsqueda está además configurado para ajustar intervalos de entradas que pueden ser accedidos por los N motores 102 de búsqueda, donde la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es ajustada a una tercera subtabla, la tercera subtabla incluye todas la entradas, excepto una primera entrada, en la primera subtabla, la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es ajustada a una cuarta subtabla, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
La primera entrada puede ser una entrada o múltiples entradas.
Por ejemplo, el primer motor de búsqueda puede ser el motor 1 de búsqueda, el segundo motor de búsqueda puede ser el motor 2 de búsqueda, la primera subtabla puede ser la tabla 1, y la segunda subtabla puede ser la tabla 2. Por ejemplo, una cantidad de entradas en la tabla 1 puede ser 100, y una cantidad de entradas en la tabla 2 puede ser 100. El aparato 100 de búsqueda ajusta los intervalos de las entradas que pueden ser accedidos por los N motores 102 de búsqueda, de forma que al menos una entrada en la tabla 1 es movida a la tabla 2. Específicamente, después de que el aparato 100 de búsqueda ajuste un intervalo de entradas que puede ser accedido por un motor de búsqueda, un intervalo de entradas que puede ser accedido por el motor 1 de búsqueda es la tercera subtabla, y un intervalo de entradas que puede ser accedido por el motor 2 de búsqueda es la cuarta subtabla. Una cantidad de entradas en la tercera subtabla puede ser 99, y una cantidad de entradas en la cuarta subtabla puede ser 101; o ciertamente, una cantidad de entradas en la tercera subtabla puede ser 0, y una cantidad de entradas en la cuarta subtabla puede ser 200. Además, en esta solicitud, no se limita que la al menos una entrada en la tabla 1 puede ser movida solo a la tabla 2. Por ejemplo, algunas entradas en la al menos una entrada en la tabla 1 pueden ser movidas a la tabla 2, y las otras entradas en la el menos una entrada en la tabla 1 pueden ser movidas a otra tabla (tal como la tabla 3).
De manera opcional, el árbitro 103 global está además configurado para enviar el resultado de búsqueda correspondiente a la primera tabla de búsqueda al despachador 101 global.
El despachador 101 global está además configurado para almacenar una relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda.
Por ejemplo, el despachador 101 global puede incluir un circuito de almacenamiento. El despachador 101 global puede almacenar la relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda mediante el uso del circuito de almacenamiento en el despachador 101 global. Ciertamente, el despachador 101 global puede almacenar la relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda mediante el acceso al circuito de almacenamiento fuera del despachador 101 global.
El despachador global está además configurado para: adquirir una segunda palabra clave de búsqueda, y determinar, según la relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda, que un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda es el resultado de búsqueda correspondiente a la primera tabla de búsqueda, donde la segunda palabra clave de búsqueda es igual a la primera palabra clave de búsqueda.
Por ejemplo, la segunda palabra clave de búsqueda puede ser obtenida por el analizador mediante el análisis de un paquete IP recién recibido.
La FIG. 3 es un diagrama estructural esquemático de un aparato de búsqueda según una realización de esta solicitud. En referencia a la FIG. 3, un aparato 300 de búsqueda incluye un despachador 301 global, N motores 302 de búsqueda, y un árbitro 303 global. N es un entero mayor que 1, por ejemplo, N puede ser 2 o 3. Los N motores 302 de búsqueda mostrados en la FIG. 3 incluyen un primer motor de búsqueda, ..., y un Nésimo motor de búsqueda. Se debería observar que los N motores 302 de búsqueda mostrados en la FIG. 3 son usados meramente para ilustración. Además, el aparato 300 de búsqueda puede además incluir otro motor de búsqueda además de los N motores 302 de búsqueda. El primer motor de búsqueda puede acceder a una primera tabla de búsqueda o una subtabla de una primera tabla de búsqueda. La primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda. El primer motor de búsqueda puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda. La segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda.
Por ejemplo, la primera tabla de búsqueda o la segunda tabla de búsqueda puede ser una ACL, una tabla de enrutamiento, una tabla de IILM, una tabla de protocolo MAC, o una tabla QM. La primera tabla de búsqueda es diferente de la segunda tabla de búsqueda.
Por ejemplo, el primer algoritmo de búsqueda o el segundo algoritmo de búsqueda pueden ser un algoritmo de búsqueda lineal, un algoritmo de búsqueda de prefijo más largo, un algoritmo de búsqueda exacto, o un algoritmo de búsqueda de máscaras. El primer algoritmo de búsqueda es diferente del segundo algoritmo de búsqueda.
Una cantidad de entradas en una subtabla de la primera tabla de búsqueda es menor que una cantidad de entradas en la primera tabla de búsqueda. Una cantidad de entradas en una subtabla de la segunda tabla de búsqueda es menor que una cantidad de entradas en la segunda tabla de búsqueda.
Por ejemplo, cuando el primer motor de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda, el Nésimo motor de búsqueda puede acceder a otra subtabla de la primera tabla de búsqueda. Cuando el primer motor de búsqueda puede acceder a una subtabla de la segunda tabla de búsqueda, el Nésimo motor de búsqueda puede acceder a otra subtabla de la segunda tabla de búsqueda.
El despachador 301 global está configurado para: determinar que una primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda, determinar que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda, y despachar la primera palabra clave de búsqueda al primer motor de búsqueda.
Por ejemplo, el despachador 301 global puede recibir primero señalización enviada por un circuito de procesamiento. La primera señalización incluye la primera palabra clave de búsqueda y un identificador de la primera tabla de búsqueda. El despachador 301 global puede determinar, según la primera señalización, que la primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda. El circuito de procesamiento puede ser un analizador, y el analizador puede analizar un primer paquete recibido para obtener la primera palabra clave de búsqueda. Por ejemplo, el primer paquete puede ser un paquete IP, y la primera palabra clave de búsqueda puede ser una dirección IP destino. Además, el primer paquete puede ser una trama Ethernet, y la primera palabra clave de búsqueda puede ser una dirección del protocolo MAC destino.
Por ejemplo, cuando el primer motor de búsqueda puede acceder a la primera tabla de búsqueda, el despachador 301 global puede acceder a una relación de correspondencia entre el identificador de la primera tabla de búsqueda y un identificador del primer motor de búsqueda, para determinar que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda.
Por ejemplo, cuando el primer motor de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda, el despachador 301 global puede acceder a una relación de correspondencia entre el identificador de la primera tabla de búsqueda e identificadores de múltiples motores de búsqueda que almacenan todas las subtablas de la primera tabla de búsqueda, para determinar que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda. La primera tabla de búsqueda incluye múltiples subtablas, donde las múltiples subtablas de la primera tabla de búsqueda están en una correspondencia uno a uno con los múltiples motores de búsqueda, y los múltiples motores de búsqueda incluyen el primer motor de búsqueda.
El primer motor de búsqueda está configurado para: buscar, según el primer algoritmo de búsqueda, la primera tabla de búsqueda que pueda ser accedida por el primer motor de búsqueda o la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador 301 global existe, para obtener un resultado de búsqueda correspondiente a la primera palabra clave de búsqueda; y sacar el resultado de búsqueda correspondiente a la primera palabra clave de búsqueda al árbitro 303 global.
Por ejemplo, si una entrada que coincide con la primera palabra clave de búsqueda existe en la primera tabla de búsqueda o la subtabla de la primera tabla de búsqueda, el resultado de búsqueda puede ser información en la entrada que coincide con la primera palabra clave de búsqueda, o puede ser información indicada por un índice en la entrada que coincide con la primera palabra clave de búsqueda. Por ejemplo, la información en la entrada que coindice con la primera palabra clave de búsqueda o la información indicada por el índice en la entrada que coincide con la primera palabra clave de búsqueda puede ser una dirección IP de siguiente salto. El índice en la entrada que coincide con la primera palabra clave de búsqueda puede ser un índice de la dirección IP de siguiente salto. Además, el resultado de búsqueda puede además incluir información usada para indicar que una entrada que coincide la primera palabra clave de búsqueda existe en la primera tabla de búsqueda o en la subtabla de la primera tabla de búsqueda. La información usada para indicar que una entrada que coincide con la primera palabra clave de búsqueda existe puede ser coincidencia.
Por ejemplo, si una entrada que coincide con la primera palabra clave de búsqueda no existe en la primera tabla de búsqueda o la subtabla de la primera tabla de búsqueda, el resultado de búsqueda puede ser información usada para indicar que una entrada que coincide con la primera palabra clave de búsqueda no existe en la primera tabla de búsqueda o en la subtabla de la primera tabla de búsqueda. La información usada para indicar que una entrada que coincide con la primera palabra clave de búsqueda no existe puede ser fallo.
El despachador 301 global está además configurado para: determinar que una segunda palabra clave de búsqueda se corresponde con la segunda tabla de búsqueda, determinar que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda, y despachar la segunda palabra clave de búsqueda al primer motor de búsqueda.
Por ejemplo, el despachador 301 global puede recibir segunda señalización enviada por el circuito de procesamiento. La segunda señalización incluye la segunda palabra clave de búsqueda y un identificador de la segunda tabla de búsqueda. El despachador 301 global puede determinar, según la segunda señalización, que la segunda palabra clave de búsqueda se corresponde con la segunda tabla de búsqueda. El circuito de procesamiento puede analizar un segundo paquete recibido para obtener la segunda palabra clave de búsqueda. Por ejemplo, el segundo paquete recibido puede ser un paquete IP, y la segunda palabra clave de búsqueda puede ser una dirección IP destino. Además, el segundo paquete recibido puede ser una trama Ethernet, y la segunda palabra clave de búsqueda puede ser una dirección del protocolo MAC.
Por ejemplo, cuando el primer motor de búsqueda puede acceder a la segunda tabla de búsqueda, el despachador 301 global puede acceder a una relación de correspondencia entre el identificador de la segunda tabla de búsqueda y el identificador del primer motor de búsqueda, para determinar que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda.
Por ejemplo, cuando el primer motor de búsqueda puede acceder a una subtabla de la segunda tabla de búsqueda, el despachador 301 global puede acceder a una relación de correspondencia entre el identificador de la segunda tabla de búsqueda e identificadores de múltiples motores de búsqueda que almacenan todas las subtablas de la segunda tabla de búsqueda, para determinar que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda. La segunda tabla de búsqueda incluye múltiples subtablas, donde las múltiples subtablas de la segunda tabla de búsqueda son en una correspondencia uno a uno con los múltiples motores de búsqueda, y los múltiples motores de búsqueda incluyen el primer motor de búsqueda.
El primer motor de búsqueda está además configurado para: buscar, según el segundo algoritmo de búsqueda, la segunda tabla de búsqueda que pueda ser accedida por el primer motor de búsqueda o la subtabla que es de la segunda tabla de búsqueda y puede ser accedida por el primer motor de búsqueda, para determinar si una entrada que coincide con la segunda palabra clave de búsqueda despachada por el despachador 301 global existe, para obtener un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda; y sacar el resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda al árbitro 303 global.
Por ejemplo, si una entrada que coincide con la segunda palabra clave de búsqueda existe en la segunda tabla de búsqueda o la subtabla de la segunda tabla de búsqueda, el resultado de búsqueda puede ser información en la entrada que coincide con la segunda palabra clave de búsqueda, o puede ser información indicada por un índice en la entrada que coincide con la segunda palabra clave de búsqueda. Por ejemplo, la información en la entrada que coindice con la segunda palabra clave de búsqueda o la información indicada por el índice en la entrada que coincide con la segunda palabra clave de búsqueda puede ser una dirección IP de siguiente salto. El índice en la entrada que coincide con la segunda palabra clave de búsqueda puede ser un índice de la dirección IP de siguiente salto. Además, el resultado de búsqueda puede además incluir información usada para indicar que una entrada que coincide la segunda palabra clave de búsqueda existe en la segunda tabla de búsqueda o en la subtabla de la segunda tabla de búsqueda. La información usada para indicar que una entrada que coincide con la segunda palabra clave de búsqueda existe puede ser coincidencia.
Por ejemplo, si una entrada que coincide con la segunda palabra clave de búsqueda no existe en la segunda tabla de búsqueda o la subtabla de la segunda tabla de búsqueda, el resultado de búsqueda puede ser información usada para indicar que una entrada que coincide con la segunda palabra clave de búsqueda no existe en la segunda tabla de búsqueda o en la subtabla de la segunda tabla de búsqueda. La información usada para indicar que una entrada que coincide con la segunda palabra clave de búsqueda no existe puede ser fallo.
El árbitro 303 global está configurado para recibir el resultado de búsqueda correspondiente a la primera palabra clave de búsqueda y el resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda.
Por ejemplo, el árbitro 303 global puede recibir resultados de búsqueda enviados por los N motores 302 de búsqueda. Por ejemplo, el árbitro 303 global puede recibir resultados de búsqueda enviados por el primer motor de búsqueda. Los resultados de búsqueda enviados por el primer motor de búsqueda incluyen el resultado de búsqueda correspondiente a la primera palabra clave de búsqueda y el resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda.
Por ejemplo, el árbitro 303 global puede arbitrar los resultados de búsqueda enviados por los N motores 302 de búsqueda. Para una implementación específica de la ejecución del arbitraje mediante el árbitro 303 global, se puede hacer referencia al árbitro 103 global mostrado en la FIG. 1 y la descripción sobre el árbitro 103 global en la realización.
De manera opcional, el aparato de búsqueda mostrado en la FIG. 3 puede además incluir una memoria. La memoria está configurada para: antes de que el despachador 301 global determine que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda, almacenar una correspondencia entre el identificador de la primera tabla de búsqueda y el identificador del primer motor de búsqueda.
El despachador 301 global está configurado específicamente para determinar, según el identificador de la primera tabla de búsqueda y la correspondencia entre el identificador de la primera tabla de búsqueda y el identificador del primer motor de búsqueda, que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda.
De manera opcional, la memoria además está configurada para: antes de que el despachador determine que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda, almacenar una correspondencia entre el identificador de la segunda tabla de búsqueda y el identificador de la primera tabla de búsqueda.
El despachador global está configurado específicamente para determinar, según el identificador de la segunda tabla de búsqueda y la correspondencia entre el identificador de la segunda tabla de búsqueda y el identificador del primer motor de búsqueda, que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda.
De manera opcional, la FIG. 4 es un diagrama estructural esquemático del primer motor de búsqueda mostrado en la FIG. 3. En referencia a la FIG. 4, un primer motor 400 de búsqueda incluye un despachador 401 local, múltiples unidades 402 de búsqueda, y un árbitro 403 local. Las múltiples unidades 402 de búsqueda incluyen una primera unidad 410 de búsqueda y una segunda unidad 420 de búsqueda. De manera opcional, las múltiples unidades 402 de búsqueda pueden además incluir otra unidad de búsqueda. La otra unidad de búsqueda puede ser una unidad de búsqueda Mésima, donde M es un entero mayor que 2. La primera unidad 410 de búsqueda puede acceder a la primera tabla de búsqueda o a una subtabla de la primera tabla de búsqueda. La segunda unidad 420 de búsqueda puede acceder a la segunda tabla de búsqueda o a una subtabla de una segunda tabla de búsqueda.
El despachador 401 local está configurado para: recibir la primera palabra clave de búsqueda despachada por el despachador 301 global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad 410 de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad 410 de búsqueda.
La primera unidad 410 de búsqueda está configurada para: buscar, según el primer algoritmo de búsqueda, la primera tabla de búsqueda que puede ser accedida por la primera unidad 410 de búsqueda o la subtabla que es de la primera tabla de búsqueda y puede ser accedida por la primera unidad 410 de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro 403 local.
El árbitro 403 local está configurado para arbitrar el resultado de búsqueda sacado por una unidad primera unidad 410 de búsqueda.
El despachador 401 local está configurado para: recibir la segunda palabra clave de búsqueda despachada por el despachador 301 global, determinar que la segunda palabra clave de búsqueda se corresponde con la segunda unidad 420 de búsqueda, y despachar la segunda palabra clave de búsqueda a la segunda unidad 420 de búsqueda.
La segunda unidad 420 de búsqueda está configurada para: buscar, según el segundo algoritmo de búsqueda, la segunda tabla de búsqueda que puede ser accedida por la segunda unidad 420 de búsqueda o la subtabla que es de la segunda tabla de búsqueda y puede ser accedida por la segunda unidad 420 de búsqueda, para determinar si una entrada que coincide con la segunda palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro 403 local.
El árbitro 403 local está configurado para arbitrar el resultado de búsqueda sacado por una segunda unidad 420 de búsqueda.
Por ejemplo, la arquitectura de al menos una unidad de búsqueda en las múltiples unidades 402 de búsqueda es una SRAM basada en tubería. Esto es, la unidad de búsqueda puede configurarse en una estructura en tubería. La estructura en tubería incluye memorias de acceso aleatorio estáticas en múltiples niveles. Una memoria de acceso aleatorio estática en cada nivel está configurada para almacenar una estructura de datos de una tabla a ser buscada. La memoria de acceso aleatoria estática en cada nivel tiene una unidad de análisis correspondiente. La unidad de análisis está configurada para: acceder a una estructura de datos en la memoria de acceso aleatorio estática correspondiente, analizar la estructura de datos, y enviar un resultado obtenido después del análisis a una tubería de siguiente nivel. Una unidad de búsqueda en una arquitectura SRAM basada en tubería puede configurarse para implementar múltiples tipos de algoritmos de búsqueda.
Para una implementación específica de la ejecución del arbitraje por el árbitro 403 local, se puede hacer referencia al árbitro 203 local mostrado en la FIG. 2 y la descripción sobre el árbitro 203 local en la realización.
De manera opcional, los N motores 302 de búsqueda además incluyen un segundo motor de búsqueda. El primer motor de búsqueda puede acceder a la primera tabla de búsqueda o a una primera subtabla de la primera tabla de búsqueda. El segundo motor de búsqueda puede acceder a una segunda subtabla de la primera subtabla de búsqueda.
El aparato 300 de búsqueda está además configurado para ajustar un intervalo de entradas que puede ser accedido por el primer motor de búsqueda y un intervalo de entradas que puede ser accedido por el segundo motor de búsqueda, donde el intervalo de entradas que puede ser accedido por el primer motor de búsqueda está ajustado a partir de la primera tabla de búsqueda o la primera subtabla de la primera tabla de búsqueda a una tercera subtabla de la primera tabla de búsqueda, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, el intervalo de las entradas que puede ser accedido por el segundo motor de búsqueda es ajustado a partir de la segunda subtabla de la primera tabla de búsqueda a una cuarta subtabla de la primera tabla de búsqueda, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
La primera entrada puede ser una entrada o múltiples entradas.
Por ejemplo, una cantidad de entradas en la primera subtabla puede ser 100, y una cantidad de entradas en la segunda subtabla puede ser 100. El aparato 300 de búsqueda ajusta los intervalos de las entradas que pueden ser accedidos por los N motores 302 de búsqueda, de forma que al menos una entrada en la primera subtabla es movida a la segunda subtabla. Específicamente, después de que el aparato 300 de búsqueda ajuste un intervalo de entradas que puede ser accedido por un motor de búsqueda, un intervalo de entradas que puede ser accedido por el primer motor de búsqueda es la tercera subtabla, y el intervalo de entradas que puede ser accedido por el segundo motor de búsqueda es la cuarta subtabla. Una cantidad de entradas en la tercera subtabla puede ser 99, y una cantidad de entradas en la cuarta subtabla puede ser 101; o ciertamente, una cantidad de entradas en la tercera subtabla puede ser 0, y una cantidad de entradas en la cuarta subtabla puede ser 200.
La FIG. 5 es un diagrama de flujo esquemático de un método de búsqueda según una realización de esta solicitud. El aparato de búsqueda mostrado en la FIG. 1, FIG. 2, o FIG. 1 y FIG. 2 puede ser configurado para ejecutar el método de búsqueda mostrado en la FIG. 5. En referencia a la FIG. 5, el método incluye los siguientes pasos:
501. Un despachador global determina que una primera palabra clave de búsqueda se corresponde con una primera tabla de búsqueda, determina que la primera tabla de búsqueda se corresponde con N motores de búsqueda, y despacha la primera palabra clave de búsqueda a los N motores de búsqueda.
N es un entero mayor que 1, los N motores de búsqueda pueden acceder a una primera tabla de búsqueda, cada motor de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda, para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2, y la primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda.
502. Cada motor de búsqueda en los N motores de búsqueda busca, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador global existe; y saca un resultado de búsqueda a un árbitro global.
503. El árbitro global arbitra el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.
De manera opcional, en el método mostrado en la FIG. 5, que el despachador global determine que la primera tabla de búsqueda se corresponde con los N motores de búsqueda específicamente incluye:
determinar, según un identificador de la primera tabla de búsqueda y una correspondencia entre el identificador de la primera tabla de búsqueda y los identificadores de los N motores de búsqueda, que la primera tabla de búsqueda se corresponde con los N motores de búsqueda, donde una memoria almacena la correspondencia entre los identificadores de la primera tabla de búsqueda y los identificadores de los N motores de búsqueda que almacenan todas las subtablas de la primera tabla de búsqueda.
De manera opcional, en la solución técnica precedente, los N motores de búsqueda incluyen al menos un motor de búsqueda, y el al menos un motor de búsqueda incluye un despachador local, una primera unidad de búsqueda, una segunda unidad de búsqueda, y un árbitro local. La primera unidad de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda. La segunda unidad de búsqueda puede acceder a una segunda tabla de búsqueda o a una subtabla de una segunda tabla de búsqueda. La segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda.
El método además incluye: recibir, por el despachador local, la primera palabra clave de búsqueda despachada por el despachador global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad de búsqueda;
buscar, por la primera unidad de búsqueda según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por la primera unidad de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro local; y
arbitrar, por el árbitro local, un resultado de búsqueda sacado por una unidad de búsqueda en el al menos un motor de búsqueda, y sacar un resultado de arbitraje al árbitro global.
De manera opcional, en la solución técnica precedente, los N motores de búsqueda incluyen un primer motor de búsqueda y un segundo motor de búsqueda. Una subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el primer motor de búsqueda es una primera subtabla. Una subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el segundo motor de búsqueda es una segunda subtabla.
El método además incluye: ajustar intervalos de entradas que pueden ser accedidos por los N motores de búsqueda, donde la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es ajustada a una tercera subtabla, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es ajustada a una cuarta subtabla, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
De manera opcional, en la solución técnica precedente, el método además incluye:
enviar, por el árbitro global, el resultado de búsqueda correspondiente a la primera tabla de búsqueda al despachador global;
almacenar, por el despachador global, una relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda; y
adquirir, por el despachador global, una segunda palabra clave de búsqueda, y determinar, según la relación de correspondencia, almacenada por el despachador global, entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda, que un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda es el resultado de búsqueda correspondiente a la primera tabla de búsqueda, donde la segunda palabra clave de búsqueda es igual a la primera palabra clave de búsqueda.
El aparato 100 de búsqueda mostrado en la FIG. 1 incluye el despachador 101 global, los N motores 102 de búsqueda, y el árbitro 103 global. Por ejemplo, el despachador 101 global puede configurarse para implementar el despachador global mencionado en la FIG. 5, los N motores 102 de búsqueda pueden configurarse para implementar los N motores de búsqueda mencionados en la FIG. 5, y el árbitro 103 global puede ser configurado para implementar el árbitro global mencionado en la FIG. 5. Para significados e implementaciones específicos de términos implicados en el método que se muestra en la FIG. 5 y descrito anteriormente y un método expandido basado en el método mostrado en la FIG. 5, se puede hacer referencia a la realización correspondiente a la FIG. 1 y/o FIG. 2. Los detalles no se describen en este documento otra vez.
La FIG. 6 es un diagrama de flujo esquemático de un método de búsqueda según una realización de esta solicitud. El aparato de búsqueda mostrado en la FIG. 3, FIG. 4, o FIG. 3 y FIG. 4 puede ser configurado para ejecutar el método de búsqueda mostrado en la FIG. 6. En referencia a la FIG. 6, el método incluye los siguientes pasos:
601. Un despachador global determina que una primera palabra clave de búsqueda se corresponde con una primera tabla de búsqueda, determina que la primera tabla de búsqueda se corresponde con un primer motor de búsqueda, y despacha la primera palabra clave de búsqueda al primer motor de búsqueda.
N motores de búsqueda incluyen el primer motor de búsqueda, donde N es un entero mayor que 1. El primer motor de búsqueda puede acceder a la primera tabla de búsqueda o a una subtabla de la primera tabla de búsqueda. La primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda. El primer motor de búsqueda puede acceder a una segunda tabla de búsqueda o a una subtabla de una segunda tabla de búsqueda. La segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda.
602. El primer motor de búsqueda busca, según el primer algoritmo de búsqueda, la primera tabla de búsqueda que puede ser accedida por el primer motor de búsqueda o la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el primer motor de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador global existe, para obtener un resultado de búsqueda correspondiente a la primera palabra clave de búsqueda; y saca el resultado de búsqueda correspondiente a la primera palabra clave de búsqueda a un árbitro global.
603. El despachador global determina que una segunda palabra clave de búsqueda se corresponde con la segunda tabla de búsqueda, determina que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda, y despacha la segunda palabra clave de búsqueda al primer motor de búsqueda.
604. El primer motor de búsqueda busca, según el segundo algoritmo de búsqueda, la segunda tabla de búsqueda que puede ser accedida por el primer motor de búsqueda o la subtabla que es de la segunda tabla de búsqueda y que puede ser accedida por el primer motor de búsqueda, para determinar si una entrada que coincide con la segunda palabra clave de búsqueda despachada por el despachador global existe, para obtener un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda; y saca el resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda a un árbitro global.
605. El árbitro global recibe el resultado de búsqueda correspondiente a la primera palabra clave de búsqueda y el resultado correspondiente a la segunda palabra clave de búsqueda.
De manera opcional, el método mostrado en la FIG. 6 además incluye:
Antes de que el despachador global determine que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda, almacenar, por una memoria, una correspondencia entre un identificador de la primera tabla de búsqueda y un identificador del primer motor de búsqueda.
Que el despachador global determine que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda incluye específicamente:
determinar, por el despachador global según el identificador de la primera tabla de búsqueda y la correspondencia entre el identificador de la primera tabla de búsqueda y el identificador del primer motor de búsqueda, que la primera tabla de búsqueda se corresponde con el primer motor de búsqueda, donde el identificador de la primera tabla de búsqueda y la correspondencia entre el identificador de la primera tabla de búsqueda y el identificador del primer motor de búsqueda son almacenados por la memoria.
De manera opcional, en la solución técnica precedente, el método además incluye,
antes de que el despachador global determine que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda, almacenar, por una memoria, una correspondencia entre un identificador de la segunda tabla de búsqueda y un identificador del primer motor de búsqueda.
Que el despachador global determine que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda incluye específicamente:
determinar, por el despachador global según el identificador de la segunda tabla de búsqueda y la correspondencia entre el identificador de la segunda tabla de búsqueda y el identificador del primer motor de búsqueda, que la segunda tabla de búsqueda se corresponde con el primer motor de búsqueda, donde el identificador de la segunda tabla de búsqueda y la correspondencia entre el identificador de la segunda tabla de búsqueda y el identificador del primer motor de búsqueda son almacenados por la memoria.
De manera opcional, en la solución técnica precedente, el primer motor de búsqueda incluye un despachador local, una primera unidad de búsqueda, una segunda unidad de búsqueda, y un árbitro local. La primera unidad de búsqueda puede acceder a la primera tabla de búsqueda o a una subtabla de la primera tabla de búsqueda. La segunda unidad de búsqueda puede acceder a la segunda tabla de búsqueda o a una subtabla de la segunda tabla de búsqueda.
El método además incluye: recibir, por el despachador local, la primera palabra clave de búsqueda despachada por el despachador global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad de búsqueda;
buscar, por la primera unidad de búsqueda según el primer algoritmo de búsqueda, la primera tabla de búsqueda que puede ser accedida por la primera unidad de búsqueda o la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por la primera unidad de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro local;
arbitrar, por el árbitro local, un resultado de búsqueda sacado por la primera unidad de búsqueda;
recibir, por el despachador local, la segunda palabra clave de búsqueda despachada por el despachador global, determinar que la segunda palabra clave de búsqueda se corresponde con la segunda unidad de búsqueda, y despachar la segunda palabra clave de búsqueda a la segunda unidad de búsqueda;
buscar, por la segunda unidad de búsqueda según el segunda algoritmo de búsqueda, la segunda tabla de búsqueda que puede ser accedida por la segunda unidad de búsqueda o la subtabla que es de la segunda tabla de búsqueda y que puede ser accedida por la segunda unidad de búsqueda, para determinar si una entrada que coincide con la segunda palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro local; y
arbitrar, por el árbitro local, un resultado de búsqueda sacado por la segunda unidad de búsqueda.
De manera opcional, en la solución técnica precedente, los N motores de búsqueda además incluyen un segundo motor de búsqueda. El primer motor de búsqueda puede acceder a la primera tabla de búsqueda o a una primera subtabla de la primera tabla de búsqueda. El segundo motor de búsqueda puede acceder a una segunda subtabla de la primera tabla de búsqueda.
El método además incluye:
ajustar un intervalo de entradas que puede ser accedido por el primer motor de búsqueda y un intervalo de entradas que puede ser accedido por el segundo motor de búsqueda, donde el intervalo de entradas que puede ser accedido por el primer motor de búsqueda es ajustado a partir de la primera tabla de búsqueda o la primera subtabla de la primera tabla de búsqueda a una tercera subtabla de la primera tabla de búsqueda, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, el intervalo de entradas que puede ser accedido por el segundo motor de búsqueda es ajustado a partir de la segunda subtabla de la primera tabla de búsqueda a una cuarta subtabla de la primera tabla de búsqueda, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
El aparato 300 de búsqueda mostrado en la FIG. 3 incluye el despachador 301 global, los N motores 302 de búsqueda, y el árbitro 303 global. Por ejemplo, el despachador 301 global puede configurarse para implementar el despachador global mostrado en la FIG. 6, los N motores 302 de búsqueda pueden configurarse para implementar los N motores de búsqueda mostrados en la FIG. 6, y el árbitro 303 global puede configurarse para implementar el árbitro global mostrado en la FIG. 6. Para significados e implementaciones específicos de términos implicados en el método que se muestra en la FIG. 6 y descrito anteriormente y un método expandido basado en el método mostrado en la FIG. 6, se puede hacer referencia a la realización correspondiente a la FIG. 3 o FIG. 4. Los detalles no se describen en este documento otra vez.
Una persona experta en la técnica puede ser consciente de que, en combinación con los ejemplos descritos en las realizaciones descritas en esta especificación, las unidades y pasos de algoritmos pueden implementarse mediante hardware electrónico o una combinación de software informático y hardware electrónico. Si las funciones son realizadas por hardware o software depende de aplicaciones particulares y condiciones de restricciones de diseño de las soluciones técnicas. Una persona experta en la técnica puede usar diferentes métodos para implementar las funciones descritas para cada aplicación particular.
Puede ser claramente comprendido por una persona experta en la técnica que, con el propósito de conveniencia y breve descripción, para un proceso de trabajo detallado del sistema, aparato, y unidad precedente, se puede hacer referencia al proceso correspondiente en las realizaciones del método precedente, y los detalles no se describen en este documento otra vez.
En las varias realizaciones proporcionadas en esta solicitud, se debería comprender que el sistema, aparato y método descritos pueden ser implementados de otras formas. Por ejemplo, la realización del aparato descrito es meramente ejemplar. Por ejemplo, la división de unidad puede ser una división funcional meramente lógica y puede haber otra división en la implementación real. Por ejemplo, múltiples unidades o componentes pueden combinarse o integrase en otro sistema, o algunas características pueden ser ignoradas o no realizadas. Además, los acoplamientos mutuos o acoplamientos directos o conexiones de comunicación presentados o discutidos pueden implementarse a través de algunas interfaces. Los acoplamientos indirectos o conexiones de comunicación entre los aparatos o unidades pueden implementarse en electrónica, mecánica, u otras formas.
Las unidades descritas como partes separadas pueden o pueden no estar separadas físicamente, y partes presentadas como unidades pueden o pueden no ser unidades físicas, pueden estar ubicadas en una posición, o pueden estar distribuidas en múltiples unidades de red. Algunas o todas las unidades pueden ser seleccionadas según necesidades reales para alcanzar los objetivos de las soluciones de las realizaciones.
Además, las unidades funcionales en las realizaciones de la presente invención pueden integrarse en una unidad de procesamiento, o cada una de las unidades puede existir solo físicamente, o dos o más unidades se integran en una unidad.
Donde las funciones son implementadas en la forma de una unidad funcional de software y vendidas o usadas como un producto independiente, las funciones pueden almacenarse en un medio de almacenamiento legible por un ordenador. En base a tal comprensión, las soluciones técnicas de la presente invención esencialmente, o la parte que contribuye a la técnica anterior, o algunas de las soluciones técnicas pueden ser implementadas en una forma de un producto de software. El producto de software informático es almacenado en un medio de almacenamiento, e incluye varias instrucciones para instruir un dispositivo informático (que puede ser un ordenador personal, un servidor, o un dispositivo de red) para ejecutar todos o algunos de los pasos de los métodos descritos en las realizaciones de la presente invención. El medio de almacenamiento precedente incluye: cualquier medio que pueda almacenar código de programa, tal como una memoria flash USB, un disco duro extraíble, una memoria de solo lectura (inglés: readonly memory, ROM para acortar), una memoria de acceso aleatorio (inglés: random access memory, RAM para acortar), un disco magnético, o un disco óptico.
Las descripciones precedentes son meramente formas de implementación específica de la presente invención.

Claims (10)

REIVINDICACIONES
1. Un aparato (100) de búsqueda, que comprende un despachador (101) global, un árbitro (103) global, y N motores (102) de búsqueda, en donde N es un entero mayor que 1, los N motores (102) de búsqueda pueden acceder a una primera tabla de búsqueda, cada motor de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda, para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2, y la primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda;
el despachador (101) global está configurado para: determinar que una primera palabra clave de búsqueda se corresponde con la primera tabla de búsqueda, determinar que la primera tabla de búsqueda se corresponde con los N motores (102) de búsqueda, y despachar la primera palabra clave de búsqueda a los N motores (102) de búsqueda;
cada motor de búsqueda en los N motores (102) de búsqueda está configurado para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores (102) de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador (101) global existe; y sacar un resultado de búsqueda al árbitro (103) global; y
el árbitro (103) global está configurado para arbitrar el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.
2. El aparato según la reivindicación 1, que además comprende una memoria, en donde la memoria almacena una correspondencia entre un identificador de la primera tabla de búsqueda e identificadores de los N motores (102) de búsqueda que almacena todas las subtablas de la primera tabla de búsqueda; y
el despachador (101) global está configurado para determinar, según el identificador de la primera tabla de búsqueda y la correspondencia entre el identificador de la primera tabla de búsqueda y los identificadores de los N motores (102) de búsqueda, que la primera tabla de búsqueda se corresponde con los N motores (102) de búsqueda.
3. El aparato según la reivindicación 1 o 2, en donde los N motores (102) de búsqueda comprenden al menos un motor (200) de búsqueda, el al menos un motor (200) de búsqueda comprende un despachador (201) local, una primera unidad (210) de búsqueda, una segunda unidad (220) de búsqueda, y un árbitro (203) local, la primera unidad (210) de búsqueda puede acceder a una subtabla de la primera tabla de búsqueda, la segunda unidad (220) de búsqueda puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda, y la segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda;
el despachador (201) local está configurado para: recibir la primera palabra clave de búsqueda despachada por el despachador (101) global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad (210) de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad (210) de búsqueda;
la primera unidad (210) de búsqueda está configurada para: buscar, según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por la primera unidad (210) de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro (203) local; y
el árbitro (203) local está configurado para: arbitrar un resultado de búsqueda sacado por una unidad de búsqueda en el al menos un motor (200) de búsqueda, y sacar un resultado del arbitraje al árbitro (103) global.
4. El aparato según una cualquiera de las reivindicaciones 1 a 3, en donde los N motores (102) de búsqueda comprenden un primer motor de búsqueda y un segundo motor de búsqueda, una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es una primera subtabla, y una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es una segunda subtabla; y
el aparato está además configurado para ajustar intervalos de entradas que pueden ser accedidos por los N motores de búsqueda, en donde la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es ajustada a una tercera subtabla, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el segundo motor de búsqueda es ajustado a una cuarta subtabla, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
5. El aparato según una cualquiera de las reivindicaciones 1 a 4, en donde:
el árbitro (103) global está además configurado para enviar el resultado de búsqueda correspondiente a la primera tabla de búsqueda al despachador (101) global;
el despachador (101) global está además configurado para almacenar una relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda; y el despachador (101) global está además configurado para: adquirir una segunda palabra clave de búsqueda, y determinar, según la relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda, que un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda es el resultado de búsqueda correspondiente a la primera tabla de búsqueda, en donde la segunda palabra clave de búsqueda es igual a la primera palabra clave de búsqueda.
6. Un método de búsqueda, que comprende:
determinar (501), por un despachador global, que una primera palabra clave de búsqueda se corresponde con una primera tabla de búsqueda, determinar que la primera tabla de búsqueda se corresponde con los N motores de búsqueda, y despachar la primera palabra clave de búsqueda a los N motores de búsqueda, en donde N es un entero mayor que 1, los N motores de búsqueda pueden acceder a la primera tabla de búsqueda, cada motor de búsqueda puede acceder a solo una subtabla de la primera tabla de búsqueda, para cualesquiera dos subtablas N1 y N2 de la primera tabla de búsqueda, cualquier entrada en la subtabla N1 es diferente de cualquier entrada en la subtabla N2, y la primera tabla de búsqueda se corresponde con un primer algoritmo de búsqueda;
buscar (502), por cada motor de búsqueda en los N motores de búsqueda según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por cada motor de búsqueda en los N motores de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda despachada por el despachador global existe; y sacar un resultado de búsqueda al árbitro global; y
arbitrar (503), por el árbitro global, el resultado de búsqueda sacado por cada motor de búsqueda, para obtener un resultado de búsqueda correspondiente a la primera tabla de búsqueda.
7. El método según la reivindicación 6, en donde la determinación, por el despachador global, de que la primera tabla de búsqueda se corresponde con los N motores de búsqueda comprende:
determinar, según un identificador de la primera tabla de búsqueda y una correspondencia entre el identificador de la primera tabla de búsqueda e identificadores de los N motores de búsqueda, que la primera tabla de búsqueda se corresponde con los N motores de búsqueda, en donde una memoria almacena la correspondencia entre el identificador de la primera tabla de búsqueda y los identificadores de los N motores de búsqueda que almacenan todas las subtablas de la primera tabla de búsqueda.
8. El método según la reivindicación 6 o 7, en donde los N motores de búsqueda comprenden al menos un motor de búsqueda, el al menos un motor de búsqueda comprende un despachador local, una primera unidad de búsqueda, una segunda unidad de búsqueda, y un árbitro local, la primera unidad de búsqueda que puede acceder a una subtabla de la primera tabla de búsqueda, la segunda unidad de búsqueda que puede acceder a una segunda tabla de búsqueda o una subtabla de una segunda tabla de búsqueda, y la segunda tabla de búsqueda se corresponde con un segundo algoritmo de búsqueda; y
el método además comprende:
recibir, por el despachador local, la primera palabra clave de búsqueda despachada por el despachador global, determinar que la primera palabra clave de búsqueda se corresponde con la primera unidad de búsqueda, y despachar la primera palabra clave de búsqueda a la primera unidad de búsqueda;
buscar, por la primera unidad de búsqueda según el primer algoritmo de búsqueda, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por la primera unidad de búsqueda, para determinar si una entrada que coincide con la primera palabra clave de búsqueda existe; y sacar un resultado de búsqueda al árbitro local; y
arbitrar, por el árbitro local, un resultado de búsqueda sacado por una unidad de búsqueda en el al menos un motor de búsqueda, y sacar un resultado de arbitraje al árbitro global.
9. El método según una cualquiera de las reivindicaciones 6 a 8, en donde los N motores de búsqueda comprenden un primer motor de búsqueda y un segundo motor de búsqueda, una subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el primer motor de búsqueda es una primera subtabla, y una subtabla que es de la primera tabla de búsqueda y puede ser accedida por el segundo motor de búsqueda es una segunda subtabla; y
el método además comprende:
ajustar intervalos de entradas que pueden ser accedidos por los N motores de búsqueda, en donde la subtabla que es de la primera tabla de búsqueda y puede ser accedida por el primer motor de búsqueda es ajustada a una tercera subtabla, la tercera subtabla incluye todas las entradas, excepto una primera entrada, en la primera subtabla, la subtabla que es de la primera tabla de búsqueda y que puede ser accedida por el segundo motor de búsqueda es ajustada a una cuarta subtabla, y la cuarta subtabla incluye todas las entradas en la segunda subtabla y la primera entrada.
10. El método según una cualquiera de las reivindicaciones 6 a 9, que además comprende:
enviar, por el árbitro global, el resultado de búsqueda correspondiente a la primera tabla de búsqueda al despachador global;
almacenar, por el despachador global, una relación de correspondencia entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda; y
adquirir, por el despachador global, una segunda palabra clave de búsqueda, y determinar, según la relación de correspondencia, almacenada por el despachador global, entre el resultado de búsqueda correspondiente a la primera tabla de búsqueda y la primera palabra clave de búsqueda, que un resultado de búsqueda correspondiente a la segunda palabra clave de búsqueda es el resultado de búsqueda correspondiente a la primera tabla de búsqueda, en donde la segunda palabra clave de búsqueda es igual a la primera palabra clave de búsqueda.
ES14890624T 2014-04-30 2014-04-30 Aparato y método de búsqueda Active ES2813903T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/076667 WO2015165104A1 (zh) 2014-04-30 2014-04-30 查找装置及方法

Publications (1)

Publication Number Publication Date
ES2813903T3 true ES2813903T3 (es) 2021-03-25

Family

ID=51370938

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14890624T Active ES2813903T3 (es) 2014-04-30 2014-04-30 Aparato y método de búsqueda

Country Status (5)

Country Link
US (2) US10812382B2 (es)
EP (2) EP3131240B1 (es)
CN (1) CN104012053B (es)
ES (1) ES2813903T3 (es)
WO (1) WO2015165104A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104012053B (zh) 2014-04-30 2017-01-25 华为技术有限公司 查找装置及方法
CN104301228A (zh) * 2014-09-12 2015-01-21 中国电子科技集团公司第三十二研究所 网络处理器中查找模块的实现方法及系统
CN117914784A (zh) * 2022-10-11 2024-04-19 深圳市中兴微电子技术有限公司 并行查表装置、方法、设备及计算机可读存储介质

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430527B1 (en) * 1998-05-06 2002-08-06 Avici Systems Prefix search circuitry and method
US6678269B1 (en) * 1998-10-05 2004-01-13 Alcatel Network switching device with disparate database formats
GB9827911D0 (en) * 1998-12-19 1999-02-10 3Com Technologies Ltd System for controlling look-ups in a data table in a network switch
US6810037B1 (en) 1999-03-17 2004-10-26 Broadcom Corporation Apparatus and method for sorted table binary search acceleration
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
US6798777B1 (en) 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US6957272B2 (en) * 2000-05-24 2005-10-18 Alcatel Internetworking (Pe), Inc. Stackable lookup engines
US6629099B2 (en) * 2000-12-07 2003-09-30 Integrated Silicon Solution, Inc. Paralleled content addressable memory search engine
US7269546B2 (en) * 2001-05-09 2007-09-11 International Business Machines Corporation System and method of finding documents related to other documents and of finding related words in response to a query to refine a search
US7099325B1 (en) 2001-05-10 2006-08-29 Advanced Micro Devices, Inc. Alternately accessed parallel lookup tables for locating information in a packet switched network
US7076602B2 (en) * 2001-11-05 2006-07-11 Hywire Ltd. Multi-dimensional associative search engine having an external memory
US7212531B1 (en) * 2001-11-27 2007-05-01 Marvell Semiconductor Israel Ltd. Apparatus and method for efficient longest prefix match lookup
US6954823B1 (en) * 2001-12-27 2005-10-11 Cypress Semiconductor Corporation Search engine device and method for generating output search responses from multiple input search responses
US7039018B2 (en) 2002-07-17 2006-05-02 Intel Corporation Technique to improve network routing using best-match and exact-match techniques
KR100541846B1 (ko) 2002-11-27 2006-01-11 한국전자통신연구원 3 단계 테이블로 구성된 아이피 주소 룩업 시스템 및 그방법
AU2003297523A1 (en) 2002-12-24 2004-07-22 American Type Culture Collection Systems and methods for enabling a user to find information of interest to the user
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
DE10329856A1 (de) 2003-07-02 2005-02-03 Micronas Gmbh Verfahren und Vorrichtung zur Ermittlung des Verhältnisses zwischen einer RC-Zeitkonstante in einer integrierten Schaltung und einem Sollwert
US7299227B2 (en) * 2003-09-09 2007-11-20 Stmicroelectronics, Inc. Method and system for providing cascaded trie-based network packet search engines
JP4129819B2 (ja) * 2003-10-06 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース検索システム及びその検索方法並びにプログラム
US7499912B2 (en) * 2003-10-23 2009-03-03 Hywire Ltd. Search method using coded keys
US20060036659A1 (en) * 2004-08-12 2006-02-16 Colin Capriati Method of retrieving information using combined context based searching and content merging
US7577641B2 (en) 2004-09-07 2009-08-18 Sas Institute Inc. Computer-implemented system and method for analyzing search queries
US7606231B2 (en) * 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7440405B2 (en) * 2005-03-11 2008-10-21 Reti Corporation Apparatus and method for packet forwarding with quality of service and rate control
US7685191B1 (en) * 2005-06-16 2010-03-23 Enquisite, Inc. Selection of advertisements to present on a web page or other destination based on search activities of users who selected the destination
US7389377B2 (en) * 2005-06-22 2008-06-17 Netlogic Microsystems, Inc. Access control list processor
US7895193B2 (en) * 2005-09-30 2011-02-22 Microsoft Corporation Arbitration of specialized content using search results
US20070124194A1 (en) * 2005-11-14 2007-05-31 Barnette James R Jr Systems and methods to facilitate keyword portfolio management
CN100454902C (zh) * 2006-08-02 2009-01-21 华为技术有限公司 一种多域流分类的实现方法
US7529746B2 (en) * 2006-09-19 2009-05-05 Netlogic Microsystems, Inc. Search circuit having individually selectable search engines
US7953721B1 (en) * 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US7987205B1 (en) * 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US7873633B2 (en) * 2007-07-13 2011-01-18 Microsoft Corporation Interleaving search results
JP2011511366A (ja) 2008-02-01 2011-04-07 ジ・オリバー・グループ・リミテッド・ライアビリティ・カンパニー データの検索および索引付けの方法およびそれを実施するシステム
CN101241499B (zh) * 2008-02-26 2011-09-21 中兴通讯股份有限公司 在高内存访问位宽下实现Patricia查找树的方法
CN101242362B (zh) * 2008-03-07 2010-11-10 华为技术有限公司 查找键值生成装置及方法
JP5283478B2 (ja) * 2008-10-23 2013-09-04 株式会社日立ソリューションズ 検索システム
US8321399B2 (en) * 2008-12-17 2012-11-27 Sap Ag Method and system for searching data
CN101505272B (zh) * 2009-03-02 2011-04-20 浙江理工大学 一种基于p2p的查找有关节点子集合的方法
US8179898B2 (en) * 2009-06-11 2012-05-15 Alcatel Lucent Packet processing using braided tries
US9009135B2 (en) 2010-01-29 2015-04-14 Oracle International Corporation Method and apparatus for satisfying a search request using multiple search engines
US8599853B2 (en) * 2010-04-16 2013-12-03 Wipro Limited System and method for an exact match search using pointer based pipelined multibit trie traversal technique
CN101848248B (zh) * 2010-06-04 2012-12-26 华为技术有限公司 一种规则查找方法和装置
US8495334B2 (en) * 2011-02-06 2013-07-23 International Business Machines Corporation Address translation for use in a pattern matching accelerator
WO2012126180A1 (en) * 2011-03-24 2012-09-27 Microsoft Corporation Multi-layer search-engine index
JP5320433B2 (ja) 2011-05-10 2013-10-23 株式会社日立ソリューションズ 統合検索装置、統合検索システム、統合検索方法
US9137340B2 (en) 2011-08-02 2015-09-15 Cavium, Inc. Incremental update
US8909615B2 (en) * 2011-08-30 2014-12-09 Open Text S.A. System and method of managing capacity of search index partitions
CN103473237A (zh) * 2012-06-08 2013-12-25 苏州雄立科技有限公司 键值分组方法
US8990176B2 (en) * 2012-09-10 2015-03-24 Microsoft Technology Licensing, Llc Managing a search index
US9292525B2 (en) * 2013-06-19 2016-03-22 BlackBerry Limited; 2236008 Ontario Inc. Searching data using pre-prepared search data
US9251202B1 (en) * 2013-06-25 2016-02-02 Google Inc. Corpus specific queries for corpora from search query
CN104253765B (zh) * 2013-06-28 2017-11-24 华为技术有限公司 一种数据包交换方法、装置以及接入交换机和交换系统
CN103401777B (zh) * 2013-08-21 2015-12-02 中国人民解放军国防科学技术大学 Openflow的并行查找方法和系统
US9674087B2 (en) * 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
CN104012053B (zh) * 2014-04-30 2017-01-25 华为技术有限公司 查找装置及方法

Also Published As

Publication number Publication date
WO2015165104A1 (zh) 2015-11-05
CN104012053B (zh) 2017-01-25
EP3131240B1 (en) 2020-06-10
US20170046444A1 (en) 2017-02-16
EP3761575A1 (en) 2021-01-06
EP3131240A1 (en) 2017-02-15
CN104012053A (zh) 2014-08-27
US10812382B2 (en) 2020-10-20
EP3131240A4 (en) 2017-05-17
US20200244578A1 (en) 2020-07-30
US11606295B2 (en) 2023-03-14

Similar Documents

Publication Publication Date Title
ES2883195T3 (es) Método y dispositivo de control de selección de enlace de servicio
US9124527B2 (en) Sliced routing table management
US8553683B2 (en) Three dimensional fat tree networks
US9215171B2 (en) Hashing-based routing table management
US20180026878A1 (en) Scalable deadlock-free deterministic minimal-path routing for dragonfly networks
US20160134535A1 (en) Deterministic and optimized bit index explicit replication (bier) forwarding
US9609014B2 (en) Method and apparatus for preventing insertion of malicious content at a named data network router
US8792494B2 (en) Facilitating insertion of device MAC addresses into a forwarding database
JP6872647B2 (ja) コンピュータネットワークにおいてパケットを処理するためのシステムおよび方法
ES2813903T3 (es) Aparato y método de búsqueda
US20130223226A1 (en) System and Method for Providing a Split Data Plane in a Flow-Based Switching Device
US10958575B2 (en) Dual purpose on-chip buffer memory for low latency switching
US20160156552A1 (en) Flow table entry in software defined networking
US9565277B2 (en) Dual-homed external network access in a distributed internet protocol (IP) router
US20140286336A1 (en) System and Method for Paging Flow Entries in a Flow-Based Switching Device
US9729446B1 (en) Protocol-independent packet routing
ES2719541T3 (es) Procedimiento y aparato de modificación de reglas de procesamiento
US20150295861A1 (en) Link problem handling
ES2585416T3 (es) Método, sistema y aparato para un funcionamiento en red óptica multicapa eficiente
US10484304B2 (en) Determining actions to be immediately performed on a network packet with an application specific integrated circuit
WO2021098602A1 (zh) 一种报文转发方法、装置及分布式设备
KR20160025323A (ko) 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법