Planet Metax - Chaos & Logik
Willkommen auf Planet Metax!
Ich möchte Sie ganz herzlich auf meiner privaten Webseite Willkommen heißen!
Ich bin Student der Informatik in Würzburg und beschäftige mich in meiner Freizeit - unter Anderem - mit Software-Entwicklung, Linux, Bildbearbeitung und Musik. Zu diesen Themen werden sie im Blog das Eine oder Andere lesen können.
Hier auf „Planet Metax“ finden Sie außerdem Links zu Webseiten, die ich interessant, nützlich oder einfach nur bemerkenswert fand. Falls ein Link nicht mehr geht, oder auf eine offensichlich falsche Adresse zeigt, wäre ich für einen kleinen Hinweis sehr dankbar.
Ferner biete ich in der Rubrik „Downloads“ einige kleine Tools an, die ich programmiert habe.
Alles in allem wünsche ich Ihnen einen schönen Aufenthalt auf meiner Website.
Christian Simon alias metax.
Das Neuste aus dem Weblog
16. Dez 2010 Caches entwerfen mit Java
Ich habe bei meinen aktuellen Java Web-Applikationen oft mit der Situation zu tun, dass verschiedene Handler der Applikation auf einen gemeinsamen Pool von Daten lesend (und manchmal auch schreibend) zugreifen müssen.
Das einfache Vorgehen, dass ich auch zu meinen PHP-Zeiten gewohnt war, ist es, eine Datenverbindung (soll heißen: eine offene MySQL-Verbindung) zu errichten oder aufrechtzuerhalten, und diese an alle Handler weiterzugeben, so dass diese die benötigten Daten unmittelbar aus der Datenbank lesen und Änderungen direkt in die Datenbank zurückschreiben können.
Allgemeine Überlegungen
Dieses "Read-On-Demand"-Verfahren hat aber ein paar häßliche Nachteile, weshalb ich es heute nicht mehr gerne einsetze:
- Die Daten aus der Datenbank müssen evtl. bei jedem Request neu eingelesen und verarbeitet werden. Das kann bei großen (oder komplizierten) Daten einiges an Verarbeitungszeit kosten
(Beispielsweise dauert das Neueinlesen der Weblog-Daten aus diesem Blog schon ein paar Sekunden, da erst die enthaltenen Bilder nachgeprüft und verkleinert werden müssen, LaTeX-Formeln verarbeitet werden usw.) - Bei einer Änderung der Datenschnittstelle (z.B: Änderung des Tabellenformats in der Datenbank) müssen alle Handler angepasst werden. Dabei kann man leicht eine Abfrage vergessen, die dann zu einem Bug führt.
- In jeden Handler muss das Lesen und Interpretieren der Daten (inklusive SQL-Abfragen) hineinprogrammiert werden, was den Aufwand zum Entwickeln eines Handlers stark erhöht. Oft ergibt sich dann doppelter Code, weil verschiedene Handler die selben Daten einlesen
- Bei mehreren gleichzeitigen Abfragen (wobei mindestens eine davon die Daten verändert) können Datenhazards auftreten, also eine Verfälschung der Daten durch eine falsche Verarbeitungsreihenfolge. Dadurch kann auch permanenter Datenverlust auftreten
Um diese Probleme zu umgehen bin ich seit kurzem auf Caches umgestiegen. Unter einem Cache verstehe ich eine gemeinsame Instanz, die den Zugriff auf eine bestimmte Datenmenge der Applikation zur Verfügung stellt:
» Den kompletten Artikel lesen
Die neusten Kommentare
27.07.2011 09:56
Der Hinweis mit Umstellung auf "IO-APIC" war auch die Lösung für mein gleichartiges Problem.
Danke für den Hinweis
23.09.2011 13:28 Iris
Hi!
Ich habe mir auch die VMware für meinen Mac runtergeladen.
Ich habe ein Haushaltsbuch für den Computer und habe mir gedacht, dass das dafür die perfekte Lösung ist.
Ich habe mir auch meine virtuelle Festplatte eingerichtet. Wenn ich jetzt auf Windows starten klicke kommt eben das Booting-Fenster und dann steht nur da:
"No bootable Medium found! System halted..."
Was hab ich falsch gemacht? Ich hab keine Ahnung, was ich wie tun muss... :-/