Mejores prácticas / Patrones para sincronización de datos bidireccional

49

Muy a menudo en mi trabajo surge la idea de la sincronización de datos bidireccional entre sistemas de bases de datos. El ejemplo clásico son dos sistemas CRM ligeramente diferentes (por ejemplo, Raiser's Edge y Salesforce) y la necesidad de tener una sincronización bidireccional de los datos de contacto entre ellos.

Dejando de lado las consideraciones de la API, suponiendo que tenga una clave compartida para sincronizar, y pensando simplemente en el algoritmo / patrón que se va a emplear, esta es una tarea que a menudo es subestimada por los no técnicos.

Por ejemplo, debes estar atento a:

  • ¿Puede detectar fácilmente qué registros han cambiado en ambos sistemas (o tendrá que comparar todos los registros entre los sistemas para detectar cambios)?
  • Si va a realizar una sincronización de una vez cada N horas, cómo resolver los conflictos en los que el mismo registro cambia más o menos al mismo tiempo en ambos sistemas
  • Si va a realizar una sincronización en tiempo real (es decir, una actualización en un sistema inmediatamente activa una actualización en el otro sistema) cómo manejar las divergencias a lo largo del tiempo debido a errores o fallas en el sistema

Personalmente, puedo pensar en formas de abordar todo esto, pero me pregunto si hay patrones, publicaciones o mejores prácticas bien conocidos a los que pueda referirme.

    
pregunta codeulike 16.02.2012 - 19:09

2 respuestas

8

Sí, un problema difícil, fácilmente subestimado. Y podría ser mucho trabajo. Si utiliza las tecnologías de Microsoft, puede consultar el aquí de Microsoft Sync Framework. aquí .

    
respondido por el codingoutloud 19.02.2012 - 15:26
0

Hay muchas teorías sobre la sincronización de bases de datos de sitios remotos. Primero comienza con INSERTAR. el manejo de este es fácil, ya que puede crear una ID única para cada sitio (por ejemplo, una inicial del nombre del sitio + ID (número): site_a_177 vs. site_b_53)

Por lo tanto, insert no debe crear ningún conflicto. El problema es la actualización. No creo que exista un método 100% a prueba de fallas, pero puede iniciar una actualización "bloqueando" el registro en la base de datos remota, y solo después de obtener el identificador. Continúe con la actualización y finalice sincronizando la actualización. y solo entonces libera la cerradura.

    
respondido por el alfasin 18.02.2012 - 11:41

Lea otras preguntas en las etiquetas

Comentarios Recientes

La parte de recepción <| endoftext |> ¿Qué es el control de doble bit? El control de doble bit ha existido desde 1990. Nuestra Enciclopedia de Recetas Pivots anterior no aborda las configuraciones de Twin o Tornado, pero usted puede todavía los encuentro como configuraciones de FreePOV. Dual Bit Control se basa en todos los principios básicos de diseño de Twin Aircraft, pero para la nueva generación de modelos de aviones o ese niño que acaba de desmontarse con una llave inglesa y está a punto de aligerar su... Lee mas