ES2341245T3 - Control granular de un sistema de autorizacion de la informacion replicada por limitacion y sin limitacion. - Google Patents
Control granular de un sistema de autorizacion de la informacion replicada por limitacion y sin limitacion. Download PDFInfo
- Publication number
- ES2341245T3 ES2341245T3 ES04102757T ES04102757T ES2341245T3 ES 2341245 T3 ES2341245 T3 ES 2341245T3 ES 04102757 T ES04102757 T ES 04102757T ES 04102757 T ES04102757 T ES 04102757T ES 2341245 T3 ES2341245 T3 ES 2341245T3
- Authority
- ES
- Spain
- Prior art keywords
- resource
- resources
- machine
- metadata
- limit value
- 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.)
- Expired - Lifetime
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/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Hardware Redundancy (AREA)
- Glass Compositions (AREA)
- Devices For Checking Fares Or Tickets At Control Points (AREA)
- Storage Device Security (AREA)
Abstract
Un procedimiento implementado por computadora para reproducir recursos, en el que cada recurso está asociado con unos metadatos (830) y un contenido (825), incluyendo cada metadato uno o más campos que son actualizados siempre que el contenido del recurso asociado es modificado y un valor límite (835) independiente de cualquier cambio local efectuado en el contenido, siendo cada valor límite un valor asignado al recurso respectivo y utilizado en la resolución de conflictos de actualización, comprendiendo el procedimiento: determinar (610 - 625) si un primer recurso (822) que reside en una primera máquina (110, 181, 201, 301, 501, 805) debe ser utilizado para actualizar un segundo recurso (822) que reside en una segunda máquina (110, 181, 202, 302, 502, 805) mediante la comparación del valor límite del primer recurso con el valor límite del segundo recurso; y si el valor límite del primer recurso tiene una prioridad más alta que el valor límite del segundo recurso, actualizar (630) el segundo recurso a partir del primer recurso.
Description
Control granular de un sistema de autorización
de la información replicada por limitación y sin limitación.
La presente invención se refiere, en general, al
campo de los dispositivos informáticos y, más concretamente, a los
sistemas de replicación de recursos.
Los sistemas de replicación multimaster
oportunistas permiten cambios sin restricciones del contenido
replicado de cualquier máquina que participa en un conjunto de
reproducciones determinado. Estos cambios potencialmente
conflictivos se concilian bajo el control del sistema de replicación
utilizando unos criterios de reproducción de conflictos que
definen, para cada situación conflictiva, qué cambio conflictivo
tiene prioridad respecto de otros. En el pasado, los criterios
principales de resolución de conflictos utilizados han sido el
tiempo físico o lógico del cambio, teniendo prioridad el cambio más
reciente respecto de todos los demás.
Sin embargo, existe una pluralidad de supuestos
en los que los usuarios o las aplicaciones pueden desear contar con
vías adicionales para controlar qué actualización concurrente tiene
prioridad respecto de las demás y, a la inversa, qué
actualizaciones deben ceder la prioridad. Lo que se necesita es un
procedimiento y un sistema flexibles para controlar qué contenido
tiene prioridad y es replicado.
El sistema Oracle8i Replication - Release 8.1.5,
febrero 1999, se refiere a la replicación en sistemas de bases de
datos distribuidas. Cuando dos transacciones que proceden de sitios
diferentes actualizan la misma fila aproximadamente al mismo
tiempo, puede producirse un conflicto de actualizaciones. El sitio
de recepción detecta un conflicto de actualizaciones si hay alguna
diferencia entre los antiguos valores de la fila replicada, esto
es, el valor antes de la modificación y los valores actuales de la
misma fila en el sitio de recepción. Hay procedimientos de
resolución de conflictos preconstruidas que pueden emplearse para
resolver conflictos que incluyen los procedimientos del valor de
marcado temporal primero y último, los grupos de prioridad y la
prioridad de sitios. El procedimiento de marcado temporal más
temprano aplica los cambios procedentes del sitio con el marcado
temporal más temprano y el procedimiento de marcado temporal más
tardío aplica a los cambios procedentes del sitio con el tiempo de
marcado temporal más tardío. Los grupos prioritarios permiten la
asignación de un nivel de prioridad para cada valor posible de una
columna concreta. Si se detecta un conflicto, la tabla cuya columna
de "prioridad" tiene un valor menor es actualizada utilizando
los datos procedentes de la tabla del valor prioritario más alto.
La prioridad de sitios es una forma especializada de los grupos
prioritarios. Para detectar y resolver el conflicto de
actualizaciones para una fila, el sitio de propagación debe enviar
una determinada cantidad de datos acerca de las nueva y antigua
versiones de la fila hasta el sitio de recepción. La cantidad de
datos que debe ser comunicada puede reducirse mediante el envío de
los valores antiguos solo si se necesitan para detectar y resolver
conflictos, así como los nuevos valores de cada columna actualizada
de cada grupo de columnas.
El sistema Oracle&i - Replication
Management API Reference - Release 2 (8.1.6), diciembre 1999, es una
descripción de la API de gestión de reproducciones que explica la
forma en la que pueden implementarse los procedimientos de
resolución de conflictos.
Constituye un objetivo de la presente invención
reducir la sobrecarga de la red en los sistemas de replicación de
recursos.
Este objetivo se consigue mediante el objeto de
las reivindicaciones independientes.
En las reivindicaciones dependientes se exponen
formas de realización de la invención.
Se proporciona un procedimiento y un sistema
para controlar qué contenido consigue prioridad cuando se reproduce.
Un conjunto de reproducciones está compuesto por un conjunto de
recursos. Cada recurso está asociado con datos de recursos y
metadatos de recursos. Los datos de recursos, en el caso de
archivos, incluye los contenidos y los atributos de los archivos,
mientras que los metadatos de recursos incluyen los atributos
adicionales que son relevantes para negociar la sincronización
durante la replicación. Un campo suplementario denominado "valor
límite" es añadido a los metadatos asociado con cada recurso.
Durante la sincronización, se comparan los valores límite. El
recurso con un valor límite más alto incluye el contenido que está
controlando y que consigue ser replicado. Si los valores límite
son iguales (y mayores que un valor determinado), el recurso de
control se determina en base a otros
metadatos.
metadatos.
Los valores límite son independientes de los
datos locales respecto del contenido. Esto es, aunque un cambio
local de contenido pueda afectar a otros metadatos (por ejemplo un
marcado temporal, un valor de reloj o de otro tipo), el cambio
local de contenido no afecta al valor límite a menos que se indique
lo contrario.
En un aspecto de la invención, un recurso puede
tener un valor límite que indique que el recurso no está
limitado. Si un recurso no está limitado, ello indica que el recurso
no debe ser transmitido desde la máquina sobre la cual el recurso
está almacenado. Cuando un recurso contendiente es recibido con
vistas a su sincronización, un recurso que no está limitado pueden
(y es sustituido durante la sincronización) frente a los recursos
que están limitados.
En otro aspecto de la invención, solo se
transmiten las diferencias entre recursos en una máquina con un
recurso ganador y una máquina de contenido perdedor. Por ejemplo,
unos metadatos de recurso pueden ser transmitidos sin transmitir el
contenido de los recursos. Otro ejemplo puede ser que las
diferencias en el contenido de los recursos pueden ser transmitidas
durante la sincronización.
Otras ventajas se pondrán de manifiesto a partir
de la descripción detallada subsecuente tomada en combinación con
los dibujos, en los cuales:
\vskip1.000000\baselineskip
La Figura 1 es un diagrama de bloques que
representa un sistema informático dentro del cual puede ser
incorporada la presente invención;
la Fig. 2 es un diagrama de bloques que
representa un sistema de replicación de recursos que incluye dos
máquinas que reproducen recursos de acuerdo con diversos aspectos
de la invención;
la Fig. 3 es un diagrama de bloques que
representa un sistema en el cual dos máquinas intentan conciliar un
recurso incluido en ambas de acuerdo con diversos aspectos de la
invención;
la Fig. 4 muestra algunos datos de recursos
ejemplares y unos metadatos que pueden ser utilizados destinados a
una máquina de las Figs. 2 y 3 de acuerdo con diversos aspectos de
la invención;
la Fig. 5 muestra algunos datos de recursos
ejemplares y unos metadatos que pueden ser utilizados de acuerdo
con algunos aspectos de la invención;
la Fig. 6 es un diagrama de flujo de datos que
representa genéricamente unas etapas ejemplares que pueden
producirse para sincronizar un recurso entre dos máquinas de acuerdo
con diversos aspectos de la invención;
la Fig. 7 es un diagrama de flujo de datos que
representa genéricamente unas etapas ejemplares que pueden
producirse para llevar a cabo una salvaguardia sin autoridad de
acuerdo con diversos aspectos de la invención; y
la Fig. 8 es un diagrama de bloques que
representa una máquina ejemplar configurada para operar en un
sistema de replicación de recursos de acuerdo con diversos aspectos
de la invención.
\vskip1.000000\baselineskip
La Figura 1 ilustra un ejemplo de un entorno de
sistema informático apropiado 100 sobre el cual puede ser
implementada la invención. El entorno de sistema informático 100 es
solo un ejemplo de un entorno informático apropiado y no pretende
dar a atender limitación alguna acerca del alcance o el uso o la
funcionalidad de la invención. Tampoco el entorno informático 100
debe ser interpretado como dependiente o condicionado con respecto
a uno cualquiera o a una combinación de los componentes ilustrados
en el entorno operativo ejemplar 100.
La invención es operativa con otros entornos o
configuraciones de sistemas informáticos de propósito general o de
propósito especial. Ejemplos de sistemas, entornos y/o
configuraciones informáticas sobradamente conocidas que pueden
resultar apropiados para su uso con la invención incluyen, pero no
se limitan a, computadoras personales, computadoras de servidor,
dispositivos manuales o portátiles, sistemas de microprocesador,
sistemas basados en microcontrolador, descodificadores,
dispositivos electrónicos programables por los consumidores, PCs de
red, minicomputadoras, computadoras centrales, entornos informáticos
distribuidos que incluyan cualquiera de los sistemas o dispositivos
expuestos, y similares.
La invención puede ser descrita en el contexto
general de las instrucciones ejecutables por computadora, como por
ejemplo módulos de programa, que son ejecutados por una computadora.
En general, los módulos de programas incluyen rutinas programas,
objetos, componentes, estructuras de datos, etc., los cuales
ejecutan tareas concretas o implementan tipos de datos abstractos
concretos. La invención puede así mismo llevarse a la práctica en
entornos informáticos distribuidos donde las tareas sean llevadas a
cabo mediante dispositivos de procesamiento distantes que estén
unidos por medio de una red de comunicaciones. En un entorno
informático distribuido, los módulos de programas pueden estar
situados en medios de almacenaje informático tanto locales como
distantes, incluyendo dispositivos de almacenaje de memoria.
Con referencia a la Figura 1, un sistema
ejemplar para la implementación de la invención incluye un
dispositivo informático de propósito general bajo la forma de una
computadora 110. Los componentes de la computadora 110 pueden
incluir, pero no se limitan a, una unidad de procesamiento 120, una
memoria 130 del sistema y un bus 121 del sistema que acopla
diversos componentes del sistema, incluyendo la memoria del sistema,
a la unidad de procesamiento 120. El bus 121 del sistema puede ser
cualquiera de los diversos tipos de estructuras de bus incluyendo
un bus de memoria o un controlador de memoria, un bus periférico y
un bus local que utilice una cualquiera entre una diversidad de
arquitecturas de bus. A modo de ejemplo, y no de limitación, dichas
estructuras incluyen el bus de la Arquitectura Estándar del Sector
Informático (ISA), el bus de la Arquitectura Microcanal (MCA), el
bus de la ISA Ampliada (EISA), el bus VESA local, y el bus de
Interconexión de Componentes Periféricos (PCI) también conocido
como bus Mezzanine.
La computadora 110 incluye típicamente una
diversidad de medios legibles por computadora. Los medios legibles
por computadora pueden ser cualquier medio disponible al que se
pueda acceder mediante la computadora 110 e incluyen medios
volátiles y no volátiles, y medios cambiables y no cambiables. A
modo de ejemplo, y no de limitación, los medios legibles por
computadora pueden comprender medios de almacenamiento por
computadoras y medios de comunicación. Los medios de
almacenamiento por computadoras incluyen medios volátiles y no
volátiles, medios cambiables y no cambiables implementados en
cualquier procedimiento o tecnología para el almacenamiento de
información, como por ejemplo instrucciones legibles por
computadora, estructura de datos, módulos de programa, u otros
datos. Los medios de almacenamiento por computadoras incluyen, pero
no se limitan a, la RAM, la ROM, la EEPROM, la memoria flash u otra
tecnología de memoria, el CD-ROM, los discos
versátiles digitales (DVD) u otro almacenamiento de discos ópticos,
casetes magnéticos, cinta magnética, almacenamiento de discos
magnéticos u otros dispositivos de almacenamiento magnético, o
cualquier otro medio que pueda ser utilizado para almacenar la
información deseada y a la que pueda accederse mediante la
computadora 110. Los medios de comunicación típicamente incorporan
instrucciones legibles por computadora, estructuras de datos,
módulos de programas, u otros datos en una señal de datos modulada,
como por ejemplo una onda portadora u otro mecanismo de transporte
e incluyen cualquier medio de suministro de información. El término
señal de datos modulada significa una señal que presenta una o más
de sus características ajustadas o cambiadas de tal manera que
codifiquen información en la señal. A modo de ejemplo, y no de
limitación, los medios de comunicación incluyen medios cableados,
como por ejemplo una red cableada o una conexión cableada de punto a
punto, o medios inalámbricos, como por ejemplo medios infrarrojos,
de RF, acústicos y otros medios inalámbricos. Así mismo, pueden
incluirse dentro del alcance de los medios legibles por
computadora, combinaciones de cualquiera de los medios anteriormente
referidos.
La memoria 130 del sistema incluye unos medios
de almacenamiento informáticos bajo la forma de una memoria volátil
y/o no volátil, como por ejemplo una memoria de solo lectura (ROM)
131 y una memoria de acceso aleatorio (RAM) 132. Un sistema de
entrada/salida básico 133 (BIOS), que contiene las rutinas básicas
que ayudan a transferir información entre los elementos existentes
dentro de la computadora 110, como por ejemplo durante la puesta en
marcha, están típicamente almacenados en la ROM 131. La RAM 132
típicamente contiene datos y/o módulos de programas a los que se
puede acceder de forma inmediata y/o sobre los cuales en la
actualidad se opera mediante la unidad de procesamiento 120. A modo
de ejemplo, y no de limitación, la Figura 1 ilustra un sistema
operativo 134, unos programas de aplicación 135, otros módulos de
programa 136 y unos datos de programa 137.
La computadora 110 puede así mismo incluir otros
medios de almacenamiento por computadora cambiables/no cambiables,
volátiles/no volátiles. Solo a modo de ejemplo, la Figura 1 ilustra
una unidad de disco duro 140 que lee a partir de o escribe sobre
unos medios magnéticos no cambiables, no volátiles, una unidad de
disco magnético 151 que lee a partir de o escribe sobre un disco
magnético cambiable, no volátil 152, y una unidad de disco óptico
155 que lee a partir de o escribe sobre un disco óptico cambiable,
no volátil 156, como por ejemplo un CD-ROM u otro
medio óptico. Otros medios de almacenamiento por computadora
cambiables/no cambiables, volátiles/no volátiles que pueden ser
utilizados en entornos operativos ejemplares incluyen, pero no se
limitan a, casetes de cintas magnéticas, tarjetas de memoria flash,
discos versátiles digitales, cintas de vídeo digitales, RAM de
estado sólido, ROM de estado sólido y similares. La unidad de disco
duro 141 está típicamente conectada al bus del sistema 121 a
través de una interfaz de memoria no cambiable, como por ejemplo la
interfaz 140 y la unidad de disco magnético 151 y la unidad de disco
óptico 155 están típicamente conectados al bus de sistema 121
mediante un interfaz de memoria cambiable como por ejemplo la
interfaz 150.
Las unidades de disco y sus medios de
almacenamiento por computadora asociados, expuestos anteriormente e
ilustrados en la Figura 1, proporcionan el almacenamiento de las
instrucciones legibles por computadora, de las estructuras de
datos, de los módulos de programas, y de otros datos destinados a
la computadora 110. En la Figura 1, por ejemplo, la unidad de disco
duro 141 se ilustra almacenando el sistema operativo 144, los
programas de aplicación 145, otros módulos de programas 146 y los
datos de programas 147. Nótese que estos componentes pueden ser, o
bien los mismos o diferentes del sistema operativo 134, de los
programas de aplicación 135, de otros módulos de programa 136 y de
los datos de programa 137. Al sistema operativo 144, a los
programas de aplicación 145, a los otros módulos de programas 146, y
a los datos de programas 147 se les otorgan en la presente memoria
números diferentes para ilustrar que, como mínimo, son copias
diferentes. Un usuario puede introducir comandos e información en
la computadora 20 a través de dispositivos de entrada, como por
ejemplo un teclado 162 y un dispositivo de señalización 161,
habitualmente designado como ratón, una bola o una tableta táctil.
Otros dispositivos de entrada (no mostrados) pueden incluir un
micrófono, una palanca de mando, una tableta de juegos, una antena
parabólica, un escáner, una pantalla táctil de un PC portátil u
otra tableta de escritura, o elemento similar. Estos y otros
dispositivos de entrada están a menudo conectados a la unidad de
procesamiento 120 a través de una interfaz de entrada de usuario 160
que está acoplada al bus del sistema, pero puede estar conectada a
otras estructuras de interfaz y bus, como por ejemplo a un puerto
paralelo, a un puerto de juegos o a un bus serie universal (USP). Un
monitor 191 u otro dispositivo de visualización está así mismo
conectado al bus 121 del sistema por medio de una interfaz, como por
ejemplo una interfaz de vídeo 190. Además del monitor, puede
incluirse también unas computadoras u otros dispositivos de salida
periféricos, como por ejemplo unos altavoces 197 y una impresora
196, los cuales pueden estar conectados a través de una interfaz
periférica de salida 190.
La computadora 110 puede operar en un entorno de
conexión a red utilizando conexiones lógicas con una o más
computadoras distantes, como por ejemplo una computadora distante
180. La computadora distante 180 puede ser una computadora
personal, un servidor, un encaminador, un PC de red, un dispositivo
homólogo u otro nodo de red común, y típicamente incluye muchos o
todos los elementos descritos anteriormente con relación a la
computadora 110, aunque solo se ha ilustrado en la Figura 1 un
dispositivo de almacenamiento de memoria 181. Las conexiones
lógicas representadas en la Figura 1 incluye una red de área local
(LAN) 171 y una red de área amplia (WAN) 173, pero pueden así mismo
incluir otras redes. Dichos entornos de conexión a red son
habituales en oficinas, redes informáticas de ámbito corporativo,
intranet e Internet.
Cuando se utiliza en un entorno de conexión a
una LAN, la computadora 110 es conectada a la LAN 171 a través de
una interfaz o adaptador de red 170. Cuando es utilizada en un
entorno de conexión a una WAN, la computadora 110 típicamente
incluye un módem 172 u otro medio para establecer comunicaciones a
través de la WAN 173, como por ejemplo Internet. El módem 172, el
cual puede ser interno o externo, puede estar conectado al bus 121
del sistema por medio de la interfaz de entrada de usuario 160 o de
otro mecanismo apropiado. En un entorno de conexión a red, los
módulos de programa representados con respecto a la computadora 110,
o porciones de éstos, pueden ser almacenados en el dispositivo de
almacenamiento de memoria distante. A modo de ejemplo, y no de
limitación, la Figura 1 ilustra unos programas de aplicación a
distancia 185 que reside en el dispositivo de memoria 181. Debe
apreciarse que las conexiones de red mostradas son ejemplares y que
pueden ser utilizados otros medios de establecer un enlace de
comunicaciones entre las computadoras.
\vskip1.000000\baselineskip
La Fig. 2 es un diagrama de bloques que
representa un sistema de replicación de recursos que incluye dos
máquinas que reproducen recursos de acuerdo con diversos aspectos
de la invención. Las máquinas 201 y 202 reproducen el recurso A y
lo actualizan simultáneamente desde el contexto incorporado x al
contexto incorporado y, u, o z. Los contenidos x, y, u, y z pueden
corresponder, por ejemplo a números y relojes de secuencia de
versiones diferentes para el recurso A.
El término "máquina" no se limita
simplemente a una máquina física. Por el contrario, una sola máquina
física puede incluir múltiples máquinas virtuales. La replicación
de una máquina a otra máquina, tal y como se utiliza en la presente
memoria, implica la replicación de uno o más miembros del mismo
conjunto de reproducciones de una máquina, virtual o física, a otra
máquina, virtual o física. Una sola máquina física puede incluir
múltiples miembros del mismo conjunto de reproducciones. De esta
forma, los miembros de replicación de un conjunto de reproducciones
pueden comportar la sincronización de los miembros de una sola
máquina física que incluya dos o más miembros del mismo conjunto de
reproducciones.
Un sistema de replicación típicamente mantendrá
dos conjuntos relacionados de datos con cada recurso: los datos de
recursos y los metadatos de recursos. En sistemas de replicación que
incluyan almacenamientos de datos basados en archivos designados de
un sistema de archivos, los datos de recursos pueden incluir el
contenido de los archivos, así como cualquier atributo de archivo
que esté almacenado en el sistema de archivos en asociación con el
contenido de los archivos. Los atributos de los archivos pueden
incluir listas de control de acceso (ACLs), tiempos de
creación/modificación y otros datos asociados con un archivo. En
sistemas de aplicación que incluyan almacenamiento de datos no
basados en archivos designados en un sistema de archivos (por
ejemplo, aquellos en los cuales los recursos están almacenados en
una base de datos o en un almacén de datos basado en objetos), son
almacenados los datos de recursos apropiados al almacén de datos. A
lo largo del presente documento, los sistemas de replicación
basados en archivos de un sistema de archivos son a menudo
utilizados con fines de ilustración, pero debe advertirse que
cualquier almacén de datos capaz de almacenar un contenido puede
ser utilizado sin apartarse del alcance de la presente
invención.
Los metadatos de los recursos comprenden un
conjunto de atributos adicionales que son relevantes para negociar
la sincronización durante la replicación. Para cada recurso, los
metadatos de recursos puede incluir un identificador globalmente
único (GUID), si el recurso ha sido borrado, un número de secuencia
de versión junto con la autoría de un cambio, un valor de reloj
para reflejar el tiempo en el que se produjo un cambio, y otros
cambios, como por ejemplo un compendio que resuma los valores de
los datos de recurso y puede incluir unas signaturas para el
contenido de los recursos. Un compendio puede ser utilizado para
establecer una comparación rápida para soslayar la transferencia
de datos durante la sincronización de la replicación, por ejemplo.
Si un recurso situado en una máquina de destino es sincronizado con
un contenido situado en una máquina de fuente (por ejemplo tal y
como se indica mediante un compendio), la sobrecarga de la red puede
reducirse al mínimo precisamente mediante la transmisión de los
metadatos de los recursos, sin transmitir los propios datos de los
recursos. La transmisión de los metadatos de los recursos se lleva
a cabo para que la máquina de destino pueda reflejar los metadatos
incluidos en la máquina de origen en sus actividades de replicación
subsecuentes. Esto puede permitir que la máquina de destino, por
ejemplo, se convierta en una máquina de origen en una actividad de
replicación subsecuente. Los metadatos de los recursos pueden ser
almacenados con o separados de los datos de los recursos sin
apartarse del alcance de la invención.
En general, en los sistemas distribuidos de área
amplia, no es factible adoptar una sincronización de reloj a un
nivel muy granular. Ello impide que los sistemas de replicación
utilicen un reloj global para determinar los ganadores de las
actualizaciones y creaciones concurrentes. Los reproductores
típicamente utilizan relojes distribuidos lógicos que son marcados
sobre los metadatos para el contenido distribuido. Un reloj lógico
es incrementado cuando un contenido es actualizado, por posición a
ser sobrescrito por el reloj local físico del tiempo de cambio. El
reloj lógico de esta forma respeta la causalidad: las
actualizaciones del mismo contenido son marcadas con valores de
reloj en continuo aumento. El valor de reloj de A:x de la Fig. 2
puede, por ejemplo, ser cuatro ("4"). El sistema de
replicación asegura entonces que los valores de reloj asociados con
A:y y A:z son mayores de cuatro. La relación entre esos valores de
reloj es arbitraria. Los valores pueden o pueden no ser idénticos,
en cuanto son asignados de forma independiente (por ejemplo, la
máquina 201 asigna el valor de reloj para A:y mientras la máquina
202 asigna el valor de reloj para A:z).
En la sincronización de replicación normal, los
valores de reloj pueden ser utilizados para determinar el ganador
de un conflicto en base a una estrategia de resolución de conflictos
de victorias del último escritor. Los datos con el valor de reloj
más alto pueden indicar unos datos más recientes que los datos
replicados con valores de reloj menores. La estrategia de las
victorias del último escrito es congruente con los relojes lógicos,
en cuanto preservan la causalidad.
De acuerdo con un aspecto de la presente
invención, los metadatos de los recursos son aumentados con un campo
numérico llama "valor límite". Un valor límite puede ser
asignado a cada recurso o a una porción del mismo. Los valores
límite son utilizados durante la resolución de conflictos, en
conjunción con los demás metadatos, de acuerdo con un conjunto de
reglas definidas a continuación.
En una forma de realización de la invención, de
acuerdo con las reglas, los valores límite son inicializados ya
sea a cero o a uno. Un valor de cero indica que el recurso no debe
ser enviado o hacerse visible (por medio del mecanismo de
replicación) a otra máquina. Un valor de uno indica que el recurso
puede ser replicado y hecho visible a otras máquinas. Un recurso
que tiene un valor límite de cero puede ser considerado un recurso
esclavo, mientras que un recurso que tiene un valor límite de uno
puede ser considerado como un recurso maestro.
Si durante un actividad de replicación entre dos
máquinas, un recurso (por ejemplo un recurso A) existente en una de
las máquinas (por ejemplo, la máquina 201) tiene un valor límite
más alto que el mismo recurso existente en otra máquina (por
ejemplo, la máquina 202, el recurso que tiene el valor límite más
alto es replicado sobre la máquina con el recurso que tiene el
valor límite más bajo. En otras palabras, el recurso con el valor
límite más alto gana (y es replicado), con independencia de que
existan otros metadatos del recurso.
Al reproducir un recurso que ya existe en dos
máquinas pero que es diferente, pueden utilizarse mecanismos que
intenten propagar el número menor de datos posible para sincronizar
el recurso. Por ejemplo, en lugar de enviar todos los datos
asociados con el recurso, el sistema de replicación puede determinar
qué datos del recurso existentes en la máquina de envío son
diferentes de los datos del recurso existentes en la máquina de
retención y enviar una o más diferencias o deltas para actualizar el
recurso sobre la máquina de recepción.
Si durante una actividad de replicación, los
valores límite son los mismos y mayores de cero, entonces el
recurso que gana (y que es replicado) depende de los otros metadatos
de recurso asociados con cada recurso. En otras palabras, cuando
los valores límite son los mismos, la replicación avanza de
acuerdo con las reglas normales asociadas con la replicación.
De esta manera, los valores límite
proporcionan un control de grano fino en el proceso de resolución de
conflictos, dado que obtienen la prioridad en la resolución de
conflictos. Esto es, cuando los metadatos de dos recursos son
comparados, el recurso con el valor límite más alto obtiene la
prioridad. Otros atributos, como por ejemplo los relojes lógicos,
son comparados solo cuando los límites son iguales.
Los valores límite pueden tener similares
propiedades a los relojes lógicos, dado que en una implementación
pueden solo ser incrementados, o repuestos a cero. Por ejemplo, un
valor límite puede ser incrementado cuando un usuario o un
proceso da instrucciones al sistema de replicación para que lo haga.
Esto a veces se designa como "limitación del recurso"
["fencing the resource"] o simplemente "limitación"
["fencing"]. Un incremento del valor límite es independiente
de las actualizaciones sobre los datos de los recursos. Los
incrementos del límite se hacen visibles (por ejemplo, son
transmitidos en metadatos) mediante replicación. Dado que la
limitación no es una operación frecuente, puede utilizarse una
representación íntegra del tiempo completo de la tarea para
incrementar un límite hasta el máximo de (el valor límite actual
más uno) y (el tiempo del reloj de pared actual).
Un valor límite puede ser repuesto a cero
cuando un usuario o un proceso da instrucciones al sistema de
replicación para que lo haga. Esto a veces se designa como "sin
limitación del recurso" ["unfencing the resource"] o
simplemente "sin limitación" ["unfencing"]. Los recursos
de modo esclavo con límite retirado (esto es, cuyos valores límite
han sido repuestos a cero) no pueden ser replicados en cualquier
otra máquina fuera de la máquina que los contiene. Esto impide que
un recurso del modo esclavo resulte externamente visible. Por tanto,
las reposiciones de los valores límite no se hacen visibles
mediante replicación.
Excepto para la limitación y la retirada del
límite. Los valores límite permanecen constantes durante la
replicación. En particular, un valor límite positivo no cambia
cuando los datos de los recursos son actualizados o cuando el reloj
lógico cambia. Los valores límite valorados en cero tampoco deben
cambiar en cuanto a las actualizaciones del contenido para las
máquinas esclavas.
Debe advertirse que la limitación de un recurso
de una máquina permite forzar la replicación de dicho recurso con
independencia de las actualizaciones concurrentes al recurso
existentes en otros miembros del conjunto de reproducciones. Debe
así mismo advertirse que la retirada del límite de un recurso
permite que se fuerce a que cualquier otro recurso replicado
consiga la prioridad respecto de uno local (no limitado) e impide
que el recurso no limitado se reproduzca.
Los límites pueden disponerse sobre un recurso
existente por medio de una interfaz de programación de aplicaciones
(API) del sistema de replicación que limite los recursos
seleccionados. Así mismo, los límites pueden establecerse sobre
unos recursos futuros mediante la exposición de una API que limite
los recursos que se adapten a parámetros específicos, (como por
ejemplo los nombres y atributos de los recursos) cuando estos
recursos resulten visibles en el sistema de replicación. El control
de la futura limitación y retirada del límite puede así mismo
disponerse mediante adherencia especificadora: la creación de
recursos indirectamente relacionados, de forma que los recursos
sometidos a un directorio limitado/no limitado puedan heredar el
valor límite en base a la política establecida sobre el
padre.
padre.
La no limitación proporciona así mismo una forma
granular de controlar el comportamiento maestro o esclavo de socias
de replicación. El establecimiento de un límite sobre unos recursos
seleccionados convierte de manera efectiva a una máquina en una
maestra de esa versión del contenido (hasta que el contenido sea
actualizado por primera vez). Los recursos seleccionados no
limitados hacen que una máquina se comporte como esclava con
respecto al contenido asociado con los recursos seleccionados.
Debe advertirse que la limitación y la retirada
del límite pueden ser utilizados en una pluralidad de áreas que
incluyen la restauración de la salvaguardia, la replicación fuera de
banda, el mejoramiento a una versión más novedosa del reproductor,
y la provisión del control del administrador.
Una máquina que incluya un recurso no limitado
(por ejemplo, con un valor límite de cero) puede elegir la
modificación del valor límite de los recursos no limitados en un
valor de los recursos limitados (por ejemplo, uno) para un recurso
que esté actualizado localmente sobre el esclavo. Esto puede
efectuarse, por ejemplo, para hacer visible la actualización.
La Fig. 3 es un diagrama de bloques que
representa un sistema en el cual dos máquinas intentan conciliar un
recurso incluido en ambas de acuerdo con diversos aspectos de la
invención. En la Fig. 3 cada máquina tiene su propia versión del
recurso y el recurso tiene el mismo nombre o identificador. Al final
de la conciliación, el objetivo es conseguir un recurso replicado
que incorpore, ya sea el contenido de x o el contenido de y. En el
sistema mostrado en la Fig. 3, el contenido x de la máquina 301 gana
al contenido y de la máquina 302. Esto puede ocurrir, por ejemplo,
si un valor de límite es más alto para el recurso A sobre la
máquina 301 o a través de la comparación de otros metadatos
de
recursos.
recursos.
La Fig. 4 muestra algunos de los datos y
metadatos de recursos ejemplares que podrían ser utilizados para
A:x de las Figs. 2 y 3 de acuerdo con diversos aspectos de la
invención. Los metadatos de recursos incluyen un valor límite de
1, un valor de reloj, un GUID, un miembro de replicación que creó el
cambio, y la compilación. Los datos de recurso incluyen un nombre
del recurso, los datos mismos, un tiempo de creación, un tiempo de
modificación, y otros atributos de los datos de recursos.
La Fig. 5 muestra algunos datos y metadatos de
recursos ejemplares que pueden ser utilizados con diversos aspectos
de la invención, relacionados con la sincronización mostrada en la
Fig. 3. El contenido existente en la máquina 501 (por ejemplo, x)
gana al contenido existente en la máquina 502 (por ejemplo, y) y,
sería, por tanto, replicado sobre la máquina 502 porque el valor
límite para el recurso asociado con x (esto es, 1056603359) es
mayor que el valor límite para el recurso asociado con y (esto es,
1). Nótese que, con arreglo a los procedimientos de replicación
convencionales, y ganaría a x debido a un tiempo de reloj de
actualización mayor.
La Fig. 6 es un diagrama de flujo de datos que
representa genéricamente las etapas ejemplares que pueden producirse
para sincronizar un recurso entre dos máquinas de acuerdo con
diversos aspectos de la presente invención. El proceso empieza en
el bloque 605.
En el bloque 610, una determinación acerca de si
al menos uno de los valores de límite indica que el recurso debe
ser propagado. Ambos valores de límite pueden disponerse en un
estado limitado (por ejemplo, cero). En este caso, el recurso no
debe ser propagado. Si uno de los valores de límite se dispone sobre
un valor limitado (por ejemplo, 1 o mayor), entonces el recurso
debe ser propagado si se necesita para sincronizar los dos
recursos.
En el bloque 615 si el recurso debe ser
propagado, procesar las ramificaciones hasta el bloqueo 620, en otro
caso, procesar las ramificaciones hasta el bloque 635. En el bloque
620 se efectúa una determinación acerca de sí los valores de límite
son iguales. Si es así, procesar las ramificaciones hasta el bloque
625 donde son utilizados otros metadatos para determinar la forma
de propagar el recurso. En el bloque 627, el recurso o una porción
de éste (por ejemplo, los metadatos, el valor límite, las
diferencias del contenido, y similares) son propagados desde la
máquina que fue determinada en el bloque 625.
Si los valores límite no son iguales en el
bloque 620, procesar las ramificaciones hasta el bloque 630. En el
bloque 630, el recurso o una porción de éste (por ejemplo, los
metadatos, el valor límite, las diferencias de contenido, y
similares) son propagadas desde la máquina que tiene el valor
límite más alto para el recurso hasta la máquina que tiene el
valor límite más bajo para el recurso. En el bloque 635, el
procesamiento finaliza.
Los que siguen son algunos escenarios ejemplares
en los cuales pueden utilizarse determinados aspectos de la
presente invención.
Restaurar la salvaguardia sin autoridad: cuando
los datos resultan corrompidos o se pierden, un usuario que
gestiona un miembro de un sistema de recursos replicados puede
borrar el miembro y pedir la obtención de todos los datos asociados
con el miembro por medio del sistema de replicación de recursos.
Cuando un miembro es relativamente grande en relación con la
anchura de banda de un enlace que conecta el miembro al sistema de
replicación de recursos, este curso de acción puede tardar demasiado
tiempo o costar demasiado. Utilizando un aspecto de la invención,
sin embargo, el usuario puede restaurar los recursos de un miembro a
partir de una salvaguardia. El usuario puede entonces retirar el
límite de los recursos existentes en la salvaguardia (por ejemplo,
disponer el valor límite en 0) y permitir que el sistema de
replicación de recursos actualice los recursos que están
desfasados. En este caso, el contenido restaurado actúa precisamente
como un "contenido caché" que, dada la lógica apropiada, puede
ser utilizado por el reproductor para evitar la transferencia del
contenido sobre un enlace lento (por ejemplo "a través del
alambre"), manteniendo de esta forma el tráfico de
sincronización inicial que sucede a una restauración de salvaguardia
restringida a los metadatos y los datos de los recursos que
necesitan ser actualizados. Después de la sincronización, cualquier
recurso restante que tenga un valor límite igual a 0 puede ser
borrado o puede disponer su valor límite en 1 para permitirles
que se reproduzcan.
Copia fuera de banda: nuevos miembros de un
conjunto de reproducciones pueden potencialmente incluir una gran
cantidad de datos. Para facilitar una transferencia más rápida y/o
menos costosa los nuevos miembros pueden ser enviados a través de
un canal que tenga un coste menor y/o un servicio más rápido para el
usuario. Por ejemplo, los nuevos miembros pueden ser copiados en un
disco duro o quemados en CD-ROMs o en
DVD-ROMs y enviados por la noche. Tras la copia de
los nuevos miembros hasta el sistema en el sitio distante, pueden
retirárseles el límite de acuerdo con lo descrito con anterioridad
con respecto a la restauración de salvaguardia sin autoridad. La
retirada del límite de los nuevos miembros se lleva a cabo para
evitar la transferencia del contenido copiado sobre el sitio
distante hasta los otros sitios.
Restaurar la salvaguardia con autoridad: un
usuario puede desear restaurar desde una salvaguardia y propagar el
contenido restaurado a todos los sistemas existentes en los sistemas
de recursos replicados. Para hacer esto, el usuario puede restaurar
los recursos en un sistema y a continuación limitar los recursos que
el usuario desea pro-
pagar.
pagar.
Escenarios ad hoc: un usuario puede
desear forzar una versión específica de un conjunto de recursos para
reproducir y conseguir la prioridad respecto de cualquier otro
contenido conflictivo existente en un conjunto de reproducciones.
Esto pude llevarse a cabo limitando el conjunto de recursos.
Sincronización inicial: la sincronización
inicial es un caso especial de copia fuera de banda. Al establecer
o mejorar un sistema replicado, un usuario puede designar una
máquina como suplemento (esto es, contener el contenido que debe
ser replicado en las demás máquinas) y designar a las otras máquinas
como esclavas (esto es, recibir el contenido de la maestra). Para
hacer esto, el usuario puede limitar el recurso dispuesto sobre la
maestra para que tenga un valor límite inicial de 1 y retirar el
límite de los recursos existentes sobre las esclavas con un valor
límite de 0. Un recurso que nace sobre una esclava después de su
inicialización puede ser limitada con 1, de forma que será
replicado. Dado que un recurso esclavo no limitado no es replicado,
no es necesario sincronizar metadatos adicionales para dicho recurso
cuando pierde contra un recurso de conflicto de nombres respecto de
la maestra.
La Fig. 7 es un diafragma de flujo de datos que
representa genéricamente unas etapas ejemplares que pueden
producirse para llevar a cabo una restauración de salvaguardia sin
autoridad de acuerdo con diversos aspectos de la invención. Los
datos existentes en un miembro son borrados o corrompidos (bloque
710). El administrador restaura a partir de una salvaguardia
(bloque 715). El administrador marca los datos restaurados como no
limitados (bloque 720). La sincronización se produce tal y como se
representa en el bloque 725. El administrador borra o marca los
recursos restantes con un valor límite de 1 (bloque 730), y el
proceso termina (bloque 735).
La Fig. 7 se ofrece como un ejemplo para las
etapas que pueden producirse en la salvaguardia sin autoridad
descritas anteriormente. Debe advertirse que las demás aplicaciones
referidas con anterioridad han sido también descritas con el
suficiente detalle para reducir fácilmente los diagramas de flujo de
datos. Debe así mismo entenderse que pueden efectuarse otras muchas
variantes de las etapas de la Fig. 7 o de las aplicaciones descritas
con anterioridad sin apartarse del espíritu o el alcance de la
presente invención.
\newpage
La Fig. 8 es un diagrama de bloques que
representa una máquina configurada para operar en un sistema de
replicación de recursos de acuerdo con diversos aspectos de la
invención. La máquina 805 incluye un mecanismo de actualización 810
y unos recursos 822, y un mecanismo de comunicaciones 840.
El mecanismo de actualización 810 incluye una
lógica 815 de comparación de límites que es utilizada para comparar
los valores límite y determinar si los recursos deben ser propagados
desde la máquina 805 o si los recursos deben ser visibles a otras
máquinas. La lógica 815 de comparación de límites puede así mismo
ser utilizada para determinar la forma en que los valores límite
deben ser actualizados en el supuesto de una operación de
limitación o de la corrupción o supresión de una reconstrucción
subsecuente de los metadatos de recurso 830 (de acuerdo con lo
descrito con mayor detalle más adelante).
La otra lógica 820 de resolución de conflictos
de los metadatos incluye una lógica utilizada para determinar qué
recurso gana (y debe ser propagado), en el caso de que los valores
límite de los recursos sean equivalentes. En la aplicación de la
otra lógica 820 de resolución de conflictos de los metadatos, el
mecanismo de actualización 810 puede acceder a los datos existentes
en los metadatos de recursos 830 y/o a los datos de recursos 825
para determinar si un recurso (o una porción de éste) debe ser
propagado hasta o recibido desde otra máquina.
Los recursos 822 incluyen los datos de recursos
825 y los metadatos de recursos 830. La distinción entre datos de
recursos y metadatos de recursos fue descrita con anterioridad con
referencia a la Fig. 2. Aunque se muestra en la misma caja, los
datos de recursos 825 pueden ser almacenados en un almacén separado
con respecto a los metadatos de recursos 830.
El mecanismo de comunicaciones 840 permite que
el mecanismo de actualización 810 comunique con otros mecanismos de
actualizacion (no mostrados) situados en otras máquinas.
Conjuntamente, los mecanismos de actualización determinan qué
recursos deben ser sincronizados y cómo puede producirse la
sincronización. El mecanismo de sincronizaciones 840 puede ser una
interfaz o adaptador de red 170, un módem 172 o cualquier otro medio
para establecer comunicaciones de acuerdo con lo descrito con la
Fig. 1.
Debe advertirse que otras variantes de la
máquina mostrada en la Fig. 8 pueden ser implementadas sin apartarse
del alcance de la invención.
En una forma de realización de la invención, hay
tres valores límite iniciales: -1, 0 y 1. El -1 toma el papel de 0
expuesto (esto es, el valor límite) y 0 puede indicar que el recurso
puede ser replicado siempre que no haya otro recurso con un valor
límite que sea 1 o mayor de 1. Una utilidad de esta extensión
consiste en el manejo de la pérdida de los metadatos de
replicación. Por ejemplo, un reproductor de recursos puede mantener
los metadatos en un almacén separado del almacén utilizado para
almacenar los datos de recursos. Así, los metadatados y los datos
de recursos (esto es, el contenido) pueden fallar de manera
independiente. Durante una reconstrucción, una máquina que haya
perdido sus metadatos puede inicialmente limitar su recurso con un
valor de -1, dado que no sabe si ese recurso fue ya replicado o se
acaba de crear localmente (y, por consiguiente, no es conocido de
otras máquinas del conjunto de reproducciones). El cambio prematuro
del valor límite de -1 a 1 podría tener el efecto de reintroducir
el contenido viciado de nuevo en la red en cuanto el contenido
procedente de máquinas más actualizadas pero desconectadas pueden
ser sobrescrito. El cambio de límite de -1 a 0 por otro lado, puede
permitir que dicho contenido sea reintroducido hasta el punto en el
que algún otro participante pueda determinar que está anticuado.
Nótese que 0, 1 y 2 (o algún otro esquema de numeración) pueden ser
utilizados en lugar de si se desean solo números enteros positivos
desplazando cada valor descrito con anterioridad.
Otra forma de realización adicional de la
presente invención utiliza -\infty y 0 como posibles valores
límite iniciales. En funcionamiento, el valor límite de -\infty
sustituye al 0 (esto es, es el valor no limitado) mientras que el 0
sustituye al 1 (esto es, indica que el recurso debe ser replicado).
Así mismo, otros valores límite negativos (por ejemplo, -1, -2, -3,
..., -n) pueden ser utilizados para indicar recursos que pueden ser
replicados. Dichos valores límite perderían contra los recursos
limitados con valores más altos. Una utilidad de esta
generalización incluye escenarios en los que la disponibilidad de
recursos nuevos es más importante que el uso de la anchura de banda
durante una restauración. A cada una de las máquinas se le puede
asignar un valor límite diferente (por ejemplo, -1, - 2, ..., -n)
que se utilice sobre los recursos iniciales. La ordenación otorga
prioridad a una máquina líder que utiliza el límite -1, aunque el
contenido no conflictivo procedente de todas las máquinas es
inmediatamente disponible.
Otra aplicación de la presente representación
incluye la reducción de los valores límite cada vez que una máquina
recupera o reconstruye sus metadatos en respuesta a la corrupción o
pérdida de los metadatos. Un valor heurístico de esta aplicación es
que cada vez que la máquina reconstruye sus metadatos es probable
que los datos de recursos almacenados en la máquina resulten cada
vez menos fiables y/o actualizados. Mediante este mecanismo, el
contenido existente en las máquinas que reconstruyen sus metadatos
de modo menos frecuente se considera menos fiable y gana a través
de los valores límite frente al contenido de las máquinas que
reconstruyen sus metadatos de manera más frecuente.
Debe advertirse que los valores límite descritos
con anterioridad son valores límite lógicos que pueden ser
implementados en cualquier diversidad de valores límite físicos. Por
ejemplo, los valores límite pueden ser físicamente representados
como números enteros sin signo, números con puntos flotantes,
valores de bits, o cualquier otro tipo de esquema de numeración sin
apartarse del alcance de la invención.
Como puede apreciarse a partir de la descripción
detallada precedente, se proporciona un procedimiento y un sistema
mejorados para el control granular sobre la información de
replicación. Aunque la invención es susceptible de diversas
modificaciones y construcciones alternativas, determinadas formas de
realización ilustradas de la misma se muestran en los dibujos y han
sido descritas anteriormente con detalle. Debe entenderse, sin
embargo, que no hay intención de limitar la invención a las formas
específicas divulgadas, sino que, por el contrario, lo que es
amparar todas las modificaciones, construcciones alternativas y
equivalentes que se incluyan en el alcance de la invención.
Claims (33)
1. Un procedimiento implementado por computadora
para reproducir recursos, en el que cada recurso está asociado con
unos metadatos (830) y un contenido (825), incluyendo cada metadato
uno o más campos que son actualizados siempre que el contenido del
recurso asociado es modificado y un valor límite (835)
independiente de cualquier cambio local efectuado en el contenido,
siendo cada valor límite un valor asignado al recurso respectivo
y utilizado en la resolución de conflictos de actualización,
comprendiendo el procedimiento:
- determinar (610 - 625) si un primer recurso (822) que reside en una primera máquina (110, 181, 201, 301, 501, 805) debe ser utilizado para actualizar un segundo recurso (822) que reside en una segunda máquina (110, 181, 202, 302, 502, 805) mediante la comparación del valor límite del primer recurso con el valor límite del segundo recurso; y
- si el valor límite del primer recurso tiene una prioridad más alta que el valor límite del segundo recurso, actualizar (630) el segundo recurso a partir del primer recurso.
\vskip1.000000\baselineskip
2. El procedimiento de la reivindicación 1, que
comprende así mismo la etapa de, si los valores límite de los
primero y segundo recursos son equivalentes, determinar (625) qué
máquina actualizará la otra en base a metadatos distintos de los
valores límite.
3. El procedimiento de la reivindicación 2, en
el que los demás metadatos comprenden un reloj lógico que indica la
última vez que el contenido correspondiente fue actualizado.
4. El procedimiento de la reivindicación 3, en
el que un valor límite indica que su correspondiente recurso
puede ser propagado a otras máquinas hasta que otro recurso con un
valor límite más alto se sitúe sobre otra máquina.
5. El procedimiento de una de las
reivindicaciones 1 a 4, en el que los metadatos asociados con el
primer recurso son almacenados en una estructura de datos separada
de su correspondiente recurso.
6. El procedimiento de la reivindicación 5, que
comprende así mismo la etapa de, si la estructura de datos está
corrompida o borrada (710), reconstruir (715) la estructura de datos
y reducir el valor límite asociado con el primer recurso.
7. El procedimiento de la reivindicación 6, que
comprende así mismo la etapa de reconstruir la estructura de datos
una pluralidad de veces y reducir el valor límite asociado con el
primer recurso cada vez que la estructura de datos es
reconstruida.
8. El procedimiento de la reivindicación 7, que
comprende así mismo la etapa de, si el valor límite del segundo
recurso tiene una prioridad más alta que el valor límite del
primer recurso, actualizar (630) el primer recurso a partir del
segundo recurso.
9. El procedimiento de las reivindicaciones 1 a
8, que comprende así mismo la etapa de recuperar los metadatos de
los primero y segundo recursos, siendo los primero y segundo
recursos versiones de un mismo recurso replicado sobre una
pluralidad de máquinas (110, 181, 201, 202, 301, 302, 501, 502, 805)
que incluyen las primera y segunda máquinas, teniendo el recurso
unos metadatos y un contenido que reside en cada máquina sobre la
cual se reproduce el recurso.
10. El procedimiento de una de las
reivindicaciones 1 a 9, en el que el los metadatos son almacenados
en un almacén (130, 141, 152, 156, 181) separados del
contenido.
11. El procedimiento de una de las
reivindicaciones 1 a 10, en el que la etapa de actualizar el segundo
recurso comprende determinar una o más diferencias entre el
contenido existente en las primera y segunda máquinas y transmitir
las una o más diferencias.
12. El procedimiento de una de las
reivindicaciones 1 a 10, en el que la etapa de actualizar el segundo
recurso comprende transmitir solo los metadatos.
13. El procedimiento de la reivindicación 12, en
el que el contenido existente en las primera y segunda máquinas es
el mismo.
14. El procedimiento de una de las
reivindicaciones 1 a 13, en el que el contenido comprende datos de
archivos y atributos de archivos.
15. El procedimiento de una de las
reivindicaciones 1 a 14, en el que cada metadato existente en cada
máquina comprende un compendio que resume un recurso.
16. El procedimiento de la reivindicación 15,
que comprende así mismo la etapa de comparar los compendios de los
metadatos existentes en las máquinas y soslayar la actualización si
los compendios son equivalentes.
17. El procedimiento de una de las
reivindicaciones 1 a 16, en el que la etapa de actualizar el segundo
recurso comprende actualizar el segundo valor límite para que sea
igual al primer valor límite.
18. El procedimiento de una de las
reivindicaciones 1 a 17, que comprende así mismo la etapa de, si
los valores límite son equivalentes, comparar (625) otros datos de
los metadatos para determinar si los contenidos deben ser
actualizados.
19. El procedimiento de una de las
reivindicaciones 1 a 18, en el que a cada valor límite se le
asigna una porción o unas porciones de su recurso respectivo.
20. El procedimiento de una de las
reivindicaciones 1 a 19, en el que el contenido con un cierto valor
límite es invisible a otras máquinas.
21. El procedimiento de una de las
reivindicaciones 1 a 20, que comprende así mismo la etapa de fijar
uno de los valores límite en un máximo de [este valor + 1] y [un
tiempo de reloj] de la máquina sobre la cual reside el recurso que
incluye el valor límite.
22. El procedimiento de una de las
reivindicaciones 1 a 21, que comprende también la etapa de mantener
el mismo cada valor límite cuando el contenido asociado con el
valor límite cambia.
23. El procedimiento de la reivindicación 1, que
comprende así mismo las etapas de:
- cargar (715) el primer recurso sobre la primera máquina;
- marcar (720) el primer recurso con el correspondiente valor límite; y
- sincronizar (725) al menos una porción del segundo recurso con el primer recurso existente en la segunda máquina.
\vskip1.000000\baselineskip
24. El procedimiento de la reivindicación 23,
que comprende así mismo después de la sincronización de al menos
una porción del primer recurso marcar (730) la porción restante del
primer recurso con un valor límite que indique que el primer
recurso puede ser transmitido a partir de la primera máquina para
actualizar los recursos existentes en cualquier otra máquina.
25. El procedimiento de las reivindicaciones 23
o 24, que comprende así mismo, después de sincronizar la al menos
una porción del primer recurso, borrar (730) la porción restante del
primer recurso.
26. El procedimiento de una de las
reivindicaciones 23 a 25, en el que el primer recurso es cargado a
partir de una salvaguardia.
27. El procedimiento de una de las
reivindicaciones 23 a 25, en el que el primer recurso es cargado a
partir de una copia del primer recurso enviada a partir de otra
máquina.
28. El procedimiento de una de las
reivindicaciones 23 a 27, que comprende así mismo marcar el segundo
recurso existente en la segunda máquina con un valor límite
correspondiente que indique que el segundo recurso debe ser
sincronizado durante la sincronización.
29. El procedimiento de una de las
reivindicaciones 23 a 28, que comprende así mismo cambiar una
porción del primer recurso y macar la porción cargada con un valor
límite (835) que indique que la porción cambiada debe ser
sincronizada durante la sincronización.
30. Un medio legible por computadora que
almacena unas instrucciones ejecutables por computadora que, cuando
se llevan a cabo mediante un procesador, hacen que el procesador
lleve a cabo el procedimiento de una de las reivindicaciones 1 a
29.
31. Un sistema para reproducir recursos, que
comprende:
- una primera máquina (110, 181, 201, 301, 501, 805) que presenta un primer conjunto de recursos (822); y
- una segunda máquina (110, 181, 202, 302, 502, 805) que presenta un segundo conjunto de recursos (822),
- en el que cada recurso existente en cada máquina está asociado con unos metadatos (830) y un contenido (825), incluyendo cada metadato uno o más campos que son actualizados siempre que el contenido del recurso asociado sea modificado y un valor límite (835) independiente de cualquier cambio efectuado en el contenido, siendo cada valor límite un valor asignado al recurso respectivo y utilizado en la resolución de conflictos de actualización, estando la primera y segunda maquinas configuradas para:
- comunicar información relativa a los recursos contenidos por ambos; y
- actualizar cada recurso que está desfasado de acuerdo con la siguiente prioridad:
- si un valor límite de un recurso del primer conjunto de recursos tiene una prioridad más alta que el valor límite de un correspondiente recurso del segundo conjunto de recursos, actualizar el recurso del segundo conjunto de recursos con el recurso del primer conjunto de recursos; en otro caso
- actualizar el recurso existente en las máquinas en base a metadatos distintos de los valores límite.
\vskip1.000000\baselineskip
32. El sistema de la reivindicación 31, en el
que el primer conjunto de recursos es cargado a partir de una
salvaguardia y sus valores límite se establecen para provocar que
el primer conjunto de recursos tenga prioridad sobre cualquier otro
conjunto de recursos, de tal manera que cualquier otro conjunto de
recursos existente en cualquier otra máquina que se corresponda con
el conjunto de recursos se actualice a partir del primer conjunto de
recursos.
33. El sistema de las reivindicaciones 31 o 32,
en el que los valores límite del primer conjunto de recursos son
marcados para que tengan prioridad respecto de los correspondientes
recursos de las demás máquinas, de manera que los correspondientes
recursos sean actualizados a partir del primer conjunto de
recursos.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US48662703P | 2003-07-10 | 2003-07-10 | |
| US486627P | 2003-07-10 | ||
| US10/733,459 US7660833B2 (en) | 2003-07-10 | 2003-12-10 | Granular control over the authority of replicated information via fencing and unfencing |
| US733459 | 2003-12-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2341245T3 true ES2341245T3 (es) | 2010-06-17 |
Family
ID=33479336
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES04102757T Expired - Lifetime ES2341245T3 (es) | 2003-07-10 | 2004-06-16 | Control granular de un sistema de autorizacion de la informacion replicada por limitacion y sin limitacion. |
Country Status (13)
| Country | Link |
|---|---|
| US (1) | US7660833B2 (es) |
| EP (1) | EP1498814B1 (es) |
| JP (2) | JP5192635B2 (es) |
| KR (1) | KR101109257B1 (es) |
| CN (1) | CN100410874C (es) |
| AT (1) | ATE463789T1 (es) |
| AU (1) | AU2004202863B2 (es) |
| BR (1) | BRPI0402702A (es) |
| CA (1) | CA2472528A1 (es) |
| DE (1) | DE602004026389D1 (es) |
| ES (1) | ES2341245T3 (es) |
| MX (1) | MXPA04006721A (es) |
| RU (1) | RU2372649C2 (es) |
Families Citing this family (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7506007B2 (en) * | 2003-03-03 | 2009-03-17 | Microsoft Corporation | Interval vector based knowledge synchronization for resource versioning |
| US7660833B2 (en) | 2003-07-10 | 2010-02-09 | Microsoft Corporation | Granular control over the authority of replicated information via fencing and unfencing |
| US7529811B2 (en) * | 2003-08-21 | 2009-05-05 | Microsoft Corporation | Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system |
| US7590643B2 (en) | 2003-08-21 | 2009-09-15 | Microsoft Corporation | Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system |
| US8166101B2 (en) * | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
| US8238696B2 (en) * | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
| US7401104B2 (en) * | 2003-08-21 | 2008-07-15 | Microsoft Corporation | Systems and methods for synchronizing computer systems through an intermediary file system share or device |
| US7720890B2 (en) * | 2005-02-22 | 2010-05-18 | Microsoft Corporation | Ghosted synchronization |
| US7620668B2 (en) * | 2005-05-06 | 2009-11-17 | Microsoft Corporation | Authoritative and non-authoritative restore |
| US7490300B2 (en) * | 2005-08-12 | 2009-02-10 | Microsoft Corporation | Copying and updating files |
| US7536419B2 (en) * | 2005-11-15 | 2009-05-19 | Microsoft Corporation | Slave replica member |
| US7788223B2 (en) * | 2005-12-05 | 2010-08-31 | Microsoft Corporation | Resource freshness and replication |
| US7650389B2 (en) * | 2006-02-01 | 2010-01-19 | Subhashis Mohanty | Wireless system and method for managing logical documents |
| US7640247B2 (en) * | 2006-02-06 | 2009-12-29 | Microsoft Corporation | Distributed namespace aggregation |
| US7620721B2 (en) * | 2006-02-28 | 2009-11-17 | Microsoft Corporation | Pre-existing content replication |
| US7552148B2 (en) * | 2006-02-28 | 2009-06-23 | Microsoft Corporation | Shutdown recovery |
| TWI305619B (en) * | 2006-05-12 | 2009-01-21 | Qisda Corp | State synchronization systems and methods |
| TW200743028A (en) * | 2006-05-12 | 2007-11-16 | Benq Corp | State synchronization apparatuses and methods |
| TWI320534B (en) * | 2006-06-23 | 2010-02-11 | Qisda Corp | State synchronization systems and methods |
| US8150800B2 (en) * | 2007-03-28 | 2012-04-03 | Netapp, Inc. | Advanced clock synchronization technique |
| US8239479B2 (en) | 2007-06-22 | 2012-08-07 | Microsoft Corporation | Server-assisted and peer-to-peer synchronization |
| US7991740B2 (en) * | 2008-03-04 | 2011-08-02 | Apple Inc. | Synchronization server process |
| US8099571B1 (en) | 2008-08-06 | 2012-01-17 | Netapp, Inc. | Logical block replication with deduplication |
| US8321380B1 (en) | 2009-04-30 | 2012-11-27 | Netapp, Inc. | Unordered idempotent replication operations |
| US8655848B1 (en) | 2009-04-30 | 2014-02-18 | Netapp, Inc. | Unordered idempotent logical replication operations |
| US8671072B1 (en) | 2009-09-14 | 2014-03-11 | Netapp, Inc. | System and method for hijacking inodes based on replication operations received in an arbitrary order |
| US8799367B1 (en) | 2009-10-30 | 2014-08-05 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints for network deduplication |
| US8473690B1 (en) | 2009-10-30 | 2013-06-25 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints to provide cache coherency |
| JP5445177B2 (ja) * | 2010-01-28 | 2014-03-19 | 富士通株式会社 | 確定クロック判定プログラム及び方法、並びにノード装置 |
| US8914421B2 (en) * | 2010-02-11 | 2014-12-16 | Telefonaktiebolaget L M Ericsson (Publ) | Data management at a directory database |
| US8930320B2 (en) * | 2011-09-30 | 2015-01-06 | Accenture Global Services Limited | Distributed computing backup and recovery system |
| US10747776B2 (en) | 2012-12-04 | 2020-08-18 | International Business Machines Corporation | Replication control using eventually consistent meta-data |
| WO2015072220A1 (ja) * | 2013-11-14 | 2015-05-21 | ソニー株式会社 | 情報処理装置、情報処理方法および記憶媒体 |
| JP6337605B2 (ja) * | 2014-05-14 | 2018-06-06 | コニカミノルタ株式会社 | 更新管理装置、画像形成装置、更新管理装置の制御プログラム、および画像形成装置の制御プログラム |
| CN105791357A (zh) * | 2014-12-24 | 2016-07-20 | 金蝶软件(中国)有限公司 | Erp多机集群系统中的文件同步方法及系统 |
| US10339111B2 (en) | 2016-04-29 | 2019-07-02 | Netapp Inc. | Cloned virtual machine disk replication |
| US10846183B2 (en) * | 2018-06-11 | 2020-11-24 | Dell Products, L.P. | Method and apparatus for ensuring data integrity in a storage cluster with the use of NVDIMM |
| US11177012B1 (en) * | 2020-06-24 | 2021-11-16 | Western Digital Technologies, Inc. | Fast copy through controller |
| US12373459B2 (en) * | 2023-07-27 | 2025-07-29 | Sap Se | Change-aware snapshot replication |
Family Cites Families (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE68924061T2 (de) * | 1989-05-12 | 1996-04-18 | Ibm | Versionskontrolle in einem Datenverarbeitungssystem. |
| JP2614361B2 (ja) * | 1990-11-29 | 1997-05-28 | 沖電気工業株式会社 | ファイル内容変更方法 |
| GB2263797B (en) * | 1992-01-31 | 1996-04-03 | Plessey Telecomm | Object orientated system |
| JPH05250239A (ja) * | 1992-03-10 | 1993-09-28 | Sharp Corp | コンピュータネットワークシステム |
| CA2120381C (en) * | 1993-04-05 | 2005-07-26 | Gregory Barton Vatt | Distributed multi-outlet paging |
| US5701462A (en) | 1993-12-29 | 1997-12-23 | Microsoft Corporation | Distributed file system providing a unified name space with efficient name resolution |
| US5486826A (en) | 1994-05-19 | 1996-01-23 | Ps Venture 1 Llc | Method and apparatus for iterative compression of digital data |
| US5784615A (en) * | 1994-12-13 | 1998-07-21 | Microsoft Corporation | Computer system messaging architecture |
| US5765171A (en) | 1995-12-29 | 1998-06-09 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
| US5806074A (en) * | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
| US5953662A (en) * | 1996-04-30 | 1999-09-14 | Ericsson, Inc. | Dual home location registers in a mobile radio system |
| US5787262A (en) * | 1996-06-26 | 1998-07-28 | Microsoft Corporation | System and method for distributed conflict resolution between data objects replicated across a computer network |
| US5832514A (en) * | 1996-06-26 | 1998-11-03 | Microsoft Corporation | System and method for discovery based data recovery in a store and forward replication process |
| US6412017B1 (en) | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
| US5787247A (en) * | 1996-07-12 | 1998-07-28 | Microsoft Corporation | Replica administration without data loss in a store and forward replication enterprise |
| JPH10289142A (ja) * | 1997-04-16 | 1998-10-27 | Kokusai Electric Co Ltd | ネットワークのファイル更新システム |
| US6098079A (en) * | 1998-04-02 | 2000-08-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | File version reconciliation using hash codes |
| JP3501968B2 (ja) * | 1998-05-18 | 2004-03-02 | シャープ株式会社 | データベース管理装置、および、そのプログラムが記録された記録媒体 |
| US6976093B2 (en) | 1998-05-29 | 2005-12-13 | Yahoo! Inc. | Web server content replication |
| US6317754B1 (en) * | 1998-07-03 | 2001-11-13 | Mitsubishi Electric Research Laboratories, Inc | System for user control of version /Synchronization in mobile computing |
| US6192443B1 (en) * | 1998-07-29 | 2001-02-20 | International Business Machines Corporation | Apparatus for fencing a member of a group of processes in a distributed processing environment |
| US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
| US6401120B1 (en) * | 1999-03-26 | 2002-06-04 | Microsoft Corporation | Method and system for consistent cluster operational data in a server cluster using a quorum of replicas |
| JP3254434B2 (ja) * | 1999-04-13 | 2002-02-04 | 三菱電機株式会社 | データ通信装置 |
| JP2000311105A (ja) * | 1999-04-28 | 2000-11-07 | Toshiba Corp | コンピュータおよびデータ同期方法 |
| JP3963417B2 (ja) * | 1999-11-19 | 2007-08-22 | 株式会社東芝 | データ同期処理のための通信方法および電子機器 |
| US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
| US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
| US7363633B1 (en) * | 2000-04-24 | 2008-04-22 | Microsoft Corporation | Registering and storing dependencies among applications and objects in a computer system and communicating the dependencies to a recovery or backup service |
| EP1160682A1 (en) | 2000-06-02 | 2001-12-05 | Thomas Dr. Seidl | Relation interval tree |
| US7162499B2 (en) * | 2000-06-21 | 2007-01-09 | Microsoft Corporation | Linked value replication |
| US7788335B2 (en) * | 2001-01-11 | 2010-08-31 | F5 Networks, Inc. | Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system |
| DE60213419T2 (de) | 2001-03-16 | 2007-10-31 | Novell, Inc., Provo | Client-server-modell zur synchronisation von dateien |
| US6715050B2 (en) * | 2001-05-31 | 2004-03-30 | Oracle International Corporation | Storage access keys |
| US6952708B2 (en) * | 2001-06-27 | 2005-10-04 | Microsoft Corporation | Method and system for using a sync key |
| JP2003015934A (ja) * | 2001-06-29 | 2003-01-17 | Toshiba Corp | 情報記憶装置及び情報記憶方法 |
| JP2003122618A (ja) * | 2001-10-11 | 2003-04-25 | Nec Soft Ltd | データベースダウンロードシステムおよびプログラム |
| US7149759B2 (en) * | 2002-03-25 | 2006-12-12 | International Business Machines Corporation | Method and system for detecting conflicts in replicated data in a database network |
| US7149769B2 (en) | 2002-03-26 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | System and method for multi-destination merge in a storage area network |
| US20040068523A1 (en) | 2002-10-07 | 2004-04-08 | Keith Robert Olan | Method and system for full asynchronous master-to-master file synchronization |
| US7739240B2 (en) | 2002-12-09 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Replication and replica management in a wide area file system |
| US7506007B2 (en) | 2003-03-03 | 2009-03-17 | Microsoft Corporation | Interval vector based knowledge synchronization for resource versioning |
| US7290019B2 (en) | 2003-03-03 | 2007-10-30 | Microsoft Corporation | Garbage collection of tombstones for optimistic replication systems |
| US7660833B2 (en) | 2003-07-10 | 2010-02-09 | Microsoft Corporation | Granular control over the authority of replicated information via fencing and unfencing |
| US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
| US7788223B2 (en) | 2005-12-05 | 2010-08-31 | Microsoft Corporation | Resource freshness and replication |
-
2003
- 2003-12-10 US US10/733,459 patent/US7660833B2/en not_active Expired - Lifetime
-
2004
- 2004-06-16 DE DE602004026389T patent/DE602004026389D1/de not_active Expired - Lifetime
- 2004-06-16 ES ES04102757T patent/ES2341245T3/es not_active Expired - Lifetime
- 2004-06-16 AT AT04102757T patent/ATE463789T1/de not_active IP Right Cessation
- 2004-06-16 EP EP04102757A patent/EP1498814B1/en not_active Expired - Lifetime
- 2004-06-25 AU AU2004202863A patent/AU2004202863B2/en not_active Expired
- 2004-06-25 CA CA002472528A patent/CA2472528A1/en not_active Abandoned
- 2004-07-06 JP JP2004199703A patent/JP5192635B2/ja not_active Expired - Lifetime
- 2004-07-07 BR BR0402702-7A patent/BRPI0402702A/pt not_active IP Right Cessation
- 2004-07-09 RU RU2004121135/09A patent/RU2372649C2/ru not_active IP Right Cessation
- 2004-07-09 CN CNB2004100636526A patent/CN100410874C/zh not_active Expired - Lifetime
- 2004-07-09 KR KR1020040053359A patent/KR101109257B1/ko not_active Expired - Lifetime
- 2004-07-09 MX MXPA04006721A patent/MXPA04006721A/es active IP Right Grant
-
2011
- 2011-09-22 JP JP2011207572A patent/JP2011253574A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| JP2011253574A (ja) | 2011-12-15 |
| KR20050007179A (ko) | 2005-01-17 |
| EP1498814A1 (en) | 2005-01-19 |
| AU2004202863A1 (en) | 2005-01-27 |
| CN1607500A (zh) | 2005-04-20 |
| JP5192635B2 (ja) | 2013-05-08 |
| DE602004026389D1 (de) | 2010-05-20 |
| EP1498814B1 (en) | 2010-04-07 |
| BRPI0402702A (pt) | 2005-05-24 |
| KR101109257B1 (ko) | 2012-01-30 |
| US7660833B2 (en) | 2010-02-09 |
| CA2472528A1 (en) | 2005-01-10 |
| RU2372649C2 (ru) | 2009-11-10 |
| CN100410874C (zh) | 2008-08-13 |
| AU2004202863B2 (en) | 2010-06-10 |
| ATE463789T1 (de) | 2010-04-15 |
| MXPA04006721A (es) | 2005-04-19 |
| JP2005032249A (ja) | 2005-02-03 |
| RU2004121135A (ru) | 2006-01-10 |
| US20050015413A1 (en) | 2005-01-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2341245T3 (es) | Control granular de un sistema de autorizacion de la informacion replicada por limitacion y sin limitacion. | |
| US6941490B2 (en) | Dual channel restoration of data between primary and backup servers | |
| ES2921209T3 (es) | Método de réplica de datos y sistema de almacenamiento | |
| US8341386B2 (en) | Method for updating basic input/output system and method for repairing thereof | |
| US6701455B1 (en) | Remote copy system with data integrity | |
| EP2363808B1 (en) | Data restoration utilizing forward and backward deltas | |
| US20110107025A1 (en) | Synchronizing snapshot volumes across hosts | |
| US8019800B2 (en) | Access device, information recording device, information recording system, file management method, and program | |
| US20030172227A1 (en) | Reversing a communication path between storage devices | |
| US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
| US7359927B1 (en) | Method for performing periodic replication of data on a remote storage system | |
| CN103384876A (zh) | 信息处理系统和数据处理方法 | |
| US20170235759A1 (en) | Systems and methods for fail-safe operations of storage devices | |
| KR20230091940A (ko) | 인-메모리 데이터 구조들에서 무충돌 복제 데이터 유형들을 구현하는 시스템들, 방법들, 및 매체들 | |
| CN101430705A (zh) | 基于嵌入式数据库的存储方法和装置 | |
| US8527733B2 (en) | Memory system | |
| US20070174567A1 (en) | Storage apparatus and control method thereof | |
| ES2824782T3 (es) | Estructura y método de memoria caché | |
| US6757841B1 (en) | Method and apparatus for dynamic mirroring availability in a network appliance | |
| WO2023036901A1 (en) | Selective use of high-performance memory in a software defined system | |
| CN103425464A (zh) | 母盘制作方法及装置 | |
| KR101618999B1 (ko) | 네트워크 부트 시스템 | |
| WO2015102670A1 (en) | Systems and methods for fail-safe operations of storage devices | |
| JP2007034551A (ja) | データの二重化管理方法 | |
| JPWO2018186455A1 (ja) | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム |