2014-12-23 10 views
5

Derzeit ist unsere Aufgabe, 1 Million Datensätze von einem externen Server zu holen, zu verarbeiten und speichern Sie es in der db. Wir verwenden node.js zum Abrufen der Datensätze und mongodb als Datenbank.Mongodb Antwort verlangsamt unglaublich nach 200.000 Datensätze

Wir entschieden uns, den Prozess in zwei Aufgaben aufzuteilen, die Datensätze abzurufen und zu verarbeiten. Jetzt können wir alle Datensätze abrufen und in Mongo ablegen, aber wenn wir versuchen, sie zu verarbeiten (indem ich meine, ändere ein paar Attributwerte, mache eine einfache Berechnung und aktualisiere die Attribute), sehen wir eine drastisch langsame Antwort in mongodb Updates um 200,000 Datensätze.

Für die Verarbeitung der Daten nehmen wir Chargen von 1000 Datensätzen, verarbeiten sie, aktualisieren die Datensätze (einzeln) und gehen dann zum nächsten Batch über. Wie könnte die Leistung verbessert werden?

+0

Haben Sie alle Indizes auf Ihrem db haben? Wenn ja, lassen Sie sie während des Imports fallen. – dbcb

+0

@ dbcb wir haben das getan. Momentan gibt es keinen Index für die Sammlung. – Rahul

+0

Warum nicht die Bulk-API für Updates verwenden? - http://docs.mongodb.org/manual/reference/method/Bulk.find.update/ – BatScream

Antwort

0

wenn Sie wollen Reaktionsgeschwindigkeit in mongoDB zu halten, nachdem dann lange Daten Mongo sharding und Replikation in Ihrer Datenbank und Sammlung verwenden

Replikation: - Eine Replik in MongoDB gesetzt ist eine Gruppe von mongod Prozesse die denselben Datensatz beibehalten. Replikatsätze bieten Redundanz und hohe Verfügbarkeit und sind die Grundlage für alle Produktionsbereitstellungen. In diesem Abschnitt werden die Replikation in MongoDB sowie die Komponenten und die Architektur von Replikatgruppen eingeführt. In diesem Abschnitt finden Sie auch Anleitungen zu allgemeinen Aufgaben im Zusammenhang mit Replikatgruppen.

Replication Link

sharding: - Sharding ist der Prozess über mehrere Maschinen Datensätze zu speichern und ist Konzept der MongoDB, um die Anforderungen des Datenwachstums zu erfüllen. Wenn die Größe der Daten zunimmt, reicht eine einzelne Maschine unter Umständen nicht aus, um die Daten zu speichern und keinen akzeptablen Lese- und Schreibdurchsatz zu bieten. Sharding löst das Problem mit der horizontalen Skalierung. Mit Sharding fügen Sie weitere Maschinen hinzu, um das Datenwachstum und die Anforderungen von Lese- und Schreibvorgängen zu unterstützen.

Sharding Link

Verwandte Themen