Sie könnten versuchen, etwas wie Prevayler (im Grunde ein In-Memory-Cache, Serialisierung und Sicherung für Sie so behandelt, damit Daten persistent und ist Transaktionssicherheit). Es gibt andere ähnliche Projekte. Ich habe es für ein großes Projekt verwendet, es ist sicher und extrem schnell.
Wenn es die gleiche Menge von 20.000 Objekten ist, oder nicht mindestens 20.000 neue Objekte alle 5 Sekunden, aber viele Änderungen, sollten Sie die Änderungen im Cache speichern und die Änderungen regelmäßig im Batch-Modus schreiben (jdbc Batch-Updates sind viel schneller als einzelne Zeilenaktualisierungen). Das hängt davon ab, ob Sie jede Schreiboperation für Transaktionen verwenden müssen und ob Sie eine Aufzeichnung der Änderungsprotokolle benötigen oder nur Änderungen aggregieren müssen.
bearbeiten: wie andere Beiträge Prevayler erwähnt habe ich dachte, dass ich eine Nachricht hinterlassen würde auf, was es tut: Im Grunde erstellen Sie eine durchsuchbare/serialisierbares Objekt (in der Regel eine Karte von einer Art), die in einem Prevayler gewickelt Instanz, die auf Festplatte serialisiert wird. Anstatt Änderungen direkt an Ihrer Map vorzunehmen, nehmen Sie Änderungen vor, indem Sie Ihrer Prevayler-Instanz einen serialisierbaren Datensatz Ihrer Änderung senden (nur ein Objekt, das die Change-Anweisung enthält). Prevaylers Version einer Transaktion besteht darin, Ihre Serialisierungsänderungen auf die Festplatte zu schreiben, so dass sie im Falle eines Fehlers die letzte vollständige Sicherung laden und dann die Änderungen wieder abspielen kann. Es ist sicher, obwohl Sie genügend Speicher haben müssen, um alle Ihre Daten zu laden, und es ist eine ziemlich alte API, also leider keine generischen Schnittstellen. Aber definitiv stabil und funktioniert wie angekündigt.
Sehr interessiert an Prevayler ... Kennen Sie gute Tutorials? – systemoutprintln
Die Dokumentation auf der Website ist nicht sehr umfangreich, aber der Bibliotheksdownload enthält Demos. Die Verwendung ist ziemlich einfach. –
Steve, könntest du bitte meine Frage zu Prevayler lesen? http://stackoverflow.com/questions/454294/what-are-synchronizing-strategies-for-prevayler – Sergey