Actor migration

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Actor migration and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎polski • ‎हिन्दी • ‎日本語

In der Vergangenheit hat MediaWiki Verweise auf Benutzer (z. B. den Autor einer Revision oder eines Bildes) als Paar für anonyme Bearbeitungen gespeichert. Dies war eine Verschwendung von Speicherplatz, verursachte Probleme bei der Leistung bei Wikis mit einer großen Anzahl von Überarbeitungen und machte es sehr schwierig, Benutzer umzubenennen oder neue Arten von Autoren wie T133452 vorzustellen. MediaWiki 1.31 führt das Konzept von "Akteuren" (jemand, der eine Aktion ausführt, z. B. eine Bearbeitung oder ein Ereignisprotokoll; derzeit entweder ein registrierter oder ein anonymer Benutzer) und einen Migrationsprozess in Richtung eines neuen Datenbankschemas mit Feldern ein wie revision.rev_user und revision.rev_user_text durch Felder wie revision.rev_actor ersetzt. Aufgrund der enormen Größe der englischen Wikipedia revision Tabelle, die vollständig migriert werden muss, bevor die Änderungen bereinigt werden können, erfolgt die Migration schrittweise über mehrere MediaWiki-Versionen. Es wird erwartet, dass es in MediaWiki 1.34 fertig ist.

Bei der Migration wird ein actor Tabellendatensatz für jedes einzelne *_user / *_user_text Paar erstellt und diese Paare durch einen Verweis auf die Ereigniszeile-ID ersetzt. Die folgenden Spalten werden migriert:

Tabellen Alte Spalten Neue Spalten
revision rev_user, rev_user_text rev_actor
archive ar_user, ar_user_text ar_actor
ipblocks ipb_by, ipb_by_text ipb_by_actor
image img_user, img_user_text img_actor
oldimage oi_user, oi_user_text oi_actor
filearchive fa_user, fa_user_text fa_actor
recentchanges rc_user, rc_user_text rc_actor
logging log_user, log_user_text log_actor

Um zu vermeiden, dass auf den extrem großen 6-Dollar-Tischen großer Wikipedia-Wikis kostspielige 1-Dollar-Kosten anfallen, werden 2-Dollar und 3-Dollar zunächst in die 4-Dollar-Tabelle und von dort wieder in 5-Dollar-Tische kopiert. Die revision_actor_temp Tabelle wird danach gelöscht.

Wenn Sie ein Wiki-Besitzer sind, müssen Sie wahrscheinlich nichts tun. Die Migration wird automatisch durchgeführt, wenn Sie update.php ausführen. Wenn Sie steuern möchten, wann die Migration stattfindet, lesen Sie das Skript für $wgActorTableSchemaMigrationStage und migrateActors.php .

Wenn Sie ein Entwickler für Erweiterungen sind und Ihre Erweiterung direkten Zugriff zur Datenbank auf einige der betroffenen Felder ausführt, müssen Sie Ihre Abfragen aktualisieren (und im Idealfall die getQueryInfo()-Methoden wie Revision::getQueryInfo() verwenden, anstatt Ihre Abfrage manuell zu erstellen). Während des Migrationszeitraums können Sie auch die Klasse ActorMigration verwenden, um Schema- / Feldinformationen abzurufen, die alle $wgActorTableSchemaMigrationStage-Einstellungen berücksichtigen.

Wenn Sie ein Tool-Entwickler sind, der Toolforge verwendet, kann dies Auswirkungen auf die Leistung haben, auch wenn Sie keines der betroffenen Felder direkt verwenden. Weitere Informationen finden Sie unter wikitech: News / Actor storage changes on the Wiki Replicas.