Die Frage war etwas zugespitzt, aber ich sehe es als Aufgabe einer
DB, Daten zu halten und verfügbar zu machen. Insofern ist die Frage "wie mache ich 4Gb an Daten für Anwendungen auf meinem PC verfügbar?" Einfach: "Tu sie in eine Datenbank"
Nachdem das Problem inzwischen besser umrissen ist, würde ich 2 Alternativen sehen:
- Zieh die relevanten Datensätze in eine lokale Datenbank. Dann hast du die 4Gb erstmal nur auf der Platte. Die 3 Instanzen können relativ schnell und latenzarm jeden Datensatz lesen
- Lagere die Auswertung nicht in 3 Prozesse sondern ind 3 Thread aus. Solange alle Zugriffe auf die 4GB Daten nur lesend erfolgen, brauchst du auch nix synchronisieren. Du kannst auch einfach jedes Kriterium als eigenen Task anlegen und den Threadpool nutzen. Dann kannst du auch eine moderne 8 Kern CPU auslasten.