stringtranslate.com

Sincronización de datos

Proceso de sincronización entre un servidor y dos clientes.

La sincronización de datos es el proceso de establecer coherencia entre los almacenes de datos de origen y de destino , y la armonización continua de los datos a lo largo del tiempo. Es fundamental para una amplia variedad de aplicaciones, incluida la sincronización de archivos y la sincronización de dispositivos móviles. La sincronización de datos también puede resultar útil en el cifrado para sincronizar servidores de claves públicas .

La sincronización de datos es necesaria para actualizar y mantener múltiples copias de un conjunto de datos coherentes entre sí o para mantener la integridad de los datos , Figura 3. [1] Por ejemplo, la replicación de bases de datos se utiliza para mantener múltiples copias de datos sincronizadas con servidores de bases de datos que almacenan datos en diferentes lugares.

Ejemplos

Ejemplos incluyen:

Desafíos

Algunos de los desafíos que el usuario puede enfrentar en la sincronización de datos:

Complejidad de los formatos de datos

Los formatos de datos tienden a volverse más complejos con el tiempo a medida que la organización crece y evoluciona. Esto no sólo da como resultado la creación de interfaces simples entre las dos aplicaciones (origen y destino), sino también la necesidad de transformar los datos mientras se pasan a la aplicación de destino. Las herramientas ETL (carga de transformación de extracción) pueden resultar útiles en esta etapa para gestionar las complejidades del formato de datos.

Puntualidad real

En los sistemas en tiempo real, los clientes quieren ver el estado actual de su pedido en la tienda electrónica, el estado actual de una entrega de paquete (un seguimiento de paquete en tiempo real), el saldo actual en su cuenta, etc. Esto muestra la necesidad de un sistema en tiempo real, que también se está actualizando para permitir un proceso de fabricación fluido en tiempo real, por ejemplo, pedir material cuando la empresa se está quedando sin existencias, sincronizar los pedidos de los clientes con el proceso de fabricación, etc. En la vida real, existen muchos Ejemplos en los que el procesamiento en tiempo real ofrece una ventaja competitiva y exitosa.

Seguridad de datos

No existen reglas ni políticas fijas para hacer cumplir la seguridad de los datos. Puede variar según el sistema que esté utilizando. Aunque la seguridad se mantiene correctamente en el sistema de origen que captura los datos, los privilegios de seguridad y acceso a la información también deben aplicarse en los sistemas de destino para evitar cualquier posible uso indebido de la información. Este es un problema grave, especialmente cuando se trata de manejar información secreta, confidencial y personal. Entonces, debido a la sensibilidad y confidencialidad, la transferencia de datos y toda la información intermedia deben cifrarse.

Calidad de datos

La calidad de los datos es otra limitación grave. Para una mejor gestión y mantener una buena calidad de los datos, la práctica común es almacenar los datos en una ubicación y compartirlos con diferentes personas y diferentes sistemas y/o aplicaciones desde diferentes ubicaciones. Ayuda a prevenir inconsistencias en los datos.

Actuación

Hay cinco fases diferentes involucradas en el proceso de sincronización de datos:

Cada uno de estos pasos es crítico. En caso de grandes cantidades de datos, el proceso de sincronización debe planificarse y ejecutarse cuidadosamente para evitar cualquier impacto negativo en el rendimiento.

Soluciones basadas en archivos

Hay herramientas disponibles para sincronización de archivos , control de versiones ( CVS , Subversion , etc.), sistemas de archivos distribuidos ( Coda , etc.) y duplicación ( rsync , etc.), en el sentido de que todos intentan mantener sincronizados conjuntos de archivos. Sin embargo, sólo las herramientas de control de versiones y sincronización de archivos pueden manejar modificaciones en más de una copia de los archivos.

Modelos teóricos

Existen varios modelos teóricos de sincronización de datos en la literatura de investigación, y el problema también está relacionado con el problema de la codificación Slepian-Wolf en la teoría de la información . Los modelos se clasifican en función de cómo consideran que se sincronizarán los datos.

datos desordenados

El problema de sincronizar datos desordenados (también conocido como problema de reconciliación de conjuntos ) se modela como un intento de calcular la diferencia simétrica entre dos conjuntos remotos y de números de b bits. [3] Algunas soluciones a este problema se caracterizan por:

Transferencia mayorista
En este caso, todos los datos se transfieren a un host para una comparación local.
Sincronización de marca de tiempo
En este caso, todos los cambios en los datos se marcan con marcas de tiempo. La sincronización continúa transfiriendo todos los datos con una marca de tiempo posterior a la sincronización anterior. [4]
Sincronización matemática
En este caso los datos se tratan como objetos matemáticos y la sincronización corresponde a un proceso matemático. [3] [5] [6]

Datos ordenados

En este caso, es necesario conciliar dos cadenas remotas. Normalmente, se supone que estas cadenas difieren hasta en un número fijo de ediciones (es decir, inserciones, eliminaciones o modificaciones de caracteres). Entonces, la sincronización de datos es el proceso de reducir la distancia de edición entre y , hasta la distancia ideal de cero. Esto se aplica en todas las sincronizaciones basadas en sistemas de archivos (donde se ordenan los datos). Muchas aplicaciones prácticas de esto se analizan o mencionan anteriormente.

A veces es posible transformar el problema en uno de datos desordenados mediante un proceso conocido como shingling (dividir las cadenas en tejas [ se necesita aclaración ] ). [7]

Manejo de errores

En los sistemas tolerantes a fallos, las bases de datos distribuidas deben poder hacer frente a la pérdida o corrupción de (parte de) sus datos. El primer paso suele ser la replicación , que implica hacer múltiples copias de los datos y mantenerlas todas actualizadas a medida que se realizan cambios. Sin embargo, entonces es necesario decidir en qué copia confiar cuando se produce la pérdida o corrupción de una instancia.

El enfoque más sencillo es tener una única instancia maestra que sea la única fuente de verdad. Los cambios realizados se replican en otras instancias y una de esas instancias se convierte en la nueva maestra cuando la antigua maestra falla.

Paxos y Raft son protocolos más complejos que existen para resolver problemas con efectos transitorios durante la conmutación por error, como dos instancias que piensan que son maestras al mismo tiempo.

Compartir secretos es útil si las fallas de nodos completos son muy comunes. Esto hace que la sincronización pase de ser un proceso de recuperación explícito a ser parte de cada lectura, donde una lectura de algunos datos requiere recuperar datos codificados de varios nodos diferentes. Si es posible que haya datos corruptos o desactualizados en algunos nodos, este enfoque también puede beneficiarse del uso de un código de corrección de errores .

Los DHT y Blockchains intentan resolver el problema de la sincronización entre muchos nodos (de cientos a miles de millones).

Ver también

Referencias

  1. ^ Nakatani, Kazuo; Chuang, Ta-Tao; Zhou, Duanning (2006). "Tecnología de sincronización de datos: estándares, valores comerciales e implicaciones". Comunicaciones de la Asociación de Sistemas de Información . 17 . doi : 10.17705/1cais.01744 . ISSN  1529-3181.
  2. ^ A. Tridgell (febrero de 1999). "Algoritmos eficientes de clasificación y sincronización" (PDF) . Tesis doctoral. La Universidad Nacional de Australia.
  3. ^ ab Minsky, Y.; Ari Trachtenberg; Zippel, R. (2003). "Establezca la reconciliación con una complejidad de comunicación casi óptima". Transacciones IEEE sobre teoría de la información . 49 (9): 2213–2218. CiteSeerX 10.1.1.73.5806 . doi :10.1109/TIT.2003.815784. 
  4. ^ "Manuales de la base de conocimientos para desarrolladores de Palm". Archivado desde el original el 11 de marzo de 2002 . Consultado el 9 de enero de 2007 .
  5. ^ Ari Trachtenberg; D. Starobinski; S. Agarwal. "Sincronización rápida de PDA mediante interpolación polinómica característica" (PDF) . IEEE INFOCOM 2002 . doi :10.1109/INFCOM.2002.1019402.
  6. ^ Y. Minsky y A. Trachtenberg, Reconciliación de conjuntos escalables, Conferencia de Allerton sobre comunicación, control e informática, octubre de 2002
  7. ^ S. Agarwal; V. Chauhan; Ari Trachtenberg (noviembre de 2006). "Reconciliación de cadenas eficiente en ancho de banda mediante rompecabezas" (PDF) . Transacciones IEEE en sistemas paralelos y distribuidos . 17 (11): 1217-1225. doi :10.1109/TPDS.2006.148. S2CID  4300693 . Consultado el 23 de mayo de 2007 .