ES2690454T3 - Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema - Google Patents

Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema Download PDF

Info

Publication number
ES2690454T3
ES2690454T3 ES16157884.4T ES16157884T ES2690454T3 ES 2690454 T3 ES2690454 T3 ES 2690454T3 ES 16157884 T ES16157884 T ES 16157884T ES 2690454 T3 ES2690454 T3 ES 2690454T3
Authority
ES
Spain
Prior art keywords
data
advance
storage node
block
read
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
ES16157884.4T
Other languages
English (en)
Inventor
Dong Bao
Deping Yang
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 ES2690454T3 publication Critical patent/ES2690454T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10—Providing a specific technical effect
    • G06F2212/1016—Performance improvement
    • G06F2212/1024—Latency reduction
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31—Providing disk cache in a specific location of a storage system
    • G06F2212/314—In storage network, e.g. network attached cache
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00—Arrangements for software engineering
    • G06F8/40—Transformation of program code
    • G06F8/41—Compilation
    • G06F8/44—Encoding
    • G06F8/443—Optimisation
    • G06F8/4441—Reducing the execution time required by the program code
    • G06F8/4442—Reducing the number of cache misses; Data prefetching
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00—Network arrangements or protocols for supporting network services or applications
    • H04L67/50—Network services
    • H04L67/56—Provisioning of proxy services
    • H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT que comprende un primer nodo de almacenamiento y un segundo nodo de almacenamiento, comprendiendo dicho método de obtención anticipada de datos: recibir (S101), por parte de un primer nodo de almacenamiento, una solicitud de lectura para leer un bloque de datos enviada por un cliente que ha localizado el primer nodo de almacenamiento mediante un algoritmo DHT; determinar (S102), por parte del primer nodo de almacenamiento, un bloque de datos a obtener con antelación en función de la lectura de un bloque de datos leído de acuerdo con la solicitud de lectura y un umbral establecido de bloques de datos a obtener con antelación; determinar (S102), por parte del primer nodo de almacenamiento, un segundo nodo de almacenamiento en el que se encuentra el bloque de datos a obtener con antelación en función del bloque de datos a obtener con antelación; enviar (S102), por parte del primer nodo de almacenamiento, una solicitud de obtención anticipada al segundo nodo de almacenamiento, en donde la solicitud de obtención anticipada comprende información de identificación del bloque de datos a obtener con antelación, y la información de identificación se utiliza para identificar de forma unívoca el bloque de datos a obtener con antelación; y leer (S103) de un disco, por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada, y almacenar (S103), por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación en un buffer (memoria intermedia de almacenamiento temporal) local del segundo nodo de almacenamiento, de modo que el cliente lee el bloque de datos a obtener con antelación del buffer local del segundo nodo de almacenamiento.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema
Campo de la invención
La presente invención está relacionada con el campo de las tecnologías de la información y, en particular, con un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, un nodo y un sistema.
Antecedentes de la invención
A medida que se desarrolla la red la información experimenta un aumento explosivo. Un sistema de almacenamiento interpares (Peer to Peer; P2P) basado en la tecnología de tabla hash (aleatorizada) distribuida (Distributed Hash Table, DHT) es altamente extensible y puede soportar un almacenamiento masivo de datos. Por otra parte, en un sistema de almacenamiento P2P, un segmento de datos consecutivos se divide en varios bloques, y se almacena en varios nodos del sistema, de modo que un cliente no puede leer los datos ininterrumpidamente del sistema, lo que da lugar a una baja eficiencia en la lectura de datos.
En un método existente de obtención anticipada de datos para un sistema de almacenamiento DHT, un cliente determina el contenido y la ubicación de almacenamiento de los datos que se deberán utilizar a continuación de acuerdo con una regla de acceso de un programa de aplicación y, a continuación, el cliente lee los datos de cada unidad de almacenamiento apropiada y almacena los datos en el propio cliente, de modo que cuando una aplicación de una capa superior necesita los datos, la aplicación de la capa superior puede obtener directamente los datos desde el cliente sin necesidad de transmisión a través de la red, mejorando de este modo la eficiencia en la lectura. Sin embargo, la ejecución de la operación de obtención anticipada de datos por parte del sistema de almacenamiento DHT debe depender del cliente, por lo que el método de obtención anticipada tan solo mejora la eficiencia de la comunicación desde el cliente a cada nodo, pero la eficiencia de la lectura de datos del sistema aún no ha variado, esto es, la eficiencia de la lectura de datos del sistema sigue siendo baja.
El documento de ZUONING YIN Y OTROS "DHT Based Collaborative Multimedia Streaming and Caching Service (Servicio colaborativo de streaming y caching multimedia basado en DHT)", TENCON 2005 2005 REGION 10 del IEEE, IEEE, PI, (20051101), ISBN 978-0-7803-9311-0, páginas 1 - 6, presenta un modelo que crea un servicio multimedia de streaming (transmisión continua) y caching (almacenamiento anticipado) en un overlay (recubrimiento) basado en una tabla hash distribuida. Utilizan DHT para establecer un servicio de caching descentralizado. La información sobre la ubicación de los segmentos almacenados en caché se distribuye entre diferentes nodos pares y la información sobre los segmentos del mismo vídeo se organiza en un grupo de multidifusión a nivel de aplicación.
El documento US 2004/117398 A1 proporciona un sistema en el que se crea una BD en un entorno de virtualización, un servidor de gestión obtiene información de procesamiento de la BD como, por ejemplo, el plan de ejecución de procesamiento de la BD y el grado de prioridad de procesamiento del SGBD (sistema de gestión de la BD), predice a qué datos se va a acceder en un futuro próximo y el orden de los accesos basado en dicha información, y solicita que se transfieran a las cachés de los dispositivos de almacenamiento los datos a los que se va a acceder en el futuro cercano en función de los resultados de la predicción.
El documento WO 2005/066767 A1 divulga técnicas para la gestión de la memoria caché. Se recibe una nueva solicitud para acceder a un primer bloque de datos. Se determina la probabilidad de que se pueda acceder a un segundo bloque de datos en función del acceso al primer bloque de datos. Se determina si dicha probabilidad excede el umbral de lectura anticipada. Si la probabilidad excede el umbral de lectura anticipada se obtiene con antelación el segundo bloque de datos.
El documento de ZHENHUA LI Y OTROS "ContinuStreaming: Achieving high playback continuity of Gossip-based Peer-to-Peer streaming (ContinuStreaming: lograr una alta continuidad de reproducción de streaming inter pares basada en Gossip)", SIMPOSIO INTERNATIONAL DEL IEEE 2008 SOBRE PROCESAMIENTO PARALELO Y DISTRIBUIDO: [IPDPS 2008]; MIAMI, FL, 14 - 18 DE ABRIL DE 2008, IEEE, PISCATAWAY, NJ, EE. UU., (20080414), ISBN 978-1-4244-1693-6, páginas 1 - 12, divulga que el streaming inter pares (P2P) basado en gossip (protocolo de comunicación ordenador-ordenador) ha demostrado ser un método efectivo y resiliente para el streaming de contenidos de medios cualificados en entornos de red dinámicos y heterogéneos. Debido a la aleatoriedad intrínseca del gossiping, algunos segmentos de datos no se pueden diseminar a cada nodo a tiempo, lo que afecta seriamente a la continuidad de reproducción de los medios. En este documento describimos el diseño de ContinuStreaming, un sistema de streaming P2P basado en gossip que puede mantener una alta resiliencia y una baja sobrecarga, a la vez que aporta una propiedad novedosa y crítica: una cobertura completa de la diseminación de los datos. Con la ayuda de la DHT, los segmentos de datos que posiblemente se pierdan debido a la planificación de datos basada en gossip se pueden extraer previamente de forma rápida mediante recuperación de datos bajo demanda con el fin de garantizar la reproducción continua. Analizamos los resultados tanto de análisis teóricos como de simulaciones completas en diversas topologías de superposición de traza real para demostrar la efectividad de
5
10
15
20
25
30
35
40
45
50
nuestro sistema. Los resultados de la simulación muestran que ContinuStreaming supera a los sistemas representativos actuales de streaming P2P basados en gossip incrementando la continuidad de reproducción muy cerca de 1,0 con solo un 4% o menos de sobrecarga extra.
El documento WO2010/076536 A2 está relacionado con un sistema para procesar una solicitud emitida por un cliente para obtener datos, que incluye: una pluralidad de nodos (201, 202, 203, 204, 205) organizados en una red P2P, apropiados para almacenar un conjunto de datos distribuido en varios nodos y almacenar una tabla de identificación (200) apropiada para identificar entre la pluralidad de nodos el nodo capaz de suministrar los datos en respuesta a la solicitud, caracterizado por que dicho sistema incluye: un servidor proxy (30) que almacena dicha tabla, a la que se pretende dirigir la solicitud, siendo dicho servidor apropiado únicamente para, al recibir la solicitud: identificar, de acuerdo con la tabla, el nodo capaz de suministrar los datos en respuesta a la solicitud, y retransmitirle la solicitud al nodo identificado.
El documento US 2010/146569 A1 divulga un sistema o método de vídeo a la carta (VoD) inter pares (P2P) que utiliza una pluralidad de nodos pares descodificadores (STB) de VoD con configuración IP en un grupo para proporcionar datos de contenidos de vídeo a un nodo par cliente solicitante del mismo grupo. Se puede designar a otro nodo par del grupo como nodo par padre para la descarga de contenidos de reproducción de alta prioridad que se requieren de forma sustancialmente inmediata para su visualización en reproducción. El contenido de baja prioridad almacenado anticipadamente se le puede descargar al nodo par cliente solicitante desde otro nodo par del grupo distinto del nodo par padre. El ancho de banda del nodo par cliente solicitante no utilizado por el módulo de reproducción para la descarga de los datos del contenido de vídeo de reproducción de alta prioridad se puede asignar para descargar el contenido a almacenar anticipadamente. Utilizando el nodo par cliente solicitante, se pueden servir datos de contenido de vídeo para su visualización en reproducción en un monitor de vídeo, en donde dicho contenido de datos de vídeo servido puede comprender el contenido de la reproducción y el contenido almacenado anticipadamente.
Resumen de la invención
Los modos de realización de la presente invención proporcionan un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, un nodo y un sistema, con el fin de resolver el problema de la baja eficiencia de lectura para el sistema de almacenamiento DHT en la técnica anterior.
La presente invención se define en las reivindicaciones adjuntas independientes, a las cuales se debería hacer referencia. Las características ventajosas se explican en las reivindicaciones adjuntas dependientes.
Breve descripción de los dibujos
Con el fin de ilustrar de forma más clara las soluciones técnicas de acuerdo con los modos de realización de la presente invención o de la técnica anterior, a continuación se presentan brevemente los dibujos adjuntos requeridos para describir los modos de realización o la técnica anterior.
La FIG. 1 es un diagrama de flujo de un primer modo de realización de un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención;
la FIG. 2 es un diagrama esquemático de una estructura de almacenamiento de datos en un sistema de almacenamiento de tabla hash distribuida DHT;
la FIG. 3 es un diagrama de flujo de interacción de la aplicación del método de obtención anticipada por parte de cada uno de los nodos de almacenamiento participantes en el método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT que se ilustra en la FIG. 1;
la FIG. 4 es un diagrama de flujo de un segundo modo de realización de un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención;
la FIG. 5 es un diagrama esquemático de la estructura de un primer modo de realización de un nodo de almacenamiento de un sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención;
la FIG. 6 es un diagrama esquemático de la estructura de un segundo modo de realización de un nodo de almacenamiento de un sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención;
la FIG. 7 muestra el proceso principal para el procesamiento de una solicitud de lectura por parte de un nodo de almacenamiento de un sistema de almacenamiento de tabla hash distribuida DHT, proporcionado en un modo de realización de la presente invención; y
5
10
15
20
25
30
35
40
45
50
55
la FIG. 8 muestra el proceso principal realizado por un nodo de almacenamiento de un sistema de almacenamiento de tabla hash distribuida DHT después de recibir una solicitud de obtención anticipada, proporcionado en un modo de realización de la presente invención.
Descripción detallada de los modos de realización
Con el fin de hacer más comprensibles los objetivos, las soluciones técnicas y las ventajas de los modos de realización de la presente invención, a continuación se describen de forma clara y completa las soluciones técnicas de acuerdo con los modos de realización de la presente invención haciendo referencia a los dibujos adjuntos en los modos de realización de la presente invención.
La FIG. 1 es un diagrama de flujo de un primer modo de realización de un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención. Tal como se ilustra en la FIG. 1, el método incluye:
S101: Un primer nodo de almacenamiento recibe una solicitud de lectura enviada por un cliente.
S102: El primer nodo de almacenamiento determina un bloque de datos a obtener con antelación y un segundo nodo de almacenamiento donde debe residir el bloque de datos a almacenar anticipadamente en función del bloque de datos leído y un umbral establecido de bloques de datos a obtener con antelación, y le envía una solicitud de obtención anticipada al segundo nodo de almacenamiento, en donde el primer nodo de almacenamiento y el segundo nodo de almacenamiento son los mismos o diferentes nodos de almacenamiento, la solicitud de obtención anticipada incluye información de identificación del bloque de datos a obtener con antelación, y la información de identificación se utiliza para identificar de manera unívoca el bloque de datos a obtener con antelación.
S103: El segundo nodo de almacenamiento lee de un disco el bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada, y almacena el bloque de datos a obtener con antelación en un buffer (memoria intermedia de almacenamiento temporal) local, de modo que un cliente lea el bloque de datos almacenado anticipadamente del buffer local del segundo nodo de almacenamiento.
El método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención es aplicable a un sistema de almacenamiento de tabla hash distribuida DHT. Este tipo de sistema de almacenamiento almacena los datos en forma de DHT, y durante el almacenamiento de los datos, el sistema de almacenamiento generalmente divide un segmento de datos consecutivos (es decir, datos brutos) en varios bloques y almacena los bloques de datos resultantes en varios nodos de almacenamiento en el sistema. Por ejemplo, en el sistema de almacenamiento DHT que se ilustra en la FIG. 2, los bloques de datos resultantes D1, D2,... D8 corresponden a un segmento de datos consecutivos, y los datos brutos están almacenados en los discos de los nodos de almacenamiento N1, N2, N3 y N4. Un método de acceso a los datos para cada uno de los bloques de datos en el sistema de almacenamiento consiste generalmente en get (key, & value) (obtener (clave, & valor)), donde key es un identificador único de un bloque de datos en el sistema de almacenamiento, y value es el contenido de datos del bloque de datos. El disco para almacenar los datos puede ser, por ejemplo, un disco duro de unidad con electrónica integrada (Integrated Drive Electronics, IDE) corriente, un disco duro de tecnología avanzada de conexión en serie (Serial Advanced Technology Attachment, SATA) o un disco duro de estado sólido.
El primer nodo de almacenamiento (el encargado de ejecutar los pasos S101 y S102) puede ser cualquier nodo de almacenamiento en el sistema de almacenamiento dHt. Después de recibir una solicitud de lectura para leer un bloque de datos D1 determinado enviada por el cliente, el primer nodo de almacenamiento realiza una operación de obtención anticipada. En particular, como los bloques de datos que constituyen los datos brutos están numerados secuencialmente, lo que se puede reflejar específicamente mediante valores clave de los bloques de datos, el primer nodo de almacenamiento puede determinar el valor clave del bloque de datos que hay que leer después de D1 en función del valor clave del bloque de datos D1 leído, y también puede realizar, además, una operación de DHT con el valor clave del bloque de datos que hay que leer, para obtener un segundo nodo de almacenamiento en el que se encuentra el bloque de datos, y enviarle una solicitud de obtención anticipada al segundo nodo de almacenamiento, en donde la solicitud de obtención anticipada incluye información de identificación (el valor clave) del bloque de datos a obtener con antelación, de modo que el segundo nodo de almacenamiento realiza una operación de obtención anticipada del bloque de datos que hay que leer después de D1 de acuerdo con la información de identificación.
Se debe tener en cuenta que el segundo nodo de almacenamiento no se refiere a un nodo del sistema, sino que pueden ser múltiples nodos de almacenamiento del sistema. Esto se debe a que un bloque de datos determinado que hay que leer anticipadamente puede ser múltiple. Los bloques de datos a obtener con antelación se pueden almacenar en segundos nodos de almacenamiento diferentes. En consecuencia, después de determinar los bloques de datos a obtener con antelación, cada segundo nodo de almacenamiento puede leer desde un disco un bloque de datos que se va a leer con antelación y, a continuación, almacenar el bloque de datos en un buffer local, esto es, el segundo nodo de almacenamiento copia el bloque de datos a obtener con antelación del disco al buffer local, de tal modo que el cliente puede leer directamente el bloque de datos del buffer local. Además, el segundo nodo de almacenamiento y el primer nodo de almacenamiento pueden ser el mismo nodo de almacenamiento, esto es, el al
5
10
15
20
25
30
35
40
45
50
55
menos un bloque de datos a obtener con antelación determinado por el primer nodo de almacenamiento puede encontrarse en una unidad de almacenamiento local. En este caso, el primer nodo de almacenamiento lee el bloque de datos a obtener con antelación desde un disco local de acuerdo con la información de identificación del bloque de datos a obtener con antelación contenida en la solicitud de obtención anticipada, y almacena el bloque de datos a obtener con antelación en un buffer local.
Como la ejecución de la operación de obtención anticipada tiene en realidad como objetivo reducir el tiempo de transmisión de red de cada bloque de datos y la capacidad del buffer en cada uno de los nodos de almacenamiento es limitada, y se consideran factores como, por ejemplo, el factor de que si en el buffer hay más bloques de datos leídos anticipadamente se reduce la velocidad de lectura, se establece generalmente un umbral de bloques de datos a obtener con antelación, y el contador de bloques de datos a leer anticipadamente está limitado por el umbral de bloques de datos a obtener con antelación. El umbral de bloques de datos a obtener con antelación es generalmente mayor o igual que la relación entre el tiempo de lectura de un solo bloque de datos y el tiempo de transmisión en la red de un solo bloque de datos. Además, el umbral de bloques de datos a obtener con antelación también se puede determinar en función de la capacidad del buffer del nodo de almacenamiento y las características de otros dispositivos de hardware en cada nodo de almacenamiento, por ejemplo, un disco, una unidad central de procesamiento (Central Processing Unit, CPU), una placa maestra y una tarjeta de red.
Después de recibir la solicitud de lectura enviada por el cliente, cada uno de los nodos de almacenamiento del sistema comprueba si el bloque de datos a leer existe en el buffer, esto es, si el bloque de datos a leer se ha obtenido previamente. Si el bloque de datos a leer ya se encuentra en el buffer, el nodo de almacenamiento puede leer directamente el bloque de datos del buffer y devolverle el bloque de datos al cliente; y si el bloque de datos a leer no existe en el buffer, ello indica que el bloque de datos no se ha obtenido previamente, y el nodo de almacenamiento puede leer el bloque de datos desde el disco. Durante la lectura del bloque de datos o después de la lectura del bloque de datos, cada uno de los nodos de almacenamiento puede iniciar además un nuevo proceso de obtención anticipada como el que se ha descrito más arriba, por lo que no se vuelve a describir en la presente solicitud.
En el método de obtención anticipada de datos para el sistema de almacenamiento de tabla hash distribuida DHT proporcionado en este modo de realización, se puede determinar el bloque de datos a obtener con antelación en función del bloque de datos leído y el umbral establecido de bloques de datos a obtener con antelación y, a continuación, el bloque de datos a obtener con antelación del disco se copia al buffer, de modo que después de recibir la solicitud de lectura del cliente, el bloque de datos a obtener con antelación pueda ser leído directamente del buffer, mejorándose de este modo la eficiencia del acceso a los datos para cada uno de los nodos de almacenamiento del sistema.
Para ilustrar con mayor claridad el primer modo de realización del método de obtención anticipada de datos proporcionado en la presente invención, la FIG. 3 muestra un diagrama de flujo de interacción de la ejecución de un método de obtención anticipada, por parte de cada uno de los nodos de almacenamiento de un sistema de almacenamiento. Tal como se ilustra en la FIG. 3, en este modo de realización se realiza la descripción haciendo referencia a un ejemplo en el que un cliente le envía a un nodo de almacenamiento A una solicitud de lectura para leer un bloque de datos Dn, y el nodo de almacenamiento A inicia una operación de obtención anticipada. El método incluye:
S201: Un cliente localiza un nodo de almacenamiento A a partir de la clave del Dn y le envía una solicitud de lectura al nodo de almacenamiento A.
El método para localizar por parte del cliente el nodo de almacenamiento a partir de la clave del bloque de datos puede ser un método en el que se utilice un algoritmo DHT general, el cual no se describe en detalle en la presente solicitud.
El cliente puede iniciar la operación de lectura del bloque de datos en el nodo de almacenamiento A de varias formas, por ejemplo, el cliente puede iniciar la operación de lectura de datos en el nodo A mediante una interfaz de almacenamiento get (key, & value) proporcionada por el sistema de almacenamiento DHT, o iniciar la operación de lectura de datos en función de un rango de la clave, o de otras formas que no se enumeran en la presente solicitud.
S202: El nodo de almacenamiento A busca el bloque de datos Dn en el buffer; si el bloque de datos Dn existe en el buffer, el nodo de almacenamiento A recupera directamente el bloque Dn del buffer y le devuelve el bloque Dn al cliente.
S203: Si el bloque Dn no se encuentra en el buffer, lee el bloque Dn de un disco y le devuelve el bloque Dn al cliente.
S204: El nodo de almacenamiento A inicia un proceso de operación de obtención anticipada. Con el fin de simplificar la descripción, en este modo de realización se supone que el nodo de almacenamiento A determina, en función del bloque Dn y el umbral establecido de bloques de datos a obtener con antelación, que es necesario volver a leer con antelación dos bloques de datos Dn+1 y Dn+2 (los dos bloques de datos siguientes al bloque Dn en los datos brutos cuyos números son consecutivos al del bloque Dn en los datos brutos), respectivamente, y, de acuerdo con un
5
10
15
20
25
30
35
40
45
50
algoritmo de DHT determina que Dn+1 y Dn+2 se encuentran almacenados en un nodo de almacenamiento X y un nodo de almacenamiento Y, respectivamente. A continuación se ejecutan los pasos S205 y S206.
S205: El nodo de almacenamiento A le envía una solicitud de obtención anticipada del bloque de datos Dn+1 al nodo de almacenamiento X.
S206: El nodo de almacenamiento A le envía una solicitud de obtención anticipada del bloque de datos Dn+2 al nodo de almacenamiento Y.
Los pasos S205 y S206 no tienen un orden particular, y se pueden ejecutar de forma síncrona o asíncrona.
S207: El nodo de almacenamiento X recibe la solicitud de obtención anticipada del bloque de datos Dn+1 y, a continuación, ejecuta un proceso de copia del bloque de datos desde un disco a un buffer.
S208: El nodo de almacenamiento Y recibe la solicitud de obtención anticipada del bloque de datos Dn+2 y, a continuación, ejecuta un proceso de copia del bloque de datos desde un disco a un buffer.
En los pasos S207 y S208, después de recibir las solicitudes de obtención anticipada enviadas por el nodo de almacenamiento A, el nodo de almacenamiento X y el nodo de almacenamiento Y pueden copiar directamente los bloques de datos correspondientes de los discos a los buffer.
No obstante, con el fin de mejorar la efectividad de la obtención anticipada del sistema, el nodo de almacenamiento que recibe la solicitud de obtención anticipada puede comprobar además si la obtención anticipada es necesaria, y en un modo de realización que se describe más abajo se describe la operación de comprobación de si es necesaria la obtención anticipada.
S209: Cuando el cliente necesita leer el bloque de datos Dn+1, el cliente localiza el nodo de almacenamiento X en función de la clave del bloque Dn+1 e inicia una operación de lectura del bloque de datos en el nodo de almacenamiento X mediante la interfaz de almacenamiento get (key, & value) proporcionada por el sistema de almacenamiento DHT.
S210: Después de recibir la solicitud de lectura del bloque de datos Dn+1, el nodo de almacenamiento X comprueba que el bloque Dn+1 se encuentra en el buffer, y le devuelve directamente al cliente el bloque Dn+1 del buffer.
S211: Cuando el cliente necesita leer el bloque de datos Dn+2, el cliente localiza el nodo de almacenamiento Y en función de la clave del bloque Dn+2 e inicia una operación de lectura de bloque de datos en el nodo de almacenamiento Y mediante la interfaz de almacenamiento get (key, & value) proporcionada por el sistema de almacenamiento DHT.
S212: Después de recibir la solicitud de lectura del bloque de datos Dn+2, el nodo de almacenamiento Y comprueba que el bloque Dn+2 se encuentra en el buffer, y le devuelve directamente al cliente el bloque Dn+2 del buffer.
La FIG. 4 es un diagrama de flujo de un segundo modo de realización de un método de obtención anticipada de datos para el sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención. Tal como se ilustra en la FIG. 4, en el método de obtención anticipada de datos para el sistema DHT proporcionado en este modo de realización, después de recibir una solicitud de obtención anticipada, el nodo de almacenamiento debe comprobar además si es necesaria la operación de obtención anticipada, con el fin de mejorar la efectividad de la obtención anticipada del sistema. Concretamente, después de realizar una operación de lectura de un bloque de datos, cada uno de los nodos de almacenamiento registra el bloque de datos leído junto con la marca de tiempo correspondiente en una tabla de registro de lecturas, en donde la marca de tiempo sirve para identificar el instante en el que se ha leído el bloque de datos. Al recibir la solicitud de obtención anticipada, el nodo de almacenamiento determina si debe realizar una operación de obtención anticipada en función del contador del bloque de datos leído en la tabla de registro de lecturas y la marca de tiempo correspondiente al último tiempo de lectura. Si el contador del bloque de datos leído es mayor o igual que un umbral establecido de bloques de datos a obtener con antelación, y la diferencia entre el instante de obtención anticipada actual y el último tiempo de obtención anticipada que indica la marca de tiempo es menor o igual a un tiempo establecido, se lleva a cabo la operación de obtención anticipada.
La razón para establecer el umbral de bloques de datos leídos en el registro de lecturas es que si un cliente solo lee unos pocos bloques de datos, ello no quiere decir necesariamente que el cliente lee indudablemente los bloques de datos en los datos brutos de forma secuencial, y ello puede dar lugar a una determinación inexacta de lectura secuencial, y en consecuencia hacer que se produzca innecesariamente una obtención anticipada. Sin embargo, el umbral de bloques de datos leídos no se puede configurar con un valor muy grande, ya que esto puede reducir la eficiencia de la obtención anticipada en una etapa anterior e incrementar el consumo del sistema durante la copia y almacenamiento del registro de lecturas. En consecuencia se puede establecer el umbral de bloques de datos ya leídos en función de, por ejemplo, el contador de bloques de datos en los datos brutos y las configuraciones de hardware del sistema.
5
10
15
20
25
30
35
40
45
50
Además, la diferencia entre el instante de obtención anticipada actual y el último tiempo de lectura que indica la marca de tiempo debe ser menor o igual que un cierto tiempo, lo cual indica que el bloque de datos a obtener con antelación y los bloques de datos ya leídos corresponden todos a una operación actual de lectura de datos brutos del cliente, y no a una operación previa de lectura de datos brutos del cliente.
Este modo de realización proporciona un proceso de lectura de los bloques D1-D4 originado por el cliente, en el que se supone que la operación de obtención anticipada se realiza cuando el umbral establecido de bloques de datos leídos en el registro de lecturas es 3. El método incluye específicamente:
S301: Un cliente le solicita a un nodo de almacenamiento A que lea el bloque de datos D1.
S302: Se supone que el bloque D1 es el primer bloque de datos leído por el cliente, el nodo de almacenamiento A lee el bloque de datos D1 de un disco y le devuelve el bloque de datos D1 al cliente.
S303: El nodo de almacenamiento A anota <D1> (incluida la marca de tiempo de D1) en un registro de lecturas, en donde la tabla de registro de lecturas corresponde al mismo segmento de datos brutos.
S304: El nodo de almacenamiento A analiza y determina que el bloque D2 es posterior al bloque de datos D1, calcula un nodo de almacenamiento B que almacena el bloque D2, le envía una solicitud de obtención anticipada del bloque D2 al nodo de almacenamiento B, y anota <D1> en el registro de bloques leídos.
El proceso en el que el nodo de almacenamiento A analiza el bloque D2 puede consistir en: determinar el contador de bloques de datos a obtener con antelación de acuerdo con un umbral establecido de bloques de datos a obtener con antelación. Como el bloque de datos leído y el bloque de datos a obtener con antelación pertenecen a los mismos datos brutos, el bloque de datos leído y el bloque de datos a obtener con antelación tienen el mismo prefijo, y el bloque de datos leído y el bloque de datos a obtener con antelación están numerados secuencialmente en los datos brutos, en donde el prefijo es un identificador único de los datos brutos a los que pertenece un bloque de datos, y la posición de los datos en los datos brutos se identifica mediante un número. En consecuencia, el nodo de almacenamiento A puede determinar el prefijo y el número del bloque de datos a obtener con antelación en función del prefijo y el número del bloque de datos D1 leído y, a continuación, realizar una operación hash (aleatorización) con el bloque de datos a obtener con antelación en función del prefijo y el número del bloque de datos a obtener con antelación, con el fin de determinar un nodo de almacenamiento para el bloque de datos a obtener con antelación.
S305: Después de recibir la solicitud de obtención anticipada desde el nodo de almacenamiento A, el nodo de almacenamiento B comprueba que en el registro de lecturas solo se encuentra el bloque de datos D1 leído, y el nodo de almacenamiento B tan solo almacena el registro de lecturas, pero no ejecuta una operación de obtención anticipada.
S306: El cliente le solicita al nodo de almacenamiento B que lea el bloque de datos D2.
S307: Como el nodo de almacenamiento B no ha leído anticipadamente el bloque D2, el nodo de almacenamiento B lee el bloque de datos D2 de un disco y le devuelve el bloque de datos D2 al cliente.
S308: El nodo de almacenamiento B actualiza el registro de lecturas a <D1, D2> (incluida la marca de tiempo del bloque D2).
S309: El nodo de almacenamiento B analiza el bloque D3 y determina que el bloque D3 es posterior al bloque de datos D2, calcula la ubicación del bloque D3, le envía una solicitud de obtención anticipada del bloque D3 a un nodo de almacenamiento C en el que se encuentra el bloque D3, y anota <D1, D2> en el registro histórico de bloques.
S310: Después de recibir la solicitud de obtención anticipada del nodo de almacenamiento B, el nodo de almacenamiento C comprueba que el registro de lecturas incluye 2 bloques de datos leídos, lo cual es menor que el umbral 3 de bloques de datos leídos, y el nodo de almacenamiento C tan solo almacena el registro de lecturas, pero no ejecuta una operación de obtención anticipada.
S311: El cliente le solicita al nodo de almacenamiento C que lea el bloque de datos D3.
S312: Como el nodo de almacenamiento C no ha leído anticipadamente el bloque D3, el nodo de almacenamiento C lee el bloque de datos D3 de un disco y le devuelve el bloque de datos D3 al cliente.
S313: El nodo de almacenamiento C actualiza el registro de lecturas a <D1, D2, D3> (incluida la marca de tiempo del bloque D3).
S314: El nodo de almacenamiento C analiza el bloque D4 y determina que el bloque D4 es posterior al bloque de datos D3, calcula la ubicación del bloque D4, le envía una solicitud de obtención anticipada del bloque D4 a un nodo de almacenamiento D en el que se encuentra el bloque D4, y anota <D1, D2, D3> en el registro de bloques.
S315: Después de recibir la solicitud de obtención anticipada del nodo de almacenamiento C, el nodo de almacenamiento D comprueba que el registro de lecturas incluye 3 bloques de datos leídos, lo cual es igual al
7
5
10
15
20
25
30
35
40
45
50
55
umbral 3 de bloques de datos leídos, y el nodo de almacenamiento D comprueba, además, si la diferencia entre el instante de lectura anticipada actual y el último tiempo de lectura indicado por la marca de tiempo es menor o igual que el tiempo establecido, y en la presente solicitud se asume que la diferencia es menor o igual que el tiempo establecido, por lo que el nodo de almacenamiento almacena el registro de lecturas, lee el bloque D4 de un disco, y almacena el bloque D4 en un buffer.
S316: El cliente le solicita al nodo de almacenamiento D que lea el bloque de datos D4.
S317: Como el nodo de almacenamiento D ha leído el bloque D4 anticipadamente, el nodo de almacenamiento D lee directamente el bloque de datos D4 del buffer y le devuelve el bloque de datos D4 al cliente.
A continuación, el nodo de almacenamiento D continúa realizando una operación de obtención anticipada de un bloque de datos que no se vuelve a describir en la presente solicitud.
Además, como una vez que el contador de bloques de datos ya leídos en el registro de lecturas es igual al umbral establecido de bloques de datos leídos, se puede realizar la lectura, con el fin de mejorar el tiempo para realizar la determinación de la obtención anticipada por parte del nodo de almacenamiento, y economizar espacio de almacenamiento de la tabla de registro de lecturas, si el contador del bloque de datos de la tabla de registro de lecturas es mayor que el umbral establecido de bloques de datos leídos se borra un bloque de datos leído previamente en función de la marca de tiempo, de tal modo que el contador del bloque de datos de la tabla de registro es igual al umbral establecido de bloques de datos leídos.
Se debe observar que, con el fin de asegurar la concordancia de un contenido con un bloque de datos en un disco, si se vuelve a grabar en un buffer un bloque de datos a obtener con antelación, es necesario volver a grabar de forma sincronizada en el disco el mismo bloque de datos; análogamente, si se graba de nuevo un bloque de datos en el disco, es necesario volver a grabar de forma sincronizada en el buffer el mismo bloque de datos a obtener con antelación. Para registrar la relación entre el bloque de datos a obtener con antelación en el buffer y el bloque de datos en el disco se puede utilizar una cierta estructura de datos, de modo que cuando se modifique el bloque de datos en el bloque de datos del disco se pueda modificar de forma sincronizada el bloque de datos a obtener con antelación.
Las personas experimentadas en la técnica deberían entender que la totalidad o una parte de los procesos del método de acuerdo con los modos de realización se pueden realizar mediante un hardware apropiado bajo el control de las instrucciones de un programa para ordenador. El programa puede estar almacenado en un medio de almacenamiento legible por un ordenador. Al ejecutarse el programa se lleva a cabo el proceso del método de acuerdo con los modos de realización. El medio de almacenamiento puede ser un disco, una memoria de solo lectura (Read-Only Memory, ROM), una memoria de acceso aleatorio (Random Access Memory, RAM), etc.
La FIG. 5 es un diagrama esquemático de la estructura de un primer modo de realización de un nodo de almacenamiento del sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención. Tal como se ilustra en la FIG. 5, el equipo incluye un módulo 11 de análisis, un módulo 12 de notificación y un módulo 13 de obtención anticipada.
El módulo 11 de análisis está configurado para recibir una solicitud de lectura enviada por un cliente y determinar un bloque de datos a obtener con antelación y un nodo de almacenamiento en el que se encuentra el bloque de datos a obtener con antelación en función de un bloque de datos leído y un umbral establecido de bloques de datos a obtener con antelación.
El módulo 12 de notificación está configurado para enviarle una solicitud de obtención anticipada al nodo de almacenamiento, en donde la solicitud de obtención anticipada incluye información de identificación del bloque de datos a obtener con antelación, la información de identificación se utiliza para identificar de forma unívoca el bloque de datos a obtener con antelación, y hay al menos un bloque de datos que es el bloque de datos a obtener con antelación.
El módulo 13 de obtención anticipada está configurado para leer de un disco el bloque de datos a obtener con antelación determinado por el módulo 11 de análisis de acuerdo con la solicitud de obtención anticipada, y almacenar el bloque de datos a obtener con antelación en un buffer local, de modo que el cliente lea el bloque de datos a obtener con antelación del buffer local.
De acuerdo con el nodo de almacenamiento del sistema de almacenamiento de tabla hash distribuida DHT proporcionado en este modo de realización, el bloque de datos a obtener con antelación se puede determinar en función del bloque de datos leído y el umbral establecido de bloques de datos a obtener con antelación y, a continuación, el bloque de datos a obtener con antelación en el disco se copia al buffer, de modo que cuando se recibe la solicitud de lectura desde el cliente, el bloque de datos a obtener con antelación se puede leer directamente del buffer, mejorándose de este modo la eficiencia del acceso a los datos para cada uno de los nodos de almacenamiento del sistema y economizando los recursos del sistema.
5
10
15
20
25
30
35
40
45
50
La FIG. 6 es un diagrama esquemático de la estructura de un segundo modo de realización de un nodo de almacenamiento del sistema de almacenamiento de tabla hash distribuida DHT proporcionado en la presente invención. Tal como se ilustra en la FIG. 6, el equipo incluye un módulo 11 de análisis, un módulo 12 de notificación y un módulo 13 de obtención anticipada.
A partir del modo de realización anterior, el nodo de almacenamiento puede incluir, además:
un módulo 14 de registro, configurado para registrar el bloque de datos leído junto con una marca de tiempo del mismo en una tabla de registro de lecturas, en donde la marca de tiempo sirve para identificar el instante en el que se ha leído el bloque de datos. La solicitud de obtención anticipada enviada por el módulo 12 de notificación incluye, además, la tabla de registro de lecturas. Asimismo, el nodo de almacenamiento puede incluir además:
un módulo 15 de determinación, configurado para comprobar si el bloque de datos a obtener con antelación se debe adquirir con antelación en función del contador del bloque de datos leído y la marca de tiempo con el último tiempo de lectura en la tabla de registro de lecturas registrados por el módulo 14 de registro.
Si el módulo 15 de determinación comprueba que el contador de bloques de datos leídos es mayor o igual que el umbral establecido de bloques de datos leídos, y la diferencia entre el instante de obtención anticipada actual y el último tiempo de lectura indicado por la marca de tiempo es menor o igual que un tiempo establecido, el módulo 13 de obtención anticipada lee del disco el bloque de datos a obtener con antelación, y almacena en el buffer local el bloque de datos a obtener con antelación.
Asimismo, el nodo de almacenamiento puede incluir, además:
un módulo 16 de actualización, configurado para borrar un bloque de datos leído previamente en función de la marca de tiempo si el contador del bloque de datos registrado en la tabla de registro de lecturas por el módulo 14 de registro es mayor que el umbral establecido de bloques de datos leídos, de modo que el contador del bloque de datos registrado en la tabla de registro es igual al umbral establecido de bloques de datos leídos.
Además, el módulo 11 de análisis se puede configurar específicamente para
determinar el contador del bloque de datos a obtener con antelación de acuerdo con el umbral establecido de bloques de datos a obtener con antelación;
determinar la información de identificación del bloque de datos a obtener con antelación a partir de la información de identificación del bloque de datos leído, en donde la información de identificación consta de un prefijo y un número; el prefijo es un identificador único de los datos brutos a los que pertenece el bloque de datos, y el número identifica la posición del bloque de datos en los datos brutos; y
realizar una operación hash con el bloque de datos a obtener con antelación en función del prefijo y el número del bloque de datos a obtener con antelación, con el fin de determinar el nodo de almacenamiento del bloque de datos a obtener con antelación.
Asimismo, el módulo 13 de obtención anticipada se puede configurar, además, específicamente para
comprobar si el bloque de datos a obtener con antelación existe en el buffer local de acuerdo con la información de identificación; y
si el bloque de datos a obtener con antelación no se encuentra en el buffer local, leer del disco el bloque de datos a obtener con antelación de acuerdo con la información de identificación, y almacenar en el buffer local el bloque de datos a obtener con antelación, de tal modo que el cliente lee del buffer local el bloque de datos a obtener con antelación.
El equipo incluye además:
un módulo 17 de regrabación, configurado para volver a grabar en el buffer local el bloque de datos a obtener con antelación, y volver a grabar de forma sincronizada en el disco el mismo bloque de datos; y configurado, además, para volver a grabar en el disco el bloque de datos, y volver a grabar de forma sincronizada en el buffer local el mismo bloque de datos a obtener con antelación.
El nodo de almacenamiento del sistema de almacenamiento de tabla hash distribuida DHT que se ilustra en la FIG. 5 y la FIG. 6 puede ser cualquier nodo de almacenamiento en un sistema de almacenamiento DHT, y el hardware de almacenamiento que se ilustra en la FIG. 5 y la FIG. 6 incluye, por ejemplo, el buffer, el disco, una CPU, una placa maestra y una tarjeta de red. Para las operaciones específicas realizadas por el nodo de almacenamiento al ejecutar el método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT se puede hacer referencia a las descripciones en los modos de realización anteriores. La FIG. 7 ilustra el proceso principal en el que un nodo de almacenamiento de un sistema de almacenamiento de tabla hash distribuida DHT procesa una solicitud de lectura proporcionado en un modo de realización de la presente invención. La FIG. 7 no muestra todos los módulos que hay en el nodo de almacenamiento ni las operaciones relevantes de los mismos, y
9
5
10
15
20
25
30
35
40
45
50
para los detalles del proceso de ejecución por parte del nodo de almacenamiento de una operación de obtención anticipada se puede hacer referencia a los métodos descritos en los modos de realización anteriores. Haciendo referencia a la FIG. 7, el proceso incluye específicamente:
S401: Un cliente le solicita a un nodo de almacenamiento que lea el bloque de datos D1.
Se debe observar que, como lo que se proporciona en la presente invención es un método de obtención anticipada de bloques de datos para un sistema de almacenamiento DHT, el módulo funcional relevante para ejecutar una operación de obtención anticipada se describe esencialmente en los modos de realización de los nodos de almacenamiento del sistema de almacenamiento DHT que se proporcionan en la presente invención, y el módulo funcional relevante para ejecutar una solicitud de lectura no se describe de forma específica. Sin embargo, el módulo para ejecutar la operación de obtención anticipada y el módulo para ejecutar la operación de lectura pueden ser en realidad la misma unidad funcional en el nodo de almacenamiento. Para simplificar la descripción, el módulo 13 de obtención anticipada que se proporciona en el modo de realización de la presente invención puede servir como módulo de ejecución para ejecutar la operación de obtención anticipada y la operación de lectura.
Por consiguiente, en el paso S401, el módulo que recibe la solicitud para leer el bloque de datos D1 enviada por el cliente es el módulo 13 de obtención anticipada.
S402: El módulo 13 de obtención anticipada del nodo de almacenamiento busca el bloque D1 en un buffer, y comprueba si el bloque de datos D1 ya se ha obtenido previamente.
S403: Si el bloque de datos D1 ya se ha obtenido, el módulo 13 de obtención anticipada obtiene directamente el
bloque de datos D1 del buffer y le devuelve el bloque de datos D1 al cliente.
S404: Si el bloque de datos D1 no se ha obtenido previamente, el módulo 13 de obtención anticipada lee el bloque de datos D1 de un disco.
S405: Devolverle el bloque de datos D1 al cliente.
S406: El módulo 14 de registro anota <D1> (incluida la marca de tiempo de D1) al registro de lecturas.
S407: El módulo 13 de obtención anticipada le notifica al módulo 11 de análisis el bloque de datos leído.
S408: El módulo 11 de análisis analiza el contador de bloques de datos que se deben adquirir a continuación anticipadamente y un nodo de almacenamiento; si el bloque de datos a obtener con antelación se encuentra en el nodo de almacenamiento local se ejecutan los pasos S407 y S408; y si el bloque de datos a obtener con antelación se encuentra en otro nodo de almacenamiento, se ejecuta el paso s409.
S409: El módulo 12 de notificación le envía una solicitud de obtención anticipada al módulo 13 de obtención anticipada.
S410: El módulo 15 de determinación determina si hay que leer anticipadamente el bloque de datos a obtener con antelación; y, si es así, se ejecuta el paso S411.
S411: El módulo 13 de obtención anticipada lee el bloque de datos del disco local y lo almacena en el buffer.
S412: El módulo 12 de notificación puede enviarle una solicitud de obtención anticipada a otro nodo de almacenamiento.
En este modo de realización únicamente se describen la operación de lectura realizada después de que cualquier nodo de almacenamiento del sistema de almacenamiento DHT haya recibido la solicitud de lectura enviada por el cliente y el proceso principal para activar la operación de obtención anticipada, y para los detalles del proceso de ejecución por parte del nodo de almacenamiento de la operación de obtención anticipada se puede hacer referencia a los métodos descritos en los modos de realización anteriores, por lo que no se vuelven a describir en la presente solicitud.
La FIG. 8 ilustra el proceso principal que realiza un nodo de almacenamiento del sistema de almacenamiento de tabla hash distribuida DHT proporcionado en un modo de realización de la presente invención después de recibir una solicitud de obtención anticipada. La FIG. 8 no muestra todos los módulos que hay en el nodo de almacenamiento ni las operaciones relevantes de los mismos, y para los detalles del proceso de ejecución por parte del nodo de almacenamiento de una operación de obtención anticipada se puede hacer referencia a los métodos descritos en los modos de realización anteriores. Tal como se ilustra en la FIG. 8, el proceso incluye específicamente:
S501: Un módulo 13 de obtención anticipada del nodo de almacenamiento recibe una solicitud de obtención anticipada de un nodo Dn enviada por otro nodo de almacenamiento, en donde la solicitud incluye el registro de lecturas de los datos brutos.
5
10
15
20
25
30
35
40
45
50
S502: El módulo 13 de obtención anticipada comprueba si el bloque de datos Dn existe en un buffer; si el bloque de datos Dn se encuentra en el buffer, ello indica que se ha realizado una operación de obtención anticipada del bloque de datos, y la operación de obtención anticipada ya no se lleva a cabo; en caso contrario, se ejecuta el paso S503.
S503: El módulo 13 de obtención anticipada le entrega el registro de lecturas de los datos brutos al módulo 15 de determinación.
S504: El módulo 15 de determinación determina si hay que copiar el bloque Dn del disco local a un buffer; si es es así, se ejecuta el paso S505.
S505: El módulo 15 de determinación le envía una instrucción de ejecución de obtención anticipada al módulo 13 de obtención anticipada.
S506: El módulo 13 de obtención anticipada lee el bloque Dn del disco local.
S507: El módulo 13 de obtención anticipada almacena el bloque Dn leído en el buffer local.
La presente invención proporciona, además, un modo de realización de un sistema de almacenamiento de tabla hash distribuida DHT, y el sistema incluye múltiples nodos de almacenamiento proporcionados en los modos de realización de la presente invención. Para los diagramas estructurales del sistema se puede hacer referencia a la FIG. 5 y la FIG. 6.
En un modo de realización de ejemplo, el sistema de almacenamiento DHT puede incluir un primer nodo de almacenamiento y un segundo nodo de almacenamiento.
El primer nodo de almacenamiento está configurado para recibir una solicitud de lectura enviada por un cliente,
determinar un bloque de datos a obtener con antelación y un segundo nodo de almacenamiento en el que se
encuentra el bloque de datos a obtener con antelación, en función del bloque de datos leído y un umbral establecido de bloques de datos a obtener con antelación, y enviarle una solicitud de obtención anticipada al segundo nodo de almacenamiento, en donde el primer nodo de almacenamiento y el segundo nodo de almacenamiento son el mismo nodo o nodos de almacenamiento diferentes, la solicitud de obtención anticipada incluye información de identificación del bloque de datos a obtener con antelación, y la información de identificación se utiliza para identificar de forma unívoca el bloque de datos a obtener con antelación.
El segundo nodo de almacenamiento está configurado para leer de un disco el bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada enviada por el primer nodo de almacenamiento, y almacenar en un buffer local el bloque de datos a obtener con antelación, de modo que el cliente lee el bloque de datos a obtener con antelación del buffer local del segundo nodo de almacenamiento.
Por otra parte, el primer nodo de almacenamiento se puede configurar, además, para registrar el bloque de datos leído y la marca de tiempo del mismo en una tabla de registro de lecturas, en donde la marca de tiempo sirve para identificar el instante en el que se ha leído el bloque de datos, y la tabla de registro de lecturas corresponde al mismo segmento de datos brutos.
La solicitud de obtención anticipada enviada por el primer nodo de almacenamiento al segundo nodo de almacenamiento incluye, además, la tabla de registro de lecturas.
Por otra parte, el segundo nodo de almacenamiento se puede configurar, además, para determinar si es necesario adquirir anticipadamente el bloque de datos a obtener con antelación en función del contador del bloque de datos leído y la marca de tiempo con el último tiempo de lectura en la tabla de registro de lectura.
Si el contador del bloque de datos leído es mayor o igual que un umbral establecido de bloques de datos leídos, y la diferencia entre el instante de obtención anticipada actual y el último tiempo de lectura que se indica en la marca de tiempo es menor o igual que el tiempo establecido, el bloque de datos a obtener con antelación se lee del disco, y el bloque de datos a obtener con antelación se almacena en el buffer local.
Por otra parte, el primer nodo de almacenamiento se puede configurar específicamente, además, para determinar el contador del bloque de datos a obtener con antelación en función del umbral establecido de bloques de datos a obtener con antelación.
La información de identificación del bloque de datos a obtener con antelación se determina a partir de la información de identificación del bloque de datos leído, en donde la información de identificación consta de un prefijo y un número, el prefijo es un identificador único de los datos brutos a los que pertenece el bloque de datos, y el número identifica la posición del bloque de datos en los datos brutos.
La operación hash se realiza con el bloque de datos a obtener con antelación en función del prefijo y el número del bloque de datos a obtener con antelación, con el fin de determinar el bloque de datos a obtener con antelación y el segundo nodo de almacenamiento en el que se encuentra el bloque de datos a obtener con antelación, y la solicitud de obtención anticipada se le envía al segundo nodo de almacenamiento.
11
En el sistema de almacenamiento de tabla hash distribuida DHT que se proporciona en este modo de realización, cada uno de los nodos de almacenamiento interactúa ejecutando un proceso de una operación de obtención anticipada de datos, para el que se puede hacer referencia al método de obtención anticipada de datos para la tabla hash distribuida DHT que se proporciona en la presente invención, por lo que no se vuelve a describir en la presente 5 solicitud.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT que comprende un primer nodo de almacenamiento y un segundo nodo de almacenamiento, comprendiendo dicho método de obtención anticipada de datos:
    recibir (S101), por parte de un primer nodo de almacenamiento, una solicitud de lectura para leer un bloque de datos enviada por un cliente que ha localizado el primer nodo de almacenamiento mediante un algoritmo DHT;
    determinar (S102), por parte del primer nodo de almacenamiento, un bloque de datos a obtener con antelación en función de la lectura de un bloque de datos leído de acuerdo con la solicitud de lectura y un umbral establecido de bloques de datos a obtener con antelación;
    determinar (S102), por parte del primer nodo de almacenamiento, un segundo nodo de almacenamiento en el que se encuentra el bloque de datos a obtener con antelación en función del bloque de datos a obtener con antelación;
    enviar (S102), por parte del primer nodo de almacenamiento, una solicitud de obtención anticipada al segundo nodo de almacenamiento, en donde la solicitud de obtención anticipada comprende información de identificación del bloque de datos a obtener con antelación, y la información de identificación se utiliza para identificar de forma unívoca el bloque de datos a obtener con antelación; y
    leer (S103) de un disco, por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada, y
    almacenar (S103), por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación en un buffer (memoria intermedia de almacenamiento temporal) local del segundo nodo de almacenamiento, de modo que el cliente lee el bloque de datos a obtener con antelación del buffer local del segundo nodo de almacenamiento.
  2. 2. El método de acuerdo con la reivindicación 1, que comprende además:
    registrar, por parte del primer nodo de almacenamiento, el bloque de datos leído y una marca de tiempo del bloque de datos leído en una tabla de registro de lecturas, en donde la marca de tiempo se utiliza para identificar el instante en el que se ha leído el bloque de datos, y la tabla de registro de lecturas corresponde a un segmento de datos brutos consecutivos;
    en donde la solicitud de obtención anticipada enviada por el primer nodo de almacenamiento al segundo nodo de almacenamiento incluye, además, la tabla de registro de lecturas.
  3. 3. El método de acuerdo con la reivindicación 2, en donde antes de leer del disco, por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada, el método comprende además:
    determinar, por parte del segundo nodo de almacenamiento, si es necesario anticipar la lectura del bloque de datos a obtener con antelación en función de un contador del bloque de datos leído y la marca de tiempo con el último tiempo de lectura en la tabla de registro de lectura; y
    leer del disco, por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación si el contador del bloque de datos leído es mayor o igual que un umbral de bloques de datos leídos y la diferencia entre el instante de obtención anticipada actual y el último tiempo de lectura que indica la marca de tiempo es menor o igual que un tiempo establecido, y almacenar el bloque de datos a obtener con antelación en el buffer local del segundo nodo de almacenamiento.
  4. 4. El método de acuerdo con la reivindicación 3, que comprende además:
    borrar, por parte del segundo nodo de almacenamiento, un bloque de datos leído previamente en función de una marca de tiempo si el contador del bloque de datos en la tabla de registro de lecturas es mayor que el umbral establecido de bloques de datos leídos, de tal modo que el contador del bloque de datos en la tabla de registro de lecturas sea igual al umbral de bloques de datos leídos.
  5. 5. El método de acuerdo con una cualquiera de las reivindicaciones 1 a 4, en donde la determinación, por parte del primer nodo de almacenamiento, del bloque de datos a obtener con antelación en función del bloque de datos leído y el umbral establecido de bloques de datos a obtener con antelación comprende:
    determinar, por parte del primer nodo de almacenamiento, un contador del bloque de datos a obtener con antelación de acuerdo con el umbral establecido de bloques de datos a obtener con antelación;
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    determinar, por parte del primer nodo de almacenamiento, la información de identificación del bloque de datos a obtener con antelación a partir de la información de identificación del bloque de datos leídos, en donde la información de identificación consta de un prefijo y un número, el prefijo es un identificador único de los datos brutos datos a los que pertenece el bloque de datos leído, y el número identifica la posición del bloque de datos leído en los datos brutos; y
    realizar una operación hash (aleatorización) con el bloque de datos a obtener con antelación en función del prefijo y el número del bloque de datos a obtener con antelación, con el fin de determinar el bloque de datos a obtener con antelación y el segundo nodo de almacenamiento en el que se encuentra bloque de datos a obtener con antelación.
  6. 6. El método de acuerdo con la reivindicación 5, en donde la lectura del disco, por parte del segundo nodo de almacenamiento, del bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada consiste específicamente en:
    comprobar, por parte del segundo nodo de almacenamiento, si el bloque de datos a obtener con antelación existe en el buffer local de acuerdo con la información de identificación; y
    si el bloque de datos a obtener con antelación no se encuentra en el buffer local, leer del disco, por parte del segundo nodo de almacenamiento, el bloque de datos a obtener con antelación de acuerdo con la información de identificación.
  7. 7. Un sistema de almacenamiento de tabla hash distribuida DHT, que comprende un primer nodo de almacenamiento y un segundo nodo de almacenamiento, en donde
    el primer nodo de almacenamiento está configurado para recibir una solicitud de lectura para leer un bloque de datos enviada por un cliente que ha localizado el primer nodo de almacenamiento mediante un algoritmo DHT, para determinar un bloque de datos a obtener con antelación en función de la lectura de un bloque de datos leído de acuerdo con la solicitud de lectura de datos y un umbral establecido de bloques de datos a obtener con antelación, para determinar un segundo nodo de almacenamiento donde se encuentra el bloque de datos a obtener con antelación de acuerdo con el bloque de datos a obtener con antelación y para
    enviarle una solicitud de obtención anticipada al segundo nodo de almacenamiento, en donde la solicitud de obtención anticipada comprende información de identificación del bloque de datos a obtener con antelación, y la información de identificación se utiliza para identificar de forma unívoca el bloque de datos a obtener con antelación; y
    el segundo nodo de almacenamiento está configurado para leer de un disco el bloque de datos a obtener con antelación de acuerdo con la solicitud de obtención anticipada enviada por el primer nodo de almacenamiento, y para
    almacenar el bloque de datos a obtener con antelación en un buffer local del segundo nodo de almacenamiento, de tal modo que el cliente lee el bloque de datos a obtener con antelación del buffer local del segundo nodo de almacenamiento;
    en donde el cliente, el primer nodo y el segundo nodo son entidades distintas interconectadas entre sí mediante el algoritmo DHT.
  8. 8. El sistema de almacenamiento de tabla hash distribuida DHT de acuerdo con la reivindicación 7, en donde el primer nodo de almacenamiento está configurado, además, para registrar el bloque de datos leído y una marca de tiempo del bloque de datos leído en una tabla de registro de lecturas, en donde la marca de tiempo se utiliza para identificar el instante en el que se ha leído el bloque de datos, y la tabla de registro de lecturas corresponde a un segmento de los datos brutos;
    en donde que la solicitud de obtención anticipada enviada por el primer nodo de almacenamiento al segundo nodo de almacenamiento comprende, además, la tabla de registro de lecturas.
  9. 9. El sistema de almacenamiento de tabla hash distribuida DHT de acuerdo con la reivindicación 8, en donde el segundo nodo de almacenamiento está configurado, además, para determinar si es necesario leer anticipadamente el bloque de datos a obtener con antelación de acuerdo con un contador del bloque de datos leído y una marca de tiempo con el último tiempo de lectura en la tabla de registro de lecturas; y
    leer del disco el bloque de datos a obtener con antelación si el contador del bloque de datos leído es mayor o igual que un umbral establecido de bloques de datos leídos, y una diferencia entre el instante de obtención anticipada actual y el último tiempo de lectura indicado por la marca de tiempo es menor o igual que un tiempo establecido, y almacenar el bloque de datos a obtener con antelación en el buffer local del segundo nodo de almacenamiento.
  10. 10. El sistema de almacenamiento de tabla hash distribuida DHT de acuerdo con una cualquiera de las reivindicaciones 7 a 9, en donde el primer nodo de almacenamiento está configurado específicamente para determinar un contador del bloque de datos a obtener con antelación de acuerdo con el umbral establecido de bloques de datos a obtener con antelación;
    5 determinar la información de identificación del bloque de datos a obtener con antelación a partir de la información
    de identificación del bloque de datos leído, en donde la información de identificación consta de un prefijo y un número, el prefijo es un identificador único de los datos brutos a los que pertenece el bloque de datos, y el número identifica la posición del bloque de datos leído en los datos brutos.
ES16157884.4T 2011-01-13 2011-06-03 Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema Active ES2690454T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2011100068138A CN102111448B (zh) 2011-01-13 2011-01-13 分布式哈希表dht存储系统的数据预取方法、节点和系统
CN201110006813 2011-01-13

Publications (1)

Publication Number Publication Date
ES2690454T3 true ES2690454T3 (es) 2018-11-21

Family

ID=44175474

Family Applications (2)

Application Number Title Priority Date Filing Date
ES16157884.4T Active ES2690454T3 (es) 2011-01-13 2011-06-03 Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema
ES11783092.7T Active ES2586907T3 (es) 2011-01-13 2011-06-03 Procedimiento de extracción previa de datos, nodo y sistema para sistema de memoria de tabla hash distribuida (DHT)

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES11783092.7T Active ES2586907T3 (es) 2011-01-13 2011-06-03 Procedimiento de extracción previa de datos, nodo y sistema para sistema de memoria de tabla hash distribuida (DHT)

Country Status (5)

Country Link
US (1) US8738861B2 (es)
EP (2) EP2562991B1 (es)
CN (1) CN102111448B (es)
ES (2) ES2690454T3 (es)
WO (1) WO2011144175A1 (es)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064762B (zh) * 2012-12-25 2015-12-02 华为技术有限公司 重删备份数据的恢复方法和装置
CN103118099B (zh) * 2013-01-25 2016-03-02 福建升腾资讯有限公司 基于散列算法的图形图像缓存方法
CN104615599A (zh) * 2013-11-05 2015-05-13 中国空间技术研究院 海量数据管理方法和设备
CN103678523B (zh) * 2013-11-28 2018-03-09 华为技术有限公司 分布式高速缓存cache数据访问方法和装置
US9535842B2 (en) * 2014-08-28 2017-01-03 Oracle International Corporation System and method for performing message driven prefetching at the network interface
CN105574008B (zh) * 2014-10-11 2020-01-31 华为技术有限公司 应用于分布式文件系统的任务调度方法和设备
CN105740166B (zh) * 2014-12-11 2020-05-19 中兴通讯股份有限公司 缓存的读取、读取处理方法及装置
CN104683459B (zh) * 2015-02-13 2018-05-11 华为技术有限公司 一种发送业务数据的方法和存储系统
CN105159604A (zh) * 2015-08-20 2015-12-16 浪潮(北京)电子信息产业有限公司 一种磁盘数据读写方法和系统
US20180275919A1 (en) * 2015-12-23 2018-09-27 Hewlett Packard Enterprise Development Lp Prefetching data in a distributed storage system
CN107733952A (zh) * 2016-08-12 2018-02-23 中国电信股份有限公司 用于提供差异化缓存服务的方法、装置和系统
CN106250064B (zh) * 2016-08-19 2020-05-12 深圳大普微电子科技有限公司 固态硬盘控制装置和基于学习的固态硬盘数据存取方法
CN107967273A (zh) * 2016-10-19 2018-04-27 华为技术有限公司 数据获取方法、数据节点及系统
CN106897360A (zh) * 2017-01-09 2017-06-27 深圳市中博科创信息技术有限公司 基于分布式文件系统的文件处理方法及装置
CN108934187B (zh) * 2017-03-29 2020-08-25 华为技术有限公司 分布式存储系统的访问方法和相关装置和相关系统
CN107229573B (zh) * 2017-05-22 2020-04-28 上海天玑数据技术有限公司 一种基于固态硬盘的弹性高可用缓存方法
US10158891B1 (en) * 2017-06-05 2018-12-18 Verizon Digital Media Services Inc. Prefetcher with adaptive stream segment prefetch window based on client associated thresholds
CN107562385B (zh) * 2017-09-13 2020-08-04 郑州云海信息技术有限公司 分布式存储客户端读取数据的方法、装置和设备
WO2019127487A1 (zh) * 2017-12-29 2019-07-04 华为技术有限公司 一种数据预取方法、装置和存储设备
CN108491166B (zh) * 2018-03-27 2021-05-07 江苏菲利斯通信息科技有限公司 面向光盘库的读数据缓存管理方法
CN118069611B (zh) * 2020-01-17 2025-01-28 华为技术有限公司 一种文件系统的克隆方法及装置
CN111506778B (zh) * 2020-04-14 2023-04-28 中山大学 一种基于K-Truss图的存储系统缓存预取方法、系统及介质
CN113849281B (zh) * 2020-06-28 2026-01-27 华为技术有限公司 任务处理的方法、装置、电子设备和计算机可读存储介质
CN112035498B (zh) * 2020-08-31 2023-09-05 北京奇艺世纪科技有限公司 数据块调度方法、装置、调度层节点及存储层节点
CN112463872A (zh) * 2020-11-04 2021-03-09 中国建设银行股份有限公司 一种可视化指标数据获取方法、装置、系统及介质
US11782637B2 (en) 2021-01-05 2023-10-10 Red Hat, Inc. Prefetching metadata in a storage system
CN112799589B (zh) * 2021-01-14 2023-07-14 新华三大数据技术有限公司 一种数据读取方法及装置
CN113641648B (zh) * 2021-08-18 2023-04-21 山东省计算中心(国家超级计算济南中心) 一种分布式云安全存储方法、系统和存储介质
CN116804908A (zh) * 2022-03-16 2023-09-26 中兴通讯股份有限公司 数据读写方法、设备、存储节点及存储介质
CN117348793A (zh) * 2022-06-28 2024-01-05 华为技术有限公司 一种数据读取方法、数据加载装置及通信系统
US12298908B2 (en) * 2023-06-08 2025-05-13 Dell Products L.P. Prefetching by logical address owner in response to peer node mapping request
CN116955223B (zh) * 2023-09-18 2024-01-23 浪潮电子信息产业股份有限公司 一种数据预取方法、系统、电子设备及计算机存储介质
US12687981B2 (en) 2023-10-04 2026-07-21 SanDisk Technologies, Inc. Key-group based data management in KV SSD
CN117785043A (zh) * 2023-12-26 2024-03-29 摩尔线程智能科技(北京)有限责任公司 用于芯片的数据读取方法、芯片、计算机设备及存储介质
CN120950006B (zh) * 2025-10-14 2026-02-17 济南浪潮数据技术有限公司 元数据的预取方法和装置、存储介质、电子设备及程序

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4116413B2 (ja) * 2002-12-11 2008-07-09 株式会社日立製作所 プリフェッチアプライアンスサーバ
US7353339B2 (en) * 2003-12-24 2008-04-01 Intel Corporation Adaptive caching
CN101715650B (zh) * 2007-06-28 2012-03-21 纽约市哥伦比亚大学信托人 机顶盒对等端辅助的视频点播
CN101521553B (zh) * 2008-02-29 2011-08-03 突触计算机系统(上海)有限公司 对等网络视频点播系统中用于提供数据分片的方法和装置
US8320916B2 (en) * 2008-05-20 2012-11-27 Alcatel Lucent Method and apparatus for pre-fetching data in a mobile network environment using edge data storage
CN101304437A (zh) * 2008-06-20 2008-11-12 南京大学 具有高播放连续度的p2p流媒体系统的设计方法
WO2010076536A2 (fr) * 2008-12-30 2010-07-08 France Telecom Procède de traitement de requêtes émises par un client

Also Published As

Publication number Publication date
EP3131265A1 (en) 2017-02-15
EP2562991A4 (en) 2013-08-14
EP2562991B1 (en) 2016-05-18
CN102111448B (zh) 2013-04-24
EP3131265B1 (en) 2018-08-15
US8738861B2 (en) 2014-05-27
US20130097402A1 (en) 2013-04-18
EP2562991A1 (en) 2013-02-27
CN102111448A (zh) 2011-06-29
WO2011144175A1 (zh) 2011-11-24
ES2586907T3 (es) 2016-10-19

Similar Documents

Publication Publication Date Title
ES2586907T3 (es) Procedimiento de extracción previa de datos, nodo y sistema para sistema de memoria de tabla hash distribuida (DHT)
Monga et al. ElfStore: A resilient data storage service for federated edge and fog resources
US10887389B2 (en) Decentralized immutable storage blockchain configuration
CN113672175B (zh) 分布式对象存储方法、装置和设备及计算机存储介质
Lai et al. Atlas: Baidu's key-value storage system for cloud data
Desnoyers et al. TSAR: A two tier sensor storage architecture using interval skip graphs
US11245774B2 (en) Cache storage for streaming data
CN104811493B (zh) 一种网络感知的虚拟机镜像存储系统及读写请求处理方法
US20040030731A1 (en) System and method for accessing files in a network
JP2018133086A (ja) ハイブリッドメモリーモジュール及びその動作方法
JP2008234445A (ja) コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム
US10133673B2 (en) Cache optimization based on predictive routing
CN103856516B (zh) 数据存储、读取方法及数据存储、读取装置
CN103297490B (zh) 信息处理装置、分布式处理系统和分布式处理方法
CN102724314A (zh) 一种基于元数据管理的分布式缓存客户端
WO2021143351A1 (zh) 分布式检索方法、装置、系统、计算机设备及存储介质
US20170351620A1 (en) Caching Framework for Big-Data Engines in the Cloud
US9071584B2 (en) Multi-tier bandwidth-centric deduplication
CN104052824A (zh) 分布式缓存方法及系统
CN105007193A (zh) 一种多层信息处理方法、系统及集群管理节点
CN102752399A (zh) 一种基于云存储的点对点安全文件共享方法
CN104683374A (zh) 一种分布式存储的缓存更新方法及分布式存储系统
Lee et al. Understanding processing overheads of network coding-based content distribution in VANETs
CN106547477A (zh) 用于在线地减少缓存设备的方法和装置
George et al. Hadoop mapreduce for tactical clouds