Kangaroo: Effizientes Flash-Caching von Milliarden winziger Objekte

2025-05-22
Kangaroo: Effizientes Flash-Caching von Milliarden winziger Objekte

Facebook und die Carnegie Mellon University haben gemeinsam Kangaroo entwickelt, einen neuartigen Flash-Cache für das effiziente Caching winziger Objekte (ca. 100 Byte oder weniger). Kangaroo behebt die Einschränkungen bestehender Flash-Cache-Designs, indem es den DRAM-Verbrauch und die Schreibverstärkung minimiert. Durch die Implementierung in Facebooks Open-Source-Caching-Engine CacheLib lässt es sich einfach integrieren. Tests mit Traces von Produktions-Workloads des Social-Graph-Caching bei Facebook und Twitter zeigen, dass Kangaroo die Cache-Fehlerrate um 29 % reduziert, wodurch die Last auf Back-End-Speichersystemen deutlich verringert wird. Es ist besonders effektiv für Anwendungen, die eine große Anzahl kleiner Objekte verarbeiten, wie z. B. soziale Medien.

Mehr lesen

Meta veröffentlicht Pyrefly: Ein Python-Typprüfer in Rust

2025-05-17
Meta veröffentlicht Pyrefly: Ein Python-Typprüfer in Rust

Meta hat eine Alpha-Version von Pyrefly veröffentlicht, einem Open-Source-Python-Typprüfer und einer IDE-Erweiterung, die in Rust geschrieben wurde. Pyrefly zielt darauf ab, die Typkonsistenz in Python-Code zu verbessern und hilft dabei, Fehler frühzeitig vor der Laufzeit zu erkennen. Es unterstützt die IDE-Integration und die Verwendung über die Befehlszeile, wobei Leistung und Typinferenz im Vordergrund stehen und es auch bei nicht annotiertem Code effektiv funktioniert. Pyrefly baut auf Metas Pyre auf und soll ein leistungsfähigerer und erweiterbarer Typprüfer sein, der mit der Python-Community zusammenarbeitet, um das Python-Typsystem zu verbessern.

Mehr lesen
Entwicklung

WhatsApps Private Processing: KI mit Ende-zu-Ende-Datenschutz

2025-05-02
WhatsApps Private Processing: KI mit Ende-zu-Ende-Datenschutz

WhatsApp stellt Private Processing vor, eine optionale Funktion, die die KI-Verarbeitung von Nachrichten in einer sicheren, vertraulichen Umgebung ermöglicht. Durch die Nutzung von Trusted Execution Environments (TEEs) können Benutzer KI-gestützte Funktionen wie die Nachrichtenzusammenfassung anfordern, ohne dass Meta oder WhatsApp auf ihre Daten zugreifen können. Basierend auf den Prinzipien von Optionalität, Transparenz und Benutzerkontrolle implementiert Private Processing robuste Sicherheitsmaßnahmen, darunter vertrauliche Verarbeitung, überprüfbare Transparenz und Nicht-Zielfähigkeit. WhatsApp veröffentlicht Komponenten von Private Processing und erweitert sein Bug-Bounty-Programm, um unabhängige Sicherheitsforschung zu fördern und sicherzustellen, dass der Datenschutz der Benutzer im Vordergrund steht.

Mehr lesen
Entwicklung

Metas Strobelight: Ein Profiling-Orchestrator, der 15.000 Server spart

2025-03-07
Metas Strobelight: Ein Profiling-Orchestrator, der 15.000 Server spart

Meta hat Strobelight vorgestellt, einen leistungsstarken Profiling-Orchestrator, der mehrere Technologien (viele davon Open Source) kombiniert, um die Effizienz seiner riesigen Serverflotte zu steigern. Strobelight ist kein einzelner Profiler, sondern ein Orchestrator verschiedener Profiler, die detaillierte Daten zu CPU-Auslastung, Speicherzuweisung und anderen Leistungsmetriken sammeln. Durch Tools wie Scuba und Tracery visualisiert, hat Strobelight bereits erhebliche Einsparungen erzielt, die 15.000 Servern pro Jahr entsprechen. Eine einzige Zeichenänderung in einer Codezeile (&) führte zu diesem enormen Gewinn. Strobelight nutzt die effiziente eBPF-Technologie, flexible benutzerdefinierte Profiler, automatische Datenerfassung und dynamisches Sampling für optimale Leistung.

Mehr lesen

Metas Glean: Code-Indexierung im großen Maßstab

2025-01-01
Metas Glean: Code-Indexierung im großen Maßstab

Meta hat Glean veröffentlicht, ein Open-Source-System zur Code-Indexierung, das auf Effizienz und Skalierbarkeit ausgelegt ist. Glean sammelt und verarbeitet Informationen aus Quellcode und stellt sie Entwicklertools über eine flexible Abfragesprache namens Angle zur Verfügung. Die innovative inkrementelle Indexierung bewältigt die Herausforderungen großer Codebasen und ermöglicht Funktionen wie Code-Navigation, Suche und Dokumentationsgenerierung. Die Vielseitigkeit von Glean unterstützt verschiedene Sprachen und benutzerdefinierte Datenschemata, was es zu einem wertvollen Werkzeug für Entwickler macht.

Mehr lesen
Entwicklung Code-Indexierung

Meta bekämpft Spam im großen Stil mit Haskell

2024-12-22
Meta bekämpft Spam im großen Stil mit Haskell

Metas Sigma-System, eine wichtige Waffe im Kampf gegen Spam und Malware, wurde in einem zweijährigen Projekt überarbeitet. Das System wurde in Haskell neu geschrieben, eine ungewöhnliche Wahl für große Produktionssysteme, und erreicht über eine Million Anfragen pro Sekunde. Der Wechsel zu Haskell nutzte dessen rein funktionale und stark typisierte Natur, und das Haxl-Framework ermöglichte automatisches Batching und paralleles Datenabrufen. Im Vergleich zur vorherigen FXL-basierten Implementierung wurden Leistungsverbesserungen von 20 bis 30 % gemessen. Das Projekt beinhaltete auch wesentliche Beiträge zum GHC-Compiler, wodurch mehrere Fehler behoben wurden.

Mehr lesen
Entwicklung Spam-Filterung

Metas massive Java-zu-Kotlin-Übersetzung: Millionen von Codezeilen bewältigen

2024-12-22
Metas massive Java-zu-Kotlin-Übersetzung: Millionen von Codezeilen bewältigen

Meta hat sich über Jahre hinweg mit der Übersetzung seiner riesigen Android-Codebasis von Java nach Kotlin beschäftigt. Dieser Beitrag beschreibt, wie Meta den Kotlinator, ein Automatisierungstool, entwickelt hat, um Herausforderungen wie langsame Build-Geschwindigkeiten und unzureichende Linters zu bewältigen und erfolgreich über die Hälfte seines Codes konvertiert hat. Der Kotlinator besteht aus mehreren Phasen: Vorverarbeitung, kopflose J2K-Konvertierung, Nachverarbeitung und Fehlerbehebung. Meta hat auch mit JetBrains zusammengearbeitet, um J2K zu verbessern, und Teile des Prozesses Open Source bereitgestellt, um die Zusammenarbeit in der Community zu fördern. Der Artikel beleuchtet die Behandlung der Null-Sicherheit und verschiedene Codeprobleme, die während der Konvertierung aufgetreten sind und behoben wurden.

Mehr lesen
Entwicklung Codemigration