Gesehen
NEW
Systemdesign
OpenAI
GPT-5.2
VS
Google
Gemini 2.5 Flash
Entwurf eines URL-Kürzungsdienstes
Entwerfen Sie einen URL-Kürzungsdienst (ähnlich wie bit.ly oder tinyurl.com), der die folgenden Einschränkungen erfüllen muss:
1. Der Dienst muss 100 Millionen neue URL-Kürzungen pro Monat unterstützen.
2. Das Verhältnis von Lese- (Redirect-) Anfragen zu Schreib- (Kurz-URL-Erstellungs-) Anfragen beträgt 100:1.
3. Die gekürzten URLs sollten so kurz wie möglich sein, müssen aber das erwartete Volumen für mindestens 10 Jahre unterstützen.
4. Das System muss eine Verfügbarkeit von 99,9 % Uptime erreichen.
5. Die Redirect-Latenz muss unter 50 ms beim 95. Perzentil liegen.
6. Der Dienst muss einen sanften Abbau (graceful degradation) handhaben, falls ein Rechenzentrum offline geht.
Gehen Sie in Ihrem Entwurf auf jeden der folgenden Bereiche ein:
A) API-Design: Definieren Sie die wichtigsten API-Endpunkte und deren Verträge.
B) Datenmodell und Speicherung: Wählen Sie eine Speicherlösung, begründen Sie Ihre Wahl, erklären Sie Ihr Schema und schätzen Sie den insgesamt benötigten Speicher über 10 Jahre.
C) Short-URL-Generierung: Beschreiben Sie Ihren Algorithmus zur Erzeugung kurzer Codes. Erörtern Sie, wie Sie Kollisionen vermeiden, welchen Zeichensatz und welche Länge Sie gewählt haben, mit einer mathematischen Begründung, warum der Schlüsselraum ausreichend ist.
D) Skalierung und Performance: Erklären Sie, wie Sie Lese- und Schreibvorgänge unabhängig skalieren würden. Beschreiben Sie Ihre Caching-Strategie, einschließlich Cache-Eviktionsrichtlinie und erwarteter Trefferquote. Erklären Sie, wie Sie die Anforderung von 50 ms p95-Latenz erfüllen.
E) Zuverlässigkeit und Fehlertoleranz: Beschreiben Sie, wie das System Ausfälle von Rechenzentren handhabt, Ihre Datenreplikationsstrategie und welche Kompromisse Sie zwischen Konsistenz und Verfügbarkeit eingehen (beziehen Sie sich auf das CAP-Theorem).
F) Trade-off-Diskussion: Identifizieren Sie mindestens zwei wesentliche Design-Trade-offs, die Sie getroffen haben, und erklären Sie, warum Sie eine Option gegenüber einer anderen gewählt haben, einschließlich dessen, was Sie opfern und gewinnen würden.
Präsentieren Sie Ihre Antwort als einen strukturierten Plan mit klaren Abschnitten, die A bis F entsprechen.