MX2008009871A - Sirviendo a resultados de consulta guardados en memoria cache basandose en una porcion de consulta - Google Patents
Sirviendo a resultados de consulta guardados en memoria cache basandose en una porcion de consultaInfo
- Publication number
- MX2008009871A MX2008009871A MXMX/A/2008/009871A MX2008009871A MX2008009871A MX 2008009871 A MX2008009871 A MX 2008009871A MX 2008009871 A MX2008009871 A MX 2008009871A MX 2008009871 A MX2008009871 A MX 2008009871A
- Authority
- MX
- Mexico
- Prior art keywords
- query
- queries
- server
- common
- group
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 38
- 230000000694 effects Effects 0.000 abstract description 2
- 239000004020 conductor Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Abstract
Las modalidades contemplan un sistema y método para obtener resultados relacionados para una porción de una consulta y para generar un grupo actualizado de consultas para una memoria cachéde un servidor. Otras consultas que comienzan con la porción de la consulta pueden identificarse y obtenerse de una estructura de datos que incluye una memoria cachéde servidor y un grupo de consultas comunes. Una vez que se identifican otras consultas, los resultados para las otras consultas se obtienen de la memoria cachéde servidor o de una base de datos de extremo trasero. Un grupo de consultas comunes, que pueden incluir consultas eliminadas y adicionales, puede utilizarse para generar el grupo actualizado de consultas para el servidor. Tanto las consultas faltantes como las consultas eliminadas que pueden pertenecer al servidor basándose en una función de asignación se insertan en una fila, la cual posteriormente se entrega a la memoria cachédel servidor. La transferencia puede ocurrir durante baja actividad o estado inactivo.
Description
SIRVIENDO A RESULTADOS DE CONSULTA GUARDADOS EN
MEMORIA CACHÉ BASÁNDOSE EN UNA PORCIÓN DE CONSULTA
ANTECEDENTES
Una máquina de búsqueda web dirige una búsqueda de usuario o consulta, a un servidor de distribuidor, que a su vez dirige la consulta a un servidor de extremo frontal. El servidor de extremo frontal puede contener consultas y resultados correspondientes o puede consultar con una base de datos de extremo trasero para los resultados de consulta. La máquina de búsqueda web frecuentemente recibe consultas repetidas de usuarios que ingresan los mismos términos de búsqueda. Consultas recientes y sus resultados pueden mantenerse en las memorias caché de extremo frontal del servidor de extremo frontal durante una cantidad de tiempo predeterminada, ya que es más eficiente y consume menos tiempo para una consulta de la memoria caché de extremo frontal para los resultados deseados que para consultar la base de datos de extremo trasero, que contiene un índice web completo y típicamente es mayor que la memoria caché de extremo frontal. Un índice web completo puede incluir todos los resultados de web disponibles, tal como páginas web; por lo tanto, dando como resultado una búsqueda que consume tiempo ya que el índice es mucho mayor que los resultados almacenados en la memoria caché de extremo frontal. Sin embargo, si los resultados deseados no se encuentran en la memoria caché de extremo frontal,
la base de datos de extremo trasero puede consultarse. Además de almacenar consultas recientes y resultados, las memorias caché de extremo frontal también pueden servir como un registro de búsquedas útiles, que pueden incluir aquellos resultados que los usuarios de consultaron más frecuentemente o aquellos resultados que un administrador de sistema cree que se consultaron.
Un usuario típicamente debe ingresar un término de búsqueda completo o consulta con el fin de presentarse con resultados relevantes. Si se ingresa una porción de una consulta, tal como los primeros pocos caracteres, al usuario se presentan mensajes de error o resultados incorrectos. Adicionalmente, si un usuario está inseguro de la consulta para ingresar con el fin de recibir resultados, el usuario debe ingresar individualmente varias consultas y clasificarlas a través de los resultados para encontrar páginas web deseadas, por ejemplo. Será deseable para un usuario ingresar una porción de una consulta y recibir resultados relevantes para un grupo de consultas que comienza con la porción ingresada. Adicionalmente, mientras el usuario continúa ingresando la consulta, con lo cual extiende la porción, será deseable para los resultados ajusfar automáticamente mientras la consulta cambia. Adicionalmente, tal mecanismo de consulta de porción además será deseable si se conservan recursos y operaciones completadas más rápido para utilización adicional de la memoria caché de extremo frontal.
BREVE DESCRIPCION DE LA INVENCION
Los resultados relacionados para una porción de una consulta se obtienen al identificar otras consultas que comienzan con la porción de la consulta y obtener los resultados de las otras consultas. La porción de la consulta puede asignarse a un servidor de extremo frontal que recibe otras consultas que inician con la misma porción de la consulta. Las otras consultas pueden almacenarse en una estructura de datos que incluye una memoria caché de servidor y un grupo común de consultas. Los resultados de las otras consultas pueden almacenarse en la memoria caché de servidor o en una base de datos extremo trasero. Un grupo de consultas comunes puede formarse al recopilar consultas eliminadas de la memoria caché de servidor. El grupo de consultas comunes también puede incluir consultas adicionales de una lista predeterminada. Un grupo actualizado de consultas de la memoria caché de servidor puede calcularse al utilizar del grupo de consultas comunes. Una consulta faltante puede ser una consulta que pertenece a la memoria caché de servidor pero tal vez no se almacena en la memoria caché de servidor. La consulta faltante puede ser parte del grupo de consultas comunes. La consulta faltante puede insertarse en una fila y colocarse después en la memoria caché de servidor durante un periodo de inactividad o baja actividad. Similarmente, una consulta expirada, eliminada de la memoria caché de servidor,
también puede insertarse en la fila y colocarse después en la memoria caché de servidor. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe posteriormente en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse para limitar el alcance del tema reclamado.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La breve descripción anterior y la siguiente descripción detallada se entienden mejor cuando se leen en conjunto con los dibujos anexos. Las modalidades ilustrativas se muestran en los dibujos, sin embargo se debe entender que las modalidades no se limitan a los métodos específicos e instrumentos aquí ilustrados. En los dibujos: la Figura 1 es un diagrama de bloques que representa un dispositivo de cómputo ilustrativo; la Figura 2 es un diagrama de bloques que representa una organización de servidor; la Figura 3 es un diagrama de bloques que representa un sistema de consulta; la Figura 4 es un diagrama de bloques que representa un sistema de construcción de consulta;
las Figuras 5a y 5b son un diagrama de flujo que ilustra una modalidad de un método para proporcionar resultados de consulta; la Figura 6 es un diagrama de flujo que ilustra una modalidad de un método para construir un grupo de consultas comunes; y la Figura 7 es un diagrama de flujo que ilustra una modalidad de un método para actualizar un grupo de consultas memoria caché.
DESCRIPCIÓN DETALLADA
Con referencia a la Figura 1, un sistema ilustrativo para implementar la invención incluye un dispositivo de cómputo de propósito general en la forma de una computadora 110. Los componentes de la computadora 110 pueden incluir, pero no se limitan a una unidad de procesamiento 120, una memoria de sistema 130, y un conductor común de sistema 121 que acopla varios componentes de sistema que incluyen la memoria de sistema a la unidad de procesamiento 120. El conductor común de sistema 121 puede ser cualquiera de varios tipos de estructuras de conductor común que incluyen un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común. A manera de ejemplo, y no de limitación, tales arquitecturas incluyen conductor común de Arquitectura de Estándar de Industria (ISA), conductor común de Arquitectura de Microcanal (MCA), conductor común de ISA Mejorado (EISA), conductor común local de
Asociación de Estándares de Electrónica de Video (VESA), y conductor común de Interconexión de Componente Periférico (PCI) (también conocido como conductor común de Mezzanine). La computadora 110 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora puede ser cualquier medio que pueda accederse por la computadora 110 e incluye tanto medios volátiles como no volátiles, medios removibles y no removibles. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora incluyen tanto medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento por computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, casetes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por la computadora 110. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una
señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluyen cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios por cable tal como una red por cable o conexión por cables directa, y medios inalámbricos tal como medios acústicos, de RF, infrarrojos y otros inalámbricos. Combinaciones de cualquiera de los anteriores también deben incluirse dentro del alcance de medios legibles por computadora. La memoria de sistema 130 incluye medios de almacenamiento por computadora en la forma de memoria volátil y/o no volátil tal como ROM 131 y RAM 132. Un sistema de entrada/salida básico 133 (BIOS), que contiene las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 110, tal como durante el arranque, típicamente se almacena en ROM 131. La RAM 132 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o actualmente están siendo operados por la unidad de procesamiento 120. A manera de ejemplo, y no de limitación, la Figura 1 ilustra el sistema operativo 134, programas de aplicación 135, otros módulos de programa 136, y datos de programa 137. La computadora 110 también puede incluir otros medios de almacenamiento por computadora removibles/no removibles,
volátiles/no volátiles. A manera de ejemplo solamente, la Figura 1 ilustra una unidad de disco duro 141 que lee de o escribe a medios magnéticos no removibles, no volátiles, una unidad de disco magnético 151 que lee de o escribe a un disco magnético removible, no volátil 152, y una unidad de disco óptico 155 que lee de o escribe a un disco óptico removible, no volátil 156 tal como un CD-ROM u otro medio óptico. Otros medios de almacenamiento por computadora removibles/no removibles, volátiles/no volátiles que pueden utilizarse en el ambiente operativo ilustrativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjeta de memoria flash, discos versátiles digitales, cinta de video digital, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 141 típicamente se conecta al conductor común de sistema 121 a través de una ¡nterfase de memoria no removible tal como interfase 140, y unidad de disco magnético 151 y unidad de disco óptico 155 típicamente se conectan al conductor común de sistema 121 a través de la interfase de memoria removible, tal como interfase 150. Las unidades y sus medios de almacenamiento por computadora asociados discutidos anteriormente e ilustrados en la Figura 1, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 110. En la Figura 1, por ejemplo, la unidad de disco duro 141 se ¡lustra como almacenando el sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147. Se debe notar que estos
componentes pueden ser los mismos que o diferentes al sistema operativo 134, programas de aplicación 135, otros módulos de programa 136, y datos de programa 137. El sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147 aquí se les proporcionan números diferentes para ¡lustrar que, en un mínimo, son copias diferentes. Un usuario puede ingresar comandos e información en la computadora 110 a través de dispositivos de entrada tal como un teclado 162 y dispositivos de señalamiento 161, comúnmente denominado como un ratón, seguibola o almohadilla sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, palanca de mandos, almohadilla de juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada frecuentemente se conectan a la unidad de procesamiento 120 a través de una interfase de entrada de usuario 160 que se acopla al conductor común de sistema, pero puede conectarse por otra interfase y estructuras de conductor común, tal como un puerto paralelo, puerto del juego o un conductor común en serie universal (USB). Un monitor 191 u otro tipo de dispositivo de presentación también se conecta al conductor común de sistema 121 a través de una interfase, tal como una interfase de video 190. Además del monitor, las computadoras también pueden incluir otros dispositivos de salida periféricos tal como bocinas 197 e impresoras 196, que pueden conectarse a través de una interfase periférica de salida 195. La computadora 110 puede operar en un ambiente en red utiliza
conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 180. La computadora remota 180 puede ser una computadora personal, un servidor, un enrutador, una PC de red, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente relativos a la computadora 110, aunque solo se ilustra un dispositivo de almacenamiento de memoria 181 en la Figura 1. Las conexiones lógicas ilustradas en la Figura 1 incluyen una red de área local (LAN) 171 y una red de área ancha (WAN) 173, pero también pueden incluir otras redes. Tales ambientes en red comúnmente están ubicados en oficinas, redes de computadora extendidas en empresa, intranets e Internet. Cuando se utiliza en un ambiente en red de LAN, la computadora 110 se conecta a la LAN 171 a través de la interfase de red o adaptador 170. Cuando se utiliza en un ambiente en red WAN, la computadora 110 típicamente incluye un módem 172 u otros medios para establecer comunicaciones en la WAN 173, tal como Internet. El módem 172, que puede ser interno o externo, puede conectarse al conductor común de sistema 121 a través de la interfase de entrada de usuario 160, u otro mecanismo apropiado. En un ambiente en red, los módulos de programa ilustrados relativos a la computadora 110, o porciones de la misma, pueden almacenarse en el dispositivo de almacenamiento de memoria remota. A manera de ejemplo, y no de limitación, la Figura 1 ¡lustra programas de aplicación remotos 185 como residentes en el dispositivo de memoria
181. Se apreciara que las conexiones en red mostradas son ilustrativas y pueden utilizarse otros medios para establecer un enlace de comunicaciones entre las computadoras. Todos o porciones de los métodos de la presente invención descritos anteriormente pueden representarse en hardware, software, o una combinación de ambos. Cuando se representan en software, los métodos de la presente invención, o ciertos aspectos o porciones del mismo, pueden representarse en la forma de código de programa que cuando se ejecuta con un sistema de cómputo causa que el sistema de cómputo realice los métodos de la presente invención. Este código de programa puede almacenarse en cualquier medio legible por computadora, como ese término que se definió anteriormente. La Figura 2 representa una organización de servidor 200 que puede utilizarse para proporcionar resultados para consultas, tal como consulta o porciones de consultas ingresadas en una máquina de búsqueda de Internet a través, por ejemplo de la computadora 110. Una consulta se origina en Internet 210, en donde un usuario puede insertar una consulta para la cual desea obtener resultados relevantes, tal como páginas web dirigidas a la consulta. La consulta puede ingresarse en una máquina de búsqueda, que puede permitir al usuario insertar la consulta de interés y que puede presentar los resultados relevantes para que el usuario acceda. Internet 210 puede conectarse a un servidor de distribuidor 220, que recibe la consulta de Internet 210. Múltiples servidores de distribuidor 220 pueden
conectarse a Internet 210. La Figura 2 ilustra tres servidores de distribuidor 220 (220a, 220b, y 220c), aunque el número de los servidores distribuidos 220 no se limita así. La consulta puede asignarse a un particular de los servidores de distribuidor 220, por ejemplo, por una dirección de protocolo de Internet (IP) de origen de la consulta. Otros esquemas pueden utilizarse para asignar la consulta a uno de los servidores de distribuidor 220. Alternativamente, la consulta puede enviar aleatoriamente a cualquier servidor de distribuidor 220. El servidor de distribuidor 220 que recibe la consulta puede transmitir la consulta a un servidor de extremo frontal 230, tal como uno de los servidores de extremo frontal 230a, 230b, 230c, y 230n mostrado en la organización de servidor 200 de la Figura 2. La organización de servidor 200 no se limita a cierto número de servidores de extremo frontal 230. El servidor de extremo frontal 230 que recibe la consulta de servidor de distribuidor 220 puede hacerlo basándose en un delineado que enlaza la consulta al servidor de extremo frontal 230. Por ejemplo, la consulta puede verificarse para producir un valor, que a su vez se utiliza en una función de delineado que coloca ciertas consultas en servidores de extremo frontal específicos 230 y puede asegurar que la misma consulta siempre, o casi siempre, se dirige al mismo servidor de extremo frontal 230. La función de delineado puede determinar cuando los servidores de extremo frontal 230 puede recibir la consulta. El servidor extremo frontal 230 no necesita asignarse basándose en una
función de delineado y a su vez puede, por ejemplo y no por limitación, recibir aleatoriamente la consulta. Una memoria caché, o almacenamiento local, puede contener consultas y sus resultados correspondientes. La memoria caché puede ser parte del servidor de extremo frontal 230, y las consultas y resultados de memoria caché pueden ser un grupo de consultas y resultados recientes, tal como aquellos de un periodo de tiempo predeterminado, por ejemplo tres horas. Cuando el servidor de extremo frontal 230 recibe la consulta del servidor de distribuidor 220, el servidor de extremo frontal 230 puede buscar su memoria caché para determinar si la consulta, y sus resultados correspondientes, ya se almacenaron en la memoria caché. Si la consulta está en la memoria caché, entonces el servidor de extremo frontal 230 puede regresar los resultados de la memoria caché. Los resultados pueden proporcionarse al usuario que ingresó a la consulta Los servidores de extremo frontal 230 pueden estar en comunicación con una base de datos extremo trasero 240, que pueden contener resultados existentes, por ejemplo páginas web los resultados de consulta pueden almacenarse en la base de datos de extremo trasero 240. Si la consulta ingresada no está en la memoria caché del servidor de extremo frontal 230, entonces la base de datos de extremo trasero 240 puede consultarse con el fin de regresar resultados de consulta relevantes al usuario. Ya que la base de datos de extremo trasero 240 típicamente es mucho más grande que
la memoria caché de los servidores de extremo frontal 230, la consulta con la base de datos de extremo trasero puede tomar una cantidad de tiempo significativamente mayor de lo que lo hace la consulta con la memoria caché de los servidores de extremo frontal 230. Por lo tanto, la consulta con la base de datos extremo trasero 240 solo puede ocurrir, por ejemplo, cuando el servidor de extremo frontal 230 no contiene los resultados solicitados o cuando el servidor de extremo frontal 230 encuentra un problema, tal como una falla de servidor. La Figura 3 es un diagrama de bloques que representa un sistema de consulta 300, que puede utilizarse para obtener resultados a una porción de una consulta. El sistema de consulta 300 puede incluir el servidor de distribuidor 220 para recibir una porción de una consulta. La porción de la consulta puede ser, por ejemplo, los primeros tres caracteres de una consulta. Un usuario, que desea resultados para la consulta, puede escribir o ingresar la porción de la consulta en una máquina de búsqueda de Internet. La porción de la consulta puede dirigirse al servidor de distribuidor 220 basándose en una dirección de IP en la computadora 110 desde donde se origina la porción de la consulta. La porción de la consulta puede dirigirse aleatoriamente al servidor de distribuidor 220. El servidor de distribuidor 220 puede ser responsable de asignar la porción de la consulta al servidor de extremo frontal 230. Una función de verificación puede utilizarse por el servidor de distribuidor 220 para esta tarea de asignación. El servidor de
distribuidor 220, por ejemplo, puede asignar la porción de la consulta al servidor de extremo frontal 230 para que otras consultas que tienen la misma porción se asignen al mismo servidor de extremo frontal 230. Después que se asignar la porción de la consulta al servidor de extremo frontal 230, el servidor de distribuidor 220 puede transmitir la porción de la consulta al servidor de extremo frontal asignado 230. Una vez que el servidor de extremo frontal 230 recibe la porción de la consulta, el servidor de extremo frontal 230 puede ser responsable de realizar una búsqueda con el fin de obtener otras consultas que tienen la misma porción que la porción de la consulta. Con el fin de obtener estas consultas, el servidor de extremo frontal 230 puede consultar una estructura de datos 310. La estructura de datos 310, aunque se muestra como un componente separado en la Figura 3, puede ser parte del servidor de extremo frontal 230. La estructura de datos 310 puede incluir una memoria caché de servidor, tal como consultas de memoria caché 320. Las consultas de memoria caché 320 pueden incluir consultas previas que se mantuvieron en la estructura de datos 310 por un periodo de tiempo predeterminado. De esa forma, las consultas de memoria caché 320, por ejemplo, pueden incluir las consultas más recientes. Las consultas de memoria caché 320 pueden mantenerse en la estructura de datos 310 para fácil y rápido acceso a consultas recientes. La estructura de datos 310 también puede incluir un poco de consultas comunes 330. La formación del grupo de consultas comunes se
describe en más detalle posteriormente. La estructura de datos puede ser una estructura de "trie" aumentada, que es una estructura que facilita la rápida recuperación de información relacionada con una consulta o una porción de una consulta. Por ejemplo, las porciones posibles de una consulta a lo largo de la cual puede almacenarse información adicional relacionada con cada porción de la consulta en la estructura de "trie". La información relacionada con cada porción de la consulta por ejemplo puede ser una lista de un número predeterminado de las consultas solicitadas muy frecuentemente que comienza con la porción de la consulta. La lista puede clasificarse en orden descendente de frecuencia, para que la consulta solicitada muy común que comienza con la porción de la consulta se enliste primero. Cuando se obtiene una lista de otras consultas, que puede incluir la porción de la consulta, de la estructuras de datos 310, se consulta una estructura de resultados 340, que puede ser una estructura de memoria caché. La estructura de resultados puede ser una parte del servidor de extremo frontal 230. La estructura de resultados 340 contiene resultados para consultas. Con la consulta con la estructura de resultados 340, los resultados para consulta que comienzan con la porción de la consulta se obtienen y proporcionan al usuario. Esto resultados, por ejemplo, puede ser una selección múltiple de páginas web. La base de datos de extremo trasero 240 también puede incluirse como parte del sistema de consulta 300. La base de datos
de extremo trasero 240 puede consultarse si los resultados para una de las consultas que incluye una porción de la consulta no se localiza en la estructura de resultados 340. Los resultados obtenidos de la base de datos de extremo trasero 240 también pueden proporcionarse al usuario, como se muestra en la Figura 3. Una representación de diagrama de bloques de un sistema de construcción de consulta común 400 se ilustra en la Figura 4. El sistema 400 puede asignarse con la tarea de crear las consultas comunes 330, que pueden utilizarse para obtener consultas que tienen la misma porción que la porción de la consulta. El sistema de construcción de consulta como 400 puede incluir el servidor de extremo frontal 230, que recibe la porción de la consulta del servidor de distribuidor 220. Una memoria caché de servidor 410 puede ser parte del servidor extremo frontal 230. La memoria caché de servidor 410 puede ser una estructura de memoria caché de servidor de extremo frontal 230 que almacena consultas previas, tal como consultas que se mantuvieron por un período de tiempo predeterminado. La memoria caché de servidor 410 del servidor de extremo frontal 230 puede ser el mismo componente que las consultas de memoria caché 320 de la estructura de datos 310, que puede ser parte del servidor de extremo frontal 230. Las consultas frecuentemente pueden eliminarse de la memoria caché de servidor 410 del servidor de extremo frontal 230. Las eliminaciones pueden ocurrir debido al tamaño limitado de la memoria caché de servidor 410; una consulta puede necesitar
eliminarse con el fin de crear espacio de almacenamiento para una consulta más nueva (o porción de la consulta). O, las eliminaciones pueden ocurrir periódicamente. Cuando las consultas se eliminan de la memoria caché de servidor 410, una entrada de registro 420 puede recibir y rastrear las consultas eliminadas. Después que transcurrió el periodo de tiempo predeterminado, la entrada de registro 420 puede proporcionar las consultas eliminadas a un recopilador de entrada de registro 430, que recopila las entradas eliminadas. El recopilador de entrada de registro 430 puede recopilar las entradas eliminadas basándose en criterios previamente determinados, tal como, por ejemplo, aquellas entradas que aparecen más de una vez en un periodo de una semana. El recopilador de entrada de registro 430, una vez que se completó la recopilación de consultas eliminadas, puede proporcionar la recopilación a las consultas comunes 330 de la estructura de datos 310. La estructura de datos 310 entonces almacena las consultas comunes para uso al proporcionar consultas que tienen la misma porción que la porción de la consulta buscada a la estructura de resultados 340. Las consultas comunes 330 pueden servir como un suplemento a las consultas de memoria caché 320. Las consultas de memoria caché 320 pueden ser consultas más recientes, mientras las consultas comunes 330, no necesariamente pueden ser consultas recientes, pueden ser consultas frecuentemente solicitadas de un periodo de tiempo predeterminado, relativamente largo, tal como una semana.
Las Figuras 5a y 5b ilustran un método para proporcionar resultados de consulta. En 505, se obtiene una porción de una consulta. La porción de la consulta puede iniciarse por un usuario, quien, al desear resultados relacionados con la consulta, ingresa la porción de la consulta en una máquina de búsqueda de Internet por ejemplo. La porción de la columna puede obtenerse en el servidor de distribuidor 220. En 510, la porción de la consulta se examina con el fin de determinar si la porción de la consulta coincide con una entrada predeterminada. Si la porción de la consulta coincide con una entrada predeterminada, entonces, en 515 los caracteres sucesores se asignan como la porción de la consulta. Debido a que puede existir un número de entradas que ocurren frecuentemente que el usuario no pretende ser parte de la consulta, esta comparación puede eliminar proporcionar resultados de consulta para consultas no deseadas. Por ejemplo si un usuario ingresa tales consultas que comienzan con "http" y "www", el usuario típicamente no desea buscar estas consultas y a su vez puede interesarse en los caracteres que siguen estas entradas que ocurre frecuentemente. De esa forma, al asignar caracteres sucesores, tal como tres caracteres que siguen "www", como la porción de la consulta, la porción apropiada de la consulta puede buscarse. La porción de la consulta puede compararse con otras entradas predeterminadas. Después que se asignan caracteres sucesores como la porción de la consulta, y si la porción de la consulta no coincide con una entrada predeterminada, entonces el método de proporcionar
resultados de consulta puede proceder a 520 de 515 y 510, respectivamente. En 520, una representación de la porción de la consulta puede calcularse. Esta representación puede ser una función de verificación de la porción de la consulta, por ejemplo. También son posibles otras representaciones. En 525, siguiendo 520, la porción de la columna puede asignarse a un servidor de extremo frontal 230. Como una representación de la porción de la consulta se calculó en 520, entonces la representación puede utilizarse con el fin de asignar la porción de la consulta al servidor de extremo frontal 230. Otro criterio de asignación puede utilizarse para asignar la porción de la consulta el servidor extremo frontal. O, la asignación puede ser una selección aleatoria. En 530, la porción de la consulta puede enviarse al servidor de extremo frontal asignado 230. El paso 535 determina si una estructura de datos, tal como la estructura de datos 310 descrita anteriormente con relación a la Figura 3 y la Figura 4, contiene consultas que inician con la porción de la consulta. Si la estructura de datos 310, que puede incluir consultas de memoria caché 320 que pueden incluir consultas previas que se mantuvieron en la estructura de datos 310 por un periodo de tiempo predeterminado y consultas comunes 330, no contienen consultas que comienzan con la porción de la consulta, entonces el usuario, en 540, se proporciona con una lista de resultado vacía. Sin embargo, si la estructura de datos 310 contiene consultas que inician con la porción de la consulta, entonces el
método procede a 545 (Figura 5b). En 545, las consultas que inician con la porción de la consulta pueden obtenerse de la estructura de datos 310. En 550, se hace una determinación para valorar si, para cada consulta obtenida que inicia con la función de la consulta, se almacenan resultados en una memoria caché de servidor, tal como la estructura de resultados 340, que puede ser parte del servidor extremo frontal 230. En 560, si los resultados para una consulta obtenida que inician con la porción de la consulta no están en la estructura de resultados 340, entonces los resultados se obtienen de la base de datos de extremo trasero 240. En 555, si a su vez los resultados para una consulta obtenida que inicia con la porción de la consulta están en la estructura de resultados 340, entonces los resultados se obtienen de la estructura de resultados 340. La determinación en 550 se realiza para cada consulta obtenida que incluye la porción de la consulta. Esto puede asegurar que los resultados se proporcionan para cada consulta que incluye la porción de la consulta, si los resultados son de la base de datos de extremo trasero 240 ó la estructura de resultados 340. La consulta que proporciona el método termina en 565 en donde se proporcionan los resultados. La Figura 6 es un diagrama de flujo que ilustra un método para construir un grupo de consultas comunes. En 610, las consultas se generan basándose en una lista predeterminada. La lista predeterminada puede incluir consultas que un administrador de
sistema cree que deben ser parte del grupo de consultas comunes 330. Por ejemplo, una consulta predeterminada puede ser una película nueva de no se utilizó en búsquedas de consulta por usuarios pero que se espera que se vuelva popular y se busque ampliamente en el futuro cercano. Al agregar tales consultas a las consultas comunes 330, que es parte de la estructura de datos 310, una búsqueda por la consulta, o porción de la consulta, pueden no requerir consultas con la base de datos extremo trasero 240. En 615, las consultas eliminadas de una memoria caché de un servidor, tal como una memoria caché de servidor 410 del servidor de extremo frontal 230 ó las consultas de memoria caché 320, se recopilan. Las consultas eliminadas pueden recopilarse en un periodo de tiempo predeterminado. Las consultas eliminadas pueden rastrearse por la entrada de registro 420 y recopilarse por el recopilador de entrada de registro 430, como se discutió anteriormente con relación al sistema de construcción de consulta común 400 de la Figura 4. En 620, se forma el grupo de consultas comunes 330. Las consultas comunes pueden incluir una combinación o recopilación de las consultas predeterminadas, generadas en 610, y las consultas eliminadas, generadas en 615. Después que se forman las consultas comunes 330, en 625, las consultas comunes 330 se distribuyen a los servidores de extremo frontal 230. Si las consultas eliminadas son aquellas eliminadas de un servidor extremo frontal particular, tal como el servidor extremo frontal 230b de la Figura 2, entonces las
consultas comunes pueden distribuirse a los otros servidores de extremo frontal 230a, 230c, y 230n del sistema 200. La Figura 7 es un diagrama de flujo que ilustra un método para actualizar las consultas de memoria caché 320 y una estructura de datos 310 de un servidor de extremo frontal, que puede ser parte de un servidor de extremo frontal 230. Las consultas de memoria caché 320 pueden incluir consultas recientes. En 710, un grupo actualizado de consulta se calcula. El grupo actualizado de consultas puede incluir consultas de las consultas comunes 330 que se asignarán al servidor de extremo frontal 230 basándose, por ejemplo, en una operación de verificación y delineado que opera para dirigir las mismas consultas y las mismas porciones de las consultas a un servidor de extremo frontal 230. El grupo actualizado de consultas puede calcularse por el servidor extremo frontal 230. En 720, el grupo actualizado de consultas puede almacenarse en la estructura de datos 310 con las consultas de memoria caché 320. Esto sirve para actualizar las consultas de memoria caché 320. En 730, una consulta en el grupo actualizado de consultas pero no en las consultas memoria caché 320 (una consulta faltante) se determina. Si ninguna consulta coincide con este criterio, el método procede para buscar una consulta que coincide con el criterio. El método continúa para que la consulta faltante se agregue a las consultas de memoria caché 320. En 740, la consulta faltante se agrega a una fila. El método puede proceder a 750, en donde se analiza el
sistema para determinar si el sistema está ligeramente cargado. Cada vez que un servidor de extremo frontal 230 envía una solicitud al sistema de extremo trasero 240, la respuesta del sistema de extremo trasero 240 puede incluir realimentación que puede utilizarse para determinar el estado actual del extremo trasero 240, que puede incluir carga de extremo trasero actual. Por ejemplo, la realimentación puede incluir un número promedio de solicitudes que yacen en una fila que espera procesarse por el extremo trasero 240 ó una calidad de respuesta que el extremo trasero 240 es capaz de obtener durante un límite de tiempo de procesamiento de consulta. El servidor de extremo frontal 230 entonces puede utilizar un algoritmo para determinar si el extremo trasero actual 240 debe reclamarse como pesada o ligeramente cargado basándose en la realimentación. Si el sistema está ligeramente cargado, entonces el método puede proceder a 760. En 760, de cualquiera de 740 ó 750, la consulta faltante se remueve de la fila. En 770, la consulta faltante puede entregarse a la base de datos extremo trasero 240. En 780, la base de datos de extremo trasero 240 actualiza las consultas memoria caché 320 con la consulta faltante. La consulta faltante ya no es "faltante" de las consultas de memoria caché 320. Como se puede apreciar, las modalidades descritas pueden implementarse como un todo o en parte en uno o más sistemas o dispositivos de cómputo. La Figura 1 ilustra los componentes funcionales de un ejemplo de un sistema de cómputo 100 en el cual
pueden representarse o practicarse aspectos. Como se utiliza aquí, los términos "sistema de cómputo", "sistema de computadora" y "computadora" se refieren a cualquier máquina, sistema o dispositivo que comprende un procesador capaz de ejecutar o de otra forma procesar código de programa y/o datos. Ejemplos de sistemas de cómputo incluyen, sin ninguna limitación pretendida, computadoras personales (PCs), minicomputadoras, macrocomputadoras, clientes delgados, PCs de red, servidores, estaciones de trabajo, computadoras portátiles, computadoras móviles, electrónica de consumidor programable, consolas multimedia, consolas de juego, receptores de satélite, cajas de tv por cable, máquinas de contador automatizadas, juegos de arcade, teléfonos móviles, asistentes digitales personales (PDAs) y cualquier otro sistema o máquina basado en procesador. Los términos "código de programa" y "código" se refieren a cualquier grupo de instrucciones que se ejecutan o de otra forma procesan por un procesador. El código de programa y/o datos pueden ¡mplementarse en la forma de rutinas, programas, objetos, módulos, estructuras de datos y similares que realizan funciones particulares. Se nota que los ejemplos anteriores se proporcionaron simplemente para el propósito de explicación y de ninguna forma se deben interpretar como limitantes. Mientras las invenciones se describieron con referencia a las varias modalidades, se entiende que las palabras que se utilizaron aquí son palabras de descripción e ilustración, más que palabras de limitación. Además, aunque las
modalidades aquí descritas con referencia a medios particulares, materiales, y ejemplos, las modalidades no pretenden limitarse a los particulares aquí descritos; más que eso, las modalidades se extienden a todas las estructuras funcionalmente equivalentes, métodos y usos, tal como están dentro del alcance de las reivindicaciones anexas.
Claims (20)
1. - Un método para proporcionar resultados de consulta, el método comprende: obtener una porción de una consulta; asignar la porción de la consulta a un servidor (230); obtener otras consultas que inician con la porción de la consulta; y obtener resultados de alguna o todas de las otras consultas basándose en la porción de la consulta.
2. - El método de acuerdo con la reivindicación 1, que además comprende: calcular una representación de la porción de la consulta; en donde asignar la porción de la consulta a un servidor (230) comprende asignar la porción de la consulta a un servidor (230) basándose en la representación.
3. - El método de acuerdo con la reivindicación 1, que además comprende: determinar si la porción de la consulta coincide con una entrada predeterminada; y asignar caracteres sucesores como la porción de la consulta.
4. - El método de acuerdo con la reivindicación 1, que además comprende: almacenar consultas en memoria caché (320) y un grupo de consultas comunes (330) en una estructura de datos (310); en donde obtener otras consultas que inician con la porción de la consulta comprende obtener otras consultas que inician con la porción de la consulta de la estructura de datos (310).
5. - El método de acuerdo con la reivindicación 4, que además comprende: modificar la estructura de datos (310) para reflejar cambios hechos a las consultas de memoria caché (320) y cambios hechos al grupo de consultas comunes (330).
6. - El método de acuerdo con la reivindicación 4, que además comprende: almacenar consultas en memoria caché (320) y el grupo de consultas comunes (630) de acuerdo con una frecuencia de uso; y presentar los resultados de cada una de las otras consultas que comienzan con la porción de la consulta en un orden descendente de la secuencia de uso.
7. - El método de acuerdo con la reivindicación 1, en donde obtener resultados de cada una de las otras consultas que comienzan con la porción de la consulta comprende obtener resultados de cada una de las otras consultas de una memoria caché (410) del servidor (230).
8. - El método de acuerdo con la reivindicación 1, en donde obtener resultados de cada una de las otras consultas que comienzan con la porción de la consulta comprende obtener resultados de cada una de las otras consultas de un servidor de extremo trasero (240). 9.- El método de acuerdo con la reivindicación 1, que además comprende: proporcionar un resultado vacío si las otras consultas que comienzan con la porción de la consulta no pueden obtenerse. 10.- Un sistema de consulta (300), que comprende: un servidor de distribuidor (220) que recibe una porción de una consulta; una estructuras de datos (310) que almacena consultas de memoria caché (320) y un grupo de consultas comunes (330); una estructura de resultados (340) que proporciona resultados para las consultas de memoria caché (320) y el grupo de consultas comunes (330); y un servidor de extremo frontal (230) que consulta la estructura de datos (310) y la estructura de resultados (340) para proporcionar resultados relacionados basados en la porción de la consulta. 11. - El sistema de acuerdo con la reivindicación 10, que además comprende una base de datos de extremo trasero (240). 12. - El sistema de acuerdo con la reivindicación 10, en donde el servidor de distribuidor (220) asigna la porción de la consulta al servidor de extremo frontal (230). 13. - El sistema de acuerdo con la reivindicación 10, en donde la porción de la consulta es un prefijo de la consulta. 14. - Un método para construir un grupo de consultas comunes (330), el método comprende: recopilar entradas eliminadas de una memoria caché (410) de un servidor de extremo frontal (230); formar un grupo de consultas comunes (330) compuesto de las entradas eliminadas, en donde las entradas eliminadas son de una escala de tiempo predeterminada; y distribuir el grupo de consultas comunes (330) a otro servidor de extremo frontal (230). 15. - El método de acuerdo con la reivindicación 14, en donde distribuir el grupo de consultas comunes (330) a otro servidor de extremo frontal (230) comprende distribuir el grupo de consultas comunes (330) a múltiples servidores de extremo frontal (230). 16. - El método de acuerdo con la reivindicación 14, que además comprende: generar consultas adicionales basándose en una lista predeterminada; y agregar las consultas adicionales al grupo de consultas comunes (330). 17. - El método de acuerdo con la reivindicación 14, que además comprende: calcular un grupo actualizado de consultas para un servidor de extremo frontal (230), en donde el grupo actualizado de consultas está compuesto de consultas asignadas en el grupo de consultas comunes (330) que se asignan al servidor de extremo frontal (230); y construir una estructura de datos (310) para el servidor de extremo frontal (230), en donde los contenidos de la estructura de datos están compuestos de grupo actualizado de consultas y consulta de memoria caché (320). 18. - El método de acuerdo con la reivindicación 17, que además comprende: calcular consultas faltantes, en donde las consultas faltantes pertenecen a una memoria caché (410) del servidor de extremo frontal (230); y insertar las consultas faltantes en una fila. 1
9. - El método de acuerdo con la reivindicación 18, que además comprende: remover las consultas faltantes de la fila; enviar las consultas faltantes de la fila a una base de datos extremo trasero (240); y insertar las consultas faltantes a la memoria caché (410) del servidor de extremo frontal (230). 20. - El método de acuerdo con la reivindicación 17, que además comprende: determinar si una consulta expirada que va a expirar de la memoria caché (410) del servidor (230) pertenece al grupo de consultas actualizado; insertar la consulta expirada en una fila; remover la consulta expirada de la fila; enviar la consulta expirada de la fila a una base de datos de extremo trasero (240); y insertar la consulta expirada en la memoria caché (410) del servidor de extremo frontal (230).
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11363895 | 2006-02-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| MX2008009871A true MX2008009871A (es) | 2008-10-03 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101390080B (zh) | 基于查询部分来供应高速缓存的查询结果 | |
| US8762353B2 (en) | Elimination of duplicate objects in storage clusters | |
| US7793112B2 (en) | Access to content addressable data over a network | |
| EP1049989B1 (en) | Access to content addressable data over a network | |
| US7447839B2 (en) | System for a distributed column chunk data store | |
| US20130339567A1 (en) | Two level addressing in storage clusters | |
| CN1954318A (zh) | 用于保持可由客户机通过网络访问的文件集名称空间的方法、系统和程序 | |
| US20040254975A1 (en) | Method for managing applications and data in a limited capabilities environment via remote virtual hosting and management | |
| US20230409527A1 (en) | Method And System For Deleting Obsolete Files From A File System | |
| CN113805864A (zh) | 一种项目工程的生成方法、装置、电子设备及存储介质 | |
| US20030236842A1 (en) | E-mail address system and method for use between disparate client/server environments | |
| CN104166820A (zh) | 一种数据管理方法和系统 | |
| MX2008009871A (es) | Sirviendo a resultados de consulta guardados en memoria cache basandose en una porcion de consulta | |
| US20030115202A1 (en) | System and method for processing a request using multiple database units | |
| US20100100674A1 (en) | Managing a region cache | |
| CN113905252B (zh) | 直播间的数据存储方法、装置、电子设备及存储介质 | |
| CN114666277A (zh) | 一种基于域名的数据处理方法及装置 | |
| US7739356B2 (en) | Global and local entity naming | |
| CN118503565A (zh) | 页面处理方法、装置、存储介质以及电子设备 | |
| CN1421801A (zh) | 分散式功能环境管理系统及方法 |