stringtranslate.com

Esquema de ping-pong

Existen algoritmos que emplean un esquema de ping-pong en diferentes campos de la ingeniería de software . Se caracterizan por una alternancia entre dos entidades. En los ejemplos que se describen a continuación, estas entidades son socios de comunicación, rutas de red o bloques de archivos.

Bases de datos

En la mayoría de los sistemas de administración de bases de datos, las transacciones de bases de datos duraderas se respaldan mediante un archivo de registro . Sin embargo, varias escrituras en la misma página de ese archivo pueden producir una pequeña probabilidad de pérdida de datos. Suponiendo, para simplificar, que el archivo de registro está organizado en páginas cuyo tamaño coincide con el tamaño de bloque de su medio subyacente, puede ocurrir el siguiente problema:

Si la última página del archivo de registro está parcialmente llena de datos y debe escribirse en un almacenamiento permanente en ese estado, será necesario sobrescribir esa misma página durante la siguiente operación de escritura. Si se produce un fallo durante esa última operación de escritura, es posible que se pierdan los datos de registro almacenados anteriormente.

El esquema de ping-pong descrito en Procesamiento de transacciones [1] elimina este problema escribiendo alternativamente el contenido de dicha última página (lógica) en dos páginas físicas diferentes dentro del archivo de registro (la última página real i y su sucesora vacía i+1 ). Una vez que dicha página de registro lógica ya no es la última página (es decir, está completamente llena con datos de registro), se escribe una última vez en la posición física regular ( i ) dentro del archivo de registro.

Este esquema requiere el uso de marcas de tiempo para cada página con el fin de distinguir la versión más reciente de la última página lógica de su predecesora.

Redes

Internet

Una función que permite a un ordenador A saber si un ordenador B está disponible y responde está incorporada en el Protocolo de mensajes de control de Internet (ICMP). A través de una "solicitud de eco", el ordenador A le pide a B que le envíe una "respuesta de eco". [2] Estos dos mensajes también se denominan a veces erróneamente " ping " y "pong".

Enrutamiento

En el enrutamiento , un esquema de ping-pong es un algoritmo simple para distribuir paquetes de datos a través de dos rutas. Si tuviera dos rutas Ay B, entonces el algoritmo comenzaría aleatoriamente con una de las rutas y luego alternaría entre las dos. [3]

Si quisieras obtener la siguiente ruta desde una llamada de función, se vería así en Python :

def  get_next_path (): """  Esta función es un generador que produce infinitamente las cadenas "A" y "B" en una secuencia alterna.  Rendimientos:  str: La siguiente cadena en la secuencia, ya sea "A" o "B".  """  mientras sea  verdadero :  rendimiento  "A"  rendimiento  "B"

Referencias

  1. ^ Gray, Jim; Reuter, Andreas (1992). Procesamiento de transacciones: conceptos y técnicas (1.ª edición). Morgan Kaufmann. pp. 508-509. ISBN 978-1-55860-190-1.
  2. ^ "Mensajes de solicitud de eco ICMP y de respuesta de eco". www.omnisecu.com . Consultado el 4 de julio de 2023 .
  3. ^ Swaminathan, K.; Lakshminarayanan, G.; Ko, Seok-Bum (diciembre de 2012). "Interfaz de red genérica de alta velocidad para redes en chip utilizando buffers de ping pong". Simposio internacional sobre diseño de sistemas electrónicos (ISED) de 2012. págs. 72–76. doi :10.1109/ISED.2012.11. ISBN 978-1-4673-4704-4.S2CID23635498  .​