Dies ist mein erstes Posting hier im Forum. Also erstmal vorab Hallo in die Runde!
Ihr scheint ja ein kompetenter 'Haufen' zu sein, was Java-Programmierung betrifft, also habe ich mich mal angemeldet, um eure Meinung zu meinem Problem einzuholen.
Zum Background, damit ihr einschätzen könnt, worum es grob geht: Ich habe bereits eine Client-Server-Infrastruktur implementiert, welche ihre Dienste ganz anständig verrichtet. Nun bin ich zur Erkenntnis gekommen, dass innerhalb der Client-Anwendung (basierend auf Swing) eine lokale Datenbank vorliegen sollte, welche in regelmäßigen Intervallen mit der Server-Datenbank synchronisiert wird. Bei häufigen Read-Only-Operationen auf der Datenbank spart dies eine Menge unnötigen Traffic zwischen Client und Server, abgesehen von der geringeren Laufzeit.
So weit so gut. Ich bin nun noch am Rätseln, welche lokale Datenbank man einsetzen könnte. Ich habe mich ein wenig umgeschaut und folgende Kandidaten in Erwägung gezogen:
1. HSQLDB
2. H2 Database Engine
3. Apache Derby
Folgende Anforderungen wären von den Datenbanken zu erfüllen:
1. Muss mit Hibernate verwendbar sein (inkl. Transaktionen etc.).
2. Ausgelagerte Datenbankdateien müssen verschlüsselt gespeichert werden, dass der Anwender mit keinen externen DB-Tools mit diesen Dateien etwas anfangen kann.
3. Je schneller, desto besser.
Ich habe mir die Dokus der 3 Kandidaten angeschaut und konnte nur mit Derby Anforderung 1 & 2 abdecken. HSQLDB und H2 scheinen keine Verschlüsselung der Auslagerungsdateien zu unterstützen, oder habe ich es nicht gefunden?
Nach den Benchmarks auf der Seite von H2, scheint Derby ja nicht das 'Geschwindigkeitsmonster' zu sein. Wie sind da eure Erfahrungen?
Wie verhält es sich mit der Performance der genannten Datenbanken bei größeren Datenmengen (>100.000)?
Könnt ihr mir ggf. Alternativen empfehlen?
Vielen Dank im Vorraus
Ihr scheint ja ein kompetenter 'Haufen' zu sein, was Java-Programmierung betrifft, also habe ich mich mal angemeldet, um eure Meinung zu meinem Problem einzuholen.
Zum Background, damit ihr einschätzen könnt, worum es grob geht: Ich habe bereits eine Client-Server-Infrastruktur implementiert, welche ihre Dienste ganz anständig verrichtet. Nun bin ich zur Erkenntnis gekommen, dass innerhalb der Client-Anwendung (basierend auf Swing) eine lokale Datenbank vorliegen sollte, welche in regelmäßigen Intervallen mit der Server-Datenbank synchronisiert wird. Bei häufigen Read-Only-Operationen auf der Datenbank spart dies eine Menge unnötigen Traffic zwischen Client und Server, abgesehen von der geringeren Laufzeit.
So weit so gut. Ich bin nun noch am Rätseln, welche lokale Datenbank man einsetzen könnte. Ich habe mich ein wenig umgeschaut und folgende Kandidaten in Erwägung gezogen:
1. HSQLDB
2. H2 Database Engine
3. Apache Derby
Folgende Anforderungen wären von den Datenbanken zu erfüllen:
1. Muss mit Hibernate verwendbar sein (inkl. Transaktionen etc.).
2. Ausgelagerte Datenbankdateien müssen verschlüsselt gespeichert werden, dass der Anwender mit keinen externen DB-Tools mit diesen Dateien etwas anfangen kann.
3. Je schneller, desto besser.
Ich habe mir die Dokus der 3 Kandidaten angeschaut und konnte nur mit Derby Anforderung 1 & 2 abdecken. HSQLDB und H2 scheinen keine Verschlüsselung der Auslagerungsdateien zu unterstützen, oder habe ich es nicht gefunden?
Nach den Benchmarks auf der Seite von H2, scheint Derby ja nicht das 'Geschwindigkeitsmonster' zu sein. Wie sind da eure Erfahrungen?
Wie verhält es sich mit der Performance der genannten Datenbanken bei größeren Datenmengen (>100.000)?
Könnt ihr mir ggf. Alternativen empfehlen?
Vielen Dank im Vorraus