Lufts Weg zur Elastizität – Teil 2: Auto-Scaling mit Query-Historie
(engineering.ab180.co)Um die Elastizität von Luft, einer selbst entwickelten Datenbank, zu verbessern, teilen wir unsere Erfahrungen mit der Implementierung eines kostenbasierten Auto-Scalers unter Nutzung der Query-Historie.
- In einer vorherigen Arbeit wurde auf eine Shared-Storage-Architektur umgestellt, doch um tatsächliche Effekte zu erzielen, war ein effizientes Auto-Scaling-System erforderlich.
- Es erfolgte der Wechsel weg von Kubernetes hin zu einem Self-managed-Cluster-Ansatz mit dem AWS SDK; außerdem wurde ein Verfahren implementiert, das gestoppte Instanzen wiederaufnimmt, wodurch sich die Skalierungszeit auf etwa 10 Sekunden verkürzte.
- Anstelle bestehender Auto-Scaling-Ansätze, die auf nachlaufenden Metriken wie CPU-/Speicherauslastung beruhen, wurde ein Kostenprognosemodell auf Basis der Query-Historie entwickelt.
- Durch Query-Kanonisierung (canonicalization) wurden ähnliche Queries identifiziert, und mit einer Kostenfunktion, die die Historie der Queries zur Kostenberechnung nutzt, wurde eine präzise Ressourcenprognose möglich.
- Ohne Overprovisioning werden Ressourcen nur bei Bedarf zugewiesen, wodurch sich die Instanzkosten um etwa 40 % senken ließen und ein elastisches System entstand, das auch schwere Queries verarbeiten kann.
Noch keine Kommentare.