¿Cuántas consultas fallarán si ocurre un error dentro de un solo proceso de un solo host?

¿Cuántas consultas fallarán si ocurre un error dentro de un solo proceso de un solo host?

Contexto:

Tengo un grupo de hosts H que sirven una API, donde cada host sirve la API usando un número P (constante) de procesos (python, pero irrelevantes) (asincrónicamente, pero por lo demás también irrelevantes).

Tengo acceso a la siguiente información (en forma de gráficos):

  • el número promedio (por segundo) de consultas del receptor en todo el clúster, R(t)
  • La latencia media (tiempo que lleva procesar una solicitud) L= L(t), que también varía con el tiempo.
    • La media es de más de segundos y en todos los procesos/hosts.
  • La cantidad de hosts H(t), que cambia con el tiempo debido al escalado automático.

Puede ocurrir un error que finalice un proceso completo y todas las consultas en proceso, pero los procesos restantes siguen funcionando.

  • La tasa de error (por ejemplo, en #bloqueos por día por host) es conocida y constante, por ejemplo E.

Problema: quiero calcular el número (¿esperado?) de consultas fallidas como resultado de un bloqueo.

Supuestos:

  • las consultas están igualmente equilibradas entre hosts y procesos.
  • un proceso fallido se recupera "inmediatamente"

Algunos pensamientos:

  • En cualquier segundo dado, el número denuevoLas consultas deben ser R(t) / [P*H(t)].
  • Esto no tiene en cuenta las consultas "en ejecución" que aún no han finalizado. Creo que quiero relacionar esto de alguna manera con L(t)...
  • La inversa del número de consultas nuevas por segundo, [P*H(t)] / R(t)debería ser menor que L(t), ya que de lo contrario significaría que tomaría más tiempo completar una consulta que recibir una nueva, lo que eventualmente sobrecargaría los servidores (¡lo cual no está sucediendo!)

información relacionada