Datenschutzkonforme Fehler-Telemetrie in großem Maßstab
Author
Venue
Die Kunst, Wissenschaft und Technik des Programmierens
Abstract
Kontext: Mit Roblox Studio können Millionen von Entwicklern interaktive Erlebnisse erstellen, indem sie in einer Lua-Variante namens Luau programmieren. Die Entwickler bilden eine breite Gruppe, die von Anfängern, die ihr erstes Skript schreiben, bis hin zu professionellen Entwicklern reicht; daher muss Luau ein breites Publikum unterstützen. Als Teil seiner Bemühungen, alle Arten von Programmierern zu unterstützen, enthält Luau ein optionales, graduelles Typsystem und unternimmt große Anstrengungen, um Fehlalarme zu minimieren. Fragestellung: Da Luau derzeit von vielen Entwicklern genutzt wird, möchten wir Daten sammeln, um die Sprache und insbesondere das Typsystem zu verbessern. Der übliche Weg zur Datenerhebung ist der Einsatz von clientseitiger Telemetrie; wir dürfen jedoch keine personenbezogenen Daten oder geschützte Informationen erfassen, was bedeutet, dass wir keine Quellcodefragmente, Fehlermeldungen oder gar Dateipfade sammeln können. Die Forschungsfragen beziehen sich daher darauf, wie man eine nicht-invasive Telemetrie durchführt und daraus Erkenntnisse über Typfehler gewinnt. Ansatz: Wir haben ein pseudonymisiertes Telemetriesystem mit zufälliger Stichprobenentnahme für Luau entworfen und implementiert. Telemetrie-Datensätze enthalten einen Zeitstempel, eine Sitzungs-ID, einen Grund für die Übermittlung und eine numerische Zusammenfassung der jüngsten Typanalysen. Diese Informationen ermöglichen es uns, Typfehler im Zeitverlauf zu untersuchen, ohne private Daten preiszugeben. Wir haben das System im Frühjahr 2023 in Roblox Studio eingesetzt und über 1,5 Millionen Telemetriedatensätze aus über 340.000 Sitzungen gesammelt. Erkenntnisse: Wir präsentieren mehrere Ergebnisse zu Luau, die alle darauf hindeuten, dass Telemetrie ein wirksames Mittel ist, um die Pragmatik von Typfehlern zu untersuchen. Eine der weniger überraschenden Erkenntnisse ist, dass opt-in-basierte graduelle Typen unbeliebt sind: Es besteht ein 100-facher Unterschied zwischen der Anzahl der untypisierten Luau-Sitzungen und der Anzahl der typisierten. Eine Überraschung ist, dass der strenge Modus für die Typanalyse bei Interaktionen mit Datenressourcen übermäßig konservativ ist. Eine beruhigende Erkenntnis ist, dass die Typanalyse selten an ihre internen Grenzen hinsichtlich der Problemgröße stößt. Grundlage: Unsere Ergebnisse stützen sich auf einen Datensatz mit über 1,5 Millionen Telemetrie-Datensätzen. Die Daten und Skripte zu ihrer Analyse sind in einem Artefakt verfügbar. Bedeutung: Über die unmittelbaren Vorteile für Luau hinaus haben unsere Erkenntnisse zu Typen und Typfehlern Auswirkungen auf die Akzeptanz und Ergonomie anderer gradueller Sprachen wie TypeScript, Elixir und Typed Racket. Unser Telemetrie-Design ist von großem Interesse, da es über Typfehler berichtet, ohne sensible Informationen preiszugeben.
