Ich bin in der Finanzbranche tätig. Wir wollen einen Datenbank-Hit für die Datenverarbeitung einführen. Das ist sehr kostspielig. Daher planen wir, eine On-Demand-Cache-Logik zu verwenden. [Runtime Insert & Runtime Lookup].
Hat jemand an der Implementierung der Caching-Logik für mehr als 10 Millionen Datensätze gearbeitet? Pro Datensatz ist sagen wir etwa 160 - 200 Bytes.
Bei den verschiedenen Ansätzen hatte ich folgende Nachteile.
- Kann nicht verwendet werden stl std::map um eine Cache-Registrierung für die Schlüsselbasis zu implementieren. Das Einfügen und Nachschlagen ist nach 200000 Datensätzen sehr langsam.
- Gemeinsamer Speicher oder abgebildeter Speicher Dateien sind eine Art Overhead für die Zwischenspeicherung von Daten, weil diese Daten nicht prozessübergreifend genutzt werden
- Verwendung von sqlite3 In-Memory & Flatfile Anwendungsdatenbank kann wert sein. Aber auch sie haben langsame Lookup nach einem 2-3 Millionen von Datensätzen.
- Der Prozessspeicher hat möglicherweise eine Begrenzung für seinen eigenen Kernel-Speicherverbrauch. Annahme ist 2 Gig auf 32-Bit-Maschinen und 4 Gig auf 64-Bit-Maschinen.
Bitte schlagen Sie mir etwas vor, wenn Sie auf dieses Problem gestoßen sind und es auf irgendeine Weise gelöst haben.
Gracias