Frage

Ich verarbeiten Sie einige Eingabedateien und das Einfügen der erhaltenen Datensätze als CouchDB-Dokumente. Ich habe bemerkt, dass die Einsatzgeschwindigkeit im Tempo mit abnimmt Datenbankgröße erhöhen.

was ich tue ist:

    .
  1. Daten aus der Eingabedatei lesen
  2. Bearbeiten Sie die Daten, um die strukturierten Dokumente zu erhalten
  3. Setzen Sie die Dokumente in einen lokalen Puffer
  4. Sobald der Puffer 1000 Dokumente hat, führen Sie einen CouchDB-Bulk-Insert
  5. aus
  6. Wiederholen, bis die Eingabedaten vollständig verarbeitet wurden
  7. Hier haben Sie das Protokoll von meinem aktuellen Lauf:

    generasacodicetagpre.

    der "Rate" zeigt die Einfügung der letzten tausend Dokumente, was Sie, wie Sie sehen, sehr schnell beeinträchtigen.

      .
    • ist das normal?
    • Kann ich etwas tun, um einen hohen Einsatzzinssatz zu halten?
    • Haben Sie Erfahrung mit großen Couchdb-Datenbanken.
    • Alle Ratschläge, die Sie teilen möchten?
War es hilfreich?

Lösung

Die hohen Einsatzraten sind anomal, verursacht, die durch alles, was ordentlich in Ihren Festplattencache passt, verursacht.Wenn Ihre Datenbankgröße zunimmt, müssen Sie schließlich Daten von der Festplatte lesen, um den BTree zu aktualisieren.Es wäre besser, einen Einfügungstest länger auszuführen, draf es, und dann sollten Sie sehen, dass die riesige Spitze an der Vorderseite die Eigenschaft ist, nicht die niedrigere, aber mehr oder weniger konstante Rate, die ihm folgt.

Von anderen Threads haben Sie diese Frage gestellt, ein weiterer signifikanter Faktor ist, dass Sie vollständig zufällige UUIDs verwendet haben.Da COUCHDB auf B + -Baum basiert, ist das Einfügen vollständig zufälliger IDs die schlechtesten möglichen Szenarien für das Update.CouchDB-Schiffe mit einer Reihe von UUID-Algorithmen, der Standard-Namens-SEQUENTIAL-Retouren-Werte mit einer sehr geringen Chance auf Kollisionen, die noch sequentiell genug sind, um viel bessere Einfügungsleistung zu ergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top