6

nehmen ich habe zwei memcached Knoten (Knoten A, B) zu Beginn und wenn ich einen neuen Knoten C, wird ein Teil der Tasten werden neu zugeordnet und durch hinzufügen konsistente Hashing nur einige von ihnen.veraltete Daten mit memcached/konsistenten Hashing Handhabung

Werfen sie einen Wert mit der Taste annehmen „foo“ ursprünglich auf Server A ist nun auf dem Server C zugeordnet ist

Wenn ich Knoten C schließlich entfernen, sollte der Schlüssel A zugeordnet wird wieder zum Knoten, aber Zu dieser Zeit enthält Knoten A nur veraltete Daten.

Also, ist das Spülen der Daten die einzige Möglichkeit, dieses Problem zu lösen?

Antwort

2

Ich denke, das einzige, was Sie mit veralteten Daten zu tun haben, ist ... nichts! Sie wissen, dass ein Teil des Caches ungültig wird, wenn Sie einen neuen Server einführen. das ist alles! Lassen Sie Memcached, um veraltete Daten für Sie loszuwerden, wenn dieser Moment kommt!

Eine andere Sache ist, dass Sie veraltete Objekte nicht selbst loswerden können, weil Sie nicht wissen, welcher Server das Objekt speichert (dank konsistentem Hashalgorithmus).

hoffe auf Ihre Frage beantwortet.

2

Ihr Problem läuft auf "Daten in Ihrem Cache ist abgestanden"; also wie man es korrigiert?

Sie müssen also den Cache mit dem neuesten Wert aktualisieren. Ich denke nicht, dass es eine Alternative dazu gibt. Sie können verschiedene Ansätze betrachten, um sie je nach Systemanforderung zu optimieren.