Was ist ein hoch geladenes Informationssystem wie ein riesiger Hypermarkt? Was ist, wenn 150 Millionen Menschen gleichzeitig zum Einkaufen in den Hypermarkt kommen? Wofür kann man den Kopf eines SB-Warenhauses bestrafen und warum nicht? Warum ist die Ladezeit von Dokumenten nachts viel kürzer als tagsüber? Warum bedeutet die Ladezeit eines einzelnen Dokuments nicht wirklich etwas?Hoch ausgelastete Informationssysteme haben ihre eigenen Eigenschaften, die für viele Lieferantenorganisationen nicht offensichtlich sind. Wir werden Ihnen sagen, wie das Massenladen von Dokumenten (und anderen Daten) angeordnet ist, und diese unverständliche Frage für viele im Detail betrachten.
QuelleBei der Entwicklung großer und hoch belasteter Informationssysteme (IS) entstehen Aufgaben beim Laden von Massendaten. Der Datentyp spielt keine Rolle und hängt von Ihrem Themenbereich ab. Dies können Zahlungen, Rechnungen, Sensorablesungen, Beschaffungsprojekte usw. sein. Die Erstellung und Entwicklung von GIS (staatlichen Informationssystemen) ist gesetzlich geregelt, und es kann leicht vorkommen, dass das Gesetz Organisationen dazu verpflichtet, Millionen von Dokumenten einmalig in das System hochzuladen oder, was interessanter ist, regelmäßig, beispielsweise monatlich, Millionen von Dokumenten hochzuladen.
In unseren Projekten (
hier und
hier kann ein wenig über die Arbeit von LANIT gelesen
werden ) begegnen wir regelmäßig solchen Aufgaben und haben alle notwendigen Lösungen entwickelt. Die Besonderheiten der Lösungen weisen jedoch einige Merkmale auf, die, wie sich herausstellte, für viele Lieferantenorganisationen nicht offensichtlich sind. Zu unserer Überraschung erhielten wir solche Anfragen und sogar Beschwerden:
- „Wir haben ein Dokument zum Herunterladen gesendet, und es dauerte bis zu 10 Sekunden. Wenn unsere Organisation 100.000 Dokumente hochladen muss, dauert es daher 100.000 * 10/3600 = 277 Stunden für uns! “
- "Wir laden, laden Dokumente, aber nichts wird in das System geladen."
Die Tatsache, dass das Laden eines Dokuments in ein Informationssystem 10 Sekunden dauern kann, sagt nichts über das System aus. Dieser Indikator ist überhaupt nicht sinnvoll, wenn es sich um Warteschlangensysteme handelt. Als nächstes werden wir Ihnen erklären, wie das Massenladen von Dokumenten (und anderen Daten) angeordnet ist, und diese Frage, die vielen nicht klar ist, im Detail betrachten.
Auch beim Laden von Fehlern ist nicht alles offensichtlich: Es gibt viele Gründe, warum Daten nicht in das System geladen werden. Probleme können auf der Seite von Informationsanbietern und auf der Seite von IP liegen. Im Folgenden werden wir verschiedene Situationen analysieren und Statistiken anzeigen.
Chinesischer Hypermarkt
In einer fernen chinesischen Provinz, in der ungefähr 150 Millionen Menschen leben, gibt es beispielsweise nur einen großen 24-Stunden-Supermarkt, in dem die Menschen einmal im Monat Reis kaufen. Die Bewohner können jeden Tag im Monat Reis holen. Es gibt viel Reis, es gibt viel Platz im Handelssaal. Der Hauptengpass ist die Zahlung für Einkäufe an der Kasse, da dieser Vorgang obligatorisch ist (Sie können Käufer nicht ohne Bezahlung überspringen), Zeit und die Verwendung spezieller Geräte - Kassen - erforderlich sind. Für den SB-Warenhaus wäre es besser, wenn sich die Leute irgendwie einig wären und gleichmäßig einkaufen würden (Tag und Nacht). In diesem Fall wäre die Verwendung von Kassen so effizient wie möglich.
Glücklicherweise gehen die Käufer jedoch nicht in Richtung SB-Warenhaus. Erstens wollen sie nachts nicht wirklich einkaufen gehen. Zweitens sind sie manchmal unbegrenzt: Entweder gibt es niemanden, dann kommen mehrere Millionen Menschen gleichzeitig.
Quelle Das größte Einkaufszentrum der Welt, das New Century Global Center in Chengdu in China. Es hat 18 Etagen und eine Fläche von 1.700.000 qm.Was tun in einem Supermarkt? Die Kommunistische Partei Chinas hat es sich zur Aufgabe gemacht, allen Chinesen zu dienen, und das war's. Jeder unverdiente Chinese ist ein Minus für das Karma des Supermarktmanagers. Wenn es zu viele unzufriedene Chinesen gibt, reißen Sie ihm nicht den Kopf ab! Gleichzeitig kann der Manager natürlich nicht 150 Millionen Kassen ausliefern. Wenn der listige Controller plötzlich in einem Jahr einen Bericht über die Auslastung der Abendkasse mit 1% vorlegt, steht der unglückliche Regisseur vor einem nicht beneidenswerten Schicksal. Wenn ein gewöhnlicher Käufer zu lange wartet (mehr als eine Minute), wird er den Hypermarkt verlassen und eine Erklärung schreiben, um Mao selbst mit den Schreien von „fünfhundertvier Betrüger Gatevanau tameaut Khan an euch alle“ zu sprechen.
Nachdem unser Freund über den Ozean gewacht hatte, wie es funktioniert, stellte er ein fortschrittliches Warteschlangenmanagementsystem vor. Jetzt funktioniert alles so. Nachdem der Käufer eine Packung Reis genommen hat, geht er zum Terminal, um eine Nummer in der Warteschlange zu erhalten. Die Wartezeit in der Schlange hängt von der Anzahl der Kassen ab. Experimentell fand der Begleiter heraus, wie viele Kassen sein sollten, damit die Käufer einerseits nicht zu lange in der Schlange stehen und andererseits der Nutzungskoeffizient der Kassen nicht zu niedrig ist.
QuelleJeder ist glücklich. Das Ticketsystem ist sehr einfach und immer schnell. Die Anzahl der Registrierkassen wird so ausgewählt, dass:
- Der Nutzungsgrad der Registrierkassen ermöglichte es dem anderen Direktor, für immer glücklich zu leben.
- Die Warteschlangenlänge war gering und die Chinesen verbrachten wenig Zeit darin (95 Prozent der Wartezeit <ein angemessener Wert, z. B. 5 Minuten).
- Selbst wenn aufgrund der Umstände viele Käufer gleichzeitig in den Laden kommen würden, wird die Wartezeit verlängert, aber sie werden bis 23:00 Uhr abends bedient, damit sie vor dem Schlafengehen nach Hause zurückkehren und die Pressemitteilung ansehen können.
Etwa das gleiche sollte IP in Bezug auf den Massenempfang von Dokumenten vereinbart werden. Zum Beispiel müssen wir jeden Monat sicherstellen, dass insgesamt mindestens 150 Millionen Dokumente von 100.000 Lieferanten geladen werden. Damit die Qualität der heruntergeladenen Daten hoch ist, müssen vor dem Herunterladen alle Daten überprüft werden. Falsche Daten werden verworfen. Und die richtigen sollten strukturiert im Systemspeicher angeordnet sein, damit sie analysiert und in Zukunft verwendet werden können.
Die Notwendigkeit, die Daten vor dem Herunterladen zu überprüfen, führt dazu, dass Sie eine Reihe von „Steuerelementen“ durchführen müssen, die von formatiert bis komplex reichen (manchmal ist beispielsweise eine Geschäftssteuerung erforderlich, die belegt, dass die Organisation eine Grundlage für das Herunterladen übertragener Objekte hat).
Wir können normalerweise die Qualität der Schecks nicht opfern. Wir glauben, dass die Entwickler bereits alle Algorithmen optimiert haben und eine weitere Optimierung zu zeitaufwändig ist oder die weitere Wartung und Entwicklung des Systems erschwert. Bei unseren Projekten beträgt die Bearbeitungszeit für eine Anfrage mit ein bis fünfhundert Dokumenten (Zahlung, Rechnung, Vertrag, Beschaffungsprojekt usw.) im Backend durchschnittlich einige Sekunden (siehe Beispiel in Abbildung 1). Diese Zeit ist nicht konstant, sondern variiert innerhalb bestimmter Grenzen, da in einem komplexen System immer viele verschiedene Faktoren die Verarbeitung eines Pakets beeinflussen können.
Abbildung 1. Eine typische Zeitleiste für die Verarbeitung von Dokumentpaketen. Die durchschnittliche Zeit im Bereich von drei Sekunden.Selbst wenn für Ihren IS die Download-Daten gesetzlich geregelt sind, gibt es für Dokumentanbieter in der Regel keinen klaren Download-Zeitplan. Es gibt bestimmte Vorlagen für verschiedene Arten von Dokumenten, z. B. können Rechnungen zu Beginn des Monats ausgestellt werden, Spitzenwerte beim Laden anderer Daten können durch die Bedingungen der normativen Dokumente bestimmt werden oder mit dem Jahresende verknüpft werden usw.
In der Praxis kann die Intensität des Ladens von Dokumenten daher zu jedem Zeitpunkt sehr unterschiedlich sein - es ist fast unmöglich, sie genau vorherzusehen. Es kann vorkommen, dass alle 150 Millionen Dokumente guter Lieferanten gleichzeitig in das System hochgeladen werden. Und das ist überhaupt nicht dasselbe, als ob sie sie streng nach einem Zeitplan von 5 Millionen pro Tag heruntergeladen hätten.
Abbildung 2. Ein Beispiel für die Verteilung der Anzahl der heruntergeladenen Dokumente pro Tag in den letzten sechs Monaten.Abbildung 2 zeigt, dass die Anzahl der pro Tag geladenen Dokumente stark variiert. Es ist klar, dass durchschnittlich 4-5 Millionen Dokumente pro Tag heruntergeladen werden. Gleichzeitig wurden an manchen Tagen mehr als 10 Millionen Dokumente an das System gesendet. Die maximale Anzahl hochgeladener Dokumente pro Tag beträgt mehr als 17 Millionen.
Wenn wir uns die stündliche Dynamik des Ladens von Dokumenten ansehen, werden wir noch größere Schwankungen im Verkehr feststellen. In einigen Stunden werden 50.000 Dokumente in den IS geladen, und in einigen Stunden überschreitet die Anzahl der geladenen Dokumente 1 Million. Je kürzer das Intervall ist, desto größer ist die Lastverteilung, die wir sehen.
Offensichtlich können zwei, drei und zehn Millionen Dokumente gleichzeitig in das System gelangen. Daher verwenden wir beim Entwerfen von Massenlademechanismen die Abfragepufferung mithilfe von Warteschlangen. Jede Anfrage des Benutzers wird zuerst in der Warteschlange gespeichert. Somit können wir Anfragen zum Empfangen von Dokumenten mit sehr hoher Intensität in das System empfangen, da der Vorgang des Empfangens einer Anfrage sehr einfach ist. Die Validierung und das Laden des Dokuments erfolgt jedoch bereits durch spezielle "Prozessoren", deren Menge abhängig von den verfügbaren Kapazitäten angepasst wird. Je mehr Eisen, desto mehr "Prozessoren", desto mehr Anforderungen kann das System gleichzeitig verarbeiten.
Die Leistung des IP-Hardware-Software-Komplexes wird durch die erforderliche Bandbreite und die Hardwarekosten bestimmt. Wir müssen ein Gleichgewicht finden, damit wir (der Kunde) mit der Verwendung von Eisen in Zeiten geringer Last zufrieden sind und gleichzeitig in Spitzenzeiten die Datenwarteschlange für das Laden nicht zu stark wächst. In Anbetracht der Tatsache, dass wir nachts meistens einen natürlichen Lastabfall feststellen, können wir eine Richtlinie verwenden - alle Daten sollten entweder am selben Tag oder über Nacht heruntergeladen werden. Wenn die Daten immer häufiger nicht über Nacht geladen werden können, ist dies ein Signal zur Steigerung des Durchsatzes durch Zugabe von Eisen.
Abbildung 3. Ein Beispiel für einen Zeitplan zum Ändern der Länge einer Warteschlange zum Laden von Datenpaketen.Abbildung 3 zeigt Statistiken zur Länge der Warteschlange zum Herunterladen von Datenpaketen. Es ist darauf zu achten, dass wir tagsüber einen charakteristischen Buckel haben und nachts die Warteschlange zurückgesetzt wird.
Da die Ladezeit des Datenpakets die Summe aus der Wartezeit in der Warteschlange und der Verarbeitungszeit des Datenpakets im Backend ist, ist die Ladezeit nachts viel kürzer als tagsüber (siehe Abbildung 4).
Abbildung 4. Downloadzeit für Datenpakete. Der Durchschnitt für den Zeitraum betrug 11,92 Minuten. Die Startzeit umfasst die Wartezeit und die Backend-Verarbeitungszeit.Wir können daraus schließen: Wenn der Lieferant nachts ein Datenpaket sendet, ist die Downloadzeit minimal. Wenn andererseits die Kapazitäten des IC so ausgewählt werden, dass die erwartete Datenmenge am selben Tag oder maximal pro Nacht verarbeitet wird, ist es für den Lieferanten nicht sinnvoll, die Daten weiter zu laden. Sie müssen lediglich die gesamte Dokumentenmenge senden, und die Daten werden so schnell wie möglich verarbeitet.
Wie man ein ganzes Dorf ernährt
Kommen wir zurück zu unseren Ansprüchen. „Wir haben ein Dokument zum Herunterladen gesendet, und es dauerte bis zu 10 Sekunden. Wenn unsere Organisation 100.000 Dokumente hochladen muss, dauert dies 100.000 * 10/3600 = 277 Stunden für uns! “
Jeder Kunde, der zu unterschiedlichen Zeiten in einem Hypermarkt ankommt, kann zu unterschiedlichen Zeiten bedient werden. Es hängt davon ab, wie viele Kunden in den Laden gekommen sind. Nachts sind die Kassen wahrscheinlich leer und der Käufer wird sofort bedient. Und zur Hauptverkehrszeit können Sie mehrere Stunden in der Schlange stehen.
QuelleWas tun, wenn Sie in einem Dorf mit 100.000 Einwohnern Reis kaufen müssen? Es macht keinen Sinn, jeden Dorfbewohner nacheinander zum Hypermarkt zu schicken (der nächste kommt erst heraus, nachdem der vorherige zurückgekehrt ist). In diesem Fall wird der Kauf von Reis für das ganze Dorf natürlich viele Stunden oder einen Tag dauern, da Sie 100.000 Mal hintereinander in der Schlange stehen müssen. Auf der anderen Seite, wenn alle Dorfbewohner gleichzeitig zum Hypermarkt kommen und sich alle anstellen, stehen sie gleichzeitig in der Schlange. Tatsächlich stehen sie nur einmal in der Schlange. Ihre Wartezeit in der Schlange hängt auch wesentlich von der Anzahl der Kassen ab.
Mit anderen Worten, die Ladezeit einer großen Datenmenge wird durch die aktuelle Auslastung des Systems (die Anzahl der Pakete in der Warteschlange) und den Durchsatz des Systems (die Intensität, mit der diese Pakete verarbeitet werden) beeinflusst. Ein solcher Indikator wie die Ladezeit eines einzelnen Pakets ist an sich unzureichend und führt zu falschen Schlussfolgerungen.
Um eine große Datenmenge in den IS zu laden, müssen Sie keine Anforderungen nacheinander senden und auf die Verarbeitung der vorherigen warten. Es ist notwendig, alle Anforderungen auf einmal an den IS zu senden. Sie werden von speziellen „Prozessoren“ mit einer Intensität in die Warteschlange gestellt und verarbeitet, die von den verfügbaren Kapazitäten und Fähigkeiten abhängt. Offensichtlich übersteigt die Bandbreite des IP normalerweise die Anforderungen jedes einzelnen Datenanbieters erheblich.
Daher sind synchrone Methoden nicht für das Massenladen geeignet - dies ist ein Antimuster.
Warum können Sie einen anderen Regisseur bestrafen?
Was macht einem Regisseur in dieser Geschichte am meisten Sorgen? Wofür können sie ihn bestrafen?
Dem Kunden kann der Service verweigert werden - dies ist immer unangenehm. Es gibt jedoch viele Gründe, warum dies passieren kann, und sie haben eine andere Natur. Lassen Sie uns auflisten.
1. Wenn das Warteschlangenausgabesystem nicht funktioniert, ist dies sehr schlecht. Es ist nur so schlimm, dass solche Situationen am nächsten Tag direkt im Büro von Genosse Mao geklärt werden.
2. Wenn die Linie im Hypermarkt zunimmt und die Kunden lange Zeit dort hängen bleiben, ist dies verdächtig, aber nicht unbedingt sofort schlecht. Dies muss überwacht werden, es gibt jedoch zwei Situationen:
- Die Warteschlange wächst aufgrund der Tatsache, dass zu viele Chinesen gleichzeitig gekommen sind, zum Beispiel aufgrund des Gerüchts über Preiserhöhungen.
- Die Warteschlange wächst aufgrund der Tatsache, dass aus irgendeinem Grund viele Abendkassen kaputt gegangen sind. Diese Situation ist bereits schlecht, wird bei einem Planungstreffen verstanden und kann zu Verweisen führen.
3. Wenn ein bestimmter Chinese keinen Reis kaufen kann, kann dies auch verschiedene Gründe haben:
- Wenn die Chinesen vergessen haben, das Geld zu nehmen, ist dies nicht die Schuld des anderen Direktors.
- Wenn an der Kasse etwas kaputt gegangen ist oder die Kassiererin die Chinesen beschimpft hat, ist dies bereits ein Hypermarktproblem. Wenn der Anteil solcher Vorfälle auf ein bestimmtes Niveau ansteigt, wird dies zu einem großen Problem.
Es ist klar, dass für jedes IP ein wichtiges Merkmal von Massenlademechanismen der Prozentsatz der Denial-of-Service ist. Es ist zu unterscheiden zwischen Denial-of-Service aus technischen Gründen im Zusammenhang mit dem Betrieb des IS (Gerätefehler, Systemfehler usw.) und Fehlern aus Gründen im Zusammenhang mit Problemen auf der Seite des Lieferanten (falsches Datenpaketformat, falsche Daten aus geschäftlicher Sicht) Kontrollen usw.).
Situationen können unterschiedlich sein. Wenn IP jedoch unter Berücksichtigung der oben genannten Grundsätze entwickelt wurde und es einen Prozess der kontinuierlichen Überwachung und Beseitigung technischer Fehler gibt, wird sich die Situation früher oder später stabilisieren. Auf einem gut funktionierenden System sehen Statistiken zu Paketdownloads wie in Tabelle 1 aus.
| Anzahl der Download-Anfragen, Stk | Anteil% |
Vollständig erfolgreich hochgeladene Pakete
| 125 977 459
| 79,94%
|
Pakete, die aufgrund von Problemen auf der Lieferantenseite nicht vollständig oder teilweise geladen wurden (FLC, Geschäftskontrolle)
| 29 936 543
| 19%
|
Pakete, die aufgrund eines Problems auf der IP-Seite nicht heruntergeladen wurden
| 38 805
| 0,02%
|
Doppelte Pakete
| 1,638,886
| 1,04%
|
Insgesamt
| 156 812 782
| 100%
|
Tabelle 1. Statistiken für Juli 2018 herunterladenDie Tabelle zeigt, dass die meisten Pakete erfolgreich geladen wurden. Darüber hinaus ein hoher Fehleranteil seitens des Informationsanbieters. Dies kann auf die große Anzahl von Lieferanten und deren unterschiedliche Bereitschaft zum Informationsaustausch zurückzuführen sein. Lieferanten haben möglicherweise Daten von geringer Qualität und Probleme mit Informationssystemen. Einige Daten sind möglicherweise nicht in elektronisch strukturierter Form verfügbar, und es dauert einige Zeit, bis sie empfangen werden.
Leider können IP-Fehler auftreten, insbesondere wenn die rasante Entwicklung im Gange ist. Es ist wichtig, dass der Prozess der Fehlerüberwachung im industriellen Umfeld und eine Analyse der Ursachen ihres Auftretens eingeleitet werden. Wir verwenden in unseren LANIT-Projekten ein entwickeltes Überwachungssystem für Integrationsmechanismen. Wenn wir feststellen, dass die Anzahl der Fehler zunimmt, ermitteln wir deren Ursache und versuchen, schnell Korrekturmaßnahmen zu ergreifen.
Fazit
Abschließend möchte ich die wichtigsten Punkte noch einmal wiederholen.
- Bei der Entwicklung und Entwicklung von staatlichen oder Unternehmens-IP ergeben sich Aufgaben des Ladens von Massendaten. Der Fluss der Download-Anfragen an den IS ist in der Regel zufällig. Dies bedeutet, dass wir die Verteilung ungefähr kennen, aber zu einem bestimmten Zeitpunkt können nur sehr wenige und viele Anfragen kommen.
- Die Mechanismen zum Empfangen von Daten für das Massenladen sollten mithilfe von Warteschlangen erstellt werden. Der Punkt ist auf andere Weise unmöglich. Andernfalls müssen wir Datenverlust zulassen, wenn eine große Datenmenge zum Herunterladen kommt, oder wir müssen sehr, sehr viel Eisen verwenden, das 99% der Zeit untätig bleibt.
- Die Datenladezeit besteht aus der Wartezeit in der Warteschlange und der Datenverarbeitungszeit. Die Verarbeitungszeit von Datenpaketen im Backend mit angemessenen Entwurfs- und Entwicklungsprozessen beträgt Sekunden oder Millisekunden. Das Zeitlimit für die Warteschlange (Minuten) hängt von der Anzahl der vom System verwendeten Handler ab. Die Anzahl der Prozessoren wird durch die Leistung des Hardware-Software-Komplexes bestimmt. Mehr Eisen - mehr Handler, schneller die Warteschlange. Umgekehrt.
- Synchrone Dienste gelten nicht für Massendownloads, daher werden sie nicht empfohlen.
- Wenn Sie ein Lieferant sind und viele Daten hochladen müssen, senden Sie diese sofort an die IP. In keinem Fall sollten Sie Daten nacheinander senden (das nächste Paket wird erst gesendet, wenn das vorherige heruntergeladen wurde).
Traditionell: Wir haben freie Stellen für Sie!