- Verschifft
- 23. September 2026 um 10:41 UTC
- Autor
- Kamo
- Ausschuss
- e696226
getBulkPresence/getBulkLastSeen lief KEYS PRESENCE:*/PRESENCE_LAST_SEEN:* auf jedem Call - auf jedem Präsenz-Sockel-Mount und Tab-Fokus getroffen - und die 30er Sweep lief es zweimal mehr, alle gegen die gleichen Redis, die jede *** Sitzung hält. KEYS geht und blockiert den gesamten Keyspace; im Plattformmaßstab ist das ein Full-Redis Stand auf einem Anfrageweg, nicht auf einem pro-Ort. Jeder der drei liest nun einen gepflegten Index statt des Scannens: - PRESENCE_ORG_INDEX:{orgId' - ein ZSET von memberId, erzielt durch den letzten Herzschlag, geschrieben von handleConnect/handleHeartbeat, entfernt von handleDisconnect's Gnade-Periode löschen. getBulkPresence liest es direkt (org scoping ist von Bauen jetzt, nicht ein pro Kandidat orgId-Prüfung); das Sweep-Mitglied Hälfte liest es mit ZRANGEBYSCORE, nur plausibel-stale Kandidaten zu finden. - PRESENCE_ACTIVE_ORGS - ein SET von org-IDs, so dass der Sweep jeden org besuchen kann Index ohne Org-IDs durch Scannen von Mitgliedsdaten zu entdecken. - ************ - a SET Backing getBulkLastSeen the auf die gleiche Weise. Nicht gefegt, wie zuvor: die individuelle Schlüssel eigene 400-Tage-TL ist immer noch das, was es in den Ruhestand. - PRESENCE_PUBLIC_INDEX - eine flache ZSET für Besuchersitzungen (ohne Org-Konzept, Nichts liest sie in großen Mengen von org), Fütterung der Öffentlichkeit Hälfte des Sweeps. Jeder per-id hash Schlüssel (PRESENCE:, PRESENCE_PUBLIC:, PRESENCE_LAST_SEEN:) ist unverändert - gleiche Felder, gleiche TTLs - und bleibt die einzige Quelle der Wahrheit für seinen eigenen Zustand; ein Index verengt nur, welche ids angeschaut werden; eine Lektüre oder die Swee macht immer noch die Kontrolle der realen Hash vor Vertrauen oder Bericht etwas, und Selbst-Hebt (Drops den Index-Eintrag), wenn der Hash es bereits überlebt hat. A wiederbelebter Herzschlag (Schlüssel abgelaufene Mitte der Sitzung) kann immer noch kein Org zuschreiben - die gleiche Lücke, die der alte KEYS+HGET ("orgId") Scan hatte, da dieser Pfad nie geschrieben hat Das Feld ist entweder vorhanden, nur die org-bulk-Ansicht ist betroffen, unverändert von vorher. Abgedeckt von PresenceBulkLookupTest (neu) und PresenceSweepTest (rewrittened for der neue Entdeckungsmechanismus, die gleichen Verhaltensstifte wie zuvor plus ein "nie". ruft KEYS-Prüfung), mutationsgeprüft: Fallenlassen des Index-Rechens handleConnect, die Selbstheilung in getBulkPresence, und der HasKey Guard im Sweep jede drehen eine bestimmte Behauptung rot.
