Схема пинг-понга
Алгоритмы, использующие схему пинг-понга, существуют в различных областях разработки программного обеспечения . Для них характерно чередование двух сущностей. В примерах, описанных ниже, этими объектами являются партнеры по связи, сетевые пути или блоки файлов.
Базы данных
[ редактировать ]В большинстве систем управления базами данных устойчивые транзакции базы данных поддерживаются посредством файла журнала . Однако множественная запись на одну и ту же страницу этого файла может привести к небольшой вероятности потери данных. Если для простоты предположить, что файл журнала организован в виде страниц, размер которых соответствует размеру блока базового носителя, может возникнуть следующая проблема:
Если самая последняя страница файла журнала заполнена данными лишь частично и ее необходимо записать в постоянное хранилище в этом состоянии, то при следующей операции записи эту же страницу придется перезаписать. Если во время этой последующей операции записи произойдет сбой , ранее сохраненные данные журнала могут быть потеряны.
Схема пинг-понга, описанная в разделе «Обработка транзакций». [1] устраняет эту проблему путем поочередной записи содержимого указанной (логической) последней страницы на две разные физические страницы внутри файла журнала (фактическая последняя страница i и ее пустая последующая страница i+1 ). Как только указанная логическая страница журнала больше не является последней страницей (т. е. она полностью заполнена данными журнала), она в последний раз записывается в обычную физическую позицию ( i ) внутри файла журнала.
Эта схема требует использования меток времени для каждой страницы, чтобы отличить самую последнюю версию логической последней страницы от ее предшественницы.
сеть
[ редактировать ]Интернет
[ редактировать ]Функциональность, позволяющая компьютеру A узнать, доступен ли компьютер B и отвечает ли он, встроена в протокол управляющих сообщений Интернета (ICMP). Через «эхо-запрос» компьютер A просит B отправить обратно «эхо-ответ». [2] Эти два сообщения также иногда ошибочно называют « пинг » и «понг».
Маршрутизация
[ редактировать ]В маршрутизации схема пинг-понга представляет собой простой алгоритм распределения пакетов данных по двум путям. Если бы у тебя было два пути A
и B
, то алгоритм случайным образом начинал бы с одного из путей, а затем переключался между ними. [3]
это выглядело бы так Если бы вам нужно было получить следующий путь из вызова функции, на Python :
def get_next_path():
"""
This function is a generator that infinitely yields the strings "A" and "B" in an alternating sequence.
Yields:
str: The next string in the sequence, either "A" or "B".
"""
while True:
yield "A"
yield "B"
Ссылки
[ редактировать ]- ^ Грей, Джим; Рейтер, Андреас (1992). Обработка транзакций: концепции и методы (1-е изд.). Морган Кауфманн. стр. 508-509 . ISBN 978-1-55860-190-1 .
- ^ «Сообщения эхо-запроса и эхо-ответа ICMP» . www.omnisecu.com . Проверено 4 июля 2023 г.
- ^ Сваминатан, К.; Лакшминараян Г.; Ко, Сок-Бум (декабрь 2012 г.). «Высокоскоростной универсальный сетевой интерфейс для сети на кристалле с использованием буферов пинг-понга» . Международный симпозиум по проектированию электронных систем (ISED) , 2012 г. стр. 72–76. дои : 10.1109/ISED.2012.11 . ISBN 978-1-4673-4704-4 . S2CID 23635498 .