Sonntag, Mai 5, 2024

Das böse Büro

Uriel Fanellis Blog in deutscher Sprache

Uriel Fanelli

Threads und das Fedever, schon wieder.

Ich habe zuvor meine Sicht auf die Erzählung rund um große soziale Netzwerke, die sich über ActivityPub zusammenschließen, dargelegt und erläutert, warum ein solches Modell von Natur aus nicht skalierbar ist. Was sich als ärgerlich erweist, ist die Reaktion von Personen wie Eugen Rochko, dem Programmierer hinter Mastodon, die, anstatt die Skalierbarkeit zu belegen, dazu neigen, sich auf Nuancen zu konzentrieren wie „Die Interaktion zwischen Instanzen beruht in erster Linie auf dem Folgemechanismus.“

Obwohl an dieser Behauptung etwas Wahres dran ist (wenn auch nicht ganz), liegt das Dilemma in ihrer Exklusivität für die bestehende Software, eine Tatsache, die von Rochko geflissentlich übersehen wird, der sie offenbar als die einzige Verkörperung wahrnimmt.

Die Realität ist jedoch differenzierter als Rochko anerkennt, da er andere relevante Aspekte des Problems selektiv vernachlässigt.


1) Nein, bei Threads und anderen hängt der Datenverkehr nicht ausschließlich vom Follow-Mechanismus ab. Diese Unterscheidung entsteht, weil diese Plattformen nicht auf die gleiche Weise wie Mastodon funktionieren.

Betrachten Sie ein bekanntes soziales Netzwerk. Stellen Sie sich eine bemerkenswerte Figur vor – nehmen Sie zum Beispiel Chiara Ferragni, die ein Publikum von etwa 20 Millionen Accounts hat. Im Sprachgebrauch des Fediversums bezeichnen wir sie als Follower. Stellen Sie sich nun vor, wie Sie Ferragni mit einem charmanten oder möglicherweise widersprüchlichen Bild antworten, und beobachten Sie, wie jemand wie folgt antwortet:

Im Reich des Fediversums habe ich, sarawas auch immer, eine URL geteilt, die auf ein Bild von mir verlinkt, auf dem ich ein Eis genieße, nur um darauf zu antworten, dass jemand eine Wiedergabe meines Bildes, eingebettet in ein anderes, postet. Abgesehen von der Notwendigkeit, mein Bild herunterzuladen, um es in ihrem zu verwenden, liegt der Kern der Sache in der Tatsache, dass, wenn wir dieses Szenario mit Leuten wie Chiara Ferragni vergleichen würden, in einem Moment, in dem die Popularität nachlässt, das Bild allein dies tun könnte Sammeln Sie lediglich fünfzigtausend Aufrufe.

Bedauerlicherweise kann sich die Situation noch verschärfen: Sollte mein Bild Kontroversen hervorrufen, eskalieren wir mühelos auf eine Million Downloads. Warum, fragen Sie sich vielleicht? Denn der Algorithmus von Meta ist darauf ausgelegt, die Anzahl der Aufrufe zu maximieren und dabei unweigerlich umstrittene Inhalte hervorzuheben.

Ein einzelner Beitrag, der über ActivityPub gesendet wird (das Bilder als Links versendet), birgt die Gefahr, dass Rochkos Instanz mit vergleichbarem Datenverkehr ausgestattet wird, als wenn alle seine Benutzer dasselbe Bild posteten und mindestens eine Person es betrachtete.

Nur ein Beitrag.

50.000 GET-Anfragen.


Wenn wir über Benutzer nachdenken, bei denen es sich um bekannte Sänger handelt, oder um ganze Fernsehsender mit Millionen von Followern und Abonnenten, und dann den folgenden Kommentar lesen, wird eine Behauptung deutlich: Die Vorstellung, dass der Verkehr ausschließlich vom Akt des Verfolgens abhängt, ist nachweislich unzutreffend.

Genauer gesagt können wir davon ausgehen, dass die Skalierbarkeit eher linear mit der Anzahl der Follower zusammenhängt, je nachdem, welcher Algorithmus am anderen Ende der Föderation die Bedeutung bestimmt, die einem Beitrag – oder einer Kontroverse – zugewiesen wird.

Sollte der Algorithmus festlegen, dass Ihr Beitrag zusammen mit Ihrem Bild heute von 25 Millionen Augenpaaren gesehen werden soll, ist dies die Schwelle, die Ihr Server aushalten muss. Zeitraum


2) Nein, Ihr Cache oder CDN ist nicht die Antwort.

Die naive Antwort an dieser Stelle ist, dass Ihre Instanz Bilder jederzeit auf S3 oder einem anderen Cloud-Dienst speichern kann. Gewährt. Dennoch haben wir uns auf den Weg der Dezentralisierung begeben, um uns von den Online-Oligarchen zu befreien, nur um dann darüber nachzudenken, unsere Inhalte einem weiteren digitalen Magnaten anzuvertrauen.

Allerdings führt der Diskurs über Content Delivery Networks (CDN) eine sekundäre Grenze ein. Nehmen Sie zum Beispiel diesen Blog; Gelegentlich wird auf Facebook und anderen sozialen Plattformen darauf verwiesen.

Aufgrund solcher Zitate verzeichnet der Blog einen Anstieg der Besuche. Was erlebe ich als Beobachter durch meine unscheinbare Grafana in diesen Fällen?

Der Grund dafür, dass große Systeme nicht auf einen einzelnen Server oder eine einzelne, einem Host zugeordnete IP-Adresse beschränkt sind, wie es im Fediverse der Fall ist, liegt in ihrer Manifestation als millionenköpfige Hydra, die als Content Delivery Network (CDN) bekannt ist. Wenn ich beispielsweise in Düsseldorf bin und Facebook nutze, erscheint vor mir ein Beitrag in folgender Form:

https://scontent-dus1-1.xx.fbcdn.net/v/t39.2365-6/whatever

Würde ich das Gleiche jedoch beispielsweise von Rom aus beobachten, würde sich herausstellen, dass der Beitrag von https://scontent-rome1-1.xx.fbcdn.net/v/t39.2365-6/whatever stammt. Um die Daten umfassend zu aggregieren, muss ich im Wesentlichen Protokolle unter dem Dach von „fbcdn.net“ zusammenstellen.

Jetzt vergleichen wir zwei Szenarien: eines, bei dem mein Bild (eine Kopie) auf das CDN von Facebook hochgeladen wird (was die Erfahrung in den Anschein eines Facebook-Kontos verwandelt, was Datenschutz und Profilerstellung betrifft), oder die Alternative, bei der es dort bleibt, wo es ist (vielleicht). aufgrund seines Alters oder weil es einfach nicht in Rom hochgeladen oder angesehen wird).

Wenn wir mit Bildern umgehen, haben wir die Wahl: Entweder der Zusammenbruch unseres Servers unter der Last der Last oder die Übergabe der Kontrolle an Facebook, das sie dann nach Belieben manipuliert und gleichzeitig unser Fediverse-Profil erstellt (wenn auch aus der Ferne). ). Da wir keine Nutzer sind, ist Facebook nicht an bestimmte Datenschutzverpflichtungen gebunden, die vom Bestehen eines Vertrags abhängig sind, z. B. vom Nutzerstatus.

Wenn das CDN andererseits unseren Beitrag oder Toot mit dem Bild in Form eines Links transportiert, müssen wir uns auf einen Ansturm von GET-Anfragen einstellen, die jeweils von einem Referrer begleitet werden: dem spezifischen Knoten innerhalb des CDN, der die Anfrage verwaltet.

Zu guter Letzt führt die Benutzeroberfläche mindestens einen GET aus, um die SEO der Instanz/des Benutzers/des Beitrags herunterzuladen.

Erlauben Sie Facebook entweder, die Kontrolle über den Inhalt zu übernehmen und die Bereitstellung zu verwalten, was die Profilerstellung erleichtert und gleichzeitig auf einige Datenschutzmaßnahmen verzichtet, oder Ihr Server erliegt der Last, sobald sich jemand dazu entschließt, Taylor Swift zu folgen


3) Ah, ja. Sie haben „Links“ erwähnt?

In der Tat. Wenn wir zu einer großen sozialen Plattform navigieren und auf einen „externen“ Link klicken, werden wir nicht direkt zum externen Link weitergeleitet. Stattdessen werden wir zu einem System weitergeleitet, das „Prüfungen durchführt“ (im Wesentlichen Informationen aus dem Browser extrahiert, ein gründliches Profil von uns erstellt, alle möglichen Datenpunkte sammelt) und uns dann zu den verlinkten Inhalten weiterleitet.

Dies erfordert in großen Systemen, dass der „Zwischenlink“ zumindest eine HEAD-Anfrage an den endgültigen Inhalt sendet und im Wesentlichen das sogenannte SEO-Thumbnail lädt. Dies bedeutet, dass abhängig von der Anzahl der Personen, die den Thread lesen, Ihr Server mindestens einen Aufruf erhält, unabhängig davon, ob dem Link gefolgt wird.

Wenn Sie also eine Antwort an Taylor Swift posten, die die SEO der Nachricht oder nur Ihren Avatar enthält, lädt jeder, der durch diesen Thread scrollt, gleichzeitig den Avatar. Auch wenn Ihr Link nicht befolgt wird, wird bei jedem einzelnen Aufruf zumindest der Avatar geladen, was eine GET-Anfrage auslöst, oder in einem Cache abgelegt und für … na ja, wer weiß wie lange gespeichert.

In diesem Szenario generieren die Links selbst, einschließlich des Links zu Ihrem Beitrag, Traffic. Dieser Traffic steht nicht im Verhältnis zur Anzahl der Follower, die Taylor auf IHRER Instanz hat, sondern eher im Verhältnis zu den Followern, die Taylor auf IHRER „Instanz“ hat. Dies liegt daran, dass Ihr Link oder zumindest der Link zu Ihrem Beitrag von jedem Meta-Kunden gelesen oder zu Meta verschoben wird (was in Bezug auf Datenschutz und Profilerstellung so ist, als ob Sie dort ein Konto hätten).


4) Jetzt taucht das Dilemma der Berichte auf, das dem sprichwörtlichen Schraubenzieher gleicht. Moderation wird zum unwillkommenen Gast beim Fest.

Wenn ich anstößige Inhalte versende, kann dies dem Moderator gemeldet werden. Im Fediverse werden sogar Berichte aus einer bestimmten Instanz an den Moderator weitergeleitet.

Bisher ist das Tempo der Berichte im Fediverse gemächlich gehalten worden – vielleicht ein Bericht pro Bimester –, was es auch für Hobbyisten beherrschbar macht. Was passiert jedoch, wenn ich ein auffälliges Foto sende und 23.000 Berichte von einem großen Player erhalte? Das bedeutet, dass ich mich mit der Auflösung von 23.000 Berichten auseinandersetzen muss.

Im Gegensatz dazu stelle ich mir bei großen Systemen vor, dass Berichte nach Inhalten zusammengeführt werden. Da es sich bei den Berichten über Mastodon um ein formloses Format handelt, d ein triftiger rechtlicher Grund für die Erwähnung.

Kurz gesagt: Nicht einmal der Systemadministrator der Instanz lässt sich mühelos skalieren.


Sie fragen sich vielleicht: Weiß Eugen Rochko diese Dinge nicht? Natürlich kennt er sie gut. Aus irgendeinem Grund scheint er jedoch geneigt zu sein, das Problem herunterzuspielen oder seine Nichtexistenz vorzutäuschen. Er ist sich sehr bewusst, dass, wenn ein Mastodon-Benutzer sich dafür entscheidet, Taylor Swift zu folgen, mit jedem Beitrag eine Reihe von Antworten einhergeht, die es zu entwirren gilt. Sollte der Benutzer klicken, um den Thread zu lesen, hängt der Datenverkehr auf dem Mastodon-Server von Taylors Erfolg ab, nicht von der Anzahl der Follower in dieser bestimmten Instanz.

Dennoch gibt er vor, diese Realität nicht anzuerkennen.

Pleroma hat ein Ratenbegrenzungssystem entwickelt, das ich persönlich sehr schätze und das eine potenzielle Möglichkeit bietet, das Problem zu entschärfen. Wenn Pleroma nicht ausreicht, werde ich eine Ratenbegrenzung auf dem Ingress-Reverse-Proxy implementieren, und wenn sich das als unzureichend erweist, kommt die Firewall ins Spiel. Sollte selbst das scheitern, wird der maximale Durchsatz meiner Docsis 3.1-Verbindung als letztes Mittel dienen, um den Datenverkehr einzuschränken.

Das Problem bleibt jedoch bestehen: Wenn große Player auf den Plan treten und es nicht schaffen, ihren Traffic einzudämmen, werden zahlreiche kleine Instanzen auf Probleme stoßen.

Warum Rochko Unwissenheit vortäuscht, bleibt ein Rätsel.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert