W implementacji zastosowano następujące rozwiązanie tego problemu. Klient
generując wiadomość do miksu zawsze używa nowego identyfikatora. Miks
natomiast przechowuje nie tylko aktualny identyfikator , ale również
jego kolejne generacje:
,
,
... Liczba
jednocześnie przechowywanych identyfikatorów
jest ustalona z góry.
Miks akceptuje komunikat oznaczony dowolnym z tych identyfikatorów. Po jego
użyciu jest on usuwany z listy i zastępowany kolejną generacją. Dodatkowo
zapewniony jest warunek, że na liście znajduje się co najmniej
(
)
identyfikatorów nowszych od ostatnio użytego. Ten wymóg powoduje, że usuwane
są czasami najstarsze klucze, aby nie przekroczyć w ten sposób maksymalnej
liczby kluczy
. W implementacji zostały przyjęte wartości
oraz
.
Przyjęcie takiego algorytmu powoduje konieczność użycia zaawansowanej struktury danych do przechowywania identyfikatorów i kluczy. Wszystkie identyfikatory umieszczone są w słowniku z wartością identyfikatora jako kluczem słownika. Implementacją słownika jest tablica haszująca. Dzięki temu można szybko na podstawie identyfikatora uzyskać klucz. Identyfikatory odpowiadające temu samemu kluczowi powiązane są dodatkowo w listy, co pozwala na generowanie nowych i usuwanie starych identyfikatorów dla tego klucza.