Ich betrachte mögliche Technologieoptionen für Warteschlangen (oder vielleicht sind Streams eine bessere Beschreibung) in einem JVM-basierten System.
Einige Voraussetzungen:
Ich untersuche verschiedene Optionen, bin aber gespannt welche Optionen mir fehlen?
Ich habe diese FIFO-Queue mit spill to disk durchlaufen, was ziemlich interessant ist und einige Eigenschaften hat, nach denen ich suche:
Ich habe in Erwägung gezogen, Terracottas BigMemory als Werkzeug zu verwenden, um Warteschlangendaten in direkten Speicher und Off-Heap zu verschieben.
HSQLDB bietet eine prozessinterne Datenbank-Engine, in der Sie RAM, die lokale Festplatte oder einen Netzwerkserver zum Speichern der Datenbank verwenden können. Das könnte Ihr Boot zum Schweben bringen, besonders wenn Sie später nahtlos zu einer Netzwerklösung und nicht zur lokalen Festplatte wechseln möchten. Der Übergang von kleinen zu großen Warteschlangen würde dann das Verschieben von Daten von einer Datenbank zu einer anderen umfassen. Es gibt Standardmethoden, dies zu tun, aber sie können ziemlich langsam sein.
Da ich mehr darüber nachdenke, denke ich, dass das kein gutes Spiel ist. Für was es wert ist, ist die In-Memory-DB sehr schnell in meiner Erfahrung.