Der Aufbau eines Key-Value-Speichers der nächsten Generation bei Airbnb
Airbnb hat seinen wichtigsten Key-Value-Store, Mussel, von V1 auf V2 umgestaltet, um den sich wandelnden Anforderungen an Echtzeitdaten gerecht zu werden. Mussel V2 behebt die betriebliche Komplexität, Kapazitätseinschränkungen und Konsistenzprobleme von V1 mit einem Cloud-nativen NewSQL-Backend. Zu den wichtigsten Verbesserungen gehören die automatisierte Bereitstellung von Kubernetes, dynamisches Bereichs-Sharding für ein besseres Kapazitätsmanagement und flexible Konsistenzoptionen. Die neue Architektur verfügt über einen zustandslosen Dispatcher-Dienst zum Übersetzen von API-Aufrufen und einen ereignisgesteuerten Schreibpfad mit Kafka für die Dauerhaftigkeit. Die Massenladefunktionen bleiben erhalten und werden durch zustandslose Controller und zustandsbehaftete Worker-Flotten für einen hohen Durchsatz verbessert. Der automatisierte Ablauf der Time-To-Live (TTL) ist jetzt topologieorientiert und skalierbarer. Bei der Migration von V1 auf V2 wurde eine komplexe Blau/Grün-Strategie mit dualen Schreibvorgängen und Schattenlesevorgängen verfolgt, um Ausfallzeiten und Datenverluste zu vermeiden. Zu den wichtigsten Lektionen, die wir gelernt haben, gehören der Umgang mit Konsistenzkomplexitäten und die Bedeutung von Presplitting für die bereichsbasierte Partitionierung. Kafka spielte eine entscheidende Rolle bei der Aufrechterhaltung der Konsistenz während des Migrationsprozesses. Mussel V2 vereint erfolgreich Massenerfassung, Schreibvorgänge mit hoher Geschwindigkeit und Lesevorgänge mit geringer Latenz auf einer einzigen Plattform und vereinfacht so die Dateninfrastruktur für Entwicklungsteams.