Hier ist meine Situation. Ich habe eine Server-Anwendung für mehrere Benutzer zu verwenden, so dass eine Menge von Lese-/Schreib-Vorgang gleichzeitig sind. Und die Antworten müssen schnell sein.gleichzeitiger Zugriff auf die Datenbank oder Speicherdatei von mehreren Prozessen, ist das möglich?
Momentan habe ich alle Daten im Speicher zwischengespeichert, so dass der Datenlese-/Schreibvorgang so schnell ist, wie wir es erwartet haben. Um zu verhindern, dass die Datensperre mir Probleme verursacht, habe ich Queue verwendet, um die Anfragen der Benutzer hochzufahren der Handler-Prozess eins nach dem anderen.
Aber bald habe ich ein Problem gefunden. Das Programm kann nur jeweils eine Anfrage bearbeiten. Selbst der Programm-Benchmark-Timer meldet mir, dass er null ms zur Verarbeitung verwendet hat, aber es gibt immer noch Grenzen, Anfragen in einer Sekunde zu behandeln. Heute behandle ich ungefähr 100 Mal pro Sekunde.
Also suche ich für einige Methoden mehr gleichzeitig, wie 8 Prozesse, um die 8 Anfragen zur GLEICHEN ZEIT zu behandeln. Das wird so nett sein. Aber es gibt ein größeres Problem mit dem Teilen von Daten, ich möchte das Rad nicht neu erfinden. Also überprüfte ich den Mongodb, Redis und Sqlite.
meine Hausaufgaben hier ist, korrigiert mich wenn ich falsch war, Dank viel
mongodb und redis sind wirklich schnell, wie sie angegeben, aber sie verwendet den gleichen Mechanismus, können sie eine Anfrage einmal verarbeiten, das ist nicht das, was Ich suche nach.
So die SQLite ist viel näher, mehrere Prozesse können die gleiche Datenbank-Datei zur gleichen Zeit öffnen und lesen, der Schmerz ist seine Schreibsperre (ich nicht, wie viel besser die neue Sperre in sqlite3 funktioniert).
Hier ist meine Frage, gibt es solide und gute Lösung für dieses Szenario? Wenn ich den Schreibprozess in einem trennen würde, würde es helfen?
Dank für jeden Kommentar
Nicht alle der Serverlogikprozess muss folgerichtig sein, ich versuche, den Nicht-Folgeteil zu optimieren. – davyzhang
Für sqlite siehe: http://www.sqlite.org/faq.html#q5 – tauran