Optimización de memoria caché.

Un método implementado por ordenador, que comprende:

recibir una solicitud referente a un objeto en un componente de memoria caché

(130, 132, 134), transmitir un fragmento de inicialización del objeto desde memoria (140, 142, 144),

recuperar un fragmento mayoritario del objeto desde un medio de almacenamiento (152, 160) que tiene mayor latencia que la memoria,

transmitir el fragmento mayoritario sin conservar el fragmento mayoritario en memoria para un procesamiento posterior, y

determinar un tamaño de archivo para el fragmento de inicialización; y

si se determina que el tamaño del fragmento de inicialización debería actualizarse:

sustituir el fragmento de inicialización en la memoria por un nuevo fragmento de inicialización del tamaño determinado, o

almacenar un fragmento incremental en la memoria para complementar el fragmento de inicialización, donde el tamaño del fragmento incremental y del fragmento de inicialización corresponden conjuntamente al tamaño de archivo determinado.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2009/038897.

Solicitante: Amazon Technologies, Inc.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: P.O. Box 8102 Reno, NV 89507 ESTADOS UNIDOS DE AMERICA.

Inventor/es: RICHARDSON,DAVID R, SCOFIELD,CHRISTOPHER L.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Equipo o métodos de tratamiento de datos o de cálculo... > G06F17/30 (Recuperación de la información; Estructura de bases de datos a este efecto)
  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > G06F17/00 (Equipo o métodos de tratamiento de datos o de cálculo digital, especialmente adaptados para funciones específicas)
  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > G06F12/00 (Acceso, direccionamiento o asignación en sistemas o arquitecturas de memoria (registro de la información en general G11))

PDF original: ES-2502526_T3.pdf

 

google+ twitter facebookPin it
Ilustración 1 de Optimización de memoria caché.
Ilustración 2 de Optimización de memoria caché.
Ilustración 3 de Optimización de memoria caché.
Ilustración 4 de Optimización de memoria caché.
Ver la galería de la patente con 11 ilustraciones.
Optimización de memoria caché.

Fragmento de la descripción:

Optimización de memoria caché Antecedentes

En términos generales, los dispositivos informáticos y las redes de comunicaciones pueden utilizarse para intercambiar información. En una aplicación común, un dispositivo informático puede solicitar contenido de otro dispositivo informático a través de la red de comunicaciones. Por ejemplo, un usuario de un dispositivo informático personal puede utilizar una aplicación software de navegación para solicitar una página web de un dispositivo informático servidor a través de Internet. En tales realizaciones, el dispositivo informático de usuario puede denominarse dispositivo informático cliente y el dispositivo informático servidor puede denominarse proveedor de contenido.

Los proveedores de contenido se utilizan generalmente para proporcionar contenido solicitado a dispositivos informáticos clientes teniendo en cuenta normalmente la transmisión eficiente del contenido solicitado al dispositivo informático cliente y/o teniendo en cuenta el coste asociado a la transmisión del contenido. En implementaciones a mayor escala, un proveedor de contenido puede recibir solicitudes de contenido desde un gran número de dispositivos informáticos clientes, lo que puede suponer una carga para los recursos informáticos del proveedor de contenido. Además, el contenido solicitado por los dispositivos informáticos clientes puede tener una pluralidad de componentes, lo que puede suponer una carga adicional para los recursos informáticos del proveedor de contenido.

Con referencia a un ejemplo ilustrativo, una página web solicitada, o un contenido original, puede estar asociado a una pluralidad de recursos adicionales, tales como imágenes o vídeos, que van a visualizarse con la página web. En una realización específica, los recursos adicionales de la página web se identifican mediante una pluralidad de identificadores de recurso integrados, tales como localizadores de recurso uniformes ("URL"). A su vez, el software de los dispositivos informáticos clientes procesa normalmente identificadores de recurso Integrados para generar solicitudes de contenido. Habitualmente, los identificadores de recurso asociados a los recursos integrados hacen referencia a un dispositivo informático asociado al proveedor de contenido, de manera que el dispositivo informático cliente transmitirá la solicitud referente a los recursos adicionales al dispositivo informático de proveedor de contenido referenciado. Por consiguiente, para satisfacer una solicitud de contenido, el proveedor de contenido proporcionará datos de dispositivos informáticos clientes asociados a la página web, así como los datos asociados a los recursos integrados.

Algunos proveedores de contenido tratan de facilitar la distribución de contenido solicitado, tales como páginas web y/o recursos identificados en páginas web, mediante la utilización de un proveedor de servicios de red de distribución de contenido ("CDN"). Un proveedor de servicios CDN normalmente mantiene una pluralidad de dispositivos informáticos en una red de comunicación que puede mantener contenido de varios proveedores de contenido. A su vez, los proveedores de contenido pueden ordenar, o sugerir de otro modo, a los dispositivos informáticos clientes que soliciten parte de, o todo, el contenido del proveedor de contenido de los dispositivos informáticos del proveedor de servicios CDN.

Al igual que los proveedores de contenido, los proveedores de servicios CDN también se utilizan generalmente para proporcionar contenido solicitado a dispositivos informáticos clientes teniendo en cuenta normalmente la transmisión eficiente del contenido solicitado al dispositivo informático cliente y/o teniendo en cuenta el coste asociado a la transmisión del contenido. Por consiguiente, los proveedores de servicios CDN tienen en cuenta normalmente factores como la latencia de distribución de contenido solicitado para cumplir los acuerdos del nivel de servicio o para mejorar generalmente la calidad del servicio de distribución.

El documento US 6658462 da a conocer un sistema que almacena en una memoria caché local una parte de un gran archivo que se ha solicitado a través de una red. Por tanto, la primera que se solicita el archivo, el archivo se envía a través del agente de almacenamiento en memoria caché que almacena la primera página, o en algunas realizaciones una cantidad suficiente que le permite recuperar el resto del archivo desde la red mientras que se visualiza el contenido inicial. Un cliente solicita un archivo y la primera página del archivo que está almacenada en el agente de almacenamiento en memoria caché es recuperada por el cliente mientras que el agente de almacenamiento en memoria caché recupera el resto del archivo desde el servidor origen.

El documento US 25/216674 da a conocer un reproductor multimedia que almacena datos de audio en un sistema de almacenamiento de archivos y que recupera datos que van a reproducirse en una memoria caché, de manera que puede accederse a los mismos más rápidamente.

El documento US 26/3737 da a conocer un descodificador que almacena la parte inicial de objetos y, en respuesta a una solicitud para consumir un objeto, solicita la parte de equilibrio del objeto. El tamaño del objeto inicial se selecciona para permitir que la parte de equilibrio se recupere mientras que está proporcionándose la parte inicial.

El documento US 23/187935 da a conocer un sistema para el almacenamiento de fragmentos en memoria caché. A este respecto, los fragmentos pueden almacenarse en memoria caché aparte del servidor original y tienen información de ID mediante la cual puede accederse a los mismos posteriormente.

Sumario

La invención está definida en las reivindicaciones.

Descripción de los dibujos

Los aspectos anteriores y muchas de las ventajas intrínsecas de esta invención se apreciarán más fácilmente al entenderse mejor con la referencia a la siguiente descripción detallada, cuando se toma junto con los dibujos que se acompañan, en los que:

la figura 1 es un diagrama de bloques que ilustra una realización de un sistema basado en red de distribución de contenido (CDN) que incluye uno o más servidores de memoria caché;

la figura 2 es un diagrama de bloques del sistema basado en CDN de la figura 1 que ilustra el procesamiento de una solicitud de contenido por parte de un proveedor de contenido;

la figura 3 es un diagrama de bloques del sistema basado en CDN de la figura 1 que ilustra el procesamiento de una consulta de DNS y la asignación de un componente de memoria caché de recurso;

las figuras 4A a 4F son diagramas de bloques simplificados del sistema basado en CDN de la figura 1 que ilustra realizaciones asociadas con el procesamiento de la solicitud de recurso por parte de un servidor de memoria caché;

la figura 5 es un diagrama de flujo de un método ilustrativo para el procesamiento de una solicitud de recurso en un servidor de memoria caché; y

la figura 6 es un diagrama de flujo de un método ilustrativo para gestionar el almacenamiento de un recurso en un servidor de memoria caché.

Descripción detallada

Descrita en términos generales, la presente divulgación está dirigida a la gestión de recursos de memoria caché utilizados cuando un dispositivo informático cliente solicita contenido de un recurso de red, tales como proveedores de servicios de red de distribución de contenido ("CDN"). Específicamente, los aspectos de la divulgación se describirán con respecto al procesamiento de contenido mediante un componente de memoria caché de recurso, y a la segmentación del contenido con respecto al almacenamiento y la recuperación del mismo. Aunque varios aspectos de la divulgación se describirán con respecto a ejemplos... [Seguir leyendo]

 


Reivindicaciones:

1. Un método implementado por ordenador, que comprende:

recibir una solicitud referente a un objeto en un componente de memoria caché (130, 132, 134) , transmitir un fragmento de inicialización del objeto desde memoria (140, 142, 144) , recuperar un fragmento mayoritario del objeto desde un medio de almacenamiento (152, 160) que tiene mayor latencia que la memoria, transmitir el fragmento mayoritario sin conservar el fragmento mayoritario en memoria para un procesamiento posterior, y determinar un tamaño de archivo para el fragmento de inicialización; y si se determina que el tamaño del fragmento de inicialización debería actualizarse:

sustituir el fragmento de inicialización en la memoria por un nuevo fragmento de inicialización del tamaño determinado, o almacenar un fragmento incremental en la memoria para complementar el fragmento de inicialización, donde el tamaño del fragmento incremental y del fragmento de inicialización corresponden conjuntamente al tamaño de archivo determinado.

2.

2. El método implementado por ordenador según la reivindicación 1, en el que la determinación de si el fragmento de inicialización debería actualizarse se basa en una determinación de una latencia asociada a la recuperación del fragmento mayoritario.

3. El método implementado por ordenador según la reivindicación 1, en el que la determinación de si el fragmento de inicialización debería actualizarse se basa en una frecuencia de una solicitud referente al objeto, de manera que un cambio en el tamaño de un fragmento incremental está basado en un cambio en la frecuencia de solicitud.

4. El método implementado por ordenador según una cualquiera de las reivindicaciones anteriores, que comprende 35 además:

recuperar un fragmento intermedio del objeto; y proporcionar el fragmento intermedio sin conservar el fragmento intermedio en memoria para un procesamiento posterior.

5. El método implementado por ordenador según una cualquiera de las reivindicaciones anteriores, que comprende:

recibir, en un componente de memoria caché, un objeto para su almacenamiento; y 45 segmentar el objeto en un fragmento de inicialización para su almacenamiento en memoria y en uno o más fragmentos restantes para su almacenamiento en un medio que tiene mayor latencia que la memoria.

6. El método implementado por ordenador según la reivindicación 5, en el que el tamaño del fragmento de inicialización está basado en una latencia asociada a la recuperación del uno o más fragmentos restantes.

7. El método implementado por ordenador según la reivindicación 5, en el que el tamaño del fragmento de inicialización está basado en una frecuencia de una solicitud referente al objeto.

8. El método implementado por ordenador según la reivindicación 6 o la reivindicación 7, en el que el uno o más fragmentos restantes corresponden al fragmento mayoritario, donde el fragmento mayoritario corresponde a un tamaño de archivo completo del objeto.

9. El método implementado por ordenador según una cualquiera de las reivindicaciones 5 a 9, en el que el uno o más fragmentos restantes no permanecen en la memoria para un procesamiento posterior.

10. El método implementado por ordenador según la reivindicación 5, que comprende:

asociar una ubicación de almacenamiento en memoria al fragmento de inicialización;

asociar una ubicación de almacenamiento a un dicho fragmento restante, siendo dicho fragmento restante el 14

segmento mayoritario, donde la ubicación de almacenamiento asociada del fragmento mayoritario corresponde a un medio que tiene mayor latencia que la memoria;

determinar si el fragmento de inicialización debería actualizarse;

si es así, asociar una ubicación de almacenamiento en la memoria a un fragmento incremental, donde el fragmento incremental complementa al fragmento de inicialización.

11. El método implementado por ordenador según la reivindicación 10, en el que la determinación de si el fragmento 10 de inicialización debería actualizarse se basa en una frecuencia de una solicitud referente al objeto, de manera que un cambio en el tamaño de un fragmento incremental está basado en un cambio en la frecuencia de solicitud.

12. El método implementado por ordenador según la reivindicación 10, en el que la determinación de si el fragmento de inicialización debería actualizarse comprende determinar un nuevo tamaño de archivo para el fragmento de 15 inicialización, donde el fragmento de inicialización y el fragmento incremental se corresponden con el nuevo tamaño de archivo.

13. El método implementado por ordenador según una cualquiera de las reivindicaciones anteriores, en el que recuperar el fragmento mayoritario del objeto comprende recuperar el fragmento mayoritario desde uno de: 20 una memoria de disco local del componente de memoria caché;

una memoria de disco de otro componente de memoria caché;

una memoria basada en red; o un servidor origen.

14. Un sistema informático que tiene una memoria, en el que la memoria almacena un fragmento de inicialización, 30 comprendiendo el sistema informático medios para implementar el método según una cualquiera de las reivindicaciones anteriores.