Sistemas distribuidos: ¿Cuál es el significado exacto de A (Disponibilidad) y qué significa en el teorema CAP de Brewer?

Para obtener una definición formal, debe consultar la prueba de Gilbert y Lynch para la conjetura de Brewer (http://lpd.epfl.ch/sgilbert/pubs…).

En su artículo definen la disponibilidad como:

Para que un sistema distribuido esté continuamente disponible, cada solicitud recibida por un nodo que no falla en el sistema debe dar como resultado una respuesta. Es decir, cualquier algoritmo utilizado por el servicio debe terminar eventualmente. De alguna manera, esta es una definición débil de disponibilidad: no limita el tiempo que el algoritmo puede ejecutarse antes de finalizar y, por lo tanto, permite un cálculo ilimitado. Por otro lado, cuando se califica por la necesidad de tolerancia de partición, esto puede verse como una fuerte definición de disponibilidad: incluso cuando ocurren fallas graves en la red, cada solicitud debe terminar.

Este mismo pensamiento se me ocurrió recientemente y esto es lo que pienso de esto.

Creo que es natural pensar que el tiempo de respuesta está directamente relacionado con la disponibilidad de un sistema. Si un sistema deja de estar disponible, su tiempo de respuesta se aproxima al infinito hasta que el sistema vuelva a estar operativo. Si el sistema no se recupera de una falla, su tiempo de respuesta se vuelve infinito. De lo contrario, el tiempo de respuesta es un valor positivo. ¿Algún valor de tiempo de respuesta positivo implica disponibilidad?

Del papel de gilbert y lynch:

“Para que un sistema distribuido esté continuamente disponible, cada solicitud recibida por un nodo que no falla en el sistema debe dar como resultado una respuesta. Es decir, cualquier algoritmo utilizado por el servicio debe terminar finalmente … [Cuando] califique por la necesidad de partición tolerancia, esto puede verse como una definición sólida de disponibilidad: incluso cuando ocurren fallas graves en la red, cada solicitud debe finalizar “.

Me parece que su definición de disponibilidad no tiene en cuenta el tiempo que tardó en finalizar la solicitud y, finalmente, obtener una respuesta. ¿Esta definición significa que no importa cuánto tiempo el servicio finalmente devuelva una respuesta? Si es así, un sistema puede tener consistencia y disponibilidad frente a las particiones de red al aumentar el tiempo de respuesta a las solicitudes entrantes. Ante la presencia de fallas, un sistema puede bloquear el procesamiento de las solicitudes entrantes hasta que el sistema vuelva a estar operativo. Durante este tiempo, un solicitante tendrá que esperar indefinidamente hasta que el sistema responda a su solicitud. Pero mientras el sistema no dé ninguna respuesta, entonces decimos que el sistema todavía está disponible en este momento y aún atiende su solicitud. Creo que esto no tiene sentido.

Por lo tanto, creo que el tiempo de respuesta debe considerarse en cualquier definición de disponibilidad.

Descargo de responsabilidad: Realmente no sé si lo que digo tiene sentido. Podría estar realmente muy mal.