Transkripte
1. System-Design: Während des Systementwurfs Grundlagen. Wissen Sie, dass die durchschnittliche Menge an Videos auf Netflix angesehen, aber vk ist etwa etwa 1 Milliarde Stunden. Die Anzahl der Tweets gepostet Birdie sind rund 500 Millionen. Das sind etwa sechstausend. Griechen essen Huhn und Tags, nur die Anzahl der geposteten Tweets. Wir reden nicht einmal über die Retreats unter Grüßen gefallen. Ich habe diese Nummern ausgeführt. Faszinierend. Macht Sie sich das nicht fragen, wie ist es sogar möglich für Unternehmen mit einer Reihe von Ingenieuren, die so große Mengen an Verkehr zu behandeln. Während der zufällige Benutzer, als nicht bewusst der Komplexität. Als Systemdesigner müssen
Sie sich dem Handling stellen. Sie müssen sich der Architektur der Anwendung bewusst sein , auf
der diese Produkte basieren. Sie alle haben ein sehr solides Fundament und wir werden codieren. Es ist sehr wichtig für diese Unternehmen wäre funktional die ganze Zeit. In der heutigen Welt ist es schwer, sich selbst eine Minute pro Tag ohne diese Dienste vorzustellen. Was macht uns diese Tools zur Verfügung? 24 mal sieben? Die Antwort ist die Ausweichung. Diese Systeme sind konstruiert. Und das wird immer mehr zu einer Fertigkeit. Verstehen, wie Sie Ihre Systeme ständig funktionsfähig halten können. Es gilt jetzt als primäre Fertigkeit zu haben. Wenn Sie sich auf ein Interview vorbereiten, versuchen
Sie, ein System für Ihre Organisation oder für Ihr eigenes Produkt zu erstellen. Und das Lernen, wie skalierbare Systeme entwickelt werden, hilft Ihnen, ein besserer Ingenieur zu werden. Das Ziel dieses Kurses ist es, Ihnen bei der Konzeption von
Großsystemen zu helfen und Sie bei der Finanzierung der Systemdesigninterviews vorzubereiten.
Sie werden mit den Themen vertraut gemacht, die Sie bei der Konzeption Ihrer Systeme berücksichtigen sollten. Also lasst uns anfangen.
2. Grundlagen: He, Jungs. In diesem Video werden wir über die Grundlagen des Systemdesigns sprechen. Lassen Sie uns zunächst verstehen, welche Systemdesigner. Das Systemdesign ist. Der Prozess der Gestaltung der Architektur kompetent und Schnittstellen Photosystem, so dass es die Anforderungen des Endbenutzers erfüllt. In der Softwareentwicklung ist
das Systemdesign eine Domäne, in der jeder etwas vertraut sein sollte. Egal, was deine Rolle ist. Abscheuliche Gestaltung von Systemen. Es gibt drei primäre Anliegen, die angegangen werden sollten. Zuverlässigkeit, Skalierbarkeit, Wartbarkeit. Also nun mal sehen, was all diese bedeuten angegeben. Grob. Die Haftung bedeutet, weiterhin korrekt zu arbeiten, auch wenn es schief geht. In der Domäne des Systementwurfs. Die Haftung bedeutet die Fähigkeit eines Systems, auf andere Probleme zu validieren , um Ausfälle bei vollständigen Abschaltungen zu vermeiden. Große Systeme werden mit fehlerintoleranten Unternehmen gebaut. Die Schönheit und der Bogen des Systemdesigns ist es, eine
fehlertolerante Systeme mit fehlerintoleranten Unternehmen zu bauen . Nein. Fehler können als Hybridformulare, auch gefüllte Hohlräume kategorisiert werden. Hybrid-Formulare passierten in großen Rechenzentren sehr viel. Ein großer Datensatz, der Ventildicke, Festplatten gehen Büste jeden Tag. Speicher wird in regelmäßigen Abständen beschädigt. Hiv-Metaphern können durch Hinzufügen von Redundanz angesprochen werden. Das heißt, die Rechenzentren können
mehrere unbegrenzte Backups haben , um einzelne Fehlerpunkte zu vermeiden. Software Ford kann aus einer Vielzahl von Gründen passieren. Ein großer Teil eines Prozesses kann
Systemressourcen selbst übertragen und einen systematischen Thresh über alle Knoten verursachen. Oder die Betriebsannahmen von BI-Anwendungen können sich ändern und bei Abstürzen abstürzen. Daher kann es durch Verständnis von Geschäftsanforderungen und
Atemwiderstandsfähigkeit behandelt werden , um Löschungen aus der gleichen begonnenen Ammoniak-Gebote
zu behandeln, Warnungen oder Leland Mega-Unit-Tests zu veröffentlichen. Und schließlich durch die Gestaltung besserer Abstraktionen und Schnittstellen, um das Problem leicht zu isolieren. Skalierbarkeit ist die Fähigkeit des Systems, angesichts einer erhöhten Belastung angemessene Leistung zu liefern. Zum Beispiel für die soziale Befreiung der Platte,
die erwartete Anzahl von Rechten oder Beiträge oder zu verdicken oder zu lesen. Das heißt, in Ihrer Timeline-Ansicht. Was ein verdicktes verwendet werden kann, um die Leistung zu beschreiben, kann als die
Betriebseigenschaften des Systems betrachtet werden, als der geladene Schrittzähler des Systems geändert wird. Beispielsweise können Sie die Leistung in Bezug auf die durchschnittliche Antwortzeit des Systems messen. Natürlich gibt es viele Möglichkeiten, die Leistung
eines Systems zu messen , das derzeit außerhalb unserer Diskussion liegt. Wartbarkeit bedeutet, Code zu schreiben, der von jemandem,
der nicht der ursprüngliche Autor des Codes ist, leicht verstanden, umgestaltet und aktualisiert werden kann . Jedes Stück Spaghetti-verwirrenden Code wird letztendlich von Maschinen verstanden. Guter Code sollte lesbar und leicht verständlich sein, damit er zusammenarbeiten kann. Guter Code sollte immer die richtige Abstraktionsstufe haben APIs und Schnittstellen
erhalten. So können dunkle neue Funktionen einfach auf den vorhandenen Codebasen aufgebaut werden. Als nächstes werden wir die verschiedenen Komponenten sehen, die miteinander kombiniert werden müssen, um skalierbare Systeme zu bauen.
3. Load-Balancer: Hey Jungs, willkommen zum ersten Vortrag in der Systemgestaltung Basisstädte. Heute werden wir über Load Balancer sprechen. Ein Load Balancer ist eine sehr wichtige Komponente jedes verteilten Systems. Lesebalancer verteilen die eingehenden Clientanforderungen an Computerressourcen, z. B. einen Cluster von Anwendungsservern und Datenbanken. In jedem Fall gibt der Load Balancer die Antwort zurück, solange die Berechnung dieses OLS die Server oder die Datenbanken an den entsprechenden Client. Der grundlegende Zweck eines Load Balancers besteht darin,
die Reaktionsfähigkeit und die Verfügbarkeit einer Anwendung, einer
Website oder einer Datenbank zu verbessern die Reaktionsfähigkeit und die Verfügbarkeit einer Anwendung, einer . Ein Load Balancer verfolgt auch den Status
aller britischen Streitkräfte während der Verteilung von Nyquist. Lass uns sehen. Ein Server ist nicht verfügbar, um neue Anforderungen anzunehmen, oder er reagiert nicht oder es hat eine Fehlerrate, der Load Balancer sendet Datenverkehr wie null. Dies wird über Celtx erreicht. Der Load Balancer versucht regelmäßig, eine Verbindung
zu den Back-End-Servern herzustellen, um sicherzustellen, dass die Zellkörper abhören. Wenn das einen Gesundheitscheck anfühlt. Es wird automatisch aus dem Pool entfernt und der Datenverkehr wird erst an ihn weitergeleitet, wenn er erneut auf die Healthix reagiert. Lassen Sie uns nun einen Blick auf die grundlegende Architektur werfen. Schrecklich. Lastenausgleichsdienst. Regel sitzt ein Load Balancer zwischen dem Client und den Servern, ausgenommen eingehenden Netzwerk- und Anwendungsverkehr, und verteilt den Datenverkehr über mehrere Backend-Server mit verschiedenen Algorithmen wie Round Robin. Nein, hier gibt es eine grundlegende Architektur. Sie könnten einen Load Balancer verwenden. Nun, hier haben wir einen Klienten. Da das durch das Internet gleichkommt, unser Load Balancer. Nun liegt es in der Verantwortung des Load Balancers, den Datenverkehr zwischen unseren verschiedenen Webservern zu verteilen. Durch Ausgleich von Anwendungsanforderungen über mehrere Server. Ein Load Balancer reduziert diese einzelne Serverlast und verhindert, dass Anwendungen, die zu einem einzigen Ausfallpunkt werden. Dadurch wird die allgemeine Anwendung, Verfügbarkeit und Reaktionsfähigkeit verbessert. Klage, genau zu sagen, Load Balancer wirksam sind, um zu verhindern, dass Linguisten gehen zu unheiligen Sanders würde etwas Überlastung
der Ressourcen haben und helfen und beseitigen einzelne Punkte des Scheiterns. Keine Verzögerungen, volle Skalierbarkeit und Redundanz. Wir können versuchen, die Last an jeder Schicht des Systems auszugleichen. Sie können Lastausgleich an Ersetzungen zwischen dem Benutzer und dem Beobachter hinzufügen. Zwischen den Webservern und einer internen Plattformschicht, wie Anwendungsserver, ein Cacheserver. Und zwischen allen internen schwarzen Familien und Datenbanken wird es durch Diagramm zu sehen. Hier ist also unser erster Load Balancer. sitze zwischen dem Client und ich hole Server. Nun, hier ist ein zweiter Load Balancer, der
zwischen unseren Webservern und Anwendungsservern sitzt . Dies ist ein dritter Load Balancer. Bitches, die zwischen den App-Servern und den Datenbanken verwendet werden. So verteilt der erste Load Balancer die eingehenden Gland Linguisten glauben epsilon_1 oder den Webserver an den sekundären Load Balancer, verteilt
weiter den Datenverkehr auf dem Anwendungsserver oder dem Anwendungsserver tun. Und der dritte Load Balancer verteilt den eingehenden Datenverkehr von den Anwendungsserver-Datenbanken. Dies ist im Grunde die Verteilung der Last auf Schnittstellen. Lassen Sie uns nun die Vorteile der Verwendung eines Load Balancer betrachten. Zuerst verwendet Zweckmäßigkeit oder schneller. Und ein ununterbrochener Dienst, Benutzer müssen nicht warten, bis eine einzige kämpfen, um seine vorherigen Aufgaben zu beenden. Stattdessen, ihre Anfragen, werde ich sofort an eine leicht zugängliche Ressource weitergegeben. Zweitens, Dienstleister, Zweckmäßigkeit, weniger entmutigend und höherer Durchsatz. Selbst ein vollständiger Serverausfall Tresor beeinflussen die Endbenutzer-Erfahrung, da der Lastausgleich es, sie werden einfach um es zu schweren Servern bemerken. Abgeschleppt. Der Lastenausgleich erleichtert Systemadministratoren die Bearbeitung eingehender Anfragen, indem sie schmerzhafte Lesezugriffe verringern. Und als nächstes, Systemadministratoren, Zweckmäßigkeit. Weniger Feed für alle synchronisierten Komponenten. Anstelle eines einzigen Geräts oder bilden eine Menge Arbeit. Load Balancing hat mehrere Geräte bilden ein wenig Glück. Lassen Sie uns nun zu einigen Nachteilen der Verwendung eines Load Balancer übergehen. Der Load Balancer kann zu einem Leistungsengpass werden wenn er nicht über ausreichende Ressourcen verfügt oder wenn er nicht ordnungsgemäß konfiguriert ist. Zweitens führt die Einführung eines Load Balancer zur Beseitigung einzelner Fehlerpunkte zu einer erhöhten Komplexität. Völlig. Ein einzelner Load Balancer ist ein einziger Fehlerpunkt. Durch die Konfiguration mehrerer Lastausgleichsprogramme wird die Komplexität weiter erhöht. Wenn man also die Vor- und Nachteile berücksichtigt, bietet ein Load Balancer. Benito schließt beratend als aber unsere Bedürfnisse in das von uns entworfene System ein.
4. In den Cachespeicher aufnehmen: Wenn Sie auf der langsamen Internetverbindung hatten und
eine Website bauen , die vor jedem qualitativ hochwertigen Bild ist. Jedoch, in Ihren nachfolgenden Besuchen in den gleichen Zustand, so dass die Seite erweiterte Bild sofort rendert. Veranstaltungsort besuchen Sie eine brandneue Website. Es braucht mehr Zeit, um zu laden. Dann wird ein häufig besuchte den gleichen Browser. Jetzt sehen wir uns einen anderen Fall an. Aufgefallen durch das Ansehen eines YouTube-Videos, das gleichzeitig sprudelt. Dann haben Sie eine langsamere Internetverbindung wird nicht unterbrochen. Das Video wird so lange wiedergegeben, bis der gepufferte Betrag erreicht ist. In der buddhistischen Netznutzung der interne Mechanismus, der geschieht, Caching. Lassen Sie uns jetzt über Cache diskutieren. Cache Bücher auf dem Prinzip der Lokalität auch finanzieren, die Gash fungiert als ein Werkzeug für die Daten, um die Suche auf zu beschleunigen. Die. Auch Ganesh ist, dass jede Agentur abzuleiten und den Durchsatz zu verstärken. Jetzt sehen wir ein echtes Gold-Out. Und sagen wir, du willst heute Abend Abendessen kochen. Sie brauchen verschiedene Zutaten, Gemüse, Räume, et cetera, für die Zubereitung. Aber verwenden Sie jeden Tag im Supermarkt. Weißt du, das wäre zu umständlich. So überprüfen Sie Ihre Küche Audio definitiv Daten, um nach den erforderlichen Zutaten zu suchen. Diese Ansicht der Daten aus dem Supermarkt. Ihr Kühlschrank fungiert jetzt als Gast. Und der Supermarkt ist Ihre Datenquelle oder Daten gespeichert. Alles. Der Vorteil der Verwendung des Cache und dieses Interview ist , dass es Ihnen die Zeit spart, den Supermarkt zu besuchen und Ihre Zutaten fallen zu lassen. Lassen Sie uns jetzt sehen, wie Anwendungen funktionieren und wie wir den Gash verwenden können. Im Allgemeinen speichert jede Backend-Anwendung die Daten in einer Datenbank. Dann versucht ein Client, alle Daten zu lehren. Es ist falsch. Die Anwendung, die Anwendung fragt die Datenbank ab, ruft die Daten und die Datenbank und gibt sie an den Benutzer oder den Client zurück. Das muss nicht Silber sein, könnte auf
dem Anwendungsserver auf demselben System wie ein separater Prozess ausgeführt werden , oder der Datenbankserver, der auf einem anderen Computer läuft. Nun ist die Aufnahme der Daten aus einer Datenbank zeitaufwendig da sie eine Operation benötigt, um die Daten des Dateisystems abzurufen. Wenn die Daten im Cache gespeichert sind, wird
der Lesevorgang schnell erfreulich sein, da das Lesen aus dem Speicher Vz ist. Dann lesen Sie aus dem Dateisystem. Und die Datenbanken gespeichert die Daten im Verteidigungssystem von Lagash hält die Daten im Speicher. Wenn also ein Client einige Informationen anfordert, also lassen Sie sich keine Anwendung, nehmen
die Anwendungen, die waren nur den Datenplatz ein, um die Daten aus dem Cache abzurufen. Falls die Daten im Cache gefunden werden, wird
es Anwendung sein. Und der Anwendungsserver könnte dann die Daten zurückgeben, um abzulehnen. Wenn die Daten nun nicht im Cache gefunden werden, werden
sie in die Datenbank übernommen. Die Datenbank würde dann den Anwendungsserver mit den Daten zurückgeben. Und der Anwendungsserver könnte diese Daten speichern. Nb Gash. Um eine weitere Abfrage der Datenbank oder der gleichen oder ähnlichen Anfragen zu vermeiden. Biegen Sie die Drüse die gleichen Daten wiederholt. Es macht sinnvollere Konvention aus dem Cache, dann aus der Datenbank. Und schauen wir uns ein Beispiel für ein Verb an, um Bargeld zu verwenden. Nehmen wir an, wenn es wird Warum haben alle Benutzer und holen Sie die Daten aus dem gleichen Tweet? Und da insgesamt nicht Melinda, Benutzer mit dem Cache, dann sehen Millionen von Aufrufen in die Datenbank
und die Benutzer würden mit Informationen zu einer viel schnelleren Rate besucht werden. Auf diese Weise wird ein Cache in der Datenbank. Wenn die Daten im Gash gefunden werden, wird
ein Datenbankaufruf gespeichert, indem der Druck auf die Datenbank reduziert wird.
5. Cache: Hey, Jungs. In diesem Video werden wir über die Politik der Cache-Räumung sprechen. Da der Cache eine begrenzte Kapazität hat, kann
er irgendwann voll werden. Und dann, abhängig von der Big Data wird von der Anwendung zugegriffen. Daher müssen wir eine Strategie entwickeln. Andere Politik, Buddha verschieben die Daten aus dem Cache und ersetzen sie durch diejenige, die mehr Wahrscheinlichkeit hat, in naher Zukunft zugegriffen werden. Es gibt mehrere Cache-Räumungsrichtlinien. Lru am wenigsten verwendet, LRU am wenigsten häufig verwendet. Und zuletzt verwendet. Hierbei handelt es sich um die am häufigsten verwendeten Räumungsrichtlinien. Wirst du sehen? Nein, nein. Lassen Sie uns darüber individuell sprechen. Ich rede über LRU. Diese Richtlinie entfernt den NPV aus
dem Cache, der zuletzt verwendete ist. Sobald das Gas voll wird, ist
Audit im Begriff, für sie die am wenigsten anständig verwendet werden. Der Eintrag wird von ihm vertrieben. Und der letzte Eintrag wird dem Cache hinzugefügt. So können Sie sich Facebook vorstellen. Es geht auf Prominente, Fotos in einem Cache. Das Datenzugriffsmuster der Follower so, dass sie sich für die neuesten Fotos interessieren. Also dann wird diese Berühmtheit Fotos Bargeld voll. Es wird die Fotos treten, die zuletzt hinzugefügt wurden. Also sagen wir zum Beispiel, b1 Foto,
B2, B3, B4 sind die Photovoltaik-Jobs, die, dass hinzugefügt, um den Cache. Und aber x und d, p plus eins, p plus 23. Dies stellt also die Zeit dar, zu der diese Fotografien zuletzt von der Gash zugegriffen wurden. Und mal sehen, wir müssen b5 in den Cache hinzufügen und nur unterstützt für Fotografien beendet I. Also müssen wir ein Foto entfernen und dann werden wir nur Lage
sein, hinzuzufügen, wenn ich so in diesem Fall, würde
sogar aus dem Cache entfernt werden, weil Dieses Foto wurde zuletzt vor kurzem verwendet, wurde das zuletzt verwendete. Und so wird b1 aus dem Gash entfernt, und B5 wird seinen Platz einnehmen. Und die Zeit seiner Achse wird p plus vier sein. L von u. Das ist die am wenigsten häufig verwendete. Es ein paar verfolgt die Häufigkeit, wie oft ein Datenelement zugegriffen wird. Im Falle einer Cache-Größe, die einen bestimmten Schwellenwert überschreitet, wird
es an den Eintrag mit der niedrigsten Frequenz ausgegeben. Geben Sie beispielsweise ein beliebiges Wort per SMS auf Ihrem Smartphone ein. Ihr Telefon schlägt mehrere Wörter vor, die Sie auswählen können. Anstatt das ganze Wort einzugeben. Intern werden Sie gebildet Software verwaltet einen Cache aller Wörter, die Sie Zeit zusammen mit seiner Häufigkeit haben. Die liberalen Eliten, dass die niedrigste Frequenz. Sagen Sie also, Sie backen Vasa am meisten. Sobald Sie also beginnen, W und a zu tippen, wird
Ihr Telefon anfangen, Ihnen vorzuschlagen, dass Sie sofort warsup. Weil dies die höchste Anzahl von Frequenzen hat und Sie Bargeld haben. Nun, im Falle einer Verbindung zwischen mehreren Modi, dann wird die Liste, die im Wesentlichen zum Brennen verwendet wird, aus dem Cache entfernt. Mrd oder das zuletzt in MIT Ihnen verwendete, wird
das zuletzt verwendete N3 entfernt und bevorzugt die ältesten Einträge im Cache. Wenn das Datenzugriffsmuster so ist, dass der Benutzer für den letzten Eintrag weniger wahrscheinlich ist. Dann wird diese Strategie für die Räumung verwendet. Ein Beispiel für diese Art von Bargeld ist Dating-Apps wie Tinder. Es speichert in der Regel alle potenziellen Übereinstimmungen eines Benutzers im Cache. Dann vergewaltigt der Benutzer entweder links oder rechts oder bieten. Die App sollte nicht empfehlen, dem Benutzer zur Verfügung gestellt zu werden. Auch wenn dies geschieht, wird
dies zu einer schlechten Benutzererfahrung führen. Es ist also notwendig, die Entitäten zu bearbeiten, die zuletzt absorbieren würden. Die Anwendung muss den Cache-Eintrag des Profils entfernen, das entweder links oder rechts.
6. Types: In diesem Video werden wir über verschiedene Arten von Caches sprechen. Durch Raten ist fantastisch. Es erfordert einige Wartung, um Cache kohärent mit der Quelle von unerlaubter Handlung zu halten. Das heißt, wenn die Datenbanken, wenn die Daten in der Datenbank geändert werden, sollten
sie im Cache ungültig gemacht werden. Ist dies nicht der Fall, kann dies zu einem inkonsistenten Anwendungsverhalten führen. Das Lösen dieses Problems wird als Cache-Invalidierung bezeichnet. Basierend auf der Cache-Invalidierung, Es gibt drei Hauptplanken von Caches. Erstens, zu kauen als schlechte Gash, und drittens, notieren Sie Gash. Jetzt wollen wir sehen, was all diese bedeuten indegree, direkt durch den Cache. Wenn sich der Name bewegt, werden
die Daten zuerst in den Cache geschrieben und dann die Datenbank ausgeführt. Dies ist ein Anwendungsserver. Sobald es braucht, um einige Daten zu lesen. Es liest zuerst die Daten aus dem Cache und schreibt danach in die Datenbank. Dadurch wird die Konsistenz zwischen den Daten im Cache und den Daten in der Datenbank sichergestellt. Jeder Blei dann auf dem Gash folgt der jüngsten Rate. Der Nachteil dieses Ansatzes ist jedoch, dass die Latenz der Anwendungsrate zunimmt, da die Daten zuerst den Cache
geschrieben und dann in der Datenbank gespeichert werden. Dieser Ansatz ist nicht für ein schreibschweres System geeignet. Es ist nützlich für Anwendungen, die die Daten häufig reduzieren. Brötchen, es ist persistent in der Datenbank. Schreiblatenz kann zu einem Treffer führen, wird
jedoch durch geringere Latenz und Konsistenz kompensiert. Als nächstes haben wir Write-Back-Cache. Wie wir gesehen haben, ist die späten zwei Bargeld nicht für schreibschwere Systeme
geeignet, da die Latenz sich erhöhen kann. Ein alternativer Ansatz besteht darin, die Daten zuerst in
den Cache zu schreiben und den Leader als modifiziert zu markieren
, der später in der DB aktualisiert werden kann. So schreibt ein Anwendungsserver die Daten in den Cache. Und dann könnte ein ehrlicher Job regelmäßig
alle geänderten Einträge im Cache führen und ihre entsprechenden Werte in der Datenbank
aktualisieren. Dieser Ansatz müsste sich auf Lese- und nicht verzögerte Latenz auswirken. Der einzige Nachteil ist, dass es aufgrund von Datendenken zwischen dem Cache und den Lebenden zu
einer Verzögerung kommen wird. Nun, da die Datenbank die Quelle des Brutes ist, würde
jede Verpflichtung, die von dB gelesen wird, immer noch verkörpert. Die Websites wie YouTube. Verwendet Write-Back-Cache, geht auf den Bukkal eines beliebigen Videos. Die Aktualisierung der Datenbank für jede einzelne Ansicht eines wichtigen Videos wäre teuer. Schreiben von Daten in den Cache. Und dann ist das Versenken in der DB eine bessere Lösung. Er hatte es. Verwendung von Write-Back-Cache, gewährleistet Lese- und Schreiblatenzen. Als nächstes ist Radongas. Brennstoff-Back-End-Anwendungen nicht häufig Wirklich, die neuesten Daten, in diesem Fall Radongas verwendet wird. Und diese Richtlinie, die Datenbank, wird aktualisiert, ohne die Daten in den Cache zu brechen. Also schreibt der Anwendungsserver zuerst die Daten in die Datenbank. Und dann für jeden von Ihnen essen die Gash fragt die Datenbank ab. Wenn die Einträge nicht angenehm in der Gash sind. Dieser Ansatz lädt nicht den Cache, die Daten, die nicht verzögert werden. Der Nachteil dieses Ansatzes ist, dass, wenn die Anwendung anfängt, nach den neuesten Daten abzufragen,
sie wüsten wird und mein doppelter Cache fehlschlägt. Dies sind also die drei Arten von Caches, die einige positive und einige Negative haben. Es hängt ganz vom Szenario ab, welchen Cache Sie beim Entwerfen Ihrer Systeme in Betracht ziehen sollten?
7. Data: Hey, Jungs. In diesem Video werden
wir über Datenpartitionierung sprechen. Es wird auch als Daten-Sharding bekannt. Data Sharding ist ein Prozess der Aufteilung großer Tabellen in mehrere kleinere Tabellen oder Junks, bekannt als Jibes, und Verteilung der Daten auf mehrere Maschinen oder Intercluster. Jedes Diagramm hat das gleiche Schema und die gleichen Spalten wie das der ursprünglichen Tabelle. in jedem Kind gespeicherten Daten sind jedoch einzigartig und unabhängig von anderen Gebühren. Es gibt zwei Möglichkeiten, Daten zu teilen. Erstens, vertikale Sharding oder vertikale Partitionierung. Und die zweite heißt horizontale Partitionierung. Bei der vertikalen Partitionierung wird die Haupttabelle in
mehrere Partitionen unterteilt , indem die Anzahl der Spalten getrennt wird. Hier, wie Sie sehen können, enthält
diese Haupttabelle benutzerspezifische Informationen. Dies ist eine Benutzer-ID, ein Benutzername und die Benutzer-E-Mail. Diese Informationen sind in Tabellen aufgeteilt. Die erste, die die Benutzer-ID und den Benutzernamen enthält, und die zweite mit der Benutzer-ID und dem ausgegebenen Benutzer. Für den Fall, dass wir die Informationen eines bestimmten Benutzers abrufen müssen. Wir können beide Tabellen auf der Grundlage der ID verbinden. Hier. Wir haben den Tisch vertikal geteilt. Daher ist es als vertikale Partitionierung bekannt. In der horizontalen Partitionierung, v teilen Sie die Haupttabelle entsprechend der Anzahl der Zeilen. Das ist ungeladen. Eins, V halten ein paar Zeilen. Und in aufgeladen V kam ein weiterer Satz von Reihen. Die Daten in beiden Aufnahmen kombiniert geben uns die ursprünglichen Daten. Hier. Die Daten hätten auf der Grundlage einiger Faktoren aufgeteilt werden können, die wir in der kommenden späten Zeit sehen werden. Datenbank. Sharding ähnelt der horizontalen Skalierung ziemlich. Das heißt, mehr Maschinen hinzufügen, automatische Skalierung. Daher. Es ermöglicht uns, mehr Maschinen hinzuzufügen, wenn bestehende Cluster, um die Last zu verteilen, ermöglichen mehr Verkehr und schnellere Verarbeitung. Außerdem hilft Chiding, diese Anwendung verteilt zu machen, wodurch ein einzelner Fehlerpunkt minimiert wird. Datenbank-Sharding muss so durchgeführt werden, dass
die eingehenden Daten in Sammeldiagramm eingefügt werden sollen. Es sollte keinen Datenverlust geben. Und die Wüstenabfragen sollten nicht langsam sein. In Anbetracht dieser Dinge. Mal sehen, was sind die Techniken, um die Datenbank zu splittern. Erstens ist Hashmi-Sharding, oder auch bekannt als GIS-basierte glänzende Vedic. Ein Schlüssel-Wert-Paar, z. B. eine Kunden-ID auf geplantem IB oder die Verbrennung aus den Zeilenumbrüchen sind die Daten. Dann übergeben Sie es an eine Hash-Funktion und fügen Sie die Daten in die denkt nicht scheut. Aus unserem vorherigen Beispiel. Nehmen wir an, wir haben die folgenden Daten eingefügt werden. Benutzer-ID, Benutzername und verwendet E-Mail. Mal sehen, der erste Wert ist eins. Benutzername ist ABC. Und ein paar E-Mails. Abc auf gmail.com. Hier, neu gestaltet, um unsere Daten basierend auf dieser Benutzer-ID zu splittern. Also der Bus, diese Benutzer-ID, macht eine Hash-Funktion für unser Beispiel, aber versiert diese Hash-Funktion, tut
nur das Modulo der Benutzer-ID um drei und weist ein gutes resultierendes Kind zu. So würde der modulo 43 zu 012 führen. Also, wenn das Ergebnis 0 ist, ist
es ein gleicher Bouchard-Lauf. Immer wenn das Ergebnis eins ist, wird
es SIO2 zugewiesen, und wenn das Ergebnis zwei ist, wird
es Shard 3 zugewiesen. Also in diesem Fall, die Benutzer-ID eins, würde
es unserem Diagramm zugewiesen werden. Diese Regel würde also auch in unseren Schuss eingefügt werden. Falls wir eine andere Regel hinzufügen müssen, diese Benutzer-ID zwei und einige andere Attribute. Diese Hash-Funktion würde dann do modulo drei auswählen, was zu zwei führt, und die Daten zuweisen. Bouchard drei. Dies ist der einfachste Sharding-Algorithmus und kann
verwendet werden , um die Daten gleichmäßig zwischen den Aufnahmen zu verteilen. Und verhindern Sie das Risiko eines Daten-Hotspots. Datenbank-Hotspot-Problem tritt auf, wenn ein Kind mehr im Vergleich zu den anderen Sharps zugegriffen wird. Und daher werden in diesem Fall alle Vorteile des Glänzens aufgehoben. Das Hauptproblem bei diesem Ansatz ist, dass es wirklich
schwierig wird , einen Datenbankserver dynamisch hinzuzufügen oder zu entfernen. Jedes Mal, wenn dies geschieht, müssen
wir die Datenbank erreichen, was bedeutet, dass wir die Hash-Funktion aktualisieren und die Daten neu ausgleichen müssen. Wenn dies häufig vorkommt, kann
dies auch zu Datenverlust führen. Also mal sehen. Wir müssen entfernen oder Server, die Hosts sind Shard drei. In diesem Fall müssen wir zuerst unsere Hash-Funktion ändern. Und dann der Hash, alle Daten, die in einem,
SIO2 und Kind drei gespeichert wurden . Da wir die Hash-Funktion ändern, ändert sich auch
die Verteilung der Daten. Belüftung. Aber dieses Problem besteht darin, konsistentes Hashing zu verwenden. Konsistentes Caching bietet Skalierbarkeit auch wenn viele Daten unter vielen Servern vorhanden sind. Und die Anzahl der verfügbaren Server ändert sich kontinuierlich. Vivi, erfahren Sie mehr über konsistentes Hashing und kommende Vorträge. Als nächstes haben wir die Dekane zu glänzen und Wiedereintritt zu teilen. Die Scherbe wird auf der Grundlage des Bereichs eines Schottkys ausgewählt. Der Bereich der Sharding wird so gewählt, dass der Schottky wahrscheinlich in einen der möglichen Werte fallen wird. Nehmen wir an, wir haben ein Empfehlungssystem, das
alle Informationen über den Benutzer speichert und Filme basierend auf Benutzern empfiehlt. Es. Daher können wir ein paar verschiedene Gebühren erstellen und teilen jede Benutzerinformationen basierend darauf, welche Altersspanne in so etwas fließen. Wenn der Benutzer in den Altersbereich von 0 bis 18 fällt, würden
die Daten in der Kindernummer gespeichert werden, aber wenn er im Alter von 19 bis 27 Jahren fällt, wäre
das zugehörige Kind schockiert. Und ähnlich ist auch das Schnittstellen-Sharding sehr einfach zu implementieren. Wir müssen nur den Bereich überprüfen, in dem unsere aktuellen Datenfehler auftreten und die Daten aus dem entsprechenden shied einfügen oder lesen. Außerdem enthält jeder Shard einen anderen Satz von Daten. Aber das Schema aller Scherben ist gesehen. Der Hauptnachteil dieser Technik ist, dass, wenn ich das tat, ungleichmäßig verteilt ist. Es kann zu Datenbank-Hotspots führen. Dann haben wir die Sharding und direkt basierte Charting. Wir haben eine Nachschlagetabelle. Es ist in Richtung der Schottky, um die Spur zu halten, welche Kunst speichert welche Einträge, Fluor oder lesen Sie die Daten. Abgelehnte Engine betrifft zuerst die Nachschlagetabelle, um die beschichtete Nummer vier zu finden, die entsprechenden Daten mit dem Schottky und besucht
dann eine bestimmte Scherbe, um verschiedene Operationen auszuführen. So ein Beispiel für die buchstäblich Sharding würde die Daten basierend auf der Geolocation des Benutzers gespeichert werden. Das heißt, wenn sich der Benutzer in uns befindet, würde
er in der Kindheit gespeichert werden. Wenn sich der Benutzer in Großbritannien befindet. Seine Informationen würden in Diagramm gespeichert werden tun. Wenn er es in Indien anschaut, dann werden die Informationen in Chat drei gefunden. Diese Sharding ist ziemlich ähnlich wie Range-basiertes Glänzen, außer anstatt den Sieg zu bestimmen und die Schüsse gewonnen Daten fallen in. Jeder Schlüssel, ist mit seinen eigenen spezifischen verkleidet gefärbt. Im Gegensatz zu hat das Herunterfahren, die eine feste Hash-Funktion und Bereich vor der Entscheidung verwendet, was erfordert, dass wir einen Bereich im Voraus angeben. Dedicatory be sharding ermöglicht es Ihnen, jedes System auf
Algorithmus zu verwenden , das die USA Daten in Plänen an die Geschäfte zuweisen möchten. Und es ist auch eine relativ einfache, gute dynamische Diagramme mit diesem Ansatz hinzufügen. Das Hauptproblem medizinisch basiertes Sharding ist dass wir vor jeder Urkunde und Schreibabfrage eine Nachschlagetabelle erhalten müssen. Daher kann es die Anwendungsleistung einbetten. Außerdem wird die Nachschlagetabelle durch einen einzelnen Fehlerpunkt ausgeblendet. Eine Lösung. Aber dieses Problem besteht darin, Load Balancer zu verwenden. Aber wieder wäre das häufige Aktualisieren der Kopie der Nachschlagetabelle auf jedem Server ein Overhead? Nein. Lassen Sie uns über einige der Vorteile des Sharding sprechen. Datenbank. Sharding hilft uns, horizontale Skalierung Enden zu erleichtern. Wir können
dem vorhandenen Cluster weitere Maschinen hinzufügen und die Last verteilen, um Anwendungen zu skalieren. Schnellere Antwortzeit für Abfragen. Ohne Datenbankfreigabe muss die Datenbank mit jeder einzelnen Zeile verglichen werden. Und es kann ein großer Rückschlag sein. Aber mit chiding, anstatt alle Zeilen zu reisen, brauchen
wir pro liefert nur ein paar Zeilen auf der jeweiligen Seite. Sharding erleichtert die Wartung, da jede Seite einen Datenblock enthält. Datenbank-Sharding beseitigt das Problem eines Single Point of Failure und macht unsere Anwendung fehlertoleranter. Welches Sharding. Wir haben die Kosten gesenkt. Denn wenn wir versuchen, mehr RAM und
Speicher zu einer vorhandenen Maschine hinzuzufügen , um sie vertikal zu skalieren. Es ist ein teures Glossen durch mehrere Knoten. Je weniger Rechenleistung ist billiger. Offensichtlich gibt es einige Nachteile des Glänzens. Datenbank. Sharding wird komplex. Belüftet kommt zu praktischen Implementierungen. Auch wenn es falsch ist, kann es zu Datenverlust und beschädigten Tabellen führen. Ein weiteres großes Problem beim Sharding ist, dass die Ladung unausgewogen werden könnte. Im Falle von Datenbank-Hotspot-Problemen. Ein großer Datenblock fällt möglicherweise nur in einen bestimmten Satz von Gebühren, und die verbleibenden Aufnahmen bleiben möglicherweise leer. Mittagessen Sharding ist fertig. Es ist sehr schwierig, zur ursprünglichen, nicht bekannten Version der Datenbank zurückzukehren. Also das war Ihre kurze Einführung in die Datenbank, Sharding
8. Data: Das Thema der Diskussion für dieses Video ist also Datenreplikation und Redundanz. Replikation bedeutet Duplizierung von kritischen Datendiensten mit der Absicht, die Zuverlässigkeit des Systems zu erhöhen. Wenn beispielsweise nur eine Kopie einer Datei auf einem einzelnen Server gespeichert ist,
bedeutet der Verlust des Servers, dass die Datei verloren geht. Da der Datenverlust nie eine gute Sache ist, können
wir doppelte oder redundante Kopien erstellen. Um das Problem zu lösen. Das gleiche Prinzip gilt für die Dienste wenn wir einen kritischen Service in unserem System haben, sicherstellt, dass mehrere Kopien alle Versionen davon gleichzeitig laufen, uns gegen den Ausfall eines bestimmten -Knoten. Schaffung von Redundanz im System können einzelne
Fehlerpunkte beseitigt und Backups bereitgestellt werden, wenn es jemals in einer Krisensituation benötigt wird. Nehmen wir beispielsweise an, wir haben zwei Instanzen eines Dienstes, der in der Produktion ausgeführt wird. Nehmen wir an, unsere primären Service-Bereich oder verschlechtern. Dann kann das System zum zweiten Bärendienst ausfallen. In solchen Szenarien. Diese Fahrzeuge können automatisch passieren oder manuell gesteuert werden. Wir können auch gut fühlen, um ungezählte Datenbank, falls unsere primären Datenbankfelder. Ein weiterer wichtiger Teil der
Service-Redundanz besteht nun darin, eine gemeinsam genutzte Nothing Architektur zu erstellen. In der Shared Nothing Architektur kann
jeder Knoten unabhängig voneinander arbeiten. Dies bedeutet, dass es
keine einfacheren Service-Verwaltungsstatus oder unsere Gäste Lese-Aktivitäten für die anderen Knoten geben sollte. Dies hilft sehr bei der Skalierbarkeit, da neue Server ohne besondere Bedingungen für Wissen hinzugefügt
werden können . Und vor allem und vor allem sind
solche Systeme widerstandsfähiger gegen Ausfälle. Da es keinen einzigen Punkt des Scheiterns gibt. Wir haben immer einen sekundären Server oder die sekundäre Datenbank für den Fall, dass wir ein Failover auslösen müssen. Sehen wir uns nun die Vorteile der Datenreplikation an. DNA-Replikation wird im Allgemeinen durchgeführt, um höhere Verfügbarkeit, reduzierte Latenz, Skalierbarkeit und Netzwerkunterbrechungen zu erreichen? Nein, lassen Sie uns die einzelnen kurz besprechen. gemietete Verfügbarkeit bedeutet, die Verfügbarkeit eines verteilten Systems zu gewährleisten. Das bedeutet, dass das System weiter arbeitet, auch in gibt die Hälfte von einem oder wenigen Knoten gefüllt wird. So können wir einfach sagen, dass weiter arbeitet. Jetzt unterstützt die Replikation mit reduzierter Latenz. die Reduzierung der Latenz von Datenabfragen, indem Daten geografisch näher am Benutzer z. B. CDN) gehalten werden, wird eine Kopie replizierter Daten näher an den Benutzer gehalten. Haben Sie schon einmal darüber nachgedacht, wie Netflix-Streams reduzieren? Das besagte Chart-Latenzen? Will Datenreplikation ist einer der Gründe dafür. Dude Skalierbarkeit. So können Sie Abfragen von replizierten Kopien derselben Daten bedient werden. Dies erhöht den Gesamtdurchsatz der Abfragen und Netzwerkunterbrechungen. Künstler einige Bücher, auch unter Netzwerkfehler. Es ist auch wichtig, die Nachteile der Datenreplikation zu verstehen. In erster Linie, die meisten Studenten Basen benötigt, wie die Speicherung der Replikat der gleichen Daten auf verschiedenen, sagen wir, mehr Platz
verbraucht.. Zweitens, nicht Replikation wird teuer, Hersteller Replikat an verschiedenen Standorten muss aktualisiert werden. Und drittens beinhaltet die Aufrechterhaltung der D-Day-Konsistenz an verschiedenen Standorten komplexe Maßnahmen. Sehen wir uns nun eine Technik für die Datenreplikation an. Diese Technik wird als Master-Slave-Replikation bezeichnet. Es ist eine der gängigsten Praktiken in der Datenreplikation. In der Master-Slave-Replikationstechnik. Die Führungslinie, oder Sie könnten Master sagen, oder der primäre Knoten. Hier. Wir könnten sagen, es hat Anführer. Oder ein primärer Knoten, repliziert Daten an alle seine Follower, die als Slaves bezeichnet werden könnten, sind Read Replicas. In manchen Fällen. Unsere sekundären Knoten. Dies ist der am häufigsten verwendete Replikationsmodus. Immer wenn eine neue Rate an den Master kommt. Es hält ihre Trockenwaren vor Ort Lagerung. Und da die gleichen Daten für alle Replikate wie ein Kettenstrom-Order-Replikationsprotokoll. Eats live und aktualisieren Sie dann seine eigene lokale Kopie der Daten, wie sie vom Führungsknoten besaß. Viele relationale Datenbanken wie MySQL, PostgreSQL und Ihre SQL-Datenbanken wie MongoDB, rethink BB und Espresso nutzen diesen Replikationsmodus. Message Blue Cards wie Kafka und Cues wie Rabbit MQ verwenden auch Single Leader basierte Replikation. Daten. Zwei Replikate aus einer Führungslinie werden entweder asynchron oder synchron kopiert. Iit Setup-Methode der Replikation hat eine eigene Reihe von Vor- und Nachteile, die derzeit außerhalb des Rahmens dieser Diskussion sind. Ich hoffe, Sie haben etwas Klarheit oder Datenreplikation und Redundanz, was ein Prinzip ist, das bei der Entwicklung von Systemen befolgt werden muss.
9. SQL Vs NoSQL: Und die Welt der Datenbanken. Es gibt zwei Haupttypen von Lösungen. Relationale Datenbanken und nicht-relationale Datenbanken Wir sind besser mit ihnen als SQL und NoSQL vertraut. Beide Standard indivi, die
Entwicklung der Art von Information Destroyer und die V verzerrt. SQL- und relationale Datenbanken speichern Daten in einer Zeile und Spalten. Jede Zeile enthält alle Informationen über eine Entität. Man könnte es sich in Form eines Tisches vorstellen. Mit mehreren Zeilen und mehreren Spalten. Jede Zeile enthält alle Informationen über eine Entität. Und alle Spalten sind die separaten Datenpunkte. Einige der beliebtesten relationalen Datenbanken sind MySQL, Oracle, MS SQL Server, SQLite zu grün und MongoDB. Sprechen über nicht-relationale Datenbanken, NoSQL-Datenbanken, die folgenden sind die gebräuchlichsten Typen. Erstens, Schlüssel-Wert-Speicher. In Schlüssel-Wert-Stores die Daten in einem Wirbelkörper von Schlüssel- und Wert-Paaren gespeichert. Der Schlüssel ist ein Attributname, der einen guten Wert hat. Bösewicht Schlüssel-Wert-Stores umfassen Voldemort und DynamoDB. Als nächstes kommen die Dokumentdatenbanken. In diesen Datenbanken werden Daten in Dokumenten anstelle von Zeilen und Spalten einer Tabelle gespeichert. Und diese Dokumente sind in Form von Sammlungen zusammengefasst. So werden die Daten in Dokumenten gespeichert. Und eine Gruppe von Dokumenten wird als Sammlung bezeichnet. Jedes Dokument kann eine völlig andere Struktur haben. Die Beispiele für Dokumentdatenbanken sind CouchDB, ungerade MongoDB. Nun kommen wir zum dritten Typ der Datenbank namens ID-Spaltendatenbanken. Anstelle von Tabellen. In säulenförmigen Datenbanken haben wir Spaltenfamilien, die Container für Zeilen sind. Und wie relationale Datenbanken. Wir müssen nicht alle Spalten umgedreht wissen. Und ito muss nicht die gleiche Anzahl von Spalten haben. Du könntest es sich als so etwas vorstellen. Go Luminary Datenbanken eignen sich am besten für die Analyse großer Datensätze. Nun sind die Beispiele Cassandra, HBase Datenbank. Dann haben wir Graph-Datenbanken. Diese Datenbanken werden zum Speichern von Daten verwendet. Wer ist ein Löschungen sind am besten in Form eines Graphen dargestellt. So wie das. werden in der Diagrammstruktur mit Knoten als Entitäten gespeichert. Eigenschaften. Die Informationen über die Entitäten und Linien, die Verbindungen zwischen den Entitäten. Die Beispiele für Graph-Datenbanken umfassen Neo4j in endlichen Graphen und andere. Nein, schauen wir uns einige hohe Unterschiede zwischen SQL und NoSQL an. Sql kommt im Grunde unter den relationalen Datenbankmanagementsystemen RDBMS. Anführer. Nosql steht unter nicht-relationalen oder verteilten digitalen Systemen. Diese Datenbanken haben ein festes oder statisches oder vordefiniertes Schema. Veden. Nosql Datenbanken haben kein Schema, sind sehr dynamisches Schema. SQL-Datenbanken sind nicht für hierarchische Datengeschichte geeignet. Vid, da NoSQL-Datenbanken am besten für die hierarchische Datenspeicherung geeignet sind, eignen sich
SQL-Datenbanken am besten für komplexe Abfragen. Vision, müssen Sie mehrere Entitäten zusammenführen, um einige Informationen hervorzubringen. Versus NoSQL-Datenbanken sind nicht so gut für komplexe Abfragen. SQL-Datenbanken sind besonders gut Fit Vertical Scaling. Vid als keine Fortsetzung Datenbanken sehr schön unterstützt horizontale Skalierbarkeit. Sehen wir uns nun die Gründe an, warum Sie SQL-Datenbanken verwenden sollten. Zunächst einmal, wenn Sie saure Beschwerden sicherstellen müssen, wie es beschwert, reduziert Anomalien und schützt die Integrität
Ihrer Datenbank, indem Sie genau vorschreiben, wie Transaktionen mit der Datenbank interagieren. Im Allgemeinen opfern NoSQL-Datenbanken saure Beschwerden wegen Skalierbarkeit und Verarbeitungsgeschwindigkeit. Aber für viele E-Commerce- und Finanzanwendungen, wie es sich beklagte, bleibt Datenbanken die bevorzugte Option. Dann sind Ihre Daten strukturiert und unverändert. Wenn Ihr Unternehmen kein massives Wachstum verzeichnet, würde dies mehr Server erfordern. nur mit konsistenten Daten arbeiten,
dann ist es möglicherweise nicht sinnvoll, eine vom System entwickelte
Datenbank zu verwenden, um eine Vielzahl von Datentypen und ein hohes Datenverkehrsvolumen zu unterstützen. Nicht, wenn Sie NoSQL-Datenbanken verwenden sollten. Dann sind alle anderen Komponenten Ihrer Anwendung schnell und nahtlos. Nosql-Datenbanken. Daten aus der Umleitung. Big Data trägt zu einer großen erfolgreichen keine SQL-Datenbanken bei,
vor allem, weil es anders handhabt als herkömmliche relationale Datenbanken. Ein paar Beispiele für NoSQL-Datenbank bei MongoDB, CouchDB, Cassandra, HBase, wie wir zuvor gesehen, null. Die Gründe für die Verwendung von MySQL-Datenbank sind wie folgt. Beim Speichern großer Datenmengen, die oft wenig bis gar keine Struktur haben. Und NOSQL-Datenbank setzt Grenzen für die Arten von Daten, die wir
zusammen speichern können und ermöglicht es uns, verschiedene Formen als die neuen Gefahren hinzuzufügen. Vid, dokumentbasierte Datenbanken. Sie können Daten an einem Ort speichern, ohne viele Daten definieren zu müssen. Das sind die Niederlande. Dann möchten Sie das Beste aus Cloud Computing und Storage machen. Cloud-basierter Speicher ist eine ausgezeichnete Kurs-Sieblösung, erfordert
jedoch, dass Daten leicht auf mehrere Server verteilt werden können, um eine Skalierung durchzuführen. Verwendung von Standard-Hardware, vor Ort oder in der Cloud, gibt Ihnen den Aufwand für zusätzliche Software. Nosql-Datenbanken wie Cassandra sind so konzipiert, dass sofort über mehrere Rechenzentren
skaliert werden können. Wenn Sie eine weitere Vorentwicklungsphase hinzufügen. Nein, SQL ist äußerst nützlich für eine schnelle Entwicklung, da Sie nicht im Voraus vorbereitet werden müssen. Wenn Sie an schnelleren Iterationen Ihres Systems arbeiten, die häufige Aktualisierungen an der
betroffenen Person ohne große Ausfallzeiten zwischen den Versionen erfordern , wird
eine relationale Datenbank Sie verlangsamen. Jetzt stellt sich die Frage, welche verwendest du? Sql oder höchstens gleich? Wenn es um Datenbanktechnologie geht, gibt es keine Einheitslösung. Aus diesem Grund verlassen sich viele Unternehmen auf relationale und nicht-relationale Datenbanken für unterschiedliche Anforderungen. Auch wenn keine Fortsetzung Datenbanken werden immer beliebter für diese Geschwindigkeit und Skalierbarkeit. Es gibt immer noch Situationen, in denen die hochstrukturierte SQL-Datenbank möglicherweise besser funktioniert. Die Wahl der richtigen Technologie hängt von Ihrem Anwendungsfall ab. Die überwiegende Mehrheit der relationalen Datenbanken ist sauer beschwert. Das heißt, dieser Abbruch, Atomizität, Konsistenz, Isolation und Haltbarkeit. Vds, die NoSQL-Datenbanken sind Basis beschwert. Das heißt, sie sind im Grunde verfügbar. Weicher Zustand. Das heißt, Sie können die Datenbank jederzeit ändern und sie bieten eventuelle Konsistenz. Nicht aus der Box, aber ja, sie sorgen für Konsistenz. Also, wenn es um die Datenverfügbarkeit geht,
sehen Sie, ob D für die Durchführung von Transaktionen SQL-Datenbanken erhalten. Ich habe immer noch mit den meisten Nozick-Lösungen debattiert
, da es sich um Leistung und Skalierbarkeit beschwert.
10. CAP Theorem: Hey, Jungs. In diesem Vortrag werden wir über Bonding-Prinzipien in den Grundlagen des Systemdesigns sprechen. C steht für Konsistenz, Verfügbarkeit und B steht für Vorsprechen Dominanz. Die Lücke zu ihnen besagt, dass es unmöglich ist das verteilte Softwaresystem gleichzeitig um mehr als drei erhöht,
garantierte Verfügbarkeit, Konsistenz und Partitionstoleranz. Dann entwerfen wir ein verteiltes System. Der Handel zwischen Lücke ist fast das erste, was wir in Betracht ziehen wollen. Beim Entwerfen eines verteilten Systems. Wir können zwei der drei auswählen. Was bedeutet das alles? Konsistenz spricht, wird gesagt, dass ein System konsistent ist, wenn alle Knoten die gleichen Daten gleichzeitig sehen. Betrachten wir also ein verteiltes System. Die drei Unbekannten interagieren. Wenn Sie also einen Lesevorgang auf einem konsistenten System durchführen, sollte der Wert des letzten Schreibvorgangs erfolgen. Und das bedeutet, dass der Lead alle Knoten auf den gleichen Daten verursachen sollte. Das ist der Wert des MOSFET und der Rate. Also lassen Sie es uns mit dem verstehen, zum Beispiel. Also lassen Sie uns C unserem System eingebauten Eingang als x zur Verfügung gestellt werden. Also lassen Sie uns sagen, dies unsere Daten und verwandte diese Eingabe und das ist im Grunde eine Lese-Operation. Seien Sie Radon, beziehen Sie sich auf unser System. Also, wenn Sie die Daten lesen, nicht unser System von einem der anderen Knoten. Nehmen wir an, wir lesen von bestehenden C. So meistens gemacht. Fertig x wurde zuletzt. Herrschaft allein. Auch lassen Sie uns v annehmen, einige neue Daten zu unserem System B. Also lassen Sie uns sagen, Daten als
Lernlücke dieser Schreiboperation ist d plus eins. Also jetzt, wenn Sie ein legales Abwicklungssystem durchführen, sehen Sie, es sollte Lernlücke statt Bionik getan werden. Denn zu diesem Zeitpunkt ist die Lernlücke unsere jüngste beanspruchte Bevölkerung. Lassen Sie uns nun über die Verfügbarkeit diskutieren. Verfügbarkeit in einem verteilten System stellt sicher, dass das System 100% der Zeit betriebsbereit bleibt. Das bedeutet, dass Inzucht unabhängig vom jeweiligen Zustand eine Antwort erhält. Dies garantiert jedoch nicht, dass die Antwort die neueste Note enthält, keine Garantie für das Recht. In der Antwort. Beispiel für dieses System, sagen
wir V, sie waren zu drei in unserem System gewesen. V, x, y, z zum Zeitpunkt t plus eins. Also dann versuchen wir, von System von einem hochverfügbaren System zu lesen, getan
haben, entweder ging zu drei XYZ. Abhängig von der Synchronisation zwischen den Systemen. Dies garantiert keine Konsistenz, aber die Systeme sind hochverfügbar. Das heißt, das System ist betriebsbereit. Es gibt eine Antwort. Irgendwelche der Linguisten. Jetzt schauen wir mal, was Toleranz bedeutet. Dies ist eine Bedingung, die besagt, dass das System nicht scheitert, unabhängig davon, ob die Nachrichten, die ich ziemlich Milliarde zwischen den Knoten und dem System fallen gelassen bin, Partition Dominanz ist mehr
eine Notwendigkeit geworden , dann eine Option in einem verteilten System. Es ist möglich, indem ausreichend die Anfangsdatensätze über Kombinationen von Normen und Netzwerken hinweg. In unserem System haben
wir also drei Knoten. Nehmen wir an, wir haben drei Knoten. In unserem System. Wir haben drei Knoten. Diese Knoten sind mit
dem
System verbunden dem . Das System funktioniert noch. Nur. Dieser bestimmte Knoten beginnt zu Fehlfunktionen. Aber wir können nicht sehen, dass das System fertig ist. Es funktioniert immer noch. Und diese spezielle Ausgabe ist betroffen. Wenn irgendwelche Daten, würde es von einer anderen Norm bestimmt werden, die Duplikat hat. Dieser Knoten. Nun, B kann nicht ein Geschlecht führen uns dazu, dass bequem verfügbar ist. A, konsequent. Und alle Partitionsfehler können nur zu einem System gemacht werden, das drei Eigenschaften hat. Um konsistent zu sein, sollten
alle Knoten den gleichen Satz von Updates in der gleichen Reihenfolge sehen. Aber wenn die Netzwerkunterstützung aktualisiert wird, kann es
Edition nicht zu den Petitionen schaffen, bevor eine Drüse veraltete Partition nach dem Upgrade. Das Einzige, was gelernt werden kann. Diese Möglichkeit besteht darin, Linguisten aus der Out-of-Game-Variante zu stoppen, aber dann wäre der Service nicht mehr 100% verfügbar. So fallen die Beispiele für hochverfügbare und konsistente Systeme möglicherweise nicht ab. Trennwand tolerant. Datenbanken wie MySQL, SQLite, relationale Datenbanken. Auf der anderen Seite sind die Beispiele für hochverfügbare und von Patientendominanzsysteme nicht Condominium Data Stores wie Cassandra und Konsistenz und Partitionstoleranz. Und wir werden uns nicht um die Verfügbarkeit kümmern. Dann wäre ein Beispiel MongoDB. Abschließend können wir feststellen, dass wir nur zwei der drei besprochenen erwarten können. Erhalten eines verteilten Systems.
11. Konsistent Hashing: Willkommen zum Video über konsistentes Caching. Bevor wir mit konsistentem Hashing vorwärts
gehen, müssen wir zuerst verteilte Hashtabellen verstehen. verteilte Hashtabelle ist eine
der grundlegenden Komponenten, die in verteilten skalierbaren Systemen verwendet werden. Wie wir wissen, brauchen Hashtabellen einen Gewinn. Unser Wert und die Hash-Funktion. Die Hash-Funktion, ordnet den Schlüssel zu einer Position, an der der Wert gespeichert ist. Also, wenn wir den Schlüssel für die Hash-Funktion übergeben, gibt
es den Index in der Hashtabelle Datenwert gespeichert werden würde. Nehmen wir nun an, wir entwerfen ein verteiltes Caching-System. n Cache-Server gegeben. Und in Butan-Hash-Funktion wäre d modulo m Das heißt, um zu finden, welcher Cache-Server AGI vorhanden ist, müssen
wir einfach dieses modular machen. Und der resultierende Wert liefert uns den Index des Cache-Servers, auf dem unser Wert gespeichert ist. Es ist eine einfache und häufig verwendete Hash-Funktion. Aber es hat zwei große Nachteile. Erstens ist es nicht horizontal skalierbar. Immer wenn ein neuer Cache-Host zum Cluster hinzugefügt wird, werden
alle vorhandenen Zuordnungen unterbrochen. Da sich unsere Anzahl der Cacheserver ändert, ändert sich unsere Hash-Funktion. Und alle Mappings, die bereits im bestehenden System gemacht wurden, gehen zu gewinnen. So wird es ein Mülleimer in der Wartung, wenn das Caching-System und in viele
Daten, die in der Regel wird es schwierig zu planen sind unten Dane, die unsere Gepäckzuordnungen aktualisieren. Zweitens ist der Lastenausgleich möglicherweise nicht, insbesondere bei nicht gleichmäßig verteilten Daten. In der Praxis kann leicht davon ausgegangen werden, dass die Daten nicht einheitlich verteilt werden. Für das Caching-System bedeutet
es, dass einige Caches heiß und gesättigt sind, während die anderen inaktiv und fast leer sind. Wenn wir also drei Cache-Server haben, C1, C2 und C3, kann
es passieren, dass die meisten der Cache-Lesevorgänge von
C1 und C2 und C3 durchgeführt werden , sind DAG nicht viel abgestuft. Dies verlässt sich in einem nicht einheitlich verteilten Daten. In diesen Szenarien ist
konsistente Leidenschaft ein guter Weg, um das Caching-System zu verbessern. Konsistentes Hashing ist eine sehr nützliche Strategie für verteilte Caching-Systeme und verteilte Hash-Tabellen. Es ermöglicht die Verteilung von Daten über einen Cluster so, dass die Reorganisation minimiert wird. Ven-Knoten werden hinzugefügt oder entfernt. Dadurch wird das Caching-System einfacher. Das kann nach oben oder nach unten skaliert werden. Inkonsistentes Hashing. Dann ist die Hash-Tabelle Rezitationen. Beispiel. Cluster wird ein neues Gash-Silber hinzugefügt. In diesem Fall müssen nur k by n Schlüssel zugeordnet werden. Wenn du dich daran erinnerst. Im Caching-System verwenden
wir den Modus als Hash-Funktion. Es war also d modulo N also müssten nur diese neu erstellt werden. Aber in diesem Fall muss nur k by n Blick wirklich kartografieren. Hier. K ist die Gesamtzahl der Schlüssel, und N ist die Gesamtzahl der Silben. Also mal sehen, wie es funktioniert. Als typisches Hash-Funktionssystem ordnet
Passion ein B einer Ganzzahl zu. Angenommen, die Ausgabe der Hash-Funktion liegt im Bereich von 056. Stellen Sie sich vor, dass die ganzen Zahlen im Bereich erfreut sind , so zu
ehren, dass die Werte umwickelt sind. Das heißt, und b auf die 0 ist irgendwo hier gespeichert. Und Ziffer eins ist hier ein bisschen gespeichert. Integer do wird irgendwo hier gespeichert und so weiter. Und das sind 255, die wahrscheinlich hier gespeichert ist. Angesichts einer Liste von Cache-Servern müssen
wir sie zuerst an die Einzelpersonen in unserem Sortiment hash. Nehmen wir an, wir hatten drei Cache-Server und Hashing sie in ganzzahligen Wüsten in den folgenden Zahlen. A0 wird fünf zugeordnet, B auf eine 100 und C ist relativ und NP zugeordnet. Sowjetischer Zoom, der bei Index fünf platziert wird. B freut sich über den Index 100, und C freut sich über den Index Fund MP in unserem Link. Nun, dann müssen wir einen beliebigen Schlüssel zu einem bestimmten Server zuordnen. Die erste Gefahr. Nehmen wir also an, wir müssen die vn abbilden. Also übergeben wir es an unsere Hash-Funktion. Nehmen wir an, wenn es ausgibt, Wir werden auf unseren Index überprüfen. Also bewegt sich B im Uhrzeigersinn auf dem Link, bis wir auf unser erstes Bargeld stoßen. Also Index zu Watson hat getroffen. So. Dies hätte diesem Ort zugeordnet werden sollen, aber wir haben unsere nächste Bar-Silbe auf Index fünf. Dieser Schlüssel würde also unserem Server abgebildet werden. Analog dazu haben wir DK2 und die Hash-Funktion für k2 gibt 115 zurück, was wahrscheinlich hier auf unserem Ring ist. Dieses Ghetto wird hier abgebildet. Aber da hier kein Bargeld gefeiert wird, bewegen
wir uns im Uhrzeigersinn. Und der erste Cache-Server Vn Zähler ist bei Index Eitelkeit, das ist ein Cache-Server c. Also die Karte, dieses Schema im Cache-Server c. So ist das, wie wir unsere p s, die Cache-Server sind. Nun lassen Sie sehen, was passiert, wenn wir eine neue einstellbare hinzufügen. In diesem Fall nehmen wir an, wir haben Bargeld hinzugefügt, die am Indexstandort 125 liegen würden. Das ist also bei 500, das ist bei 80. Nun, er hat es immer noch Ergebnisse in einer Entitätsgruppe gegeben, die hier abgebildet ist. Und unser nächster Gasserver ist ein atlantischer Sklave. Dies wurde bereits hier gespeichert. Aber dafür, das Ghetto, für das die Hash-Funktion zurückgegeben 115 Karte Tablet hier und war zufrieden in unserem Cache-Server c. Also was wir tun müssen, ist, dass wir die Haut
abbilden müssen , um unsere Gäste jemals brauchen. Also müssen wir nur die Schlüssel vor dem Index
125 verschieben , da der verbleibende Blick im Cache gespeichert würde, sehen Sie nur die Schlüssel, die auf Bargeld zielen, sehen Sie, dass sie geteilt werden. Einige von ihnen werden von den anderen Schwulen verschoben werden, werden nicht berührt werden. Ähnlich, wenn unser Gastserver E durch irgendeinen Zufall ausfällt und er aus einem Cluster entfernt
wird, muss nur gegeben D von hier nach hier bewegen. Als B wäre der erste Cache-Server auf diesem Ring. Dann wird dieses Gas entfernt. Alle Schlüssel, die ursprünglich zugeordnet wurden, fallen in B und nur diese Schlüssel müssten verschoben werden, um andere Schlüssel zu sein, werden nicht betroffen. So lebte die einzige, um d von n Tasten zu bewegen. In beiden Fällen, wenn wir einen bestimmten Gash-Server hinzufügen oder entfernen. Nicht zum Lastenausgleich. Wie am Anfang diskutiert wurde, ist
der eigentliche Führer im Wesentlichen zufällig verteilt und kann daher nicht einheitlich sein. Es kann bedeuten, dass die Gänse auf den Gashes unausgewogen sind. Um dieses Problem zu behandeln, fügen
wir virtuelle Replikate, Finanzierungsstriche hinzu. Anstatt jeden Cache auf einen einzelnen abgeschwächt
während der Karte zu den mehreren Punkten auf dem Ring zuzuordnen . Das sind Repliken. Auf diese Weise. Jeder Cache ist mit mehreren Teilen des Aussagens verknüpft. Wir können dies tun, indem wir mehrere Hashes für die Cacheserver selbst haben. Da die Zahl der Repliken in Griechenland war, wären
die Gänse ausgeglichener. Dazu können wir mehrere Hash-Funktionen für unsere Gash-Server
und ähnlich für b
und ähnlich fürC haben und ähnlich für b
und ähnlich für . Aber wenn wir dies tun, können wir einen ausgewogenen Gash erreichen.
12. Message: In diesem Video werden wir über Nachrichtenwarteschlangen diskutieren. Und hat Vorteil beim Entwerfen eines Systems. Ist eine Nachrichtenwarteschlange. On MessageQueue ist eine Komponente der Messaging-Middleware , die es unabhängig von Anwendungen und
Diensten ermöglicht , Informationen auszutauschen. Nachrichtenwarteschlangen. Gespeicherte Nachrichten sind Datenpakete, die von der Anwendung für eine andere Anwendung erstellt in der Reihenfolge verwendet werden, in der sie
übertragen werden , bis die verbrauchende Anwendung sie verarbeiten kann. Dies ermöglicht Nachrichten sicher warten, bis die empfangende Anwendung ist, dass Eddy? Wenn also ein Problem mit dem Netzwerk oder der empfangenden Anwendung vorliegt, die Nachrichten in der Nachrichtenwarteschlange oder nicht verloren. Diese Nachrichtenwarteschlange wird für die asynchrone Anwendungskommunikation verwendet? Nein. Was bedeutet asynchrone Kommunikation zwischen Anwendungen? Asynchrone Kommunikation bedeutet Anwendung, wenn es eine Nachricht m Anwendung senden möchte. Aber es erfordert keine sofortige Antwort, um seine Verarbeitung fortzusetzen. Das bedeutet, dass Anwendung,
die man unabhängig von der Nachricht M arbeiten würde , die von der Anwendung empfangen wird. Anwendung 2 könnte ausgelastet sein oder die Verbindung wurde unterbrochen. Im Netzwerk. Die Anwendung ist verfügbar. Und zurück eine Antwort auf die Anwendung, wenn man in der Pflege-Anwendung einige andere Dämmerungssitze durchführen kann. Also, wo speichern wir diese Nachrichten? Offensichtlich wollen wir nicht, dass unsere Nachricht m verloren geht. Nun, hier kommt die Nachricht zu einer Rettung. Nachrichtenwarteschlangen bieten temporären Speicher. Lieferanten-Zielprogramm ist ausgelastet, was nicht verbunden ist. Nun ist das beste Beispiel für asynchrone Messaging dann
wird eine E-Mail gesendet. Der Absender kann
andere Dinge ohne sofortige Antwort des Empfängers weiter verarbeiten . Ein Nachrichten-Tool ist also nichts anderes als die Aggregation von Gautama Nachrichten und Warteschlange. Die Warteschlange enthält eine Sequenz von Nachrichten, die
zwischen den Anwendungen gesendet werden, die an der Reihe warten, um verarbeitet zu werden. Nachricht freut sich auf eine Q. ich gespeichert, bis der Verbraucher glaubt, sie. Senden Sie diese Anwendung wird der Produzent genannt. Und die Empfängeranwendung ist Goldie Consumer. Dass der gesamte Produzent die Botschaften produzieren soll. Und die Rolle des Verbrauchers ist es, die Nachrichten zu konsumieren. Nachrichten, die Daten vom Hersteller an den Verbraucher gesendet werden. Es kann entweder eine Anforderungsantwort sein. Nachricht. Warteschlangen verarbeiten keine Nachrichten. Es speichert sie einfach. Diese Art der Handhabung von Nachrichten entkoppelt den Produzenten vom Verbraucher. Der Produzent und der Verbraucher der Nachricht müssen nicht gleichzeitig mit der Nachrichtenwarteschlange interagieren. Lassen Sie uns nun über die Vorteile von Massachusetts sprechen. Nachrichtenwarteschlangen sind wichtig, da sie bei der Entkopplung der Anwendungen helfen. Oder Anwendungen sind entkoppelt. Wenn sie miteinander kommunizieren können, ohne verbunden zu sein. Außerdem ist die Ausführung der Anwendung völlig nicht bewusst, die Implementierung der anderen Anwendung. Mit anderen Worten, es gibt keine Abhängigkeit zwischen ihnen. Nun, die entkoppelte Anwendung, jede Änderung an einer Anwendung hat keinen Einfluss auf die andere Anwendung. Solange der Kommunikationsvertrag nicht verletzt wird. Beacon zerlegt die monolithische Anwendung leicht in kleinere Anwendungen. Vetted reduziert die Gesamtkomplexität. Es wird einfacher zu warten und Debugger-Anwendungen können plattformübergreifende Anwendung ist kleiner. Die Anwendungen können unabhängig voneinander in
jeder Programmiersprache entwickelt und entsprechend skaliert werden. Das bedeutet, dass die Anwendungen Programmiersprachenagnostisch sein könnten. Anpassen von Nachrichtenwarteschlangen. Did ist eine Erhöhung der Haftung und der Leistung eines Systems. Produzenten müssen nicht warten, bis die Verbraucher verfügbar sind. Wieder fügen Sie einfach Anfragen in der Warteschlange hinzu. Verbraucher können die Nachrichten verarbeiten, wann immer sie verfügbar sind. Und das ist einfach kein Overhead beim Lesen. Die Nachricht geht. Photosystem-Nachrichten. Auch wenn verschiedene Anwendungsfirmen , die Ihre Daten gesehen haben, verloren gehen und das System fehlertoleranter wird.
13. CDN: Hallo und willkommen zu dem Video über Content-Delivery Network, oder im Volksmund als CDN Networks bekannt. Ein CDN oder Content Delivery Network ist ein global verteiltes Netzwerk von Webservern. Unerade Anwesenheitsstellen, deren Zweck es ist, eine schnellere Bereitstellung von Inhalten bereitzustellen. Lassen Sie uns nun zuerst über die Vorteile von Simeon sprechen. Der Inhalt wird während der gesamten Saison repliziert und gespeichert. So kann der Benutzer auf die Daten zugreifen, die
an dem Ort gespeichert sind , der ihm geografisch am nächsten ist. Dies ist anders und effizienter als die herkömmliche Methode, Inhalte auf nur einem zentralen Server zu speichern. Da es vermeidet den Engpass auf diesem Server und bietet eine hohe Ladegeschwindigkeit von Inhalten. Sehen wir uns jetzt an, wie das Internet mit und ohne CDN funktioniert. Für den Fall, dass wir ein CPM-Netzwerk bezeichnen. Alle Anfragen unserer Nutzer werden von den bereitgestellten Inhalten bedient. Aber für den Fall, dass wir ein CD-Netzwerk zwischen dem ContentProvider und unseren Benutzern haben. Der Inhalt wird vom CDN anstelle des bereitgestellten Inhalts bereitgestellt. Dadurch werden potenzielle Engpässe vermieden. ZB die bereitgestellten Inhalte. Da das CD-Netzwerk global verteilt ist, greift
abgelehnt auf eine Kopie der Daten in der Nähe von sich selbst, im
Gegensatz zu allen abgelehnt Zugriff auf den gleichen zentralen Server. Dies ist eine hohe Ladegeschwindigkeit von Inhalten, wodurch die Benutzererfahrung verbessert wird. Wenn sich alle Daten auf dem zentralen Server befinden, wird
die Benutzererfahrung durch die begrenzte Ladegeschwindigkeit negativ beeinflusst. Je größer der Abstand zwischen dem Benutzer und dem Server ist, desto länger dauert es, bis der Inhalt eines der Werke liest. Um es einfacher auszudrücken. Der Zweck eines CDN ist es,
die Benutzererfahrung zu verbessern und eine effizientere Netzwerknutzung zu ermöglichen. Ein perfektes Beispiel für das Seeding ist Netflix. Netflix-Quelle, alle seine Daten in diesem Netzwerk. Also, wenn Sie beginnen, ein Video abzuspielen, Mal sehen, Netflix hat es Silvers in den USA. Und mal sehen, wenn Sie sich in Indien entscheiden, ohne coelom, würde
Netflix alle Daten davon,
uns Server zu Ihnen hier in Indien bringen müssen . Dies hätte zu Zahlenlöschungen geführt, um das Video zu puffern. Aber Sie bemerken nie einen Mangel wichtig Ansehen Ihres Videos, weil der Inhalt in CDMA-Netzwerken gespeichert ist. Sie als Benutzer in Indien, greifen auf
die Inhalte von diesem Netzwerk statt, glasig, geographisch viel näher an Ihnen. Daher führt es zu einer besseren Benutzererfahrung und wartet auch auf die Drosselung der Netflix-Server. In den USA. Content-Anbieter, wie Medienunternehmen und E-Commerce-Anbieter, bcb und Betreiber zu liefern haben Punkt Ende. Wer hat Audience? Und tat ein CBGB ISPs, Carrier und Netzbetreiber für das Hosten von Zentren in ihren Rechenzentren. Es gibt zwei Schlüsselmechanismen, die erklären, wie CDN funktioniert. Zunächst sollten Sie wichtige Inhalte an mehrere global verteilte Rechenzentren verteilen. So ist es näher am Endbenutzer und somit schneller zum Download. Und zweitens richten Sie es Optimierungen basierend auf
dem Inhaltstyp ein, um den Inhalt am effizientesten an den Benutzer zu erhalten. Wenn Sie also die Videos auf Ihrem Smartphone puffern, liegt
es in der Verantwortung des CDN, Ihnen nur die SD-Version des Videos zur Verfügung zu stellen. Wenn Sie das Video auf Ihrem Laptop, Audio, auch es würde Ihnen mit HD-Auflösung Video. Dies verlässt eine bessere Netzwerkoptimierung. Da Sie kein iteratives Video benötigen, wird
es auf Ihrem Smartphone gepuffert. Also dieses v, ein CDN entlastet die Grafik selbst direkt aus dem ContentProvider, was zu möglichen Gänschen führt. Standort ist der Schlüssel für die Geschwindigkeit der Inhaltsbereitstellung. Je weiter der Benutzer vom Lehrplan entfernt ist, dass die Daten gespeichert werden, desto länger dauert es, bis der Inhalt zum Benutzer gelangt. Und dies intensiv wirkt sich negativ auf die Benutzererfahrung aus. Und das Ableiten des CB1 löst dieses Problem und bietet dem Benutzer eine viel bessere Benutzererfahrung.