3 Stimmen

Hinzufügen von mehr Hardware vs. Refactoring von Code unter Zeitdruck

Hintergrund: Unternehmensanwendung - sehr willensstark für seine Zeit im Jahr 2004 geschrieben.

Stapel: .NET, starke Nutzung von Remoting, Webdienste im ASMX-Stil, SQL Server

Problem: Die Anwendung ermöglicht es dem Benutzer, verschiedene Assistenten zu durchlaufen. Alle seine Aktionen werden in dem gespeichert, was wir als "Assistentenstatus" bezeichnen, bei dem es sich im Wesentlichen um XML handelt, das sehr häufig in einer SQL-Server-Datenbank persistiert wird, da wir den Benutzern erlauben, ihre Anwendung zu pausieren/fortzusetzen. In diesen Assistenten wird die XML-Datei, aus der der Assistentenstatus besteht, oft sehr groß, ich spreche hier von 5-8 MB Daten, und wir haben festgestellt, dass wir bei einem plötzlichen Zustrom von gleichzeitigen Benutzern gelegentlich Zeitüberschreitungen in der Datenbank erhielten, da der Assistentenstatus zu einem großen Teil aus der Verfolgung von Sammlungen von "Dingen" besteht. Manchmal werden diese benutzerdefinierten Sammlungen sehr groß.

Frage: Wir waren heute in einer Besprechung und erwarten im Oktober einen Ansturm von Aktivitäten, die das System wie nie zuvor testen werden und möglicherweise zu riesigen Assistentenstatus führen, die zwischen dem Webserver und der Datenbank hin und her gehen. Der springende Punkt ist, dass es nur eine Datenbank und einen Webserver gibt.

Aufgrund der Komplexität der Anwendung kommt ein Clustering/Spiegelung zur Erhöhung des Datenbankdurchsatzes nicht in Frage. Ich habe mich in der Sitzung zu Wort gemeldet und gesagt, dass der schnellste Weg, dieses Problem in kürzester Zeit zu lösen, darin bestünde, der Front-End-Webanwendung mehr Server hinzuzufügen, damit die Last auf die Webserver verteilt werden kann. Der Entwicklungsleiter sagte, dass ich völlig falsch liege und es keine Auswirkungen hätte, weil wir nur eine Datenbank haben, so dass das Hinzufügen von mehr Web-Power nichts bringen würde. Er hat einen der anderen Entwickler beauftragt, den Xml-Bloat zu reduzieren, den wir häufig in die Datenbank einspeisen. Langfristig gesehen ist die Verringerung der Größe des XML, das wir hin- und herschicken, wahrscheinlich die richtige Idee, aber ob das Hinzufügen zusätzlicher Webserver wirklich keine Auswirkungen hat, denke ich nur in Bezug auf die Anzahl der gleichzeitigen Benutzer. sollte helfen.

Wir sind für jede Antwort dankbar, und der Beweis, dass mehr Webserver helfen würden, wäre ein reiner Gewinn.

Danke.

EDIT : Wir verwenden die binäre Serialisierung, um das XML in der Datenbank in einem Bildfeld zu speichern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X