Schemat ping-ponga

Algorytmy, o których mówi się, że wykorzystują schemat ping-ponga, istnieją w różnych dziedzinach inżynierii oprogramowania . Charakteryzują się naprzemiennością pomiędzy dwoma bytami. W przykładach opisanych poniżej podmiotami tymi są partnerzy komunikacji, ścieżki sieciowe lub bloki plików.

Bazy danych

W większości systemów zarządzania bazami danych trwałe transakcje w bazie danych są obsługiwane poprzez plik dziennika . Jednak wielokrotne zapisy na tej samej stronie tego pliku mogą wiązać się z niewielkim ryzykiem utraty danych. Zakładając dla uproszczenia, że ​​plik dziennika jest zorganizowany na stronach, których rozmiar odpowiada bloku nośnika, z którego pochodzi, może wystąpić następujący problem:

Jeżeli ostatnia strona pliku dziennika jest tylko częściowo wypełniona danymi i w tym stanie musi zostać zapisana w pamięci trwałej, ta sama strona będzie musiała zostać nadpisana podczas następnej operacji zapisu. Jeśli podczas późniejszej operacji zapisu nastąpi awaria , wcześniej zapisane dane dziennika mogą zostać utracone.

Schemat ping-ponga opisany w Przetwarzaniu transakcji eliminuje ten problem poprzez naprzemienne zapisywanie zawartości wspomnianej (logicznej) ostatniej strony na dwóch różnych fizycznych stronach pliku dziennika (rzeczywista ostatnia strona i i jej pusta następczyni i+1 ). Gdy wspomniana strona dziennika logicznego nie jest już ostatnią stroną (tzn. jest całkowicie wypełniona danymi dziennika), jest zapisywana po raz ostatni w zwykłej fizycznej pozycji ( i ) wewnątrz pliku dziennika.

Schemat ten wymaga użycia znaczników czasu dla każdej strony w celu odróżnienia najnowszej wersji logicznej ostatniej strony od jej poprzedniczki.

Sieć

Internet

Funkcja umożliwiająca komputerowi A sprawdzenie, czy komputer B jest osiągalny i odpowiada, jest wbudowana w protokół ICMP ( Internet Control Message Protocol ). Poprzez „żądanie echa” komputer A prosi B o odesłanie „odpowiedzi echa”. Te dwie wiadomości są czasami nazywane także „ ping ” i „pong”.

Rozgromienie

W Routingu schemat ping-ponga jest prostym algorytmem dystrybucji pakietów danych pomiędzy dwiema ścieżkami.

Gdybyś miał dwie ścieżki A i B , algorytm losowo zacząłby od jednej ze ścieżek, a następnie przełączał się między nimi.

Jeśli następną ścieżkę miałbyś uzyskać z wywołania funkcji, wyglądałoby to w Pythonie tak :

  
          def  get_next_path  ():   while  True  :  uzysk  '  A  '  uzysk  '  B  ' 
  1. ^   Szary, Jim; Reutera, Andreasa (1992). Przetwarzanie transakcji: koncepcje i techniki (1 wyd.). Morgana Kaufmanna. s. 508-509 . ISBN 978-1-55860-190-1 .