ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
373
373
EMPFEHLEN
-
Hi,
ich habe eine Web-Anwendung, in der im Hintergrund eine DB läuft. Um die Performance zu erhöhen wurde ein
Cache, mittels HashMaps, für Java Objekte implementiert.
Die Java-Objekte sind Repräsentanten von Zeilen der Datenbank (bspw. liegen in der Datenbank Kataloge o.ä., die dann durch
jeweils ein Objekt in der "Javawelt" abgebildet werden).
Das Problem ist nun, dass auf den Cache mehrere Threads gleichzeitig zugreifen können (typischen und altbekanntes Cache-Problem)
und somit Inkonsistenzen zwischen DB und Cache entstehen können.
Die Frage ist nun, wie bekomme ich die Java-Seite threadsicher/synchronisiert. Auf der DB-Seite besteht ja (durch ACID) bereits eine
Synchronisation von Transaktionen.
Reicht es aus, einfache mittels "synchronized" die Threads zu synchronisieren? Oder muss noch mehr beachtet werden?
Danke!
-
11.02.09 11:29 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
1) Caches zu implementieren ist keine triviale Angelegenheit (Concurrency, Invalidation ....) und es gibt bereits massig Implementierungen, die sich umfassend um das Thema kümmern...
http://java-source.net/open-source/cache-solutions
2) Wenn du sowas selber baust, dann verwende eine java.util.concurrent.ConcurrentHashMap
3) Für eine detaillierte Antwort bräuchte man noch ein paar Informationen.
Ist das mehr ein Read-Only cache?
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Hallo!
Danke für Deine Antwort!
zu1)
Ja, ich kenne bereits einige Implementierungen (OSCAche, EHCache, ...). Ich möchte aber erstmal sehen, ob so etwas auch mit Bordmitteln machbar.
zu 3)
Momentan ja, es sind statische Objekte, von denen nur gelesen wird. Tendenziell sollen aber dynamische, veränderbare Objekte gecacht werden.
Ähnliche Themen
-
Mehrere COM-Ports synchronisieren
Von Harry64 im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 08.07.10, 07:31 -
Threads synchronisieren
Von shinpei im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 20.01.10, 01:45 -
Mehrere Threads (> 50.000) Linux
Von MArc im Forum C/C++Antworten: 8Letzter Beitrag: 12.10.08, 16:51 -
Mehrere Ordner mit iPaq synchronisieren
Von Bernd_Munich im Forum Handy, PDA & mobile WeltAntworten: 4Letzter Beitrag: 29.09.05, 09:14 -
SWT mehrere Threads verwenden
Von bigJ01 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 7Letzter Beitrag: 28.02.05, 09:44





Zitieren

Login





