Resumen
- RFC 3384 exigía que las réplicas multimaestro acabaran en un mismo estado, pero no permitía que la resolución del conflicto borrara sin más la información desplazada.
- El sistema debía guardar el valor perdedor, avisar al administrador y dejar abierta una posible rectificación; el orden de llegada no podía otorgar autoridad permanente.
Una réplica recibe el cambio de Ana antes que el de Bruno. Otra los recibe en el orden contrario. Si ambas aplican «gana el último que llegó», cada una puede considerar vencedor a un dato distinto y seguir defendiendo su respuesta para siempre. El transporte habría decidido el contenido del directorio por accidente. RFC 3384 formuló el problema antes de escoger un algoritmo: la eventual coincidencia no podía depender de que una red distribuida entregase los cambios en el mismo orden.
El documento apareció en octubre de 2002 como RFC Informational. Reunía requisitos fundamentales para una replicación LDAPv3 interoperable, no un protocolo acabado ni un estándar completo de réplica. Esta categoría limita lo que puede afirmarse hoy. El texto identifica propiedades obligatorias de una solución aceptable; no demuestra que un producto las adoptara ni determina una única técnica para cumplirlas.
LDAP había normalizado el diálogo entre cliente y servidor, pero copiar el estado entre servidores añadía otra clase de decisiones. La réplica podía acercar datos al lector y mantener servicio durante fallos. También podía repartir escrituras entre varios maestros, introducir copias parciales y hacer que esquema, políticas y datos llegaran en momentos distintos.
La unidad administrativa era un área de replicación: una parte configurable del árbol de información del directorio. Las áreas podían anidarse o superponerse. Una réplica era una instancia de esa área, y un grupo de réplicas reunía a los servidores que la mantenían. Los acuerdos definían área, acceso, credenciales, confidencialidad y reglas de propagación. Por eso «estar sincronizado» solo tiene sentido respecto de un perímetro y de una política concretos.
RFC 3384 examinó cinco modelos de consistencia. La consistencia transaccional ofrecía las conocidas propiedades ACID, pero el compromiso distribuido en dos fases aportaba una complejidad que el grupo decidió no perseguir en aquel momento. El trabajo se concentró en consistencia eventual y eventual de esfuerzo limitado. Durante una partición, dos copias podían diferir sin que ello invalidara por sí solo el sistema.
Temporal no quería decir arbitrario. M3 pedía que el mismo atributo terminara con el mismo conjunto de valores en toda réplica que conservase la entrada. MM6 extendía esa obligación a atributos y entradas en el caso multimaestro. La autonomía local tenía una deuda: cuando volviera la comunicación, debía existir un camino hacia un estado común.
El conflicto no era una anomalía externa al modelo. Un maestro podía aceptar una escritura sin preguntar antes a los demás. Otro podía aceptar una modificación incompatible sobre la misma información. Ambos actos eran legítimos en su contexto local. La replicación tenía que decidir qué quedaba como estado vivo sin fingir que una de las dos historias nunca ocurrió.
MM7 rechazó que el orden de llegada fuera la base de la convergencia. No prescribió un reloj lógico, un criterio de servidor ni una regla de marcas de tiempo. Dejó esas decisiones a futuros protocolos, pero marcó una prueba esencial: observadores que reciban los mismos cambios en secuencias diferentes aún deben poder alcanzar el mismo resultado.
MM5 iba más allá del determinismo. La replicación multimaestro no debía perder información. Cuando resolver un conflicto expulsara información del directorio convergente, el proceso tenía que almacenarla, notificar al administrador el conflicto y la pérdida, y ofrecer un mecanismo para una posible anulación administrativa.
Guardar no equivalía a mantener ambos valores activos. Si dos resultados incompatibles quedaran simultáneamente como respuesta oficial, el sistema habría delegado el conflicto al cliente. El requisito construía dos superficies: una vista viva y convergente para operar, y un registro aparte de lo desplazado para poder explicar y, si procede, revertir la decisión automática.
Esta distinción cambia la lectura de una métrica aparentemente perfecta. Que todas las réplicas muestren el mismo valor verifica igualdad actual. No demuestra que el valor correcto ganara, que la alternativa siga recuperable o que alguien haya sido informado. La convergencia describe el presente observable; la preservación del conflicto mantiene abierta la responsabilidad por cómo se llegó a él.
M12 fijaba una protección paralela contra los reintentos. Recibir una actualización más de una vez no podía producir un resultado distinto de recibirla una sola vez. Una conexión puede romperse después de aplicar el cambio y antes de confirmar. El proveedor vuelve a enviar porque desconoce el estado. Sin idempotencia, una estrategia de recuperación generaría corrupción.
P6 conservaba la atomicidad de las operaciones LDAP a través del transporte. Una modificación compuesta no podía aparecer por partes en la réplica. Sin embargo, dos operaciones completas y atómicas podían seguir chocando entre sí. La atomicidad evita un cambio partido; no elige cuál de dos intenciones completas debe prevalecer.
Había además conflictos al iniciar una sesión. MM4 exigía resolver o evitar automáticamente el caso en que varios maestros intentaran replicar al mismo tiempo con una misma réplica. Un consumidor ocupado, una conexión perdida y la reprogramación del ciclo eran problemas de coordinación. No debían confundirse con el desacuerdo semántico sobre el dato.
La administración formaba parte del diseño interoperable. AM2 exigía que cada réplica mantuviera historial de auditoría sobre los servidores con los que había intercambiado información. AM4 y AM5 pedían la capacidad de comparar dos copias y reparar diferencias sin provocar otro ciclo. Una réplica vacía debía poder inicializarse con una actualización completa. La reconciliación necesitaba evidencias observables, no solo una promesa de fondo.
No todo orden era irrelevante. AM6 exigía conservar la secuencia entre información de control de acceso y los datos regulados por ella. Entregar primero el dato y después la regla que lo protege puede crear, aunque sea temporalmente, una autorización diferente. El orden accidental de la red no resolvía conflictos, pero una dependencia causal explícita sí debía viajar.
Los desajustes de esquema tenían que manejarse y notificarse. La réplica incluía definiciones de esquema, nombres y valores de atributos, control de acceso, conocimiento del directorio y espacio de nombres. Excluía como tales ciertos atributos operativos específicos del DSA. Podían existir copias parciales, pero el acuerdo debía decir qué entradas y atributos componían su universo.
En seguridad, autenticación, autorización, integridad y confidencialidad seguían siendo propiedades distintas. El protocolo debía admitir autenticación mutua, verificación mutua de autorización y transferencia protegida. También debía soportar sesiones anónimas. Eso no convertía el anonimato en equivalencia de confianza: obligaba a expresar ambos regímenes y sus límites.
Las RFC posteriores proporcionan cronología, no una certificación retroactiva. RFC 4510, RFC 4511 y RFC 4512 reorganizaron la especificación técnica de LDAP. RFC 4533 definió sincronización de contenido y RFC 5805, transacciones. Ninguna de esas proximidades autoriza a afirmar que todas las exigencias multimaestro de RFC 3384 quedaron implementadas de forma integral.
RFC 3383, publicado inmediatamente antes, ayuda a separar dos tipos de colisión. Aquel documento asignaba políticas de registro a identificadores de extensiones LDAP. RFC 3384 trataba la colisión entre cambios legítimos hechos sobre copias diferentes. El primero gobernaba el acceso a un espacio común de nombres; el segundo, el modo de conservar la prueba de una historia desplazada.
La idea de especificación inicial mínima de Lu Heng explica por qué un documento de requisitos podía ejercer control sin cerrar la ingeniería. Podía fijar las consecuencias inadmisibles —pérdida silenciosa, autoridad basada en la entrega, imposibilidad de revisar— y permitir que cada diseño posterior escogiera el mecanismo. No definir todos los pasos no significaba renunciar a definir el daño.
Su marco de capas de realidad impide comprimir el proceso en una sola etiqueta. Escritura aceptada, actualización enviada, cambio recibido, conflicto resuelto, valor vivo, valor perdedor almacenado, aviso leído y anulación decidida son hechos diferentes. Un indicador «réplicas convergentes» solo responde a uno. Hacerlo pasar por todos los demás convierte una medida técnica en una afirmación de gobierno que no puede sostener.
La aportación más duradera de RFC 3384 quizá sea desconfiar de una reconciliación demasiado limpia. Un sistema puede obtener una respuesta única destruyendo el material con el que alguien podría impugnarla. Conservar el valor perdedor transformó una sobrescritura silenciosa en una decisión auditable. Las copias podían ponerse de acuerdo sin falsificar el desacuerdo que había existido.
Fuentes
Informe para miembros
Contexto ampliado del perfil
Inicia sesión con el nivel de membresía adecuado para desbloquear el informe completo y las notas de las fuentes.
Solo para Strategic Circle
Strategic Circle
Abierto a todos los lectores. Desbloquea informes de perfil después de unirte e iniciar sesión.
Únete a Strategic CircleSolo para Leadership Alliance
Leadership Alliance
Para propietarios y directivos cualificados de activos de propiedad intelectual; inicia sesión para desbloquear los informes de la alianza.
Unirse a Leadership Alliance
